IoT Macerası 2. Bölüm — ESP8266 + Wifi Röle Modül + Lamba + Home Asistant on Raspberry Pi 2

EngHfz
6 min readApr 27, 2021

Uzunca bir süredir IoT ile uğraşmak konusunda vakit bulamamıştım. Stresten uzaklaşmak için, kafayı dağıtmak için bence “IoT” konuları birebir. Hele birde çalışan bir proje ortaya çıkarsa tadından yenmez, vazgeçilmez. İnternette bu konuda oldukça fazla bilgi var. Bu yazıdan da faydalananlar olabilirse ne mutlu bana!!!

Gelelim ne yapmaya çalışacağımıza. Bu bölümümüzde ESP8266 Modülü kullanarak bir masa lambasını kendi ağımız üzerinden, “Homeassistant” uygulamasını da kullanarak nasıl kapatıp açabileceğimizi anlatmaya çalışacağım.

Raspberry Pi 2 üzerinde çalışan bir HomeAssistant uygulaması örneği bulamadım. Önceden aldığım Pi2 olduğu için bunu kullanayım istedim. Önerilen Pi3 yada Pi4 ama denemekten zarar gelmez deyip işe koyuldum. Çalışması sıkıntılı değil, bir yavaşlık sezmedim, en azından ilk izlenimimim bu yönde.

Kullanacağımız ekipmanlar:
1) Raspberry Pi2 (HomeAssistant kuracağız) + Micro SD Card (32GB Application Class 2 önerilen)

Raspberry Pi2

2) ESP8266

ESP8266 Wifi Modülümüz

3) Esp8266'ya kod atmak için USB Bağlantı Adaptörü (Zorunlu değil kolay olsun diye kullandım. Arduino da kullanılabilir. Bu arada yazının devamında arkadan çıkan kabloları açıklayacağım)

ESP8266 USB Bağlantı Adaptörü

4) ESP8266 Wifi Röle Modül

ESP8266 Wifi Röle Modül

5) Bir masa lambası. Bunun görseli tamamen size kalmış ;-)

Şimdi işimize Raspberry Pi 2 üzerine HomeAssistant kurulumu ile başlayalım. Öncelikle HomeAssistant kurulum dosyalarını indirmemiz lazım.

Buradaki sitede, size sadece RPi3 ve RPi4 için linkler gösteriyor. İnanmayın :)

İşimize koyulalım artık…

RPi2 için indireceğimiz dosyamızı micro sd kartımıza yazdırabilmek için balenaEtcher programını kullanacağız. İşletim sisteminize uygun olanı seçerek indirin.

Sonrasında https://github.com/home-assistant/operating-system/releases/ linkine tıklıyoruz. Bu yazı zamanında stable versiyon 5.13 idi. hassos_rpi2–5.13.img.xz dosyasını indiriyoruz.

Sonrasında balenaEtcher uygulamamızı açıp micro sd kartımızı seçip Flash işlemini gerçekleştiriyoruz. Bu aşamayı çok anlatmıyorum zaten oldukça basit bir işlem. (Flash from file kısmına hassos_rpi2–5.13.img.xz dosyamızı seçiyoruz. Select Target kısmında MicrosSD kartımızı. Sonrası Flash!!!)

Bu işlem biraz sürüyor.

İşlem bittikten sonra microSD kartımızı RPi2 içine yerleştirip cihaza elektriği veriyoruz. Bu arada Rpi2 de bildiğiniz üzere yerleşik bir WiFi modülü yok. Bu nedenle ben direk ethernet üzerinden bağladım ev ağına.

Raspberry Pi2

Bu aşamadan sonra biraz sabır. Bende önce HomeAssistant hiç açılmadı. Sonra kartı çıkarıp tekrar yükledim. Yükleme işlemi sonrası uygulama http://homeassistant.local:8123/ linkinden açılıyor. Yaklaşık 20–30 dakika arası bekledim. (RPi2 yavaş olduğu içinde olabilir) Aşağıdaki hazırlanma ekrandan sonra beni giriş ekranı karşıladı. Girişte sizden kullanıcı adı, şifre oluşturma vs işlemleri istiyor.

Uygulamaya giriş yaptıktan sonra solda Supervisor linki göreceksiniz. Ona tıklayıp açılan ekranda Add-on Store tıklıyoruz. İlk olarak File Editor yüklüyoruz.

Sonrasında ise asıl işimiz olan EspHome Add-On yüklüyoruz.

ESPHome

Add-On yüklendiğinde “Show in Sidebar” derseniz sol barda görünür hale gelecektir.

ESPHome menüsüne tıklıyoruz. Açılan sayfada artı ( + ) işaretine tıklıyoruz.

