NodemCU V3 (ESP8266) Wi-Fi Modülü İle İnternet Üzerinden Led Kontrolü

Bir önceki yazımızda NodemCU ‘nun nasıl kurulacağını ve nasıl programlanacağını öğrenmiştik. Şimdi ise yeni yazımızda internet üzerinden kontrol etmeyi öğrenmiş olacağız. Önceliğimiz basit bir uygulama yapmak olacak. İnternet üzerinden Led yakmak gibi.

Şema Önemli

Öncelikle NodemCu kartı kendi üzerindeki pinleri programlayabilmek için bu şemayı(pin map) göz önünde bulundurmamız gerekli

Çünkü bu şemaya bakarak, bağlayağımız Led’i bağlayacağımız pin’in NodemCU üzerinde hangi pine karşılık geldiğini bilmemiz gerekli. Örneğimizde kullanacağımız GPIO14 pini==D5 pinine karşılık geliyor. yani biz programda 14. pini kullandığımızda donanım tablosundan da bakacak olursak Nodemcu modülün de D5 pinini kullanmış oluyoruz. Daha da somutlaştıracak olursak; digitalWrite(14,HIGH); komutunu kullandığımız zaman Nodemcu modülündeki D5 pinine lojik 1 bilgisini göndermiş oluruz.  Buradan hareketle donanımsal bağlantımızı yapacağız.

Not: Birçok yerde espwifi.h kütüphanemiz ekli olması gerekitiği yazar ancak ben eklemeden çalıştırabildim, sanırım esp8266’yı yüklerken kütüphanelerde otomatikman arduino içerisine yükleniyor. Eğer çalışmazsa yine de manuel olarak esp8266 kütüphanelerini arduino içine ekleyebilirsiniz.

Bu işlemlerden sonra programlama yapmaya hazırız.

Program Kodlarımız şu şekilde

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
 
const char* ssid = "wifi adresiniz";
const char* password = "wifi sifreniz";
 
ESP8266WebServer server(80); //server'ın dinleyeceği portu belirler, default server 80 dir.
 
int led = D5;  // ledi D5(GPİO 14) numaralı pine bağlıyoruz
 
void yak()
{
digitalWrite(led,1);
server.send(200, "text/html", "<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/><h1>Mikrodunya</h1> <p>Led Yanıyor</p> <a href=\"/yak\"> Yak </a> <br> <a href=\"/sondur\"> Söndür </a> <br> <a href=\"/\"> Sayfayı Yenile </a> </html>");
}
 
void sondur()
{
digitalWrite(led,0);
server.send(200, "text/html", "<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/><h1>Mekinfo</h1> <p>Led Sönük</p> <a href=\"/yak\"> Yak </a> <br> <a href=\"/sondur\"> Söndür </a> <br> <a href=\"/\"> Sayfayı Yenile </a> </html>");
}
 
void yenile()
{
int durum=digitalRead(led);
String veri="<html><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/><h1>Mekinfo</h1>";
veri+="<p>";
veri+=(durum)?"Led Yanıyor</p>":"Led Sönük</p>";
veri+="<a href=\"/yak\"> Yak </a> <br> <a href=\"/sondur\"> Söndür </a> <br> <a href=\"/\"> Sayfayı Yenile </a> </html>";
server.send(200, "text/html",veri);
}
 
void setup(void){
pinMode(led, OUTPUT);
digitalWrite(led, 0);
Serial.begin(115200);  //115200 baud rate'de seri haberleşmeyi başlatır
WiFi.begin(ssid, password);
Serial.println("");
 
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
 
server.on("/yak", yak);
server.on("/sondur", sondur);
server.on("/", yenile);
 
server.begin();
Serial.println("HTTP server started");
}
 
void loop(void){
server.handleClient();
}

NOT: Bu kodda dikkat edilecek nokta kodun başında tanımlanan ssid yazan yere kendi routerımızın Wifi ismini tırnak içerisinde yazmamız,  password  yazan yere ise şifremizi tırnak içerisinde yazmamız gerektiğidir.

Programı Arduino IDE’sinde derleyip Nodemcu’ya gönderdiğimizde, Seri Port ekranını açıp bekliyoruz. Ve ardından bize bir adet IP adresi veriyor.

Bu IP adresini kopyalayıp herhangi bir internet tarayıcısında yapıştırdığınızda, Artık internet üzerinden Nodemcu’ya bağlı bulunan Ledi Kontrol edebiliyorsunuz.

Not: Uygulamada harici bir led yerine kart üzerindeki led’i çalıştırmayı denedik ama olmadı. Bu büyük ihtimal kart üzerindeki ledin tx pinine bağlı olmasından kaynaklanıyor, bu denli seri haberleşme varken, tx pinine bağlı bir ledin yanması zaten düşünülemezdi.

Buradaki örneğimizde nodemcu’nun D5 pnine bağlı bir ledi aynı ağdaki bir cihaz  üzerindeki internet aracılığıyla yakıp söndürdük. İstenilirse kartımız, routerdan port yönlendirme yapılarak dünyaya açılabilir. Bundan sonrası web sayfası hazırlama bilgimize kalıyor. HTML, CSS, PHP bilgilerinizi kullanarak mükemmel arayüzler hazırlayıp, bu web server ile  dünyanın diğer ucundan evinizdeki veya iş yerinizdeki cihazları açıp kapayabilir, istediğiniz veriyi istediğiniz noktaya ulaştırabilirsiniz.  İstenilirse de mobil bir uygulama hazırlayıp kartımızı telefonumuzdan veya tabletimizden yönetebiliriz.

Kaynaklar: https://mikrodunya.wordpress.com/2017/08/23/nodemcu-ve-basit-bir-uygulama/,https://www.projehocam.com/nodemcu-esp8266-modul-ile-led-kontrolu/, https://steemit.com/utopian-io/@drencolha/esp8266-wifi-moduelue-kurulumu-ve-kuetuephane-kullanimi-turkish-tutorial

Bir cevap yazın

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