9 Ağustos 2014 Cumartesi

Arduino - Android Arayüzünden Bluetooth Haberleşmesi


Kablosuz haberleşme neden bilmiyorum diğer haberleşmelere göre daha heyecan verici geliyor bana. Özellikle son zamanlarda kullandığımız akıllı telefonları Arduino ile haberleştirebilmek gerçekten büyük zevk. Zaten basit bir uygulama olsa bile bu yazımdaki uygulamayı yaptığınızda ne demek istediğimi daha iyi anlayacaksınız :). 




Yazılımdaki mantık C# uygulamasındaki mantık ile aynı. 3 adet butonumuz var, 1 tanesi ile bluetooth haberleşmesi ile mikrodenetleyicimize bağlanıyoruz. 2.buton ile led yakıyor, 3.buton ile led söndürüyoruz.

Bu uygulamayı ilerleterek android kontrollü bir araba, akıllı ev uygulamaları vb. projeler gerçekleştirebilirsiniz. Tabii android bilmekte gerçekten büyük fayda var. Size mutlaka + katkıda bulunacaktır.


Eclipse öğrenmeye başladım fakat henüz başlangıç aşamasındayım. Buradaki kullanacağıız programı Selim Erkan OĞUZ arkadaşımın yardımıyla Google'ın App Inventor isimli programı yardımıyla yaptık. İster kendiniz oluşturursunuz isterseniz vereceğim link ile programı direkt android telefonunuza yükleyerek uygulamayı gerçekleştirebilirsiniz.



Yukardaki resimde uygulamanın kodlarını yazabildiğimiz bir arayüz var. Sağ taraftaki resimde de uygulamamızın basit bir arayüzü var. 

İndirme linki burda ; arduinotooth indirme linki









HC-06/07 BLUETOOTH MODÜLÜ
Anrdoid telefonumuzla Arduino'muz arasındaki haberleşmeyi HC-06 modülümüz sayesinde gerçekleştireceğiz.Bu sayede istediğimiz dataları Arduino'ya gönderip ışık yakıp söndüreceğiz.

Bluetooth'un RXD pinini Arduino'da TXD'ye, Bluetooth TXT pinini, Arduino RXD'sine takacağız.


Uyglamayı çalıştırmadan önce telefonunuzu Bluetooth modülü ile eşleştirmeniz gerekiyor. HC-06 veya HC-07 diye ekranda gözükecek. Modülün şifresi 1234. Eşleştirme yaptıktan sonra arayüzü açıp bağlan butonuna tıklayarak bir kez daha bağlanacağız. Bağlantı sağlandıktan sonra modülün üzerinde yanıp sönen ışık sürekli yanmaya başlayacak. Bu da komutlar için bluetooth haberleşmesinin sağlandığını, Arduino'nun komut almaya hazır olduğunu gösterir.

Arduino kodlarımız hemen hemen benzer kodlar C# uygulamasındaki kodlarla. Buyrun;

int data;
int led=7;
void setup() {
  pinMode(led,OUTPUT);  
  Serial.begin(9600);
}
void loop() { 
  {
  if (Serial.available()){
   int data = Serial.read();
   delay(100);
   if(data=='1'){
     digitalWrite(led,1);
   }
      if(data=='0'){
     digitalWrite(led,0);
   }
   delay(100);
  }}}

Videomuz da burda :) Türk Usülü Çay Bardağımız da bize eşlik etmiş :p







Arduino'da ölçülen analog veriyi android program ile okuma yazılımı için aşağıdaki linke tıklayın.
http://arduinotik.blogspot.com/2015/06/arduino-bluetooth-ile-android.html

