Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

evotomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
evotomasyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

1 Mayıs 2021 Cumartesi

Arduino Kullanarak Ses Kontrollü Ev Otomasyonu

 

Arduino Kullanarak Ses Kontrollü Ev Otomasyonu


Arduino kullanarak ses kontrollü Ev Otomasyonu: Bu projede, ev cihazlarını kontrol etmek için bir ses fonksiyonu kullanıyoruz. Bu proje, Ev Otomasyonu serimin bir parçasıdır.Bu projede S2 Terminal uygulamasını kullanıyoruz bunda AMR_Voice uygulamasını kullanıyoruz. Bu uygulama ücretsizdir ve kullanımı çok kolaydır. Bu projenin gerçek hayatta kullanımı çok kolaydır. Her yaştan insan sadece komutları söyleyerek onu kontrol edebilir. Bu Arduino tabanlı proje , IR ve PC tabanlı olanlardan daha geniş bir menzile sahiptir. Bu projeyi yapmadan önce, HC 05 Bluetooth modülünü Arduino ile kullanımını biliyor olmalısınız.

arduino kullanan ses kontrollü ev otomasyon sistemi


Ses Kontrollü Tabanlı Ev Otomasyonunun Blok Şeması

arduino kullanan ses kontrollü ev otomasyon sisteminin blok diyagram diyagramı

Arduino kullanan ses kontrollü ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno: Sadeliği nedeniyle Arduino kullanıyoruz ve aynı zamanda LCD, Bluetooth modülü ve röle modülü ile arayüze çok fazla dijital pin sağlıyor.
  • HC-05 Bluetooth Modülü: HC-05, cep telefonu ile iletişim kurmak için kullanılır.
  • 4 Kanal Röle Modülleri: Bu projede kullandığımız modül HL-54S'dir. Arduino'dan 5v mantıksal bir sinyal kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar dayanabilir. Bu modüllerin 4 kanalı vardır, böylece bir seferde 4 AC cihazı kontrol edebiliriz.
  • 16 × 2 LCD: LCD, proje adını, girilebilen komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek ister. 16 × 2 LCD kullanıyoruz çünkü Arduino ile arayüz kolay ve fiyatı çok ucuz. Ekranın kontrastını kontrol etmek için 10k potansiyometre kullanılır
  • Tutuculu AC ampuller: AC ampuller, cihazları temsil etmek için kullanılır. Çünkü herhangi bir AC projesinin prototipini oluştururken kullanımı kolaydır ve çok kullanışlıdır. Nihai üründe sadece kontrol edilecek cihazlarla değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları korumak için elektrik bandı kullanmak her zaman iyidir.
  • Harici 5 Volt besleme: Bir röleyi açıp kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca, Arduino'dan 5v vermeyin.

Arduino kullanan ses kontrollü ev otomasyon sisteminin Devre Şemasıarduino kullanan ses kontrollü ev otomasyon sisteminin devre şeması

Bağlantılar:

Bluetooth Modülü HC-05

  • HC-05 Rx - Arduino Tx.
  • HC-05 Tx ila Arduino Rx.
  • Vcc'den 5v'ye
  • Yerden yere.

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin 8'e.
  • RW toprağa.
  • Pin 9'u etkinleştirin.
  • LCD D4 ile Pin 10 arası.
  • LCD D5 - Pin 11.
  • LCD D6'dan Pin 12'ye.
  • LCD D7'den Pin 13'e.
  • Potansiyometrenin bir ucunu topraklayın.
  • Potansiyometrenin diğer ucuna 5v.

4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir terminalini normalde açık olan röle terminaline bağlayın.
  • Rölenin tüm ortak terminallerine 220VAC'nin bir ucu ve başka bir ampul terminali ile diğer ucu.

Ses kontrollü ev otomasyon sisteminin çalışması

Önceden tanımlanmış komutları AMR_Voice uygulamasına seslendiriyoruz. Uygulama, komutu daha sonra Arduino tarafından alınan ve açıklanan görevi yerine getiren Bluetooth'a gönderir. Aynı zamanda Arduino, durumu LCD'de görüntüler ve seri monitöre yazar. Her komutun kodda tanımlanan benzersiz işlemleri vardır. Komutları kendi rahatınıza göre değiştirebilirsiniz. Komutların listesi aşağıdadır.

Komutlar: Cihazları açmak ve kapatmak için kullanıcı tarafından aşağıdaki komutlar söylenmelidir.

Cep telefonundan komut gönderMonitörde mesaj ekranı
beyazBeyaz AÇIK
beyaz kapatmaKapalı beyaz
mavi açıkMavi AÇIK
mavi kapatmaMavi KAPALI
yeşilYeşil AÇIK
yeşil kapanma

Yeşil KAPALI

Ses kontrollü ev otomasyon sistemi kodu

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#define white 3
#define blue 4
#define green 5
int tx=1;
int rx=0;
char inSerial[15];


