Een apparaatje bouwen met een ESP8266

In eerdere blogs ben ik al eens ingegaan op het koppelen van sensoren aan Domoticz.Tot nu toe ging dat steeds over sensoren die gebruik maken van een radiosignaal op de 433 Mhz frequentie. Het is echter ook mogelijk om voor heel weinig geld eigen apparaatjes te bouwen die sensorwaarden doorgeven via Wifi. Logischerwijs is onderstaande dus alleen uit te voeren als je beschikt over een Wifi netwerk :-).
De ESP8266
Hart van een nieuw te bouwen apparaatje is de ESP8266. Dit is een IoT printje met een Wifi chip en een microcontroller. Deze ESP8266 is in diverse grootten en gedaanten op de markt verschenen, ook vaak aangeduid met de term NodeMCU, die eigenlijk slaat op de firmware die erop (kan) draaien. Van dit soort minibordjes (waarbij vergeleken een Raspberry Pi een reus is) zijn er allerlei soorten en ze zijn allemaal erg goedkoop.

Simpel, uitgebreid en goedkoop is een NodeMCU V3, die voor een paar Euro te koop is. Dit printje is niet groot (5,5 x 3 cm), heeft veel poorten en alle pootjes zitten er al aan gesoldeerd. Echt een printje voor beginners. Er zijn nog allerlei andere varianten die de ESP8266 gebruiken, maar in dezo blog beperk ik me tot deze NodeMCU V3.
Firmware
Op zo’n printje kan ook nog eens een scala aan firmware worden geflasht, want de ESP8266 is erg populair. Omdat deze blog bedoeld is voor beginners maak ik gebruik van ESPEasy, een eenvoudige, kostenloze firmware van Nederlandse herkomst met een duidelijke webinterface. Ondanks het gemak is deze firmware toch heel veelzijdig.
ESPEasy flashen
Het eerste dat we gaan doen (nadat eventueel pootjes op de ESP8266 variant zijn gesoldeerd) is het flashen van de ESPEasy firmware.
De beschrijving hieronder is voor een computer die draait onder Windows. Onder Linux of MacOS kan gebruik worden gemaakt van ESPTool.py.
Het flashen
Download de software en pak het zip-bestand uit in een directory naar keuze. Koppel de ESP8266 met een micro-USB kabel aan je computer. Neem hiervoor een kwalitatief goede kabel, om problemen tijdens het flashen te voorkomen. De ESP8266 wordt aan de pc gekoppeld als com-poort. Kijk in Device Manager (Apparatenbeheer) van Windows welke COM poort in gebruik is genomen door de ESP8266. Dit is meestal het hoogste nummer (in dit voorbeeld COM7). De aanduiding CH340 zal bij de gezochte poort staan.

Zoek in de directory waarin het zipbestand is uitgepakt naar de drie .bin bestanden. De naam van deze bin-bestanden geeft de relase aan en het beschikbare geheugen. De meest gangbare versies van de ESP8266 (zoals degenen die ik boven heb beschreven) hebben 4096 KB geheugen.

Start de flashtool flash.cmd. Deze wil drie dingen weten: COM-poort (3), geheugen (4096) en revisie (120). Daarna wordt de ESP8266 geflasht.
Zodra het flashen is geëindigd verbreek je de verbinding met de computer. De ESP8266 moet daarna opnieuw aan een stroombron worden gekoppeld, maar dat hoeft niet de pc te zijn.
Wifi webserver
Wanneer het flashen is gelukt en de ESP8266 krijgt weer stroom, dan gaat hij zich gedragen als webserver. Op dit moment kan je alleen verbinden via Wifi.

Zoek naar Wifi SSID ESP_0. Als je daarmee verbindt en een webserver opent kom je automatisch bij 192.168.4.1/setup. Kies nu je eigen wifi SSD, voer je password in en druk Connect. De ESP8266 maakt nu contact met je wifi en krijgt van de DHCP server een IP-adres. Dit adres wordt getoond en je kunt nu via je browser verbinden met de ESP8266.
Koppelen aan Domoticz
Om de ESP8266 aan Domoticz te koppelen maak je eerst nieuwe hardware aan. Kies in Setup voor Hardware en kies onderaan het scherm voor het type Dummy. Geef hem een logische naam (Bijvoorbeeld ESP8266-1) en voeg hem toe. Zoek hem op in de lijst en druk op Create Virtual Sensors.

Geef de sensor ook een logische naam en kies het type sensor in de lijst. Ik ga een sensor toevoegen die temperatuur en luchtvochtigheid doorgeeft (Temp+Hum).

Druk op OK en ga nu naar de lijst met Devices (in menu Setup). Zoek het nieuw aangemaakte Device op en noteer de Idx. In dit voorbeeld is dat 215.

De sensor
De sensor die we gaan koppelen is van het type DHT22. Deze geeft redelijk betrouwbare waarden door van temperatuur en luchtvochtigheid. Het goedkoopst is het om een ‘kale’ sensor te gebruiken. Naast de sensor zelf is dan nog een weerstand van 4.7k Ohm nodig.

Je kunt ook kiezen voor een kant-en-klare sensor voor de Arduino, die maar een paar cent meer kost. Die zijn al voorzien van een pull-up weerstand en een LEDje dat aangeeft dat de sensor het doet.

Verbindt het pootje met GND met de groundpin van de ESP8266, de VCC met de 3.3v pen en de DAT pen met één van de Datapennen, bijvoorbeeld de D5, deze pen correspondeert met datapoort GPIO-14.
De ESP Easy interface
Verbindt met de ESP8266 door zijn IP-adres in te voeren in je browser en de interface verschijnt:

Commentaar