Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

ESP8266 kullanılarak WiFi ile  IOT  (Nesnelerin İnterneti) uygulamasının  gerçekleştirilmesi.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

Proje kapsamında internet üzerinden 3 adet röle kontrolü ile 220 Vac beslemeli  pano ikaz lambası ,evlerde kullanılan lamba ve 220 Vac -> 5 Vdc çeviriciye baÄŸlı buzzerlı fan sistemi kontrol edilecektir. Neden bu proje ? bu soruya cevap verecek olursak arkadaÅŸlar  son zamanlarda inetrnet üzerinden röle kontrol edilerek akıllı ev projelerinde ,gömülü sistemlerin bulunduÄŸu cihazların internet üzerinden kontrolü ve verilerin takip edilmesi gibi hizmet sektöründe gün geçtikçe ağırlığı artan IOT sistemlerinin artması   beni bu projenin yapımına götürmüÅŸtür.Bu cevaptan sonra isterseniz projeye adım adım baÅŸlayabiliriz arkadaÅŸlar;

GEREKSÄ°NÄ°M PROGRAMLARI 

İlk olarak aşağıda verilen linkleri tıklayarak programları indirmek ve linkleri inceleyerek işe başlayabiliriz ,

  • HTML,CSS ve Javascript konularında programlama deneyimi olmayan arkadaÅŸlar öncelikle  w3schools   ifadesine  tıklayarak proje çalışmalarına devam etmelidir.
  • NodeMCU kartına ait yapılan yazılımın derlenmesi için Arduino IDE ifadesine tıklayarak,
  • NodeMCU firmwire güncellemesini NodeMCU- ESP8266 ifadesine tıklayarak inceleyebilirsiniz.

PROJENÄ°N AMACI

    Evet arkadaÅŸlar verilen linkten gerek duyduÄŸunuz HTML,CSS ve Javascript komutlarını verilen linkten öÄŸrendiÄŸinizi ve NodeMCU-ESP8266 firmwire ve ESP8266 kütüphanesinin arduino IDE içerisine entegre ettiÄŸinizi kabul ederek proje adımlarına devam edebiliriz.

  1. NodeMCU  kartının özelliklerini ne olduÄŸunu , Wi-Fi  iletiÅŸim ,   Röle  kavramlarını öÄŸrenmek.
  2. NodeMCU kartına ait gömülü yazılım kodları , açık kaynak kodu olarak kullanılarak yazılımda kullanılan komutlarının kullanım amaçlarını öÄŸrenmek.
  3. NodeMCU kartı   kullanılarak  internet üzerinden ile nasıl haberleÅŸeceÄŸini göstermek ve öÄŸrenmek.

TEORÄ°K BÄ°LGÄ°LER

NodeMCU Kartı ve Özellikleri Nedir ? ;

           Ebatları küçüktür ve en önemlisi açık kaynaklıdır. DüÅŸük enerji ile çalışır üzerinde bulunan baÄŸlantı noktaları ile çevresel elektronik birimler kontrol edilebilir.Üzerinde bulunan Wi-Fi modül (ESP8266-12E) ile IOT yani nesnelerin interneti olarak bilinen cihazların internet üzerinden kontrol edilmesi ve takip edilmesi saÄŸlanır. HTTP kütüphaneleri ile web iÅŸlemleri yapılabilir veya web sunucusu oluÅŸturabilirsiniz. Birkaç programlama dillerine ek olarak  Arduino IDE de programlanıp derlenebilir. Ayrıca json, file, timer, pwm, i2c, spi, 1-wire, net, mqtt, coap, gpio, wifi, adc, uart ve system apidestekler. NodeMCU Vin pininden 5 Vdc ile beslenir.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

Wi-Fi Ä°letiÅŸim Protokolü Nedir ?

          Wi-Fi baÄŸlantısı birçok geliÅŸtirici için günümüzde vazgeçilmez bir tercihtir. Mevcut alt yapısının çok geniÅŸ olması, evlerde/ofislerde yaygın olarak kullanılması ve büyük boyutlu veri aktarımının mümkün olması nedeniyle önemli bir avantaja sahiptir.

         WiFi cihazların temelde 3 farklı çalışma modu bulunur: Infrastructure (altyapı) ve Ad-Hoc (iki cihaz arası doÄŸrudan haberleÅŸme). Infrastructure modunun ise iki farklı alt modu vardır: istemci (client) ve istasyon (access point). Ä°stemci olarak internet ağına baÄŸlanan cep telefonu ,Acccess point için ise modem veya router örnek verilebilir. Kullanılan standard IEEE 802.11n ,standardın frekansı 2.4 GHz ve 5GHZ dir ve bu standardın veri transferi ise Maksimum 600 Mbps’dir.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

