26 Ağustos 2023, 20:42 tarihinde eklendi

NodeMCU V3 ESP8266 ESP-12E ile İnternet Üzerinden Ayarlı Termostat Uygulaması

NodeMCU V3 ESP8266 ESP-12E ile İnternet Üzerinden Ayarlı Termostat Uygulaması

ESP8266, nesnelerin interneti kısaca IoT (Internet of Things) ile çalışanların bildiği mikrodenetleyicilerden biridir.  NodeMCU V3 geliştirme kartı üzerinde ESP8266 mikrodenetleyicisi bulunur. Ayrıca sadece ESP8266 modül olarak da sunulmuştur. ESP8266 ile internete bağlanıp veri yükleme ve veri alma ve çeşitli nesneleri internet üzerinden kontrol etme uygulamaları yapılabilir.

ESP8266 Wi-Fi (kablosuz ağ) özelliğine sahiptir. Espressif System firması tarafından üretilmiştir. ESP8266 tek başına bir sistemi kontrol edebilir. Ayrıca Wi-Fi adaptörü olarak başka bir mikrodenetleyiciye kablosuz ağ özelliği kazandırmak için kullanılabilir.

Temel Wi-Fi özellikleri aşağıda verilmiştir.

  • IEEE 802.11 b/g/n standartları desteği
  • 2,4 GHz Wi-Fi frekans bandı
  • 2 adet sanal Wi-Fi arayüzü (AP ve STA)
  • WEP/WPA/WPA2 şifreleme

2014 yılında AI-Thinker firması tarafından IoT modül haline getirilen ESP8266 çipin ESP-01’den ESP-14’e kadar çeşitli modelleri bulunmaktadır.

NodeMCU V3 geliştirme kartı üzerinde ESP-12E bulunur. ESP-12E, varsayılan olarak Arduino wifi shield gibi işlevsellik kazanılmasını sağlayan AT komutlarıyla gelir. Bellek ve işlemci üzerinde özel uygulamalar yapmak için farklı yazılım (firmware) yüklenebilir. ESP-12E, özel yazılımlar için kullanılabilecek 80 MHz düşük güçlü 32 bit işlemci içerir. Ayrıca herhangi bir harici denetleyici olmadan küçük web sayfalarının barındırılmasına imkan sağlar. VoIP uygulamaları ve Bluetooth ortak kullanım arayüzleri için APSD’yi destekler. Tüm çalışma koşullarında çalışabilen ve harici RF parçaları gerektirmeyen kendi kendini kalibre eden bir RF içerir. ESP-12E’de 11 adet dijital giriş/çıkış pini (GPIO) ve 1 adet analog-dijital çevirici (ADC) bulunur. Çalışma voltajı 3,3V’tur.

ESP8266 mikrodenetleyicisi WiFi.mode() fonksiyonuyla seçilebilen 4 adet Wi-Fi çalışma moduna sahiptir:

  • WiFi_AP
  • WiFi_STA
  • WiFi_AP_STA
  • WiFi_OFF

AP (Access point: erişim noktası) modunda diğer cihazların bağlanabilmesi için bir kablosuz ağ oluşturur. Bu kablosuz ağın bir SSID (kablosuz ağ adı) ve şifresi olur. AP modunda diğer cihazlar kablosuz ağ listelerinde ESP8266'yı görüp bağlanabilirler.

STA (Station: istasyon) modunda ESP8266, client (istemci) olarak kullanılabilir. ESP8266, telefon, tablet gibi var olan bir kablosuz ağa bağlanabilir ve internete açılabilir. Uzaktan kontrol uygulamalarında bu mod tercih edilir. Bu mod kullanılacağı zaman SSID ve şifresi bilinen bir kablosuz ağ kod içerisinde tanıtılır. Program çalışınca ESP8266 otomatik olarak o ağa bağlanır.

AP_STA modunda ESP8266, bir Wi-Fi bağlantı noktasına bağlanmak için hem AP hem STA modunda kullanılabilir. Hem istasyon hem erişim noktası olarak çalışır. Başka bir deyişle hem internete bağlanabilir hem sinyal güçlendirici olarak çalışabilir. 

ESP8266, AP (erişim noktası) modunda çalıştırılırsa kendi üzerinde bir kablosuz ağ oluşturur. Bilgisayar, telefon, tablet vb. herhangi bir cihazla ESP8266'nın oluşturduğu kablosuz ağa bağlanılabilir. Web tarayıcı üzerinden IP adresiyle kontrol sağlanabilir. ESP8266, STA (istasyon) modunda çalıştırılırsa başka bir kablosuz ağa bağlanabilir. Aynı şekilde web tarayıcı üzerinden IP adresiyle kontrol sağlanabilir.

ESP8266 ile IoT (nesnelerin interneti) uygulamalarında kullanılan kütüphaneler aşağıda verilmiştir:

  • ESP8266WiFi.h
  • WiFiClient.h
  • ESP8266WebServer.h

