back to top

AppInventor ile Arduino kontrolü

Arkadaşlar merhaba, bu uygulamamızda daha önce temellerini attığımız AppInventor kullanımını bir üst boyuta taşıyacağız ve Arduino ile haberleştireceğiz.

Uygulamamızda 3 adet ledi telefonumuza bluetooth ile bağlayarak kontrol edeceğiz. Bu projemizdeki 3 adet led daha sonra sizin projelerinizde 3 adet röle olup çeşitli şeyleri kontrol etmeye yarayabilir.

Uygulamamızda kullanacağımız malzemeler;

Kullanacağımız araç-gereçler;

Uygulamamız Arduino ve AppInventor olmak üzere iki bölümden oluşmaktadır.

Arduino Kısmı

Arduino kısmında devremiz aşağıdaki şekilde olmalı.

Untitled Sketch_bb

Devremizi kurduktan sonra sırada Arduino kodumuzu yazmak var. Kodu yazdıktan sonra uygulamamızı yapmaya geçeceğiz ve esas önemli olan kısım orası.

Arduino kodumuzdan kısaca bahsetmek gerekirse, Önce 3 adet ledimizi tanımlıyoruz. Daha sonra setup kısmında seri iletişimi başlatıp ledlerimizi çıkış olacak şekilde ayarlıyoruz. loop kısmında ise if komutu ile serialden gelen veri olup olmadığnıı kontrol ediyoruz. Eğer gelen verdi varsa bir değişkene bu veriyi kaydedip karşılaştırmaya başlıyoruz. Kırmızı ledi yakmak için telefondan ifadesi gelirken kapatmak için geliyor. Yeşil led için 3 ve 4 iken mavi led için 5 ve 6 aynı işlemi görüyor. En son karşılaştırma sonucunu yaptıktan sonra 100 milisaniye bekleyip tekrar kod başa dönüyor.

int KirmiziLed = 7;
int YesilLed = 6;
int MaviLed = 5;


void setup() {

Serial.begin(9600);

pinMode(KirmiziLed,OUTPUT);
pinMode(YesilLed,OUTPUT);
pinMode(MaviLed,OUTPUT);

}

void loop() {
  if(Serial.available()>0){
    char GelenVeri = Serial.read();
    delay(100);
    if(GelenVeri = '1'){
      digitalWrite(KirmiziLed,HIGH);
    }
    if(GelenVeri = '2'){
      digitalWrite(KirmiziLed,LOW);
    }
    if(GelenVeri = '3'){
      digitalWrite(YesilLed,HIGH);
    }
    if(GelenVeri = '4'){
      digitalWrite(YesilLed,LOW);
    }
    if(GelenVeri = '5'){
      digitalWrite(MaviLed,HIGH);
    }
    if(GelenVeri = '6'){
      digitalWrite(MaviLed,LOW);
    }
    delay(100);
  }
}

Arduino kodumuz bu şekilde. Sıra geldi asıl konumuz olan AppInventor koduna. Daha önce hiç AppInventor kullanmadıysanız sizi buraya alabiliriz.

AppInventor Kısmı 

AppInventor kısmında önce kullanacağımız uygulamanın tasarımını gerçekleştiriyoruz. Bunun için bir adet LastPicker , Butonların düzenli gözükmesi için TableArrangement , 3 renk için 6 buton, ve 4 lable ile Bluetooth haberleşmesi için BluetoothClient elemanları aşağıdaki gibi konumlandırılmalıdır.

design kısmı

Elemanları üstteki gibi yerleştirdikten sonra block kısmına geliyoruz. Block kısmı da aşağıdaki şekilde olmalıdır.

Burada LastPicker elemanı bluetooth isim ve adreslerini listelemesi için kullanılmıştır. Bluetooth bağlandıktan sonra Label4 elemanı yani en alttaki label, Bluetooth Bağlantı şeklinde değişmektedir.block kısmı

Telefon ile Arduino’yu bağlama işlemi bu kadar. Bundan sonraki bloklar butonlara basıldığında yollanacak değerler ile ilgili. Onlar için de aşağıdaki blokları kullanıyoruz.

block kısmı2

Bu bloklar ile uygulamamız tamamlanmış oluyor. Uygulamamızı telefona apk olarak indirerek ya da QR okuyucu kullanıp indirerek kullanabiliriz. Bunun nasıl yapılcağını bilmiyorsanız yazı tekrar buraya gidebilirsiniz.

Son Çıkan Yazılar

