Een Stekker van de Action voorzien van ESP-EASY

Bij de Action, een keten van winkels die vooral uitblinken in de verkoop van goedkope Chinese dingetjes, verkopen ze sinds een tijdje allerlei spullen die het kenmerk ‘Smart’ hebben.

Deze spullen zijn goedkoop en handig, maar ze hebben één groot nadeel: ze ’telefoneren’ allemaal naar China, via het Tuya-platform, om aan te geven dat jij het licht aandoet of je stekker inschakelt. En aangezien ik daar niet van houd en ik bovendien mijn domotica liever zelf beheer, besloot ik te proberen of ik zo’n goedkope stekker van ESP-Easy kon voorzien.

Mensen die mijn eerdere blogs hebben gelezen weten dat ik graag werk met een ESP8266 en dat ik die sensors koppel aan Domoticz. Het is overigens ook een hele kleine moeite om die sensors te koppelen aan Home Assistant, een ander domotica-platform, dat ook heel veel wordt gebruikt.

Nou wil het dat de genoemde stekkers een versie van de ESP8266 bevatten, die met wat goede wil te programmeren is door er een paar draadjes aan te solderen. Ik ga laten zien hoe dat moet, maar je dient dus te beschikken over een soldeerbout met een fijne punt en niet bang te zijn voor wat simpel soldeerwerk. En, o ja, een vaste hand is ook wel makkelijk. Daarnaast hebben we iets nodig om de ESP mee te programmeren, zoals deze.

Openmaken van de stekker

De stekker gaat wat moeilijk open. Maak de 2 schroefjes aan de achterzijde los en steek een schroevendraaier tussen de twee stekkerdelen. Wip hiermee de twee delen los van elkaar.

De ESP8266 is het lichtgroene vierkantje dat recht op de hoofdprint staat. De te solderen contactpunten bevinden zich onder de hoofdprint. De ruimte daar is erg krap, dus het is verstandig om hier voorzichtig een schroevendraaier of iets dergelijks tussen te zetten. De puntjes die we moeten solderen zijn op de print gemarkeerd als 3V3, GND, RX en TX.

Solderen van de stekker

De foto hierboven is nogal onduidelijk helaas, maar daarop zie je het stukje van de ESP8266 dat onder de hoofdprint uitkomt.
Soldeer nu 4 draadjes op de genoemde punten. Als je dit voorzichtig doet, dan is het met een fijne soldeerbout best te doen.

Draden programmeermodus

Als de draadjes zitten is het ergste voorbij. Er moet nu nog een draad worden gesoldeerd tussen twee punten op het bovenste gedeelte van de print, om de ESP8266 straks in programmeermodus te zetten. Soldeer daartoe een draad tussen GND aan de rechterkant en IO0 links van het midden.

Programmeren van de stekker

Het is nu tijd om de ESP-programmer aan te sluiten. Hier zijn diverse oplossingen voor, ik prefereer een eenvoudige CH340G Serial converter, die een USB poort omzet naar een 6pins TTL verbinding. In Nederland bijvoorbeeld snel hier te bestellen, of bij AliExpress voor heel weinig.
BELANGRIJK: de ESP8266 heeft 3,3 volt nodig. Zorg ervoor dat de programmer op het juiste voltage staat. De meeste zijn om te schakelen tussen 3,3 volt en 5 volt.

Sluit de 3V3 van de ESP aan op VCC van de programmer, GND aan GND, de RX van de ESP aan de TXD van de programmer en de TX van de ESP aan de RXD van de programmer. Sluit de programmer nu aan op je computer.

In een van mijn eerdere blogs staat beschreven waar je de ESP Easy software kunt vinden en hoe je die moet programmeren.
BELANGRIJK: Wanneer het flashen is gelukt, haal je de ESP8266 los van de programmer en verwijder je de extra draad tussen IO0 en GND. Doe dit direct na het flashen, voordat je de ESP gaat proberen!

Om er nu zeker van te zijn dat alles is gelukt sluit je de ESP weer aan via de programmer op de computer. Omdat de draad is losgesoldeerd dient deze verbinding nu alleen nog om de ESP van stroom te voorzien. Ga nu verder met hetgeen in de andere blog staat beschreven en koppel de ESP aan je Wifi-netwerk.

Is alles goed verlopen dan kan je nu de stekker losmaken van de programmer, de draadjes desolderen en de stekker weer in elkaar zetten. Als je hem daarna in het stopcontact steekt, dan moet ESP Easy weer te vinden zijn.