Wi-Fi Modül (ESP8266) Nedir ?

      ESP8266 Modülü yapacağınız projede elektronik sistemin  internete baÄŸlanmasını saÄŸlar.Bu özelliÄŸi ile gerektiÄŸinde sistemin internete veri göndermesini gerektiÄŸinde  ise almanıza olanak saÄŸlamasının yanında elektronik projelerinizin  internet üzerinden kontrol edebilmenizi saÄŸlar. 1tl madeni para  boyutlarında olması ve maliyetinin uygun olmasından dolayı son zamanlarda çok fazla tercih ediliyor. Bu modül ile 2 mode da  çalışabilirsiniz.Bu iki mode da  isterseniz  Wi-Fi baÄŸlantı noktasına baÄŸlanmak için (Client)kullanabilir,  isterseniz  bir Wi-Fi noktası yaratabilir(AccessPoint) ,  veya hem AccessPoint hem Client olarak kullanabilirsiniz.

   Bu modül ile çalışmadan önce modül içerisindeki  sürümün güncellenmesi gerekiyor.Bunun nedeni her gelen yeni sürüm ile modülün daha da stabil bir hale gelmesidir. 

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

Not: Bu modül (ESP-12E) NodeMCU üzerinde bulunmaktadır.

Röle  Nedir ve Ne Ä°ÅŸe Yarar?

         Bir röle birçok tipte sınıflandırılır; standart ve genel olarak kullanılan röle, genelde bir anahtar olarak kullanılan elektromıknatıslardan oluÅŸur. Sözlük karşılığı  bir ÅŸeyden diÄŸerine geçme eylemi anlamına gelir, aynı anlam bu aygıt için de  uygulanabilir; çünkü aygıtın bir tarafından alınan sinyal diÄŸer taraftaki anahtarlama iÅŸlemini kontrol eder. Dolayısıyla röle, devreleri elektromekanik olarak kontrol eden (açıp kapayan) bir anahtardır. Bu cihazın ana çalışması, herhangi bir insan müdahalesi  olmadan bir sinyal yardımıyla AÇIK veya KAPALI geçiÅŸ yapmak veya bunlarla teması kesmektir. Esas olarak, düÅŸük güçlü bir sinyal kullanarak yüksek güçlü bir devrenin kontrol edilmesi için kullanılır. Genellikle  mikroiÅŸlemcilerden gelen dijital sinyaller ile AC ev aletlerini kontrol etmek gibi yüksek voltaj deÄŸerlerinde  çalışan devrenin kontrol edilmesi için kullanılır.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

MALZEME LÄ°STESÄ°
Proje kapsamında teorik bilgiler verildikten sonra projenin devamı için gerekli olan malzemeler aÅŸağıdaki tabloda yer verilmiÅŸtir. Burada  röle devresi hazır PCB üzerinde satılmaktadır. 

MALZEME ADI MALZEME ADET MALZEME ADI MALZEME ADET
NodeMCU 1 Mini USB kablosu 1
5 Vdc Röle Devresi (PCB) 3 Nötr 220 Vac Kablo N
220 Vac Lamba 1 Faz 220 Vac Kablo N
Lamba için Duy 1 Jumper Kablo N
220 Vac İkaz Lambası 1 220 Vac Fiş 1
Buzzer 1 3’lü Priz ***
5 Vdc Fan 1 *** ***
220 Vac -> 5Vdc dönüÅŸtürücü 1 *** ***

ÅžEMATÄ°K DEVRE
Bu projenin ÅŸematik bölümü fritzing programında  çizilmiÅŸtir. Programda çizilen devreye bakılacak olursa NodeMCU D0-> 1. Röleyi, D1-> 2.Röleyi ve D2-> 3.Röleyi tetiklemektedir. 220 Vac beslemenin nötr hattı rölelerin C (Ortak Uç) çıkışına baÄŸlanmıştır.Buna ek olarak   lambanın bir ucu 1.rölenin NO (normalde açık ),ikaz lambasının bir ucu 2.Rölenin NO(normalde açık) ve dönüÅŸtürücünün bir ucu NO(normalde açık ) pinine baÄŸlanmıştır. 220 Vac beslemenin faz hattı ise lamba,ikaz lambası ve dönüÅŸtürücünün diÄŸer pinine baÄŸlanmıştır. NodeMCU ise 5Vdc ile beslenmektedir.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması
KAYNAK KODLARI

