Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

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

1 Mayıs 2021 Cumartesi

Arduino kullanarak ethernet tabanlı ev otomasyonu projesi - IOT

 

Arduino kullanarak ethernet tabanlı ev otomasyonu projesi - IOT


Arduino kullanarak bir bilgisayarla Seri iletişim IR uzaktan kumanda ve alıcı, Bluetooth , Ses Kontrolü ve GSM tabanlı ev otomasyon sistemi gibi çeşitli yollar kullandım.Şimdi cihazları uzaktan kontrol etmek için Ethernet kalkanı kullanıyorum. Arduino bu projenin beynidir. Ethernet kalkanı, cihazları bir web sayfasından açma ve kapatma talimatı almak için Arduino'yu internete bağlamak için kullanılır. Yani bu ethernet tabanlı ev otomasyonu projesinde, ev cihazlarını dünyanın her yerinden erişilebilen web sunucusu üzerinden kontrol edebileceğiz. 
Ethernet Shield W5100 modülünü kullanacağız.Modülün görünümünü aşağıda görebilirsiniz...


Arduino kullanarak Ethernet tabanlı ev otomasyon projesi

Ethernet tabanlı ev otomasyon projesinin Blok Şemasıarduino blok diyagramı kullanarak ethernet tabanlı ev otomasyonu projesi

Ethernet tabanlı ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno : Ethernet shield ile uyumluluğundan dolayı Arduino Uno kullanıyoruz, Arduino Mega da kullanabiliyoruz ama Uno harika çalışıyor. Bir projenin prototipini oluştururken çok kullanışlıdır.
  • 4 Kanal Röle Modülü : Bu projede kullandığımız röle modülü HL-54S'dir. Arduino'dan 5 voltluk mantıksal bir sinyal kullanarak açılır ve kapanır. 250V'a kadar alternatif akımı kaldırabilir ve 10A'ya kadar tutabilir. Bu modüllerin 4 rölesi vardır, böylece bir seferde 4 AC cihazı kontrol edebiliriz.
  • Ethernet Shield : Ethernet Shield, Arduino'nuzu internete bir dakikadan daha kısa sürede bağlar. Bu modülü Arduino kartınıza takın, RJ45 kablosuyla ağınıza bağlayın. Bu modül açık kaynak kodludur, tüm belge şemaları Arduino web sitesinde mevcuttur.

Kalkanda bir dizi bilgilendirici LED bulunur:

  • PWR: kartın ve kalkanın çalıştırıldığını gösterir
  • LINK: bir ağ bağlantısının varlığını gösterir ve kalkan veri ilettiğinde veya aldığında yanıp söner
  • FULLD : ağ bağlantısının tam çift yönlü olduğunu gösterir
  • 100M: 100 Mb / sn'lik bir ağ bağlantısının varlığını gösterir (10 Mb / sn'nin aksine)
  • RX: kalkan veri aldığında yanıp söner
  • TX: kalkan veri gönderdiğinde yanıp söner
  • COLL: ağ çakışmaları algılandığında yanıp söner
  • 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, kontrol etmek için sadece AC soketiyle değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken daima kaliteli kablo kullanın. Bant veya ısıyla daralan makaron kullanarak bağlantıları koruyun ve kapatın.
  • Harici 5 Volt besleme: Röleyi açıp kapatmak için harici 5 volt dc besleme kullanılır, aksi takdirde çalışmaz.

Arduino kullanan Ethernet tabanlı ev otomasyon projesinin Devre Şemasıarduino devre şemasını kullanarak ethernet tabanlı ev otomasyon projesi

Bağlantılar:

