Android tabanlı telefonla konuşarak ışık açıp kapatmak

Başlıkta da bahsettiğim gibi hobi seviyesinde çalıştığım ve az önce bitirip test ettiğim; Android tabanlı telefon yada tabletle Bluetooth ve Arduino aracılığıyla nasıl evin ışıklarını açıp kapattığımızdan bahsetmek istiyorum. “Işık” burada 220V ile çalışan herhangi bir ekipmanı temsil ediyor; anahtarlamayı en iyi anlatacak olan nesne tercihimizdir ışık. Siz kendinize uygun başka ekipman kullanabilirsiniz.

Bu çalışmamız, Android tabanlı telefon yada tablet üzerinde çalışacak ve hiç kod yazmayı bilmeyen birininde basit şekilde kod yazmasını sağlayan MIT App Inventor üzerinde hazırladığımız uygulama ile bluetooth’a bağlanacak, Arduino üzerinde bulunan bluetooth ile iletişim kuracak, gelen sonuca göre rölemiz aracılığıyla ışığımızı açıp kapatıyor olacağız.

En başta belirtmeliyim, yapacaklarınızdan kendiniz sorumlusunuz. Let’s start!

Kullandığım ekipmanlar kısaca şöyle;

  • Arduino UNO
  • Arduino Bluetooth Modulu (HC-06)
  • Arduino 5V-220V 2’li Röle kiti
  • 1 adet 1k direnç
  • 1 adet 2k direnç
  • 2 Mini Breadboard
  • 4,8V Harici güç kaynağı
  • Android tabanlı bir telefon yada tablet
  • Bolca bağlantı kablosu
  • Azim, sabır, çelik gibi sinirler ve çay

 

Bana göre çok estetik durmasa da devremizin Fritzing çizimi şöyle;
(Sayfadaki tüm resimlerin üzerlerine tıklayarak büyütebilirsiniz)

Fritzing görüntüsü

Fritzing görüntüsü

Rölenin bacakları boş görünüyor. Oraya siz istediğiniz ekipmanı bağlayabileceğiniz gibi benim gibi masa lambasını da kullanabilirsiniz.

Arduino Bluetooth Modulunun bağlantılarını sırasıyla şöyle yaptık;

  • VCC bacağını Arduino üzerinde bulunan 5V’luk pine taktım
  • GND bacağını önce breadboard üzerinde bulunan ortak toprak hattına bağladım. Ortak toprak hattı da Arduino üzerinde bulunan GND pinine bağlı
  • TXD pinini Arduino üzerinde bulunan RX0 pinine taktım
  • RXD pininin çıkışını 2’ye ayırdık; bir ucuna 1k direnç takıp TX0 pinine taktım. Diğer ucuna 2k direnç takıp breadboard üzerinde bulunan ortak toprak hattına bağladım. Ortak toprak hattı da üstte söyledğim gibi Arduino üzerinde bulunan GND pinine bağlı

Arduino Röle Modulunun bağlantılarını sırasıyla şöyle yaptık;

  • VCC bacağını, harici güç aldığımız kaynağın + yönüne bağladım
  • IN1 bacağını aşağıda kod üzerinde de görebileceğiniz gibi  Arduino üzerinde bulunan 4 nolu pine bağladım
  • GND bacağını da harici güç aldığımız kaynağın – yönü ve Arduino üzerinde bulunan GND pinine bağladım

Böylece Güç kaynağını da ayrıca anlatmama gerek yok sanırım.

Çalışan (ve biraz karışık görünen) son hali ise şöyle;
(Sayfadaki tüm resimlerin üzerlerine tıklayarak büyütebilirsiniz)

Devremizin görüntüsü #1

Işığını kontrol ettiğimiz lambamızın da olduğu bir diğer açı;
(Sayfadaki tüm resimlerin üzerlerine tıklayarak büyütebilirsiniz)

Devremizin görüntüsü #2

Arduino içine gömdüğümüz kodlarımız ise oldukça basit; bluetooth ile bağlantı sağlandıktan sonra, telefondan bluetooth üzerinden gelen değer 1 ise röleyi aç, 0 ise röleyi kapat demiş olduk. Röleyi aç, kapa yön ayarınızı röle üzerinde bulunan fiziksel bağlantınızla ters de çevirebilirsiniz.

/*
Hakan Müştak - mustak.org
@2016/04
*/

#include <SoftwareSerial.h>
#define RELAY1 4

char gelenVeri;

void setup() {
  Serial.begin(9600);
  Serial.println("----------------------------");
  Serial.println("Ses Kontrollu Isik Calismasi");
  Serial.println("----------------------------");
  pinMode(RELAY1, OUTPUT);

}

void loop() {

  if (Serial.available() > 0) {
    gelenVeri = Serial.read();
    if (gelenVeri == '1') {
      digitalWrite(RELAY1, LOW);
    }
    if (gelenVeri == '0') {
      digitalWrite(RELAY1, HIGH);
    }
  }

  delay(100);

}

Kodları yazdıktan sonra şimdi de Android yazılım tarafını halledelim. Yazılımı üsttede belirttiğim gibi tamamen görsel hazırlayabileceğiniz çok basit web tabanlı bir tool var: MIT App Inventor. Ben bu örneği yaklaşık 20 dk içinde yazdım. Eminim logic olarak ufak tefek eksiklikleri vardır ama olsun o kadar hata kadı kızında da olur.

Tasarım anında ekranımızın görüntüsü şöyle;
(Sayfadaki tüm resimlerin üzerlerine tıklayarak büyütebilirsiniz)

MIT Application Inventor 2 - Tasarım Görüntüsü#1

 

Üstteki resimde de gördüğünüz gibi sırasıyla;

  • Formumuzun üzerine bağlantı için bir Bluetooth nesnesi koydum
  • Açık, çevrede yada kayıtlı Bluetoothları listeleyebilmek için birtane listpicker koydum
  • Formumuzun üzerine konuşmamızı metne çevirecek SpeechRecognize nesnesi koydum
  • Butonlar anlaşılabilsin diye image’le görselleştirmeyi tercih ettim. (Bluetooth, Mikrofon, Işık açık/kapalı)
  • Belli zaman frekansı ile Bluetooth nesnesini kontrol etmek için birde clock nesnesi koydum.

Bu tasarımın tüm kod bloğu şöyle;
(Sayfadaki tüm resimlerin üzerlerine tıklayarak büyütebilirsiniz)

MIT Application Inventor 2 - Tasarım Görüntüsü#2

Kodlama tamamen görsel ve gerçekten çok basit. Mutlaka örnekler yapmalısınız. Üstteki tasarım ve kontrollerle oluşan ekranlar şöyle;

Bu noktadan sonra telefonumuzda uygulamamızı çalıştırıp, bluetooth bağlantısını sağlayacağız. Bağlantı sağlandıktan sonra mikrofona dokunduğumuzda açılan google’ın geliştirdiği  Speech to Text uygulamasına üstteki koda göre “Işığı aç” yada “Işığı kapat” dememizle birlikte telefonumuz Arduino’muza 1 yada 0’ı gönderecek; Arduino’muz gelen 1 yada 0’ı üstte paylaştığım koda göre yorumlayacak ve röleyi açıp kapatacak. Röle bacaklarına bağlı olan lambamız da bunun sonucu olarak açılacak yada kapanacak.

Video’da çekmek isterdim ama geç oldu (saat 01:58) ve sabah 06:50’ye kurulu bir telefonum var. O sebeple yazım hatalarımı düzeltip yatacağım 🙂

Android tabanlı bluetooth destekli telefonla konuşarak ışık açıp kapatmak çalışmasını/konusunu umarım anlatabilmişimdir

Hakan Müştak @2016/04

 

Önceki Arduino çalışmamız :

Arduino Tabanlı Yapay kuluçka makinesi
http://www.mustak.org/yaz-projemiz-yapay-kulucka-denemesi/

 


1 yorum

  1. Nurdoğan dedi ki:

    Süper, uygun zamanda konuşalım.

Nurdoğan için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Captcha Kontrolü * Zaman aşımı, sayfayı tekrar yükleyin


Top