1 Bluetooth İle HaberleşmeAslı Ergün
2 Bluetooth Bluetooth kısa mesafeli haberleşmeler için geliştirilmiş, 2,4 – 2,48 GHz ISM bandını kullanan bir haberleşme protokolüdür. Bluetooth modülleri arasındaki iletişim mesafesi eğer arada bir engel yoksa yaklaşık 20 metredir. Geliştirilen yeni teknolojiler ile bu mesafe yaklaşık 100 metreye kadar arttırılmıştır.
3 HC-05 ve HC-06 Arduino projelerinde genellikle HC-05 veya HC-06 Bluetooth modülleri kullanılır. HC-05 ve HC-06 Bluetooth modülleri özellik olarak hemen hemen birbirinin aynısıdır. Tek fark, HC-05 hem kendisine gelen bağlantı isteklerine cevap verirken hem de başka Bluetooth cihazlarına bağlantı isteği yollayabilmesidir. HC-06 Bluetooth modülü ise yalnızca kendisine gelen bağlantı isteklerini cevaplayabilir, başka bir Bluetooth modülüne bağlantı isteği yollayamaz. Kısacası HC-05 hem master (yönetici) hem de slave (köle) modunda çalışabilirken, HC-06 sadece slave (köle) modunda çalışabilmektedir.
4 HC-05 ve HC-06 Bluetooth modüllerinin ortak özellikleri• 2,4 GHz haberleşme frekansı (ISM) • Hassasiyet: ≤-80 dBm • Çıkış gücü: ≤+4 dBm • Asenkron hız: 2,1 MBps / 160 KBps • Senkron hız: 1 MBps / 1 MBps • Çalışma gerilimi: 1,8 - 3,6 V (Önerilen 3,3 V • Akım: 50 mA • Kimlik doğrulama ve şifreleme
5 Bluetooth Shield Arduino üzerine doğrudan takılabilen Bluetooth Shield
6 HC-05 Bağlantı
7 Bluetooth EşleştirmesiBluetooth modüllerinin bilgisayar veya telefon gibi Bluetooth özelliği bulunan cihazlara bağlanabilmesi için, öncelikle bu cihazların Bluetooth modülüyle eşleştirilmesi gerekmektedir. Akıllı telefonlarda bu işlem normal bir telefon eşleştirir gibi yapılabilmektedir fakat bilgisayar ile eşleşme yapıldığında bilgisayar, Bluetooth modülü için otomatik olarak COM (haberleşme portu) oluşturmaktadır. Haberleşme için kullanacağımız bilgisayar programları da bu port üzerinden Bluetooth modülüne bağlanacaktır. Bluetooth modülünün parolası değiştirilmemiş ise fabrika ayarı parola şeklindedir. Eşleşme sırasında modülün parolası sorulduğunda, bu şifre girilmelidir.
8 Bluetooth Eşletirmesi-2Eğer eşleştirme işlemini başarıyla tamamlamış ve gerekli yazılımlar indirilmiş ise ilk bağlantımızı kurabiliriz. Bunun için Bluetooth modülünün sadece VCC ve GND pinlerinin takılması yeterlidir. Bu pinler takıldığında Bluetooth modülü üzerinde bulunan ışık yanıp sönmeye başlamaktadır. Bu ışığın hızlı bir şekilde yanıp sönmesi bağlantı isteklerine açık olduğunu göstermektedir. Akıllı cihazımızdaki program aracılıyla Bluetooth modülüne bağlanmayı deneyiniz. Birkaç saniye bekledikten sonra, eğer cihazımız ile Bluetooth modülü başarılı bir şekilde bağlanmış ise, modül üzerindeki ışık yanıp sönmeyi bırakıp sadece yanacaktır.
9 Bluetooth Eşletirmesi-2Eşleştirilme işlemleri bittikten sonra, Bluetooth ile akıllı cihazların haberleşmesini sağlayacak ara programlara ihtiyaç duymaktayız. Bu programlar, normal bir seri haberleşme yapan bilgisayar programları olarak düşünülebilir. Windows kullanıcıları Bluetooth ile haberleşmek için, ücretsiz olarak 'Tera Term' yazılımını indirebilirler. Veya csharp’ta seriport objesi kullanan bir program yazılabilir.
10 Tx-Rx kullanarak iletişimvoid setup() { Serial.begin(115200); pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); digitalWrite(11, LOW); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(10, LOW); } int led = 1; void loop() if(Serial.available()) led=Serial.read(); switch(led) { case 'F': digitalWrite(13, LOW); digitalWrite(10, LOW); digitalWrite(12, HIGH); break; case 'B': digitalWrite(12, LOW); digitalWrite(10, HIGH); case 'L': digitalWrite(13, HIGH); case '4': }
11 SoftwareSerial Kütüphanesiyle HaberleşmeBilgisayarla seri haberleşme yaptığımız gibi, diğer elektronik elemanlarla da seri haberleşme yapabiliriz. Bunun için haberleşilecek elemanların Tx ve Rx uçlarını çapraz bir şekilde Arduino'nun Tx ve Rx pinlerine takmalıyız. Arduino UNO'da sadece bir çift Tx ve Rx (1. ve 0. pinler) bulunur. Bu pinler aynı zamanda USB üzerinden bilgisayarla haberleşmemizi sağlayan pinlerdir. Yani bilgisayarla haberleşme halinde bulunan Arduino'nun 0 ve 1. pinler kullanılamaz. Arduino MEGA gibi gelişmiş kartlarda birden fazla Tx Rx çifti bulunduğu için bu cihazlar, hem harici olarak başka modüllerle seri haberleşebilirken hem de bilgisayara veri yollayabilir. "SoftwareSerial" kütüphanesi Arduino Uno gibi sadece bir çift Tx Rx pini bulunan kartlar için geliştirilmiştir. Bu kütüphane yardımıyla Arduino'nun diğer pinleri de Tx ve Rx olarak kullanılabilmektedir.
12 SoftwareSerial Kütüphanesi kullanımı"#include
13 SoftwareSerial Kütüphanesi kullanımı-2#include
14 Birden fazla Software Serial nesnesi"SoftwareSerial" kütüphanesi kullanılarak birden fazla seri port aynı anda açılabilir. Bunun için her bir port için yeni bir nesne oluşturmalıyız. Bu nesnelere de Rx ve Tx için farklı pinler atamalıyız. Arduino donanımsal haberleşme portları için hafızasında buffer denilen özel alanlar bulunur. Porttan gelen mesajlar otomatik olarak bu alanlara kaydedilir. Software Serial kütüphanesi yazılımsal haberleşme oluşturduğu için donanımsal haberleşme kadar başarılı olmamaktadır. Aynı anda iki Software Serial portu dinlenemediği için, portlar arasında geçiş yapmak için listen() fonksiyonu kullanılır. Bu fonksiyon tanımlandığında, tanımlanan nesnenin portu dinlenmeye başlanır. Porta gelen mesajlar otomatik olarak kaydedilir. Dinlenme işlemi bittiğinde listen() fonksiyonu diğer nesneler için kullanılabilir. Böylece tüm Software Serial portları sırayla dinlenir.
15 Örnek-1 #include
16 Örnek-2 switch(led) { case 'F': digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, HIGH); Serial.println("pin 12"); break; case 'B': digitalWrite(7, LOW); digitalWrite(6, HIGH); Serial.println("pin 10"); case 'L': digitalWrite(5, HIGH); Serial.println("pin 13"); case '4': } #include
17 Telefon Kontrollü Işık Projesi
18 #include