28 YORUMLAR

  1. Merhaba yaptığımız uygulamayı telefona yüklemeden ön izlemesini görebilmemizin bir yolu var mı ? Her yapılan değişiklikte telefona tekrar tekrar yüklemek çok fazla zaman alıyor.

    • Merhaba, yaptığınız uygulamayı Üstteki menüden Connect -> Ai Companion seçeneği ile kablosuz bir şekilde senkronize olarak değiştirebilirsiniz. Ya da yine Connect menüsünden USB seçeneği ile telefonunuz usb’ye bağlıyken değiştirebilirsiniz.

  2. // Arduino kodun gözden kaçan hatalardan arındırılmış hali..
    // Anlatım harika, teşekkür ederim..

    int KirmiziLed = 7;
    int YesilLed = 6;
    int MaviLed = 5;

    void setup() {

    Serial.begin(9600);

    pinMode(KirmiziLed,OUTPUT);
    pinMode(YesilLed,OUTPUT);
    pinMode(MaviLed,OUTPUT);

    }

    void loop() {
    if(Serial.available()>0){
    char GelenVeri = Serial.read();
    delay(100);
    if(GelenVeri == ‘1’){
    digitalWrite(KirmiziLed,HIGH);
    }
    if(GelenVeri == ‘2’){
    digitalWrite(KirmiziLed,LOW);
    }
    if(GelenVeri == ‘3’){
    digitalWrite(YesilLed,HIGH);
    }
    if(GelenVeri == ‘4’){
    digitalWrite(YesilLed,LOW);
    }
    if(GelenVeri == ‘5’){
    digitalWrite(MaviLed,HIGH);
    }
    if(GelenVeri == ‘6’){
    digitalWrite(MaviLed,LOW);
    }
    delay(100);
    }
    }

  3. Merhaba, Şöyle bir sorunum var. yaptığım app inventor uygulamasında arduinoya veri gönderiyorum. Fakat gönderme işlemi belirli bir tekrardan sonra duruyor. Hatta şöyle anlatayım. Android üzerinden saniyede bir artacak şekilde 0 itibaren sayı oluşturup bunu her bir saniyede arduinoya bluetooth ile gönderiyorum. 267 sayısını gönderdikten sonra gönderme işlemi duruyor. Fakat android uygulamada sayma işlemi devam ediyor ekrana yazılıyor telefonda. Bunu test için yaptım. Ama sorunun ne olduğunu anlamadım. Bluetooth bağlantısında bir sıkıntı görünmüyor. Sensör ışığı bağlı olduğunu gösteriyor. Sizce ne gibi bir sorun olabiilr. teşekkürler.

  4. The operation * cannot accept the arguments: , [*empty-string*], [-1]
    Note: You will not see another error reported for 5 seconds.

    bu hata ile neden karşılarşıyorum.İnternette araştırdım tam bir cevap alamadım.

  5. S.a App inventor 2 ile bi uygulama yaptim arduino dan dht11 sicaklik ve nem değerlerini androidden görme ve kaydetme programi yazılım kısmi falan herşey tamam fakat aldığım değerleri nasıl kaydedeceğimi bilmiyorum acilen yardımcı olabilirmisiniz arkadaslar

    • app inventor da depolama seçenekleri var. onları incele. hatta tinywebdb ile bu değerleri internete açabilir yükleyebilir veya yüklediklerini indirebilirsin.

    • Merhaba bana da tam olarak böyle bir şey lazım ters yönlü dht11 deki nem ve sıcaklık değerlerini telefon ekranına göndermem gerek ne farkı var acaba

  6. Merhaba
    Sizden ayrı zamanlarda aldığım iki hc06 ile app inventor de yaptığım app e bağlanamıyorum. Error 503 veriyor nasıl düzeltirim. Acil yardım.

  7. App invertor2 ile arduino üzerinden lcd ekrana yazı yazabilirmisin ama arduino da döngüye girecek 1000 ms saniyede bir yazı lcd yazsın bu yaziyi app invertorden yazicaz

    Abi bir türlü yapamadım yardımcı olurmusun yardim edersen sevinirim abi

  8. Merhaba, blogunuzu takip ede ede robotistandan komple set aldım yetmedi ek siparişler geçtim.
    Emeğinize teşekkür ederim.

    Sorum şu: uygulamayı yaptım ve telefona yükledim. Blutooth isim ve adres listelemeye bastığımda siyah ekran geliyor. Bluetooth aygıtlarını göremiyorum.
    Uygulama izinlerinden olabileceğini düşündüm kontrol ettiğimde uygulamaya sadece galeriye ulaşma izni istiyor.
    Nasıl çözebilirim

  9. Merhaba ben arduino ile led yakıp söndürmek istiyorum ama app invertör üzerinden led’in her yandığında sayaç gibi artmasını istiyorum sayaç 5 olduğunda sıfirlamasını istiyorum yardımcı olursanız çok sevinirim

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz