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.
Ö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:
Ö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
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ı
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.
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.
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.
4 bacağı vardır:
VCC - Arduino +5v
GND - Arduino GND
RXD - Arduino pin 11
TXD - Arduino pin 10
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);
}
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.
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