ESP8266 tabanlı WiFi controller
Bu benim ilk yayınım olacak, hadi deneyelim bakalım.
Eğer postam Türkçe ise , olabildiğince İngilizce terimlerden kaçınıyorum, zira ne idüğü belirsiz bir dil kullanmaktan nefret ediyorum. Buna rağmen, yeni öğrenmekte olduğum blog tekniği, anahtar kelimeler, arama motorlarının kriterleri vb derken zorunlu olarak öteye beriye İngilizce kelimeler katmak zorunda kaldığımı gördüm. Postayı yazarken sürekli izleyen SEO diye bir araç var neyin nesiyse, sürekli uyarıyor birşeyleri düzeltmem için. Ben de sözünü dinliyorum dolayısı ile. Zamanla bu sorunu aşacağımı sanıyorum.
Kablosuz, yani radyo kontrollu oyuncaklar yapmak her zaman ilgimi çekmiştir. Yıllar içinde bahçe-garaj kapısı kumandaları, uzaktan kumandalı lamba/priz kontrolunda kullanılan 433Mhz/768Mhz cihazlardan başlayıp, Nordic’in NRF24L01 2.4Ghz yongalarına, oradan da Espressif’in ESP yongalarına kadar epeyi bir şeylerle oynadım.
Burada üç beş yıl önce deneyip, son günlerde yeni yaptığım PCB üzerine temize çektiğim bir ESP8266 tabanlı kablosuz modülü yayınlıyorum. Bu iki aşamalı bir projenin ilk bölümü. Donanım olarak pek matah birşey değil ama içindeki WEB arayüzünde epeyi geliştirme emeği var. (Çok sayfalı ama hafif bir html, Java scriptler filan…)
GUNCELLEME Mayıs 2020 :
Artık hayat daha kolay,
- ESPAsyncWebServer paketlerini kullanarak bir asenkron WEB sitesi yarattım,
- SPIFFS (SPI Flash File System) araçları ile html sayfalarını ve CSS dosyasını Flash üzerinde ayrı yerlere koydum,
- FontAwesome sitesinin grafik unsurlarını kullandım
Bunları yapınca kod çok sadeleşti, Arduino aleminin kaçınılmaz cazibesine kapıldım anlayacağınız, hazır birşeyler alıp kullandım. Olsun, önce kendim yapmıştım zaten, istersem gene yaparım !
Aşağıdaki ekran görüntüleri yeni duruma ait:
Bu sayfada kontrol bölgelerinden birisindeki 3 adet röle kontrol edilip güncel durumları ile sıcaklık sensörü okuması görüntüleniyor
Aslında ESP yi bugünlerde yeniden ele almamın sebebi geliştirdiğim masa üstü CNC oyuncağımı bir baskılı devre plaketi yapımında kullanma denemesi. Bu basit plaket bu deneme için uygun bir aday olarak göründü gözüme. Sözünü ettiğim CNC ile bu CNC de PCB yapımı da başka postaların konuları olacak.
CNC den çıkan PCB gayet güzel oldu ama ardından kenarlarını düzgün kesmeyi beceremedim. Bir dahakine kenarları da CNC de kesmek lazım.
Bu projenin ikinci aşamasını oluşturan bir devamı var ama ona da sıra gelecek. Şu anda cihaz sadece WiFi bağlantısı kurup WEB sayfasını görüntülüyor, komut alıp geri dönüş yapıyor. Ama aldığı komutları alıp işleyecek kısım henüz bağlı olmadığından, uygulamaya koyamıyor.
Daha önce geliştirdiğim ethernet kablolu WEB arayüzlü STM32 tabanlı kontrol cihazını kablosuz hale getirme projesinin ikinci adımı diyelim. Yani bakış açısına göre, önce bunu yayınladığım için ilk adım, ama kronolojik sırada ikinci adım oluyor. Bu lüzumsuz adımlar açıklamasından sonra asıl konuya devam edelim.
Bu postada yer alan kısmında STM32 li bölüm yok. O bölüm ESP8266 dan gelen komutlara göre röleleri kontrol edip sensörleri okuyacak, rölelerin güncel konumları ile okuduğu sensör değerlerini de ESP8266 ya geri gönderecek. ESP8266 bu bilgileri WEB sayfasına koyarak yayınlayacak ve orada kullanıcıdan gelecek yeni komutları bekleyecek.
Bu da karşılama sayfası
İşte buradaki hali ile bu işin ESP8266 ve WEB -WiFi Controller- sayfası kısmı hazır. WEB erişimi şu an için aynı dahili network üzerinde isek mümkün. Dışarıdan erişime imkan sağlayan, hem de çok daha albenili WEB arayüzleri sunan bulut servislerini kullanmaktan pek hoşlaşmıyorum. Hani bağımsızlık aşkı, birilerinin fişimi çekebilme ihtimali rahatsız eder beni. Ama öylesini de yaptım, elim değdiğinde onları da yayınlarım.
WiFi controller’in bu modelinde, 4 kontrol bölgesi var. Her bir bölgede elektrikli cihazları WEB sayfasındaki düğmelerle açıp kapamaya yönelik 4 er adet röle olabiliyor. Her bir bölgede sıcaklık, nem ve prizlerden çekilen gücü gösteren analog sensör göstergeleri var. Her bir bölgede dörder adet açık/kapalı digital kontak sensörlerin durumu görüntülenebiliyor. Bu sensörlerin en son ne zaman konum değiştirdiğine ilişkin tarih ve zaman bilgileri de görüntüleniyor.
Güncelleme Mayıs 2020 : Yeni sürüm ile bölge sayısı, bu bölgelerde bulunabilecek röle ve sensör sayıları, tipleri vb. kısıtlamaları kalktı. İstediğim gibi arttırıp azaltabiliyorum. Daha önce WEB sayfalarının boyutları sıkıntı çıkartıyordu.
Bir de istenen sensör değerlerine ayarlanabilen otomatik aç-kapa kontrolları var, sensörden gelen veri belli limitlere ulaştığında belirli röleleri açıp kapayabiliyor.
Bunun devamı olacak olan STM32 li kontrol bölümünü entegre ettiğimde yeni bir postanın konusu olacak.
Bir başka ihtimal de işe hiç STM32 yi sokmayıp, ESP8266 yerine ESP32 kullanarak devam etmek, ama elimde bir sürü STM32 ve ESP8266 var, onlar da bir işe yarasın diyorum. Hem de STM32 de zamanında bu fonksiyona yönelik olarak geliştirdiğim epeyi yazılım var. STM32 de yaptığım bir sürü başka şey de var, onların WiFi yetenekleri kazanması hoş şeyler ortaya çıkartabilir. Göreceğiz bakalım.