DomoticzHome AutomationHow-to

Domoticz devices bedienen via een ESP32 Touchscreen 4 inch

Onlangs kwam ik op internet een ESP32 Touchscreen schermpje tegen voor slechts twee tientjes. Het leek me wel handig om deze in te zetten om Domoticz switches, via MQTT, te kunnen schakelen. We hebben hier twee aquaria, waarbij de eens in de zoveel dagen het filter en de thermostaat uit moeten zetten, tijdens onderhoud aan de planten of het verversen van water. Ook leek het met wel handig om de watertemperatuur op het schermpje af te kunnen lezen. Na wat onderzoek bleek dat allemaal wel mogelijk te zijn.

In deze handleiding gaan we ervan uit dat je Domoticz en een MQTT broker (server) al werkend hebt.

Python en ESPTool installeren

De eerste stap is om Python te installeren op een Windows computer (uiteraard kun je ook een Linux bak of Mac gebruiken). Ga naar https://www.python.org/downloads/ en download de nieuwste versie door op de gele button te drukken. Op het gedownloade bestand (python-3.x.x.exe). Vink de optie Add Python 3.x to PATH aan en klik op Install Now. Om te controlen of Python goed geïnstalleerd is druk je op Win + R en druk op Enter.

Typ nu py --version in en je moet dan iets zie van Python 3.x.x

Installeer nu ESPTool:

[/crayon]

Scherm flashen

Download nu het bestand tasmota32s3-qio_opi.factory.bin en flash het scherm met deze firmware:

[/crayon]

Het scherm zal nog zwart blijven, maar het is nu wel, tijdelijk, een acces point geworden. Maak met je telefoon verbinding met het SSID tasmota-E43FF3-4285 (of iets wat er op lijkt). Ga vervolgens op je telefoon naar 192.168.4.1 (via een browser), kies het juiste WiFi netwerk en vul het wachtwoord in. Klik tot slot op Save.

Het scherm zal nu rebooten en na een paar seconden krijg je te zien dat de WiFi connectie tot stand is gebracht. Ook wordt het IP zichtbaar dat is toegewezen aan het touchscreen (verstandig is om via jouw model het scherm een vast IP-adres te geven):

Ga vervolgens op de PC naar het IP-adres dat aangegeven staat en klik op Firmware Upgrade:

Bij OTA Url vul je in: https://github.com/Jason2866/Tasmota-specials/blob/firmware/firmware/tasmota32/other/tasmota32s3-qio_opi.bin en klik vervolgens op Start upgrade:

Na zo’n 10 seconden is de firmware geïnstalleerd en het scherm opnieuw opgestart. Je ziet dan onderstaand scherm. Klik op Restart:

Scherm configueren

De nieuwe firmware bevat alle functies die we nodig hebben, maar het scherm zal het nog niet doen. Daarvoor moeten we nog een paar stapjes uitvoeren.

Klik nu op Configuration en vervolgens op Other. Plak in het veld Template onderstaande waarde en klik op Save:

Ga nu naar Configuration en vervolgens naar Module. In het veld Module type selecteer je ESP32S3-4848S040 (0) en klik onderaan op Save:

Het scherm is nog steeds zwart, maak je daar geen zorgen over, dat komt dadelijk wel goed ;). Waarschijnlijk staat het touchscreen nog op een Chinese tijdzone. Tijd om dat aan te passen! Ga naar Tools en vervolgens Console. Kopieer onderstaande regel naar de console en druk op ENTER:

Nu is het de hoogste tijd om het scherm werkend te krijgen! Download het display.zip bestand en pak dit uit. We hebben het bestand display.ini nodig. Ga nu Tools en vervolgens Manage File system. Selecteer het bestand display.ini en klik op Upload

Je krijgt een melding dat de upload succesvol uitgevoerd is:

Op dezelfde manier upload je het bestand Roboto-Regular.ttf, zodat we een aardig lettertype op het scherm te zien krijgen.

Klik nu op Manage File system, vervolgens op Tools, Main Menu en tot slot op Restart. Tijdens het rebooten zal je een blauw scherm met het Tasmota logo zien. Het scherm werkt (maar zal vrij snel weer zwart worden, omdat we nog niets verder geprogrammeerd hebben)!

Ga nu naar Configuration en vervolgens MQTT. Vul hier het IP-adres van jouw MQTT gateway in en klik op Save:

Layout (pages.jsonl)

We moeten nu nog 2 bestanden uploaden: de eerste is pages.jsonl bestand, hierin staat de layout van de pagina(s) van het scherm, zoals bijvoorbeeld de buttons, switches, maar ook het lettertype, de kleuren, etc. Het tweede bestand is autoexec.be. Hierin staan functies waarmee switches, via MQTT, aangestuurd worden. Laten we beginnen met pages.jsonl. Maak dit bestand aan op de PC met onderstaande code:

Ga nu naar Tools en vervolgens Manage File system. Selecteer het bestand pages.jsonl en klik op Upload:

Herstart nu het scherm en je zal merken dat we eindelijk wat op het scherm kunnen zien:

Logica (autoexec.be)

Het is leuk dat we nu eindelijk beeld hebben, maar de switches, temperatuur, etc. moet natuurlijk ook continu bijgewerkt worden. Dat doen we met het bestand autoexec.be.

Maak dit bestand aan op de PC met onderstaande code:

Indien je de juiste IDX-nummers uit Domoticz gebruikt zal je zien dat de switches en temperatuur automatisch bijgewerkt wordt:

Slider dimbare lamp

Als je een slider voor een lamp op je schermpje wil hebben, dan moet je in pages.jsonl onderstaande code toevoegen:

[/crayon]

In het bestand autoexec.be voeg je onderstaande code toe (1140 moet je vervangen voor het IDX van jouw dimbare lamp):

[/crayon]

En je hebt een handige slider om de lamp te dimmen:

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *