Android Ses Komutu İle Arduino Kontrolü
Arduino ve Android haberleşmesinin en eğlenceli taraflarından birisi ses kontrolüdür. Türkçe dil destekli Android uygulamalar şu anda piyasada olmasa da diğer diller ile Arduino kontrolü yapılabilmektedir. Android uygulama içinde daha önce tanımlanmış cümle komutlarına göre bluetooth üzerinden Arduino iletişimini bu projede gerçekleştirmeye çalışacağız. Aynı teknolojinin artarak hızla ev otomasyon sistemlerine uygulanmaya çalışıldığını söylemekte fayda var.
Kullanılan Malzemeler
- Bir adet Arduino Uno kartı
- Beş adet farklı renkte led,
- Bir adet HC-05 Seri haberleşme bluetooth modülü,
- Bir adet akıllı cihaz.
Tasarım
HC-05 Bluetooth modülünün yine aynı 4 bacağını kullanacağız. Daha önce anlattığımız için ayrıntıya girmeden kart ve modül bağlantılarını gösterelim.

Kodlar
Arduino kodlamaya bakmadan önce Android uygulamasının nasıl çalıştığından bahsedelim. Burada kullanılan mantık şudur; Siz akıllı cihazınızın ahizesine “tv on” cümlesini okuduğunuz zaman cihaz bunu bluetooth ile Arduino’ya aktarır. Arduino bu cümle komutlarının hepsini daha önce tanımlamıştır ve bunu 1-0 sistemine dönüştürerek örneğin dijital pin 2’yi lojik 1 yapar. Sizin cümleniz onun için bu manaya gelir. İsterseniz Arduino kodlamada bu çıkışları değiştirebilir veya başka İngilizce cümleler ekleyerek komut sayısını artırabilirsiniz.
Komutların başında yer alan # işareti, bir önceki komutun bittiğini kesildiğini, yeni komuta başlandığını gösterir.
String voice; // voice değişkeni tanımlanıyor int led1 = 2, //led'lerin bağlı olduğu pinler led2 = 3, led3 = 4, led4 = 5, led5 = 6; //--------------------------Fonksiyonların tanımlanması-------------------------------// void allon(){ // allon,hepsini aç fonksiyonu,tüm çıkışlar aktif digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); digitalWrite(led5, HIGH); } void alloff(){ //allof,hepsini kapa fonksiyonu,tğm çıkışlar pasif digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led5, LOW); } //-----------------------------------------------------------------------// void setup() { Serial.begin(9600); // seri iletişim başlar pinMode(led1, OUTPUT); // led'ler çıkış elemanı pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); } //-----------------------------------------------------------------------// void loop() { while (Serial.available()){ //bilgi geldiği sürece delay(10); //güvenlik gecikmesi uygula char c = Serial.read(); //verileri oku c karekterine at if (c == '#') {break;} //# işareti gelirse,yani okuma bitmişse döngüyü durdur. voice += c; //gelen her karekteri ekle ve komut cümlesini tamamla } if (voice.length() > 0) { Serial.println(voice); //-----------------------------------------------------------------------// //----------Tüm ledlerin kontrolü----------// if(voice == "*all on") {allon();} //all on denirse ledlerin hepsini aç else if(voice == "*all off"){alloff();} //all off denirse ledlerin hepsini kapa //----------Adım Adım Açma komutlar----------// else if(voice == "*TV on") {digitalWrite(led1, HIGH);} //tv açma komutu else if(voice == "*fan on") {digitalWrite(led2, HIGH);} // fan çalıştırma komutu else if(voice == "*computer on") {digitalWrite(led3, HIGH);} // bilgisayar açma komutu else if(voice == "*bedroom lights on") {digitalWrite(led4, HIGH);} // yatak odası lambasını açma else if(voice == "*bathroom lights on") {digitalWrite(led5, HIGH);} // banyo lambasını açma //----------Adım Adım Kapatma komutları----------// else if(voice == "*TV off") {digitalWrite(led1, LOW);} else if(voice == "*fan off") {digitalWrite(led2, LOW);} else if(voice == "*computer off") {digitalWrite(led3, LOW);} else if(voice == "*bedroom lights off") {digitalWrite(led4, LOW);} else if(voice == "*bathroom lights off") {digitalWrite(led5, LOW);} //-----------------------------------------------------------------------// voice="";}} //komutlar bitincce voice değişkenini sıfırla
Kullanılacak Android uygulaması Google Market te BT Voice Control for Arduino adı ile bulunabilir. Uygulamayı indirip cihazınıza kurduktan sonra “Connect Robot” butonu ile HC-05 modülüne bağlantı sağlayın, bekledikten sonra bağlantı sağlanır. Ekranda bağlantının olduğunu gösteren “connecting” yazısı ve mikrofon buton’u yer alır. Mikrofon butonuna basarak Arduino’da kayıtlı istediğiniz İngilizce komut cümlesini söyleyerek led çıkışını gözlemleyebilirsiniz.