Arduino ile Bluetooth Haberleşmesi

Arduino ile bluetooth haberleşme

Temel olarak yaptığımız iş bilgisayar ile arduino üzerinden haberleşmeye benzemektedir. Tek fark donanımsal olarak bluetooth modülümüzü arduinomuza bağlayacağız. Piyasada çeşitli modelleri bluetooth modülleri genellikle 4 ayağa sahiptir. Üzerinde yazanlardan da anlaşılacağı gibi 2 besleme 2 haberleşme ayağı vardır. Beslemeleri modülümüzün datasheetine göre 5 veya 3.3 volta bağlayalım.
Hatalı bağlantı yapılması durumunda modülümüz çöp olabilir. Geriye kalan 2 ayak arduinomuza bağlanacaktır. İlk uygulama olarak bu ayakalrımızı arduinomuzun Rx ve Tx ayaklarına bağlayalım. Bluetoothun Tx ayağı arduinonun Rx ayağına, Bluetoothun Rx ayağı ise arduinonun Tx ayağına bağlanacaktır. Yani ters olarak bağlanması gerekmektedir. Hep yapılan ve yapılamaya devam edecek bir hata var burada.
Arduinomuzun Rx ve Tx ayaklarına bir şeyler bağlı iken arduinoyu bilgisayara bağlayarak kod atmaya çalışırsanız hata alırsınız. Çünkü bu ayaklar aynı zamanda bilgisayarın kullandığı ayaklardır ve oraya başka bir modülün bağlı olması iletişiminizi bozar. Eğer bu ayakları kullanacaksak kod atacağımız zaman bu kabloları sökmeyi unutmayın.


İşin arduino üzerindeki kısmı çok zor değil. Fakat bluetooth modülümüzü bilgisayarımızla eşleştirmemiz gerekmektedir. Bluetoothumuzun besleme bağlantılarını yaptıktan sonra kırmızı ışığı yanıp sönecektir. Bu ışık bağlantı bekliyorum anlamına gelmektedir. Bilgisayarımızın bluetoothundan arama yaparak modülümüzü bulalım. Cihazları eşleştirelim.
Şifre sorarsa genellikle ilk şifremiz 1234 olmaktadır. Eğer düzgün bir şekilde bağlantımızı yaptıysak kırmızı ışık sürekli yanacaktır. Bu kısım ile ilgili daha detaylı bilgiyi aşağıdaki linkten ulaşabilirsiniz. Modül için yeni bir COM Port açılacaktır ve bu modülü ilerleyen programlarımızda kullanacağız.


http://www.mcu-turkey.com/stm8s-hc-06-bluetooth-modul-ile-haberlesme-uygulamasi/
Artık kod yazalım. Aslında çok farklı bir şey yapmayacağız. Seri haberleşme konusundaki örnek kodu yükleyebiliriz arduinomuza.

void setup() {
Serial.begin(9600);
}
int sayici = 0;
void loop() {
Serial.print(“Sayicimizin degeri= “);
Serial.println(sayici);
delay(1000);
}

 

Programımızı arduinomuza attık ve bluetooth modülünün Tx ve Rx ayaklarını dikkatlice arduinoya bağladık. Hala modüldeki kırmızı ışık yanıp sönmektedir. Çünkü bilgisayarın modüle bağlanması gerekmektedir (Master -> Slave ilişkisi)
Bu adımda ek bir programa ihtiyaç duyuyoruz. Bu program bilgisayarımızın COM Portlarını dinleyen programdır. Çok özel bir program olmasına gerek yok piyasada bu işi yapan çeşitli programlar vardır. Benim önerim Tera Term’dür. Aşağıdaki linkten indirebilirsiniz.


http://download.cnet.com/Tera-Term/3000-20432_4-75766675.html


Programı çalıştıralım ve modülümüze bağlanalım. Bağlantı ayarlarında daha önce modülü bilgisayara tanıttığımız COM portunu seçelim. Her şey doğru ise artık kırmızı ışık sürekli yanmakta ve veri akışımız gerçekleşmektedir. Eğer veri akışı yok ise ayarlarımızı kontrol edelim ve diğer bluetooth COM portunu seçelim, tekrar deneyelim. Umarım veri akışını sağlayabilmişsinizdir. Tüm adımlar dikkatlice yapılmalıdır.
Şimdi şunu sorabilirsiniz ‘ Her seferinde Tx Rx kablolarıyla mı uğraşacağız?’ Cevabımız HAYIR.
Arduinomuza yeni haberleşme ayakları tanımlayabiliriz. Böylece bilgisayar haberleşmesi ile bir çakışma gerçekleşmez.
Aşağıdaki kod ile artık modülümüzü bağlayacağımız ayaklar 10 ve 11dir.

include SoftwareSerial yeniHaberlesmeKanali(10, 11); 
// 10 = RX, 11 = TX yani 10 -> bluetooht’u Tx’ine 11 -> Rx’ine
void setup()
{
Serial.begin(9600);  // bilgisayar ile haberleşmemiz
yeniHaberlesmeKanali.begin(4800);  // yeni haberleşme kanalımız
}
void loop()
{
Serial.println(“Bu yazi bilgisayara”);
yeniHaberlesmeKanali.println(“Bu yazi bluetootha”);
delay(100);
}


Yukarıdaki kod yardımı ile arduino hem bluetootha hemde bilgisayara farklı mesajlar yollamaktadır. Mesajları görmek için Tera Term’ü ve arduinonun kendi Serial Monitor’ünü açabilirsiniz.

İlgili Mesajlar

Abone ol
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments