Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

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

1 Mayıs 2021 Cumartesi

ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi

 

ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi


Şimdi S Remote Android Uygulamasını kullanarak cihazları kontrol etmek için ESP8266 wifi modülünü kullanıyorum. S uzak uygulaması Google Play mağazasından ücretsiz olarak indirilebilir. Bu wifi tabanlı ev otomasyonu projesinde esp8266 wifi modülü kullanılarak bulut üzerinden, Ev cihazlarını kontrol etmek için kablosuz iletişim olarak wifi kullanacağım. Bu wifi tabanlı ev otomasyon sisteminde Arduino Uno R3 kullanıyoruz Wifi üzerinden pic mikrodenetleyici tabanlı ev otomasyonu kullanan benzer bir proje yayınladık ayrıca kontrol etmek de isteyebilirsiniz. 

arduino kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Wifi üzerinden wifi tabanlı ev otomasyonu için Blok Şemasıarduino blok diyagramı kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Gerekli Bileşenler:

  • ESP8266 Wifi Modülü: ESP8266, Transfer Kontrol Protokolü (TCP) ve İnternet Protokolü (IP) sağlayan bir wifi çipidir. Piyasada farklı ESP8266 modülleri mevcuttur. Bu projede ilk modeli kullanıyoruz. 6 pimli olup, 3.3v ile çalışır. ESP8266, aşağıdaki komutlarla başlatıldı:
  • AT
  • AT + CWMODE = 3
  • AT + CIFSR
  • AT + CIPMUX = 1
  • ESP8266 daha sonra aşağıdaki komutlarla mobil etkin noktaya bağlandı:
  • AT + CWLAP (mevcut Wi-Fi ağlarının listesini döndürür)
  • AT + CWJAP = "SSID", "şifre" Örnek: AT + CWJAP = "PTCL-BB", "12345467"
  • Arduino Uno: Arduino, ATmega 328P etrafında inşa edilen geliştirme kartlarıdır. Arduino, arayüz röle modülü, 16 × 2 LCD ve ESP8266 wifi modülüne çok sayıda pin sağladığı için bu proje için mükemmeldir.
  • 4 Kanal Röle Modülü : Röle, Arduino dijital pininden gelen sinyal gibi düşük dc voltajları kullanarak yüksek voltajlı cihazları açıp kapatmak için kullanılır. Bu projemizde 4 kanal röle modülü kullandık, her bir röleyi ayrı ayrı bağlamak yerine Arduino ile arayüz oluşturmak kolaydır. 250VAC ve 10 ampere kadar akım taşıyabilir.
  • 16X2 LCD: 16 × 2 LCD 16 karakteri iki satırda görüntülemek için kullanılır. Mevcut kütüphanesi sayesinde Arduino ile arayüz oluşturmak kolaydır. Bu projede bu LCD, cihazların durumunu açık veya kapalı olarak görüntülemek için kullanılır.

Bulut üzerinden wifi tabanlı ev otomasyon sisteminin Devre Şeması

Bağlantı şeması

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin A0'a.
  • RW toprağa.
  • A1'i Sabitlemeyi etkinleştirin.
  • LCD D4'ten Pin A2'ye.
  • LCD D5'den Pin A3'e.
  • LCD D6'dan Pin A4'e.
  • LCD D7'den Pin A5'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ölelerin terminaline bağlayın.

220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

Arduino'ya ESP8266 wifi modülü:

  • Modül Vcc - 3.3v.
  • Modül CH_PD - 3.3v.
  • Arduino toprağına Modül Ground.
  • Modül Tx - Arduino Rx.
  • Modül Rx - Arduino Tx.

Çalışma: S Remote uygulamasını Google Play Store'dan indirin. Uygulamayı açın, Ayarlar >> Gelişmiş >> Düzen'e gidin ve isteğinize göre Düğmeyi seçin. Ardından IP'yi seçin ve "AT + CIFSR" komutunu kullanarak ESP8266 wifi modülünü başlattığımızda aldığımız IP adresini girin. IP adresi “192.168.10.4” gibi üçüncü satıra yazılır. Daha sonra port seçeneğine “80” olan portu yazınız. Ayar >> Tuşlar'a gidin ve ardından key1'i seçin ve düğme üzerinde görüntülenecek etiketi ve ardından Arduino'ya göndermek istediğiniz verileri yazın. TCP düğmesine tıklayın. Benzer şekilde etiketi ve verileri diğer anahtarlara yazın. Her şeyi doğru bir şekilde bağlarsanız, ardından devreyi açın ve seri monitörü açın, wifi modülünü başlatmak birkaç saniye sürer. Uygulama üzerindeki düğmeye basın,arduino android uygulamasını kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Arduino kullanan IOT tabanlı ev otomasyon sistemi kodu

Bu proje için kod bedelsiz değildir. aşağıda verilen ziyaret linkinden kod satın alabilirsiniz.

#include<LiquidCrystal.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
#define Fan 3
#define Light 4
#define TV 5
int temp=0,i=0;
int led=13;
char str[15];
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);

Serial.print("AT\r\n");
delay(200);
Serial.print("AT+CWMODE=3\r\n");
delay(200);
Serial.print("AT+CIFSR\r\n");
delay(200);
Serial.print("AT+CIPMUX=1\r\n");
delay(200);
Serial.print("AT+CIPSERVER=1,80\r\n");
delay(200);
pinMode(led, OUTPUT);
pinMode(Fan, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(TV, OUTPUT);
digitalWrite(Fan,HIGH);
digitalWrite(Light,HIGH);
digitalWrite(TV,HIGH);
lcd.setCursor(0,0);
lcd.print("WI-FI Control ");
lcd.setCursor(0,1);
lcd.print("Home AutomatIon");
delay(2000);
lcd.clear();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Fan Light TV ");
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF "); 
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Fan Light TV");
if(temp==1)
{
check();
temp=0;
i=0;
delay(1000);
}
}
void serialEvent() 
{
while(Serial.available()) 
{
if(Serial.find("#A."))
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
while (Serial.available()) 
{
char inChar=Serial.read();
str[i++]=inChar;
if(inChar=='*')
{
temp=1;
return;
} 
} 
}
}
}
void check()
{
if(!(strncmp(str,"tv on",5)))
{
digitalWrite(TV, LOW);
lcd.setCursor(13,1); 
lcd.print("ON ");
delay(200);
} 

else if(!(strncmp(str,"tv off",5)))
{
digitalWrite(TV, HIGH);
lcd.setCursor(13,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"fan on",6)))
{
digitalWrite(Fan, LOW);
lcd.setCursor(0,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"fan off",7)))
{
digitalWrite(Fan, HIGH);
lcd.setCursor(0,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"light on",8)))
{
digitalWrite(Light, LOW);
lcd.setCursor(7,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"light off",9)))
{
digitalWrite(Light, HIGH);
lcd.setCursor(7,1); 
lcd.print("OFF ");
delay(200);
} 
}

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