4 Aralık 2014 Perşembe

ARDUİNO MEGA İLE HC-06 BLUETOOTH MODULE

ARDUİNO MEGA İLE HC-06 BLUETOOTH MODULE


Arduino-Android arasında haberleşme kurmak için HC-06 modülünü kullanacağım.
Öncelikle HC-06′nın teknik özelliklerinden biraz bahsedeyim.
HC-06 Bluetooth-Serial Modül Kartı, Bluetooth SSP(Serial Port Standart) kullanımı ve  kablosuz seri haberleşme uygulamaları için tasarlanmıştır. Hızlı prototiplemeye imkan sağlaması, breadboard, arduino ve çeşitli devrelerde rahatça kullanılabilmesi için gerekli pinler devre kartı sayesinde dışarıya alınmıştır.

Bluetooth 2.0′ı destekleyen bu kart, 2.4GHz frekansında haberleşme yapılmasına imkan sağlayıp açık alanda yaklaşık 10 metrelik bir haberleşme mesafesine sahiptir.
Özellikleri:
Bluetooth Protokolü: Bluetooth 2.0+EDR(Gelişmiş Veri Hızı)
2.4GHz haberleşme frekansı
Hassasiyet: ?-80 dBm
Çıkış Gücü: ?+4 dBm
Asenkron Hız: 2.1 MBps/160 KBps
Senkron Hız: 1 MBps/1 MBps
Güvenlik: Kimlik Doğrulama ve Şifreleme
Çalışma Gerilimi: 1.8-3.6V(Önerilen 3.3V)
Akım: 50 mA
Boyutları: 43x16x7mm
Bu bilgiden sonra kısa bir önemli detay vermek istiyorum. Eğer 2 modül arasında iletişim kurup veri alış-verişi yapmak istiyorsanız HC-06 sizi yarı yolda bırakır. Çünkü HC-06 sadece Slave modda çalışır. Bu işlem için en az bir HC-05 bluetooth modüle ihtiyaç duyarız. Çünkü HC-05 hem Master hem de Slave olarak çalışabilmektedir.
Master ve Slave kelimelerini açacak olursak;
Master modül bir bağlantıyı başlatabilir. Fakat bir slave modül bağlantıyı kendi başlatamaz. Bir master modüle  tek başına birçok slave modül ile haberleşmeyi sağlayabilirken slave modüle sadece tek bir master modüle ile haberleşme içerisinde olabilir.
Bu bilgiyi verdikten sonra uygulamamıza geçelim. Öncelikle bu projede Android cihazdan veri göndermek için hazır terminal kullacağım.
Blueterm Android uygulaması
Arduino kodunu ise burada paylaşacağım. Uygulamayı indirip Arduino kodunu kullanarak yapacağımız devreyi çalıştırabilirsiniz.
Telefondan karakter gönderip LED yakma işini yapacağız. Terminalden 1 gönderince Arduino Mega’da pin13′e bağlı LED yanacak ve 0 gönderince yaktığımız LED sönecek. Daha kompleks devreler yapmak sizin elinizde. Burada değer gönderip bu veriyi alarak değerlendirebildiğimize göre artık siz her istediğinizi yapabilirsiniz.
Uygulamayı yapabilmek için öncelikle Bluetooth Modül ile telefonunuzu eşleştirmelisiniz.



Bluetooth ismi ” HC-06″ olarak gelmektedir. Şifresi genellikle “1234″ olmakta iken “0000″ olan modüller de bulunmaktadır. Burada bahsettiğimiz Bluetooth ismi, girilen şifre ve başka diğer ayarları değiştirebiliriz. Bunun için AT komutları dediğimiz komutlar vardır. Fakat o konuya burada girmeyeceğim.
Bu işlemi yaptıktan sonra modül ile telefonu bağlamış olduk. Uygulamayı Android cihazımıza indirdikten ve Arduino Megamıza kodu yükledikten sonra “BlueTerm” uygulamasını açıyoruz.
Bu işlemlerden sonra Mega kite güç verildiğinde modül üzerindeki LED hızlı hızlı sürekli yanıp sönmeye başlar. Uygulamaya girip cihazımızdan HC-06′ya bağlanmamız gerekiyor. Aşağıdaki resimde görüldüğü gibi “Connect Device” diyerek modüle bağlanıyoruz.

Burada bağlanma işlemini yaptıktan sonra modül üzerindeki LED sabit olarak yanmaya başlar. Bu modül ile cihazın işleme hazır olduğunu gösterir. Bundan sonra yazdığınız koddaki değerlere göre buradan veri gönderebilirsiniz. Biz 1 ve 0 gönderiyoruz. Buna karşılık LED tepki gösteriyor ve bunu terminal üzerinde yazıyoruz.
HC-06 modülü şekildeki gibidir:

4 bacağı vardır:
VCC   -    Arduino  +5v
GND   -    Arduino  GND
RXD    -   Arduino  pin 11
TXD    -   Arduino  pin 10
Uygulamanın Arduino Kodu:
#include 
SoftwareSerial myBluetooth(10, 11); // RX, TX
int ledpin=13;
int deger;
void setup() {
// put your setup code here, to run once:
myBluetooth.begin(9600);
myBluetooth.println(“Bluetooth Mode:ON / 1 ve 0′ı tuslayin.”);
pinMode(ledpin,OUTPUT);
}
void loop() {
if (myBluetooth.available())
{
deger=myBluetooth.read();
if(deger==’1′){
digitalWrite(ledpin,1);
myBluetooth.println(“D13 Ledi Yakildi.”);
}
if (deger==’0′){
digitalWrite(ledpin,0);
myBluetooth.println(“D13 Ledi Sonduruldu.”);
}
}
delay(100);// bir sonraki veriyi hazırlamak için
}
Buradaki önemli bir noktayı belirmek istiyorum. Dikkat ederseniz kodda SoftwareSerial myBluetooth(10, 11); // RX, TX şeklinde bir satır var. Yani RX=10, TX=11. Fakat devreyi kurarken bunun tam tersini yapıyoruz. TX olarak atadığımız pine RX’i, RX olarak atadığımız pine TX’i bağlıyoruz. Devreyi ve kodları incelediğinizde uygulamada bu olayı tekrar gözlemleyebilirsiniz.
Devrenin kuruluş resmi:





Hiç yorum yok:

Yorum Gönder