Bu uygulamada ESP8266 istasyon (STA) modunda iken web sayfası üzerinden ayarlı termostat yapılacaktır. LM35 entegre tipi sıcaklık sensörüyle sıcaklık ölçümü yapılarak web sayfasında gösterilmiştir. Ayarlanan sıcaklık değeri ESP8266'nın flash hafızasında saklanmıştır. Olası bağlantı kopmaları veya elektrik kesintilerinden sonra flash hafızadaki dosya okunarak alınan sıcaklık bilgisine göre ısıtıcı kontrol edilmiştir. ESP8266 mikrodenetleyicisinin flash hafızası SPI seri haberleşme protokolünü kullandığından SPIFSS kütüphanesi kullanılmıştır. Arduino IDE yazılımında kodlama yapılmıştır. Web sayfası için HTML kodları kullanılmıştır. İnternette ücretsiz çevrimiçi HTML editörlerinden yararlanılabilir. 

Windows cmd komut satırında ipconfig programı kullanılarak ağ geçidi, alt ağ maskesi bilgileri öğrenilebilir. Buna göre ESP8266 için IP adres belirlenir. İnternet üzerinden ESP8266'ya ulaşılmak istenirse modem arayüzüne girilerek port açma/yönlendirme işlemi yapılmalıdır. Başka bir deyişle ESP8266 için kod içerisinde tanımlanan IP adresi için port açma/yönlendirme işlemi yapılmalıdır. Port numarası olarak http için ayrılan port numarası 80 kullanılmalıdır. Bu işlemden sonra farklı ağlar üzerinden web tarayıcıdan ISP (internet servis sağlayıcı) tarafından modeme atanan genel IP adresiyle istek yapılırsa ESP8266'ya yönlendirme yapılır. Kodda tanımlanan "Ayarlı Termostat Uyg" başlıklı web sayfasına ulaşılarak istenen kontrol yapılabilir. Modem arayüzünden port açma/yönlendirme işlemi yapılmazsa ESP8266'nın bağlandığı aynı kablosuz ağa bağlanan cihazlar üzerinden kontrol sağlanabilir.

Görsel 1.1: Modem port açma/yönlendirme

Uygulamanın anasayfa(), sicaklikGonder() ve sayfa_bulunamadi() fonksiyonları çalıştırıldığında web tarayıcıdaki çıktıları aşağıda verilmiştir. Programdaki kod açıklamaları yorum satırlarıyla yapılmıştır. Uygulamaya ait kodun indirme bağlantısı aşağıda verilmiştir. 

Görsel 1.2: anasayfa() fonksiyonunun web tarayıcı çıktısı (genel IP adresiyle erişim)

Görsel 1.3: anasayfa() fonksiyonunun web tarayıcı çıktısı (yerel IP adresiyle erişim)

Görsel 1.4: sicaklikGonder() fonksiyonunun web tarayıcı çıktısı (yerel IP adresiyle erişim)

Görsel 1.5: sayfa_bulunamadi() fonksiyonunun web tarayıcı çıktısı (yerel IP adresiyle erişim)

Uygulamaya Ait Şema, Bağlantı Şekli ve Görseller

Görsel 1.6: NodeMCU V3 ESP8266 ESP-12E ile internet üzerinden ayarlı termostat uygulaması devre şeması

Görsel 1.7: NodeMCU V3 ESP8266 ESP-12E ile internet üzerinden ayarlı termostat uygulaması devre şeması (KiCad 7.06 ile çizilmiştir)

Görsel 1.8: NodeMCU V3 ESP8266 ESP-12E ile internet üzerinden ayarlı termostat uygulaması breadboard bağlantısı

Malzeme Listesi

Sıra No

Adı

Özelliği

Miktarı

1

NodeMCU V3

ESP8266 ESP-12E

1 Adet

2

LM35 sıcaklık sensörü

-

1 Adet

3

Transistör

BC337

1 Adet

4

Diyot

1N4004

1 Adet

5

Direnç

1k / ¼ W

1 Adet

6

Kondansatör

100nF

1 Adet

7

Röle

DC 5V SPDT

1 Adet

8

Isıtıcı rezistans

220V

1 Adet

9

Fiş

220V

1 Adet

10

Breadboard

830 pin

1 Adet

11

Jumper kablo

Erkek-erkek

-

 

Uygulamaya Ait Kod

Kodu bu bağlantıya tıklayarak indirebilirsiniz. 

INTERNET_AYARLI_TERMOSTAT_UYG.zip (3.18kB)

Bu internet sitesi içeriğinde yer alan tüm eserler (yazı, resim, görüntü, fotoğraf, video, müzik vb.) İlhan DEMİR'e ait olup, 5846 sayılı Fikir ve Sanat Eserleri Kanunu ve 5237 sayılı Türk Ceza Kanunu kapsamında korunmaktadır. Bu hakları ihlal eden kişiler, 5846 sayılı Fikir ve Sanat eserleri Kanunu ve 5237 sayılı Türk Ceza Kanununda yer alan hukuki ve cezai yaptırımlara tabi olurlar. İlhan DEMİR, yasal işlem başlatma hakkına sahiptir.

BİR CEVAP YAZ

E-posta hesabınız yayımlanmayacak. Doldurulması zorunlu alanlar işaretlendi *