26 yorum:

  1. Hocam yazı için teşekkürler bende böyle birşeyler yapmak istiyorum hangi bluetooth modelini kulanmalıyım bir kaç modeli var.

    YanıtlayınSil
    Yanıtlar
    1. Rica ederim :) . HC-06 ve HC-07 Bluetooth modülleri ile buna benzer projeler gerçekleştirebilirsiniz. e-bay(daha ucuz) ve gittigidiyor.com da bu modülleri bulmanız mümkün :).

      Sil
  2. Yukarıdaki App İnverter blok şeması o kadar mı acaba.

    YanıtlayınSil
  3. Merhaba , program arayuzunu indirdim modulle bağlantı kuruyor ama led yakma sonme işlemi yapamıyor.Sorun hakkında bilgi verebilirseniz sevinirim

    YanıtlayınSil
    Yanıtlar
    1. Arduino bağlantılarınız yanlış olabilir. Led 7 no'lu pinde. Bluetooth modülünün Tx'ini Arduino'nun Rx'ine , Rx'i de Tx'e bağlamamış olabilirsiniz. Bazı modüllerde de tam tersi olabiliyor. Tx Tx'e Rx Rx'e bağlanabiliyor. 2 durumu da deneyin.

      Sil
    2. Merhaba.mq-5 gaz sensörü için arduino programı var mı elinizde? arduino da henüz yeniyim.

      Sil
  4. efendım merhabalar.Kod neden hata verıyor yardımcı olabılır mısın?

    YanıtlayınSil
    Yanıtlar
    1. Geç döndüğüm için üzgünüm. Arduino kodunu bilgisayardan arduino'nuza yüklerken, bluetooth modülünüz arduinoya bağlı olmasın. TX ve RX 'e bağlı aktif kablo olmasın. stk500_getsync() not in sync resp=0x00 hatası alabilirsiniz yoksa.

      Sil
  5. sa hocam koaly gelsin acaba android kodlarını atmanız mümkün mü ?
    mahmut_bostan_53@hotmail.com
    ben bunu unity ile yazıp androide atıp öyle yapmak istiyorum
    public static SerialPort sp = new SerialPort("COM5", 9600);
    bu kod unityde bluetothmodüle ulaşmamı sağlıyo ama androidte bu kod çalışmaz bunun yerine tam olarak napıyoruz acaba ?

    YanıtlayınSil
  6. Bu yorum yazar tarafından kaldırıldı.

    YanıtlayınSil
  7. Hocam mıt appinvertor da hiç accelerometer ve arientation sensör kullandınız mı örnekleri nereden bulabilirim?

    YanıtlayınSil
    Yanıtlar
    1. Ben kullanmadım ama youtube'da bir kaç video var sanırsam.
      https://www.youtube.com/watch?v=TreRLQ8WuuY
      https://www.youtube.com/watch?v=MM1LlE6RveE

      Sil
  8. Bu yorum yazar tarafından kaldırıldı.

    YanıtlayınSil
  9. HOCAM BENDE BU PROJEYİ YAPICAM DA MAP APP İNVERTER 2 İNDİRDİM TELEFONA 6 HANELİ KOD İSTİYO NASIL YAPICAZ VE ANDROİD KODLARINI ATABİLİRMİSİNİZ. MODÜLLERİ ALDIM ANDROİD DE YENİ OLDUĞUM İÇİN BİLMİORUM NASIL OLACAĞIIN.

    YanıtlayınSil
    Yanıtlar
    1. Android kodları yukardaki şemada var onlar dışında başka yok. 6 haneli kod olayı app inventor ile telefonunuzun arasında WiFi bağlantısı için gerekli. Ekrandaki kodu kamera ile okutarak da aynı işi yapabilirsiniz. Daha fazla açıklamayı app inventorun sayfasında bulabilirsin.

      Bağlantı olayı da telefondan bluetootha girip normal bağlantı kuracaksınız, modülün şifresi 1234. Daha sonra programdan da Bağlan butonuna basıp aynı işlemi yapın bağlantı sağlanır. İsterseniz direkt bu projeyi indirip deneyin önce.

      Sil
  10. bağlan komutlarını nasıl yazıcaz.

    YanıtlayınSil
  11. Bu yorum yazar tarafından kaldırıldı.

    YanıtlayınSil
  12. hocam benim bluetooth modülü bağlandıktan sonra yanılı kalmayıp ara ara yanıp sönüyor acaba nedeni nedir ?

    YanıtlayınSil
  13. hocam bluetooth degilde wifi ile yapmamızın imkanı varmı

    YanıtlayınSil
    Yanıtlar
    1. Yapabilirsiniz tabii ki yalnız benim wi-fi modülüm olmadığı için o uygulamayı gerçekleştiremedim ne yazık ki. Instructablesda bunula alakalı örneklere ulaşabilirsiniz.

      Sil
  14. pic ve ardiuno ile ilgili Bluetooth lu çalışmalara buradan ulaşabilirsiniz
    https://www.youtube.com/watch?v=Uc4r6F_jF3w
    https://www.youtube.com/watch?v=BM-slx4Fr9s

    YanıtlayınSil
  15. Hocam bir proje için desibelmetre ile ses ölçüyoruz. Ses yükseldiğinde blt yada wifi üzerinden etraftaki açık cihazlara mesaj atmak istiyoruz. Nasıl yol izliyelim

    YanıtlayınSil
  16. Merhaba.Benim yapmak istediğim projede arduinoyaya bağlı sensörde algılanan bilgiyi telefona haber iletimi olarak göndermek.Aynı modülü kullanabilir miyim ve artı bir şey eklemem gerekiyor mu?

    YanıtlayınSil
    Yanıtlar
    1. Bildirimlerinizi bluetooth modülü ile gönderebilir misiniz bilgim yok. Fakat App inventor kısmında iyiyseniz eğer, gelen verileri bildirim şeklinde göstertebilirsiniz.

      Sil
  17. Merhaba. Calismaniz icin tesekkur ederim. Cok isime yaradi ancak sormak istedigim bir soru var.
    Acaba Arduino tarafindan App inventor'e Arduinoda istedigimiz islemin tamamlandigini belirten bir komut nasil gonderebilirim?
    Mesela termostat devresi dusunelim.
    Arduino'da istedigimiz sicakliga ulasinca led yaniyor ve ben de led yandiginda App Inventor tarafina bir veri gonderip sicaklik yazisinin kirmizi olmasini sitiyorum mesela.
    Bu mumkunmudur?
    Simdiden yardimlariniz icin tesekkur eder, iyi calismalar dilerim.
    Saygilarimla.

    YanıtlayınSil