Bedienen van de stekker

Koppel ESP Easy aan Domoticz, zoals eerder beschreven aan het begin deze blog onder het kopje ‘koppelen aan Domoticz’. Maak ook in Domoticz dummy hardware aan zoals daar wordt beschreven.
Stel nu in de stekker 2 schakelaars in in het onderdeel Devices:

Vink daarna Rules aan onder Tools / Advanced:

En voer dan bij Rules de volgende regels in en druk op Save:

on Knop#State do
  if [Knop#State] = 1
    gpio,12,1
    gpio,4,0
  else
    gpio,12,0
    gpio,4,1
endon
on Relais#State do
  if [Relais#State] = 1
    gpio,4,0
  else
    gpio,4,1
endon

Zoek de schakelaar nu op in Domoticz en kies ‘aanpassen’. Onderstaand scherm verschijnt:

Wat we nu moeten toevoegen zijn de commando’s die Domoticz moet versturen naar de stekker via de wifi. Je hebt hiervoor het wifi-adres nodig dat wordt gebruikt door de stekker. In mijn geval is dat 10.10.10.180. Stel dan in bij Aan actie

http://10.10.10.180/control?cmd=GPIO,12,1

en bij Uit actie

http://10.10.10.180/control?cmd=GPIO,12,0

en sla dit op met de knop Opslaan.

Wanneer je nu in Domoticz de schakelaar bedient zal deze ook in het echt worden bediend. Andersom zal de status van de schakelaar in Domoticz worden weergegeven wanneer je hem met de hand bedient.

Sensoren via Wifi koppelen aan Domoticz – Deel 3

Na de vorige blog uit deze reeks is het hopelijk gelukt om een ESP8266 aan te praat te krijgen via wifi. Mijn ervaring is dat het grote voldoening geeft als het ‘eindelijk’ is gelukt. Toen ik zelf mijn eerste ESP8266 in mijn netwerk zag verschijnen was dat echt even een *YES* momentje…

In deze blog gaan we de ESP8266, die ik voor het gemak weer D1 zal noemen, koppelen aan Domoticz en we gaan er een temperatuursensor aan hangen.

Koppelen aan Domoticz

Nadat de D1 draait in het wifi netwerk is het tijd om hem te gaan koppelen aan Domoticz. Je dient daarvoor te weten op welk IP-adres Domoticz draait en op welke poort. Dat is heel gemakkelijk af te leiden uit het adres dat je opgeeft bij het starten van Domoticz.
Ik geef op http://192.168.178.5:8085, waarmee direct duidelijk is dat het adres 192.168.178.5 moet zijn en de poort 8085. Geef je geen poort op, dan is het 8080.
Druk op het tabblad Controllers in de web-interface van de D1.
Kies bij Protocol voor Domoticz HTTP. Vul daarna je IP-adres en poort in, kruis Enabled aan en druk op Submit.Je hebt nu de D1 aan Domoticz gekoppeld.
Alleen weet Domoticz dat zelf nog niet. Ga daarom naar de web-interface van Domoticz en kies rechtsboven in het menu Setup voor Hardware. Voeg nu hardware toe van het type Dummy en geef het een logische naam. Ik gebruik daarvoor altijd dezelfde naam als die ik de D1 heb gegeven:Vergeet niet Enabled aan te kruisen en voeg de hardware toe met de knop Add.
Het enige wat we nu nog moeten doen is het creëren van een virtuele sensor, maar dat komt zo.

Een temperatuur sensor

Eén van de makkelijkste sensoren  die je op deze manier kunt koppelen is een temperatuursensor. Er zijn een aantal verschillende typen in omloop die naast temperatuur vaak ook nog luchtdruk of luchtvochtigheid meten.

Een handige sensor is de DHT22. Deze meet temperatuur en luchtvochtigheid en is voor rond de 2 Euro te koop bij aliexpress.com.

Behalve de sensor hebben we nog een weerstand van 4,7 K Ohm nodig en 3 draden om de sensor met de D1 te verbinden.
Het schema dat aangeeft hoe te verbinden ziet er als volgt uit:

Een virtuele sensor in Domoticz

Om Domoticz daadwerkelijk aan deze sensor te koppelen moeten we een (virtuele) sensor toevoegen aan de hierboven gemaakte hardware. Druk daartoe op de knop Create Virtual Sensors achter de D1 in de hardwarelijst van Domoticz:

Kies voor sensortype Temp+Hum en geef hem een logische naam.Het enige dat nu nog moet gebeuren is het opzoeken van het indexnummer van onze nieuwe virtuele sensor in Domoticz. Ga hiertoe in het menu Setup naar Devices. Ergens in die lijst (waarschijnlijk bijna bovenaan) bevindt zich onze nieuwe virtuele sensor. Schrijf het nummer op dat zich in de kolom Idx bevindt (hier dus 268):

Het activeren van de sensor

Ga nu in de webinterface van de D1 naar het tabblad Devices:Druk op de bovenste Edit knop om een nieuw Device toe te voegen:

Kies in de lijst van Devices voor Environment DHT11/12/22.
Daarna kunnen de gegevens worden ingevuld:Voer een naam in en zet een vinkje bij Enabled.
Onder Sensor moet de waarde van 1st GPIO corresponderen met de gekozen poort (D3, standaard). Bij DHT Type wordt gekozen voor een DHT 22.
Onder Data Acquisition wordt een vinkje gezet bij Send to Controller 1 en bij IDX wordt de eerder opgeschreven index uit Domoticz ingevuld (hier 268).
Tenslotte wordt bij Delay ingevuld om de hoeveel tijd een waarde naar Domoticz moet worden gestuurd. Ik kies bij temperatuur altijd voor 60 seconden.

Druk daarna op Submit. Als je nu opnieuw op de tab Devices klikt is je sensor toegevoegd. Na een tijdje zullen de waarden voor temperatuur en vochtigheid achteraan in de kolom verschijnen. Vernieuw hiervoor wel steeds de pagina in de webinterface! Gebeurt dat na enkele minuten nog niet, dan is de sensor waarschijnlijk verkeerd aangesloten.

Sensorwaarden in Domoticz

Als we nu naar Domoticz gaan en op de pagina Temperature kijken, dan is onze nieuwe sensor daar te zien, inclusief doorgegeven waarden:

Tot zover de serie blogs over het aansluiten van een sensor aan Domoticz via wifi.
Op dezelfde manier kunnen ook andere sensors worden toegevoegd. De D1 heeft nog veel meer poorten. Misschien schrijf ik daar nog wel eens over in een toekomstige blog.

Save

Save

Save

Save

Save

Save

Sensoren via Wifi koppelen aan Domoticz – Deel 2

In deel 1 van deze serie blogs ben ik ingegaan op de verschillende soorten en verschijningsvormen van de ESP8266, het IoT minibordje waarmee gemakkelijk sensors aan Domoticz kunnen worden gekoppeld.

Gereedmaken van de hardware

In deze blogs ga ik gebruikmaken van de Wemos D1 mini (hier kortweg D1 genoemd). Deze variant op de ESP8266 is klein en erg veelzijdig, zoals ik in deel 1 van deze blog heb besproken. Het enige nadeel: de pootjes moeten er nog aan worden gesoldeerd. Zie je daar tegenop, gebruik dan de ook besproken NodeMCU V3.

Solderen

Het gemakkelijkst soldeer je zo’n printje door gebruik te maken van een simpel breadboard zoals die overal te koop zijn, bijvoorbeeld bij AliExpress.com voor een Euro. Steek de pootjes in het breadboard:

Leg daarna de D1 erop:

En soldeer de pootjes vast met een soldeerbout met een kleine punt. Solderen door de bout tegen het pootje te houden en daarna pas de soldeer tegen de bout te duwen, zodat deze netjes als een ‘bergje’ op de verbinding vloeit. Het is makkelijker dan het lijkt.

Firmware

Om met de D1 te kunnen werken moet deze voorzien worden van firmware. Op het internet is een scala aan firmware te vinden voor de EPS8266, want deze is erg populair. Omdat deze blog bedoeld is voor beginners maak ik gebruik van ESPEasy, een heel eenvoudige firmware van Nederlandse herkomst met een duidelijke webinterface. Ondanks het gebruiksgemak is deze firmware toch heel veelzijdig.

ESPEasy flashen

De beschrijving hieronder is voor een computer die draait onder Windows. Onder Linux of MacOS kan gebruik worden gemaakt van ESPTool.py. De beschrijving hoe dat gaat vind je hier.

Het flashen

  • De software waarmee de D1 wordt geflasht wordt gedownload vanaf de site van ESP-Easy. Op het moment van schrijven is de versie 1.20 de standaard en is versie 2.0 nog in ontwikkeling. Mijn ervaring is dat je die laatste gerust kunt gebruiken. Download versie 2.0 hier en pak het zip-bestand uit in een directory naar keuze.
  • Koppel de D1 met een micro-USB kabel aan je computer.
    Neem hiervoor een kwalitatief goede kabel, om problemen tijdens het flashen te voorkomen.
  • In Windows 8 en hoger wordt de D1 normaal gesproken herkend en worden de drivers automatisch geladen. Is dat niet het geval, dan kan je hier de juiste USB-drivers dowloaden en dan installeren. Daarna zou het herkennen wel moeten lukken.
  • De D1 wordt aan de pc gekoppeld als com-poort. Kijk in Device Manager (Apparatenbeheer) van Windows welke COM poort in gebruik is genomen door de D1. Dit is meestal het hoogste nummer (in dit voorbeeld COM3). De aanduiding CH340 zal bij de gezochte poort staan.
  • Zoek in de directory waarin de ESPEasy software is uitgepakt naar FlashESP8266.exe en start dit programma.
    Kies bij COM-Port de opgezochte poort (zie boven) en kies bij Firmware voor de versie waarin ‘normal’ en ‘4096’ worden genoemd, voor de standaard versie van 4MB.
  • Start de flashtool met de knop ‘Flash’. Als alles goed is gegaan verschijnt er een commandovenster en wordt de ESP8266 geflasht.
  • Zodra het flashen is geëindigd, dan wordt dit door de software gemeld.
    Nu verbreek je de verbinding met de computer. Het beste kan je de D1 nu met de USB-kabel aan een eigen stroombron koppelen en niet meer aan de pc.

Wifi webserver

Wanneer het flashen is gelukt en de D1 weer stroom krijgt, dan gaat hij zich tijdelijk gedragen als webserver. Je kunt nu alleen met hem verbinden via Wifi. Zoek de beschikbare netwerken op met bijvoorbeeld een tablet:Zoek naar het netwerk ESP_Easy_0 en verbindt hiermee. Het password dat hierbij moet worden opgegeven is configesp. Na het verbinden komt de tablet waarschijnlijk uit zichzelf met een configuratiepagina. Zo niet, open dan een browser en vervolgens een willekeurige pagina. Je komt nu automatisch bij 192.168.4.1/setup:Kies nu je eigen wifi SSID, voer je password in en druk Connect. De D1 maakt contact met je wifi en krijgt van diens DHCP server een IP-adres. Dit duurt even en in die tijd loopt een tellertje terug op het scherm: Daarna wordt het toegekende IP-adres getoond en is de D1 geen webserver meer, maar maakt hij deel uit van je eigen wifi-netwerk:Door op de knop ‘Proceed to main config’ te drukken ga je naar de nieuwe hoofdpagina van de D1.

Mogelijke problemen

Mijn ervaring met de D1 is dat het flashen meestal goed gaat. De belangrijkste bron van eventuele problemen is de USB kabel. Deze moet echt van goede kwaliteit zijn. Een dun, halfzacht exemplaar voldoet niet.
Daarnaast wil het niet altijd gelijk lukken om – na het kiezen van je Wifi SSID – je nieuwe adres te krijgen. Geen paniek, vaak voldoet het om gewoon de pagina van de browser opnieuw te openen op de tablet. Ook het invoeren van het setupadres 192.168.4.1/setup wil wel helpen. Tenslotte kan je ook de stroomtoevoer tijdelijk onderbreken en daarna opnieuw naar de setup pagina gaan.
Wil het nu nog niet, dan is waarschijnlijk het flashen toch niet goed gegaan. Doe dit dan gewoon opnieuw, liefst met een andere goede USB-kabel.

Verbonden met het Wifi netwerk

Als alles goed is gegaan is de D1 nu verbonden met het Wifi netwerk. De beginpagina verschijnt:Standaard krijgt de D1 nu de naam ESP_Easy (zie bovenaan). Het IP-adres staat linksonder.
Zelf vind ik het prettiger dat de ESP8266’s die ik gebruik een vast IP-adres hebben. Dat adres stel ik in en laat ik terugkomen in de naam van het apparaat. Daartoe gaan we naar de pagina Config (tweede tab).Ik geef deze apparaatjes een adres in de range 201 tot 250. Dat laat ik terugkomen in de unit naam en het unit nummer. Ik stel dan bijvoorbeeld dit in:Apparaat 8 krijgt dus adres 208. Het beginscherm laat dan dit zien:De D1 is nu klaar voor gebruik!

In de volgende aflevering van deze blog ga ik een temperatuursensor aan de D1 koppelen en vervolgens de D1 aan Domoticz.

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Sensoren via Wifi koppelen aan Domoticz – Deel 1

In het verleden heb ik al eens een blog gewijd aan het koppelen van sensoren aan Domoticz met behulp van een apparaatje dat radiosignalen opvangt en verstuurt, de RFXtrx433E. Op zich een prima systeem, maar het kan nog veel simpeler en het is leuk: met behulp van de ESP8266. Dit is een klein bordje met een Microcontroller, wat Flash geheugen en een Wifi chip aan boord. Dit bordje kan worden ingezet in het zogeheten Internet of Things (IoT).

In een aantal blogs wil ik laten zien hoe zo’n bordje wordt geflasht, geprogrammeerd, gekoppeld met sensors en natuurlijk gekoppeld aan Domoticz. Ik heb alle voorbeelden zelf uitgezocht en geprobeerd.

Maar nu eerst een introductie van de ESP8266.

De vele incarnaties van de ESP8266

Het is niet zodat we kunnen spreken van ‘de ESP8266’. Van dit bordje zijn talloze varianten gemaakt, met allemaal hun eigen voor- en nadelen. Ik ben niet van plan deze allemaal te gaan bespreken, maar het is wel interessant drie totaal verschillende versies te bekijken:

De ESP-01

ESP-01De ‘eenvoudigste’, goedkoopste versie is deze ESP-01. Hij meet zo’n 1,5 x 2,5 cm en heeft het minste aantal te programmeren poorten van de hele familie (maximaal 4), al is dat voor een paar sensors ruim voldoende. Hij is uitgerust met 1 MB flashgeheugen. Het flashen van deze versie kost wat meer moeite dan gemiddeld voor een beginner. Je hebt er een speciale programmeertool voor nodig, of een Arduino. Hij kost zo’n 1,40 bij een Chinese leverancier zoals AliExpress.com.

De Wemos D1 mini

Deze versie is iets groter dan de ESP-01, zo’n 3 x 2,5 cm groot en hij heeft 11 digitale I/O poorten en 4 MB flashgeheugen. Het flashen van deze versie van de ESP8266 is heel eenvoudig, dankzij een extra ingebouwde chip en een micro-USB voeding. Persoonlijk vind ik dit dé versie voor de beginner. Als die solderen kan tenminste. Want de D1 wordt geleverd met drie soorten pootjes, die je er natuurlijk wel eerst aan moet solderen! Dat solderen blijkt echter makkelijker dan het lijkt, als je een fatsoenlijk soldeerboutje hebt met een kleine punt en een paar simpele richtlijnen in acht neemt. Kost ongeveer 3,20 Euro bij AliExpress.com. Er zijn ook nog allerlei leuke uitbreidingen op te koop, maar daar heb ik het later misschien nog wel eens over.

De NodeMCU V3

De grootste, uitgebreidste en tevens makkelijkst te hanteren versie van de ESP8266 vind ik de NodeMCU V3. Dit bordje meet 6 x 3 cm. Hij heeft 15 digitale I/O poorten, heeft 4 MB flashgeheugen en is standaard te koop met reeds gesoldeerde pootjes. Dankzij een eigen voeding via micro USB en een ingebouwde chip is ook deze versie van de ESP8266 zeer eenvoudig te programmeren. Is goedkoper dan de D1 (ongeveer 2,40 bij AliExpress.com) en het meest geschikt van allemaal voor de beginnende gebruiker. Zijn enige minpunt is zijn grootte, maar ook dat valt eigenlijk nog best mee vergeleken met een ‘reus’ als de Raspberry Pi (die natuurlijk wel veel meer kan). Hij trekt ook iets meer stroom dan de anderen.

Wat hebben we nodig?

Om te starten met de ESP8266 hebben we in elk geval nodig:

  • Een (variant op de) ESP8266. Ik ga een voorbeeld beschrijven met de Wemos D1 mini, maar de NodeMCU V3 (of een andere ‘makkelijke’ ESP8266) kan ook worden gebruikt.
  • Een micro-USB kabel. Neem hiervoor een goed, stevig exemplaar
  • Flash software
  • Een USB naar COM driver voor de flash software
  • Een Wifi netwerk (logisch)
  • Een draadloos apparaat om (tijdelijk) mee in te loggen op de ESP8266, bijvoorbeeld een tablet.

In een volgende aflevering van deze blog ga ik de Wemos D1 mini in elkaar zetten en van software voorzien.

Save

Save

Save