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;
- Arduino UNO,
- HC-05 veya HC-06 Bluetooth modülü,
- 3 adet LED(renkleri size kalmış),
- 3 adet 220ohm direnç
Kullanacağımız araç-gereçler;
- Erkek-Erkek jumper kablo,
- Breadboard,
- Arduino UNO kablosu,
- Android bulunan bir cep telefonu veya tablet
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ı.
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 1 ifadesi gelirken kapatmak için 2 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.
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.
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.
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.
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.
Bu özelliği çok iyiymiş. Bartu hocam videolu dersler lütfen 🙂
aradığım şeydi teşekkür ederim,yazılarınızın devamını sabırsızlıkla bekliyorum.
// 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);
}
}
http://www.keuwl.com sitesinde bluetooth electronics isimli bir program var. Direk telefondan uygulamayı yazıp anında kontrolünü görebiliyorsunuz. tekrar tekrar programı telefona yüklemeye gerek kalmıyor..
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.
ben ne yazarsam yazıyım hep 6 gönderiyor
Bir cevap veririseniz sevinirim
Lütfen Videolu anlatım yapın böyle hiç bir şey anlamıyorum.
Ne Yaptığınızı bile anlamadım
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.
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
bu ornekte bluetooth kutuphanesı yok …..çağırılmamıs
Gerek yok.
merhabalar app inventor ile arduino bluetooth bağlantılı rtc yani saat yapmak istiyorum yardımcı olabilecek var mı?
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.
Bluetooth modülü bağladık ancak ne kütüphanesini aldık ne de onla ilgili kod yazdık. Nasıl seri porta iletiyor androidden aldığı bilgiyi?
merhabalar arduino dan gelen veriyi nasıl çekiceğiz herkez led yakıyor biraz daha özgün projeler lütfen
Gerek yok ki… Sen modülü direkt olarak mikrodenetleyiciye bağlıyorsun.
Teşekkürler bilgime bilgi kattın 🙂
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
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
BENDE LAST PİCKR ÇIKMIYOR
onu hallttim ama bluetooth bağlandı ekini bulamıyorum kb daha yeniyim
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
Bu uygulamayı ardino ile değilde bir arm mikroişemcisi ile nasıl yapabiliriz bağlantı nasıl kurulur