Çok az bileşen kullandığımız için bağlantı çok kolay. İlk olarak Ethernet shield'ı Arduino Uno üzerine monte edin; Bu shield aynı zamanda Arduino Mega uyumludur, bu nedenle daha fazla cihazı kontrol etmek istiyorsanız bu projede Arduino Mega'yı da kullanabilirsiniz. Şimdi Ethernet kalkanına bir bağlantı yapıyoruz.

  • Röle modülünün Ini1'i Dijital pin 3'e.
  • Röle modülünün Ini2'sini Dijital pin 4'e.
  • Röle modülünün Ini3'ü Dijital pin 5'e.
  • Röle modülünün Vcc'si Arduino'nun 5v'una.
  • Gnd, Arduino'nun zeminine.
  • JDVcc'den harici 5v beslemeye ve toprağa.
  • Ethernet kablosunu kullanarak Wifi'ı Ethernet kalkanına bağlayın.
  • Aletleri şemada gösterildiği gibi bağlayın.

Arduino ile Ethernet tabanlı ev otomasyon projesinin çalışması

Öncelikle Ethernet kalkanı internete bağlanır ve Seri monitörde bir IP adresi görüntüler. Bu IP adresi, cihazları kontrol etmek için web sayfasını açan URL'dir. Bir web sayfasındaki düğmeye bastığımızda ilgili röle açılır ve kapanır. Aşağıdaki kod, bir web sayfasındaki metni görüntülemek ve üzerinde bir düğme yapmak için kullanılır. Aşağıdaki kodu değiştirerek buton üzerindeki metni ve etiketleri değiştirebilirsiniz.sunucu üzerinden arduino kontrolü kullanan ethernet tabanlı ev otomasyonu projesi

client.println("HTTP/1.1 200 OK");

          client.println("Content-Type: text/html");

          client.println();   

          client.print("<center><br><h1>Ethernet based Home Automation</h1><br><br><br><FORM>");

          client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S1 ON\">");

          client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S1 OFF\">");

          client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S2 ON\">");

          client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S2 OFF\">");

           client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S3 ON\">");

          client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S3 OFF\">");

          client.print("</FORM></center>");


Ethernet tabanlı ev otomasyon sistemi kodu

#include <SPI.h>
#include <Ethernet.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,10,11,12,13);


byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer server(80);


void setup() {
lcd.begin(16, 2);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(3 ,HIGH);
digitalWrite(4 ,HIGH);
digitalWrite(5 ,HIGH);
lcd.setCursor(0,0);
lcd.print("Ethernet Control");
lcd.setCursor(0,1);
lcd.print(" Home Automation0 ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Fan Light TV ");
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF "); 
Ethernet.begin(mac);
server.begin();
Serial.begin(9600);
Serial.println("Server address:");
Serial.println(Ethernet.localIP());


}

void loop() {
EthernetClient client = server.available();
if (client){
boolean currentLineIsBlank = true;
String buffer = ""; 
while (client.connected()){
if (client.available()) {
char c = client.read(); 
buffer+=c; 
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(); 
client.print("<center><br><h1>Ethernet based Home Automation</h1><br><br><br><FORM>");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S1 ON\">");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S1 OFF\">");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S2 ON\">");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S2 OFF\">");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S3 ON\">");
client.print("<P> <INPUT type=\"submit\" name=\"status\" value=\"S3 OFF\">");
client.print("</FORM></center>"); 
break;
}
if (c == '\n') { 
currentLineIsBlank = true;
buffer=""; 
} 
else 
if (c == '\r') { 
if(buffer.indexOf("GET /?status=S1+ON")>=0)
digitalWrite(3, LOW);


if(buffer.indexOf("GET /?status=S1+OFF")>=0)
digitalWrite(3, HIGH); 


if(buffer.indexOf("GET /?status=S2+ON")>=0)
digitalWrite(4, LOW);

if(buffer.indexOf("GET /?status=S2+OFF")>=0)
digitalWrite(4, HIGH); 


if(buffer.indexOf("GET /?status=S3+ON")>=0)
digitalWrite(5, LOW);


if(buffer.indexOf("GET /?status=S3+OFF")>=0)
digitalWrite(5, HIGH); 

}
else {
currentLineIsBlank = false;
} 
}
}
client.stop();
}
}

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.