/*

       Program Adı  :WiFi  ile Röle  kontrolü

       Donanım         : NodeMCU V1.0

       Derleyici         : Arduino IDE 1.8.5

       MCU                  : 80 MHz

       Yazan               : Adil Teoman Kurt

       Adres               : https://electrolog.blog

    */

#include <ESP8266WiFi.h> // ESP8266 kütüphanesi dahil ediliyor

const char* ssid = “xxxxxxxx”;  // Ä°nternet Ağının ismi
const char* password = “yyyyyyyyy”; // internet ağının ÅŸifresi
int RolePin1 = D0; // D0 pini RolePin1 ile eÅŸleÅŸtiriliyor
int RolePin2 = D1; // D1 pini RolePin2 ile eÅŸleÅŸtiriliyor
int RolePin3 = D2; // D2 pini RolePin3 ile eÅŸleÅŸtiriliyor

 

int RoleDeger1= LOW; // 1.Rölenin durumu lojik-0 yapılıyor
int RoleDeger2= LOW; // 2.Rölenin durumu lojik-0 yapılıyor
int RoleDeger3= LOW; // 3.Rölenin durumu lojik-0 yapılıyor

WiFiServer server(80); // WiFi ağına 80. porttan bağlınılıyor

void setup() {
Serial.begin(115200);  //Seri iletiÅŸim baÅŸlatılıyor ve Baundrate hızı : 115200
delay(10); // 10 ms bekleme

pinMode(RolePin1, OUTPUT); // D0 pini çıkış olarak ayarlanıyor
pinMode(RolePin2, OUTPUT); // D1 pini çıkış olarak ayarlanıyor
pinMode(RolePin3, OUTPUT); // D2 pini çıkış olarak ayarlanıyor
digitalWrite(RolePin1, LOW); // D0 pini lojik-0 olarak ayarlanıyor
digitalWrite(RolePin2, LOW); // D1 pini lojik-0 olarak ayarlanıyor
digitalWrite(RolePin3, LOW); // D2 pini lojik-0 olarak ayarlanıyor

// WiFi ağına baÄŸlanma bölümü
Serial.println();
Serial.println();
Serial.print(“Baglanilan ag :”);
Serial.println(ssid);

WiFi.begin(ssid, password); // BaÄŸlanılan Ağın adı ve ÅŸifresi girilen internet ağına baÄŸlanılıp ardından  WiFi baÅŸlatılıyor

while (WiFi.status() != WL_CONNECTED) { // AÄŸa baÄŸlanılıncaya kadar “.” gönderilir
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi baglanildi…”);

//Server başlatılıyor
server.begin();
Serial.println(“Server baslatildi….”);

// NodeMCU ait IP adresi alınıyor
Serial.print(“Baglanmak icin kullanilacak IP : “);
Serial.print(“http://&#8221;);
Serial.print(WiFi.localIP()); // Yerel aÄŸ içerisindeki IP alınıyor
Serial.println(/);

}

void loop() {
//NodeMCu WiFi agina baglanilip baglanilmadagi kontrol ediliyor
WiFiClient client = server.available();
if (!client) {
return;
}

// NodeMCU veri gelnceye kadar bekleme bölümü
Serial.println(“Yeni cihaz”);
while(!client.available()){
delay(1);
}

// Url Adresin ilk satırının alındığı bölüm
String request = client.readStringUntil(‘r’);
Serial.println(request);
client.flush();

// 1.Rölenin ilk satırına göre açılma veya kapatılma bölümü

if (request.indexOf(/1.Role=ON”) != -1) {
digitalWrite(RolePin1, HIGH);
RoleDeger1 = HIGH;
}
if (request.indexOf(/1.Role=OFF”) != -1) {
digitalWrite(RolePin1, LOW);
RoleDeger1 = LOW;
}

// 2.Rölenin ilk satırına göre açılma veya kapatılma bölümü
if (request.indexOf(/2.Role=ON”) != -1) {
digitalWrite(RolePin2, HIGH);
RoleDeger2 = HIGH;
}
if (request.indexOf(/2.Role=OFF”) != -1) {
digitalWrite(RolePin2, LOW);
RoleDeger2 = LOW;
}

// 3.Rölenin ilk satırına göre açılma veya kapatılma bölümü
if (request.indexOf(/3.Role=ON”) != -1) {
digitalWrite(RolePin3, HIGH);
RoleDeger3 = HIGH;
}
if (request.indexOf(/3.Role=OFF”) != -1) {
digitalWrite(RolePin3, LOW);
RoleDeger3 = LOW;
}

// Node MCU yayımladığı Web sitesi
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“”); // do not forget this one
client.println(<!DOCTYPE HTML>);
client.println(<html>);
client.println(<HEAD><TITLE>WI-FI Uygulamasi</TITLE>);
client.println(<BODY><H1>WI-FI ILE ROLE KONTROL PROJESINE HOSGELDINIZ</H1>);

  // Web sayfasında 1.Röleye ait kontrol paneli
  client.println(<fieldset>);
  client.println(<legend>1.Role Kontrol</legend>);
  client.print(1. Röle Durum :”);
  if(RoleDeger1 == HIGH) {
  client.print(“Acik”);
  } else {
  client.print(“Kapali”);
  }
  client.println(<br><br>);
  client.println(<a href=”/1.Role=ON””><button>Role Ac </button></a>);
  client.println(<a href=”/1.Role=OFF””><button>Role Kapat</button></a><br />);
  client.println(</fieldset>);
delay(25);

  // Web sayfasında 2.Röleye ait kontrol paneli
  client.println(<fieldset>);
  client.println(<legend>2.Role Kontrol</legend>);
  client.print(2. Role Durum : “);
  if(RoleDeger2 == HIGH) {
  client.print(“Acık”);
  } else {
  client.print(“Kapali”);
  }
  client.println(<br><br>);
  client.println(<a href=”/2.Role=ON””><button>Role Ac </button></a>);
  client.println(<a href=”/2.Role=OFF””><button>Role Kapat</button></a><br />);
  client.println(</fieldset>);
delay(25);

// Web sayfasında 3.Röleye ait kontrol paneli
  client.println(<fieldset>);
  client.println(<legend>3.Role Kontrol</legend>);
  client.print(3.Role Durum : “);
  if(RoleDeger3 == HIGH) {
  client.print(“Acık”);
  } else {
  client.print(“Kapali”);
  }
  client.println(<br><br>);
  client.println(<a href=”/3.Role=ON””><button>Role Ac </button></a>);
  client.println(<a href=”/3.Role=OFF””><button>Role Kapat </button></a><br />);
  client.println(</fieldset>);
client.println(<H2>Proje hakkinda => https://electrolog.blog sayafasini ziyaret edebilirsiniz</H2>);
client.println(</BODY>);
client.println(</HEAD>);
client.println(</html>);
delay(100);
Serial.println(“Client baÄŸlantı kapatıldı”);
Serial.println(“”);
}

 

WEB ARAYÜZ PANELÄ°
Web sitemizi adım adım irdeleyecek olursak;

  • Web sitemizin sahip olduÄŸu IP adresi serial hat üzerinden alınan deÄŸerdir .Bu deÄŸer google adresine yazarak web sitemize ulaşılır.
  • Web sitemiz üzerinden 3 adet röle kontrol edilir. Ayrıca web sitesinden bilgi gönderilirken aynı zamanda cihazımızdan web sitesine veri gönderilir. Veriler röle kontrol blokların içerisinde “Pasif” ve “Açık “olacak ÅŸekilde gönderilir.

Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması

PROJENÄ°N VÄ°DEOSU

    Bu projede hazırlanan videoda  internet üzerinden  NodeMCU veri gönderilerek kontrol edilen rölelerimizn  ile  gerçek  zamanlı elektronik devresi ile ilgili çalışmayı anlatan videoya WiFi-NodeMCU  ifadesine tıklayarak izleyebilirsiniz.

EK DOSYALAR

Bu bölümde ise elektronik devrenin fritzing resmi ve devrenin fritzing kaynak dosyası (.fzz) bulunmaktadır.

Ek dosyalar ( .png ve .fzz)

Kaynak

Yorumunuzu Ekleyin
Nodemcu Kullanılarak Wi?fi? I?le IOT (nesneleri?n I?nterneti?) Uygulaması Yorumları +1 Yorum
  • hakan
    1
    hakan
    başka bir yerden kopyalamışşın bari baksaydın kod doğrumu yanlışmı diye
    26 Şubat 2020 10:09:51, Çarşamba


Yükleniyor...
Yükleniyor...