“Node Name” alanını küçük harflerle ve boşluksuz olarak yazıyoruz.

Device type kısmında bu örnekte esp8266 kullanacağımız için “Generic ESP8266” seçiyoruz. Sonrası “Next”

Bu aşamada hangi ağa bağlanacak isek o ağın adı (Wifi SSID) ve şifresini (WiFi Password) giriyoruz. OTA Acces Password uygulamaya giriş için şifre isterseniz vereceğiniz bir şey. Bir şey yazmayabilirsiniz. Gene “Next”.

Sonra “Submit” diyoruz.

Bu bize bir YAML dosyası oluşturuyor.

İlgili dosyamızı şimdi düzenleyeceğiz. Bunun için “EDIT”e tıklıyoruz.

Şimdi asıl olay burada başlayacak. Standart oluşan koda ben aşağıdaki gibi ekler yaptım. Wifi alanına ESP8266 sabit bir IP alsın diye aşağıdaki kodu ekledim.

manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.1.150
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.1.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0

Sonrasında ESP8266 içindeki hangi PIN açma kapama işini yapacak söyleyebilmek için bir Switch eklemek durumundayız. Benim kullandığım ESP8266 Wifi Röle Modülü GPIO0 pinini kullandığı için, kodu aşağıdaki gibi yazdım.

switch:
— platform: gpio
name: “Çalışma Odası Lamba”
pin: GPIO0

YAML dosyamız içindeki kodumuzun nihai halini buradanda inceleyebilirsiniz.

“SAVE” butonu ile kodu kaydedip kapatıyoruz. Sonrasında “VALIDATE” ile kod içinde bir yanlışlık var ise o kontrol edilebilir.

Buradan sonraki işimiz ilgili yaml dosyamızı “Compile” edip ESP8266 içine atacağımız BIN dosyamızı oluşturmak.

Bu işlem ilk seferinde biraz uzun sürebilir. Başarı ile Compile işlemi olduğunda “Download Binary” aktif olacaktır. Buna basıp dosyamızı indiriyoruz.

İnen BIN uzantılı dosyamızı ESP8266 içine atmak için ESPHome Flasher uygulamasını yüklememiz lazım.

Github sayfasından işletim sistemimize uygun olanı indiriyoruz.

Şimdi gelelim başta bahsettiğim USB bağlantı adaptöründeki kablolara. Bu arada lehim konusu benim için tam bir muamma. Çok iyi beceremiyorum. Aramızda ustalar vardır saygısızlık olmasın. Görüntüsü çok temiz değil ama benim işimi gördü.

Bildiğiniz üzere ESP8266 içine kod atabilmek için GPIO0 pinini GND’ye çekmek gerekiyor. Bu kablolardan biri GPIO0 pinine diğeride GND’ye bağlı. İçine kod atarken kabloları birleştirip, kod atılması için uygun olan moda girmesini sağlıyoruz.

Laptopa bağlanmış hali bu şekilde.

Şimdi ESPHome Flasher uygulamamızı açıyoruz. Serial port alanını kontrol ediyoruz. BIN dosyamızı “Firmware” içinde seçiyoruz. View Logs açıyoruz. Ve Flash ESP butonuna basıyoruz.

Done! Flashing is Complete! dediğinde işlem tamam :-)

Bundan sonraki işlemimiz şu. İçine kod attığımız ESP8266'yı Rölemize takmak. Röle 5V ile çalışıyor. Masa lambamıza takmadan önce açıp kapatma işlemimiz ve kodumuzda hata olup olmadığını anlayabilmek için deneme yapalım. Ben Arduino Nano dan röleye 5V bir kablolama yaptım. Kırmızı kablo 5V, Turuncu Kablo GND’ye bağlı.

Arduino Nano + ESP8266 Wifi Röle Modül

Bu aşamada ESP8266 başarılı bir şekilde bağlanırsa HomeAssistant içinde yazdığımız kod Yeşile dönüyor. Bu ESP8266 ile HomeAssistant uygulamamız konuşuyor demektir.

Notifications alanında New Devices discovered uyarısı alacaksınız. Check It Out diyoruz.

Aşağıdaki ekrana Configuration > Integrations ilede ulaşabilirsiniz. Sonrasında açılan ekranda ESPHome başlığı altında “Configure” butonuna basıyoruz.

Submit butonuna basıyoruz.

OTA kısmında girdiğimiz şifre (girmişsek) burada karşımıza çıkacak.

Hangi area içine ekleyeceksek onu seçiyoruz.

Ve “Overview” alanına geliyor.

Test edelim.

Buda canlı videosu:

--

--