Merhaba!

Bu yazımda ESP01/01S v4.0 röle’nin lkullanımını anlatacağım. Bu röle ESP01 sersinin 4. versiyonudur. Bu modül resimde görülen esp8266-01 wifi modülü ile birlikte kullanılırsa internet üzerinden kontrol edebileceğiniz bir röle haline gelir! Bu IOT “nesnelerin interneti” olarak tanımlanıyor! yani internet üzerinden bu iki modül birleşimi sayesinde herhangi bir makineyi çalılştırabilir, herhangi bir lamba anahtarı olarak kullanabilir, daha ileri gidip; akıllı ev tasarlayabilirsiniz!… Röle’yiwifi modülü olmadan, değişik arduino projelerinizde kullanabilirsiniz!

Rölenin üzerinde sarı rnk ile gördüğünüz soket; esp01 wifi modülü pinleri ile eşleşir, yani direkt üzerine takar ve çalıştırırsınız! bundan ötürü röle pinleri, esp8266 ile aynıdır! Resimdeki gibi wifi modülünün 3.3v vcc kırmızı renk akım ucu ve gnd bağlantısı ile çalışan wifi modülünün aktif olması için CH_PD pin’ine de 3.3v vcc akım ucu paralel bağlanır.GPIO1 ve GPIO3 pinleri rx-tx pinleridir ve program yüklemesi sırasında kullanılır, GPIO0 pin’i ise röle ile asıl bağlantı sağlanır. yani wifi üzerinden aç-kapa komutu bu pin’den verilir!… GPIO2 ise kullanılmaz çünkü GPIO0 harici diğer pinler + volt çıkışına sahip iken, GPIO0 pin’i + ve – olarak değiştirilebilir, bu pin bu özelliği sayesinde elektronik devrelerde farklı amaçlar için kullanma olanağı sağlamaktadır!…

Ayrıca bu rölenin benzeri olup, üzerindeki devre elemanlarına dikkatli bakınca ayırt edebileceğiniz üzere aşaığaki resimlerdeki gibi v1.0 v2.0 gibi sürümleri olup elemanları farklıdır. Ancak herhalükarda çalışması aynıdır.

Bu yazıyı yazma nedenim; Bu röleyi çalıştırmak için yaklaşık iki ay debelenmiş olmamdır! ben bu röleyi geçen yıl aliexpress’den, çin’den satın aldım. gelmesi yaklaşık 40gün sürdü. geldi ama o günlerde ilgilenip çalıştıramadım, ayrıca o zamanlarda pandemi yeni patlak vermişti ve bu konu atıl kaldı!…

Artık zaman bulup çalıştırmaya uğraştığımda elbette google amca’ya başvurdum, bu röle ile ilgili birçok yazı okudum, video izledim ve hepsini sıra ile uyguladım! Ancak ne yaptıysam çalışmadı! röleyi çalıltıramayanların forumlarda veya youtube’da yazıları ve çözüm önerilerinde, araya kondansatör koymaktan, bazı pinlerin yerini değiştimeye kadar birçok şey denedim! hepsinde de, deneme yapan başkaları çözümü öneren kişiye “sağol sayende çalıştı” diyor! ama bende çalışmıyordu!……

yukarıdaki resimlerdeki herşeyi denedim ama tık yok!…

Yaklaşık iki aylık süreçten sonra sorunu çözdüm! Sorun röle veya wifi’de değildi! Sorun kodlar’daydı. Ben elbette her kullanıcı gibi internette buduğum kodlar ile bu röleyi yüklemeye çalışmıştım. sonunda dikkatli bakınca internetteki kod örneklerinde farklılıklar gördüm! bana zaman kaybettiren kod örneği, internette bu 8266 röle ile beraber kullanılabilecek uygunlukta tek kod örneği vardı, bende bu örnek kodları yüklüyordum ama röle açılmıyordu, bu kodlarda röleyi açmak için hex kodu kullanılıyor!

[code]

//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> <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");
}

[/code]

ben bu kodları kullanmadım benim kodlarım şu şekilde;

[code]
#include <ESP8266WiFi.h>
const char* ssid = "TD854W";
const char* password = "********";

WiFiServer server(80);
boolean configMode = false;
int val;
void setup() {
Serial.begin(9600); //Röle ile haberleşmesi için bağlantı hızı 9600 olmalı.
delay(10);
pinMode(0, OUTPUT); 
// 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();
if (req.indexOf("?pin=OFF1") != -1)
{
val = 0;

digitalWrite(0, HIGH); //röle için yazdırıyoruz. bu çalışıyor.
}
else if (req.indexOf("?pin=ON1") != -1)
{
val = 1;

digitalWrite(0, LOW);
}

client.flush();

// Prepare the response
String s ="<h1>ESP8266 Role Kontrol</h1><p><font size='10;'>Role On/Off<p><a href=\"?pin=ON1\"><button style='background-color:tomato;color:white;width:250;height:250;'>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button style='background-color:tomato;color:white;width:250;height:250;'>OFF</button></a></p>";
s += (val)?"Role On":"Role Off";
s += "</html>\n";

client.print(s);
delay(1);
Serial.println("Client disonnected");
}
[/code]

bana zaman kaybettiren kod örneğinde;

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.

kullanılırken ben röle açma kodu olarak;

digitalWrite(0, HIGH); //röle için yazdırıyoruz. bu çalışıyor.
digitalWrite(0, LOW);

kodlarını kullandım ve çalıştı!…


Ali KOPGEL

Motor Teknikeri.

0 yorum

Bir cevap yazın

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