void setup(){
Serial.begin(9600);
pinMode(white, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(green, OUTPUT);
pinMode(tx, OUTPUT);
pinMode(rx, INPUT);
digitalWrite(white, HIGH);
digitalWrite(blue, HIGH);
digitalWrite(green, HIGH);
lcd.begin(16, 2);
lcd.clear();
lcd.print("MICROCONTROLLERS ");
lcd.setCursor(0,1); 
lcd.print(" LAB ");
delay(2000);
lcd.clear();
lcd.print("VOICE CONTROL");
lcd.setCursor(0,1);
lcd.print("HOME AUTOMATION ");
delay(2000);
lcd.clear();
lcd.print("1. Bulb 1 WHITE");
lcd.setCursor(0,1);
lcd.print("2. Bulb 2 BLUE");
delay(2000);
lcd.clear();
lcd.print("3. Bulb 3 GREEN");
delay(2000);
lcd.clear();
lcd.print("Bulb 1 2 3 ");
lcd.setCursor(0,1);
lcd.print(" OFF OFF OFF");

}

void loop(){
int i=0;
int m=0;
delay(500); 
if (Serial.available() > 0) { 
while (Serial.available() > 0) {
inSerial[i]=Serial.read(); 
i++; 
}
inSerial[i]='\0';
Check_Protocol(inSerial);
}} 



void Check_Protocol(char inStr[]){ 
int i=0;
int m=0;
Serial.println(inStr);


if(!strcmp(inStr,"*white on#")){ 
digitalWrite(white, LOW);
Serial.println("White ON");
lcd.setCursor(4,1); 
lcd.print("ON ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*white off#")){ 
digitalWrite(white, HIGH);
Serial.println("White OFF");
lcd.setCursor(4,1); 
lcd.print("OFF ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;} 

if(!strcmp(inStr,"*blue on#")){ 

digitalWrite(blue, LOW);
Serial.println("Blue ON");
lcd.setCursor(8,1); 
lcd.print("ON "); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*blue of#")){ 

digitalWrite(blue, HIGH);
Serial.println("Blue OFF");
lcd.setCursor(8,1); 
lcd.print("OFF "); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
if(!strcmp(inStr,"*green on#")){ 

digitalWrite(green, LOW);
Serial.println("Green ON");
lcd.setCursor(12,1); 
lcd.print("ON ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*green of#")){ 

digitalWrite(green, HIGH);
Serial.println("Green OFF");
lcd.setCursor(12,1); 
lcd.print("OFF ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

else{
for(m=0;m<11;m++){
inStr[m]=0;
}
i=0;

}}

Arduino ile kullanımı çok kolay ve bu proje çok az bir çaba ile yapılabilir. Bu projeyi yaparken herhangi bir sorunla karşılaşırsanız bana bildirin.


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

30 Nisan 2021 Cuma

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi

 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi


Arduino kullanan IR uzaktan kumandalı ev otomasyon sistemi : Herkese merhaba, umarım iyisindir ve iyisinizdir. Son zamanlarda, Arduino kullanarak PC tabanlı Ev Otomasyonu üzerine Arduino tabanlı bir proje yayınladım PC ile Arduino arasında seri iletişimi kullanır Daha iyisini yapabileceğimi düşündüm, bu yüzden IR alıcısı ve uzaktan kumanda ile yapmayı denedim Bir cazibe gibi çalıştığını tahmin edin. Artık cihazları uzaktan kontrol edebiliyorum. Artık cihazları TV uzaktan kumandası veya IR uzaktan kumanda yardımıyla kontrol edebiliyorum. Bu yüzden ona IR uzaktan kumandalı ev otomasyonu adını verdim. Ayrıca pic mikrodenetleyiciyi kullanarak TV uzaktan kumandalı ev otomasyon sistemini kontrol etmek isteyebilirsiniz 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi

IR uzaktan kumandalı ev otomasyon sisteminin Blok Şeması

Bu IR uzaktan kumandalı ev otomasyon sisteminde; Arduino Uno, devre beyni olarak kullanılır. Öncelikle IR alıcı, uzaktan kumandadan sinyal alır. Bu sinyaller Arduino tarafından okunur ve kodda tanımlanan değerlerle karşılaştırılır. Değerler aynıysa röleyi açıp kapamak veya mesajları LCD'de görüntülemek gibi karşılık gelen işlemi gerçekleştirir .Arduino kullanarak IR uzaktan kumandalı ev otomasyon sisteminin blok diyagramı

IR uzaktan kumandalı ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno: Kullanımı kolay olduğu için Arduino kullanıyoruz ve aynı zamanda LCD, IR ve röle modülü ile arayüze çok fazla dijital pin sağlıyor. Herhangi bir projenin prototipini oluştururken çok kolay.
  • 4 Kanal Röle Modülleri : Bu projede kullandığımız modül HL-54S'dir. Arduino'dan gelen 5v mantıksal sinyali kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar işleyebilir. Bu modüllerin 4 rölesi vardır, böylece 4 AC cihazı veya cihazı kontrol edebiliriz.
  • IR uzaktan kumanda ve alıcı: IR uzaktan kumanda, IR alıcı tarafından alınan kızılötesi sinyali gönderir. Uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Bu projede VS1838 kullanıyorum.
  • 16 × 2 LCD : LCD, proje adını, girilebilecek komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek için kullanılır. 16 × 2 LCD kullanıyoruz çünkü Arduino ile arayüz kolay ve fiyatı çok ucuz. Ekranın kontrastını kontrol etmek için 10k potansiyometre kullanılır
  • Tutuculu AC ampuller: AC ampuller, cihazları ve cihazları temsil etmek için kullanılır. Çünkü herhangi bir AC projesinin prototipini oluştururken kullanımı kolaydır ve çok kullanışlıdır. Nihai üründe, kontrol etmek için sadece AC soketiyle değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları kapatmak için elektrik bandı kullanmak her zaman iyidir.
  • Harici 5 volt besleme: Röleyi açmak ve kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca Arduino'dan 5v vermeyin.

Devre IR uzaktan kumandalı ev otomasyon sistemiIR uzaktan kumandalı ev otomasyon sistemi devre şeması

Bağlantılar IR uzaktan kumandalı ev otomasyon sistemi

IR alıcısı:

Pin 1'den dijital pin 2'ye.

2'yi toprağa sabitleyin.

3'ü Vcc'ye sabitleyin.

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin 8'e.
  • RW toprağa.
  • Pin 9'u etkinleştirin.
  • LCD D4 ile Pin 10 arası.
  • LCD D5 - Pin 11.
  • LCD D6'dan Pin 12'ye.
  • LCD D7'den Pin 13'e.
  • Potansiyometre ve katotun bir ucunu topraklayın
  • Potansiyometre ve anotun diğer ucuna 5v

 4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir ucunu normalde açık olan röle terminaline bağlayın.
  • 220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

IR uzaktan kumandalı ev otomasyon sisteminin çalışması

IR uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Böylece her düğmeyi ayrı ayrı kullanabiliriz. 3 düğme etiketini “1. 2. 3. ” Her düğmenin kodda kendi performansı vardır. Düğmeye uzaktan kumandadan bastığımda, kızılötesi sinyal gönderiyor ve bu daha sonra IR alıcısı tarafından alınıyor. Arduino sinyali okur ve cihazları açma ve kapama ve LCD'de durumu görüntüleme gibi ilgili işlemleri gerçekleştirir. Uzaktan Arduino'dan "1" butonuna bastığımda değeri okur ve kodda tanımlanan değer ile karşılaştırır: "16724175", eğer birinci röle üzerindeki Arduino anahtarına eşit ise ve ampul yanar ve tekrar basarsa ampul ışığı söner. Diğer iki düğme benzer şekilde çalışır.

IR tabanlı ev otomasyon sistemi kodu

#include <LiquidCrystal.h>
#include<string.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#define bulb1 3
#define bulb2 4
#define bulb3 5

int RECV_PIN = 2;


int itsON[] = {1,1,1,1};

#define code1 16724175 
#define code2 16718055 
#define code3 16743045 

IRrecv irrecv(RECV_PIN); 
decode_results results;
char temp;
char str[10];
char i=0;
void setup() 
{
irrecv.enableIRIn();
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(bulb1, OUTPUT);
pinMode(bulb2, OUTPUT);
pinMode(bulb3, OUTPUT);
digitalWrite(bulb1, HIGH);
digitalWrite(bulb2, HIGH);
digitalWrite(bulb3, HIGH);
lcd.print("MICROCONTROLLERS ");
lcd.setCursor(0,1); 
lcd.print(" LAB ");
delay(2000);
lcd.clear();
lcd.print("HOME AUTOMATION ");
lcd.setCursor(0,1);
lcd.print(" USING IR ");
delay(2000);
lcd.clear();
lcd.print("1. Bulb 1");
lcd.setCursor(0,1);
lcd.print("2. Bulb 2");
delay(2000);
lcd.clear();
lcd.print("3. Bulb 3");
delay(2000);
lcd.clear();
lcd.print("Bulb 1 2 3 ");
lcd.setCursor(0,1);
lcd.print(" OFF OFF OFF");
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Bulb 1 2 3 ");
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code1:
if(itsON[1] == 1) { 
digitalWrite(bulb1, LOW); 
itsON[1] = 0;
lcd.setCursor(4,1); 
lcd.print("ON ");
}
else { 
digitalWrite(bulb1, HIGH);
itsON[1] = 1;
lcd.setCursor(4,1); 
lcd.print("OFF"); 
}
break; 
case code2:
if(itsON[2] == 1) {
digitalWrite(bulb2, LOW);
itsON[2] = 0;
lcd.setCursor(8,1); 
lcd.print("ON "); 
} else {
digitalWrite(bulb2, HIGH);
itsON[2] = 1;
lcd.setCursor(8,1); 
lcd.print("OFF"); 
}
break;
case code3:
if(itsON[3] == 1) {
digitalWrite(bulb3, LOW);
itsON[3] = 0;
lcd.setCursor(12,1); 
lcd.print("ON ");
} else {
digitalWrite(bulb3, HIGH);
itsON[3] = 1;
lcd.setCursor(12,1); 
lcd.print("OFF "); 
}
break; 
}
Serial.println(value); // you can comment this line
irrecv.resume(); // Receive the next value
}
}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.