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ıtlaSil
    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ıtlaSil
  3. Merhaba , program arayuzunu indirdim modulle bağlantı kuruyor ama led yakma sonme işlemi yapamıyor.Sorun hakkında bilgi verebilirseniz sevinirim

    YanıtlaSil
    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ıtlaSil
    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ıtlaSil
  6. Hocam mıt appinvertor da hiç accelerometer ve arientation sensör kullandınız mı örnekleri nereden bulabilirim?

    YanıtlaSil
    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
  7. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  8. 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ıtlaSil
    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
  9. bağlan komutlarını nasıl yazıcaz.

    YanıtlaSil
  10. Bu yorum yazar tarafından silindi.

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

    YanıtlaSil
  12. hocam bluetooth degilde wifi ile yapmamızın imkanı varmı

    YanıtlaSil
    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
  13. 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ıtlaSil
  14. 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ıtlaSil
  15. 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ıtlaSil
    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
  16. 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ıtlaSil