ESP8266 ile Röle Kullanımı

ESP8266 ile İnternetten Kontrol

Arduino ile uğraşanlar internetten kontrol edilebilir devre yapmak istediklerinde ESP8266 ailesi ile tanışmışlardır. Benim gibi tanıştıklarına pişman olmuşlar mıdır acaba…
Daha önce Arduino ile birlikte kullanmaya çalıştığım ama pek randıman alamadığım ESP8266-01 modülü USB-TTL ile programlayarak sorunu çözdüm gibi…
Bu projemizde ESP8266-01 ile röle kontrol devresi yaparak elektrikli bir aleti internetten çalıştırmayı deneyeceğiz. Projeyi geliştirerek internetten kontrollü akıllı ev otomasyonuna sahip olabilirsiniz.

Malzemeler:

ESP82266-01 Wifi Modülü => ESP8266-01
ESP8266 ile uyumlu röle kartı. => Röle Kartı
ESP8266 ile uyumlu USB – TTL =>USB – TTL

ESP8266 ve USB - TTL Dönüştürücü
ESP8266 ve USB – TTL Dönüştürücü

Öncelikle ESP8266’yı programlamak ile başlıyoruz. Bu modülü programlamak başta zor olsa da işi öğrenince kolay olduğunu anlıyorsunuz. Tavsiyem usb-ttl ile programlamanız. Programı yazmak için arduino ide kullanabilirsiniz.
Modül, ağınıza bağlanarak bir server kurar ve siz de bu serverla işlemler yapabilirsiniz. Yandaki fotoğrafta görüldüğü gibi ESP’yi USB-TTL’e taktıktan sonra bilgisayara bağlayıp Arduino IDE’yi açıyoruz. (ESP8266 için Arduino IDE ayarlarını internette bulabilirsiniz. Ayarları yapmadan programlayamazsınız.) Kodlar derlenip yüklenmeye başlayacağında ESP8266’nın GPIO0 ayağını şaseye bağlayıp flash moduna alıyoruz aksi takdirde programı yükleyemeyiz.


//Arduino IDE kodlarımız.

#include <ESP8266WiFi.h>
const char* ssid = "wifi ağınızın adı";
const char* password = "şifreniz";

WiFiServer server(80);

int val;
void setup() {
Serial.begin(9600); //Röle ile haberleşmesi için bağlantı hızı 9600 olmalı.
delay(10);

// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Server başlıyor
server.begin();
Serial.println("Server started");

// IP adresi yazıyor.
Serial.println(WiFi.localIP());
}

void loop() {
// ağa bağlanana kadar bekliyor
WiFiClient client = server.available();
if (!client) {
return;
}

// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}

// serverdan gelen bilgileri okuyor
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

const byte miBufferON[] = {0xA0, 0x01, 0x01, 0xA2}; //Röleyi açacak hex kodlarımız.
const byte miBufferOFF[] = {0xA0, 0x01, 0x00, 0xA1};//Röleyi kapatacak hex kodlarımız.
if (req.indexOf("?pin=OFF1") != -1)
{
val = 0;
Serial.write(miBufferOFF, sizeof(miBufferOFF)); //röle için yazdırıyoruz.
}
else if (req.indexOf("?pin=ON1") != -1)
{
val = 1;
Serial.write(miBufferON, sizeof(miBufferON));
}

client.flush();

// Prepare the response
String s = "<h1>ESP8266 Relay Kontrol</h1><p>Relay On/Off <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
s += (val)?"Relay On":"Relay Off";
s += "</html>\n";

client.print(s);
delay(1);
Serial.println("Client disonnected");
}

ESP8266 ve Röle Kartı
ESP8266 ve Röle Kartı

ESP’yi kodladıktan sonra ağa bağlanıp bağlanmadığını görmek için arduino ide de seri port ekranı açıp gerekli değerleri görebilirsiniz. (Bağlantı hızı 9600 olacak.) Ağa bağlandıysa ip adresi yazacaktır. Bu ip adresini tarayıcınıza yazarak kurduğunuz servera ulaşabilirsiniz.

Biz bu projede server kurduktan sonra röle kartının anlayacağı şekilde seri porta bilgi yazdıracağız. Röle kartın aktif olması için modülden röleye “A0 01 01 A2” HEX kodunu kapatmak için de “A0 01 00 A1” HEX kodunu gönderdik.

Modülü kodlayıp ip adresini öğrendikten sonra ESP’yi röle kartına takıyoruz. Tarayıcımızdan ip adresini yazıp rölenin çalışmadığını kontrol ediyoruz.

ESP8266 WEB Server

Tarayıcımızdan servera bağlandığımızda ON/OFF butonları gelir. ON butonu bağlantı adresi sonuna /?pin=ON1 adresini ekler. Biz de ESP içindeki kodlarda bu değeri arayarak röleye bilgi göndeririz.

9 yorum

  1. Murat Bey mükemmel ve sorunsuz çalışıyor. Ancak sabit bit ip yapılabilirmi ? Sonuç ta modemi açıp kapayınca ip de değişiyor.

    1. modemden ayarlayabilirsiniz. cihazın kullandığı mac adresine hep aynı ip adresini vermesini sağlayabilirsiniz. ben bu şekilde çözüyorum.

  2. Murat bey esp8266 v3 versiyonuna 5 v ile beslenen roleyi nasıl bağlayabiliriz. bu espnin 5 v çıkışı var mıdır.

    1. v3 Nodemcu Esp’nin en kolay programlanabilir kartıdır. İnternetten nasıl programlanacağı bulabilirsiniz. 5V rölenin veri girişini nodemcu’nun herhangi bir dijital çıkışına bağlayarak internetten röleyi kontrol edebilirsiniz.

  3. Murat Bey merhaba,
    Daha yeni baslayanlardanim. Bir adet Uno ve Esp8266 aldim. Ancak AT komutlarina cevap alamiyorum veya firmware guncellemesi yapamiyorum.
    Baglantilari da dogru yaptigima eminim.
    Sizce kart mi arizalidir yoksa beceremedigim bir puf noktasi mi vardir?
    Yorumunuz icin tesekkur eder, saygilarimi sunarim

    1. Ben AT komutları ve firmware güncellemesi yapmadım. Uno ile esp8266 kod yüklemek zor iş. Eğer işiniz sadece internetten kontrol ise nodemcu öneririm. Eğer esp8266’yı kodlayacağım diyorsanız bir adet usb-ttl dönüştürücü alın derim. kodları yüklemeden önce de GPIO0 ayağını şase yapmanızdır.

    1. access point çok üzerinde durmadım.
      başlangıçta espyi ne olarak kullanacağınızı seçiyordunuz.
      access point olarak seçtikten sonra server ve çalışma kodları aynı olur diye düşünüyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir