creativecommons

Introductie ESP-1

De ESP-1 is de eerste "peripheral" met ESP Easy software.
Deze is voorzien van de volgende "randapparatuur":

De data van de BME280 sensor wordt via het WiFi netwerk naar de Domoticz server op de Raspberri Pi zero gestuurd.
De data van de BME280 sensor wordt door de ESP-1 op de LCD getoont.

Opmerking: volgens de specificaties van Bosch, is de BME280 sensor alleen geschikt voor een omgeving zonder condensatie.
Dit maakt de sensor minder geschikt om hem buitenshuis te gebruiken.

De LDR output is aangesloten op de analoge input van de Wemos chip.
De LDR wordt gebruikt om het licht te meten en om eventueel (in de vakantie!) lampen in te schakelen.
De LDR kan ook gebruikt worden om de achtergrond verlichting van de LCD in te schakelen.

Overige hardware:

De ESP-1 is naast de thermostaat in de huiskamer bevestigd.
De netvoeding (7,5 Volt) is via een lange kabel aangesloten op zolder.

Hardware

De hardware is ingebouwd in een Kradex Behuizing van 118x78x55mm, die gekozen is vanwege de afmetingen van de LCD display.
Deze LCD is past precies in het deksel. In de bodem zijn de Wemos, BME280, LDR lichtsensor, de Sparkfun i2c level convertor en de 5 Volt voeding

Aansluitingen:

 Bedrading:
SignaalOmschrijvingKleur
 SCL I2C bus clock  Geel 
 SDA I2C bus data  Groen 
 Vcc Voedings spanning   Rood  5 Volt voor LCD
 Vdd Voedings spanning  Oranje  3,3 Volt voor BME280 en lichtsensor  
 ADC Analoge spanning  Paars  LDR output
 GND Ground  Zwart 

Afbeelding van de Wemos D1 Mini Versie 3:

Wemos

Foto LCD print: met rechts boven de PCF8574T (I2C) adapter.
Het I2C adres van de PCF8574T chip op de adapter is 0x27.

power

Foto Wemos, BME280, LDR, Sparkfun en voeding:

power power

Een volgend aandachtspunt is het adres van de BME280 en de LCD display.
Met een i2c scan programma kunnen we de adressen checken.

In het "Tools" menu van ESP Easy is een i2c scanner programma, om te detecteren welke adressen zijn aangesloten op de ESP8266 chip.
Voorbeeld: ... resultaat, LCD display en BME280 sensor.

i2c scanner

Opmerking: het is van belang om weten welke pinnen gebruikt moeten worden voor input of output.
Een gedetailleerd overzicht staat op de website: RandomnerdTutorials: ESP8266 Pinout Reference: Which GPIO pins should you use?
Bepaalde I/O pins worden bijvoorbeeld voor de seriële I2C of SPI gebruikt.

Software

De eerste stap is, de setup en netwerk configuratie van de ESP-Easy client, zie: ESP Easy: Configuratie
De tweede stap is, om het protocol van de Domoticz server in te stellen op de ESP-Easy client.
Dit wordt gedaan in het "controllers" menu, zie voorbeeld:

controller

De volgende stappen:

Om de BME280 sensor aan de Domoticz server toe te voegen, moet eerst "dummy device" in Domoticz gemaakt worden.
Er staan voorbeelden beschreven op de pagina's:

Opmerking: voor de setup van de BME280 en de LCD:
De "Name" van de devices moeten uniek zijn, de BME280 device is "Huiskamer", de LCD device is "Woonkamer".

Eindresultaat:

devices

BME280: temperatuur / luchtdruk / vochtigheid opnemer

Details van deze sensor staat in de documentatie: espeasy.readthedocs BME280

Specifications:

Details: ... (fabrikant: Bosch)

De specificaties van de BME280 zijn: Opmerking: wat betreft de vochtigheid: er mag géén condensatie optreden, anders blijft de indicatie 100%.

BMP280

De eerste stap is het configureren van de BME280 in Domoticz, zie: Domoticz: ESP-Easy
Als de BME280 in Domoticz is toegevoegd krijgt deze een 'index', 'IDX' = 13

De tweede stap is het configureren van de BME280 in ESP Easy.
Dit wordt uitgevoerd in het 'devices' scherm van de ESP Easy webserver.

Configuratie: "devices" ... NB: IDX = 13!

BME280

LCD

Zeer beknopt is de LCD in de documentatie opgenomen: espeasy.readthedocs LCD2004
De PCF8574 I2C interface zorgt voor de aanpassing van de I2C interface van de Wemos naar de parallel interface van de LCD.

Hardware:

LCD module: 20 characters
PCF8574 I2C interface
LCD LCD

Opmerking: de instelling van de "Contrast" stond default op minimaal, niet erg handig!

Een leuk detail vond ik op de pagina: github.com letscontrolit: issues-2928
zag ik de tekst: ... lcd,2,1,"I: [var#1#D1.1]{D}C" ... pijl {D} geeft "graad" character voor graden Celcius op de LCD display!

Een paar voorbeelden van de BME280 en een LCD staan op het forum van letscontrolit:
letscontrolit.com -forum- viewtopic:4814: Global Sync with 20x4 LCD and BME280
letscontrolit.com -forum- viewtopic:3865: LCD 1602 Informatie van BME280 tonen

Configuratie "devices"

LCD

Resultaat: T =temperatuur / H =vochtigheid / P =luchtdruk op de LCD

LCD

Opmerking: normaal kijkt men niet zo vaak naar de luchtdruk.
Toevallig komt de druk van 1013 hPa = "hecto-Pascal" (de oude millibar) overeen met een barometer stand van 76 cm kwik, een gemiddelde druk, "veranderlijk" op de oude barometer, hoger dan 1013 hPa geeft mooier, zonniger weer!

LDR

LDR in de (oude wiki) documentatie: letscontrolit.com: Photosensitive resistor

Hardware:

RobotDyn LDR
LDR

Er wordt nog onderzoek gedaan naar de configuratie van de LDR.
Bij daglicht is geen achtergrond verlichting nodig van de LCD display, maar in de avond wel!
De LDR heeft een potentiometer, om de gevoeligheid van de digitale uitgang in te stellen.
Deze kan gebruikt worden om de achtergrond verlichting van de LCD aan of uit te schakelen.
Een tweede stap is het instellen van de maximale helderheid.

Een eenvoudige schakeling vond ik op het Arduino forum: forum.arduino: trying-to-dim-an-lcd-backlight
Het bestaat uit een NPN transistor en een potentiometer, die in de plaats komen van de jumper.

Een andere schakeling vond ik op: electronicsforu.com: Dimming LCD Backlight Presented here is a power-saving LCD backlight control circuit.

Epiloog ... Power

Een paar leermomentjes, wat kan er fout gaan!


Soldeerverbinding

Aanvankelijk had ik bij de eerste setup van de hardware een probleem met de LCD.
Bij een i2c scan via het menu van de ESP Easy werd alleen de BME280 gedetecteerd.

Achteraf bleek er een slechte soldeerverbinding te zijn bij de voeding van de i2c level converter.
Hierdoor werd de LCD niet aangesproken!

Ik overwoog om de i2c bus te checken door een blokgolf op de data en clock uitgang te zetten, en die met een oscilloscoop te meten.
Hiervoor moeten de uitgangen van data en clock als normale outputs worden ingesteld.
Met het volgende commando wordt een "PWM" Pulsbreedtemodulatie: PBM of PWM van het Engelse pulse-width modulation signaal op de Wemos output gezet.

Zie de (oude) wiki: letscontrolit.com: GPIO
Met details: ... To set a certain PWM level.
 http://<espeasyip>/control?cmd=PWM,13,500

Zie ook: espeasy.readthedocs: Plugin
Commmando: ...  LongPulse_mS,<GPIO>,<state>,<duration>
Resultaat: To send a *long* pulse to a certain pin. A LongPulse_mS is the same as the regular LongPulse. The only difference is the time base in milliseconds rather than in seconds.

Zie ook wiki: letscontrolit.com: GPIO
Meer details ... to send a long pulse to a certain pin ... Example to send an active high (1) pulse on GPIO 15 for 1 second:
 http://<espeasyip>/control?cmd=LongPulse_mS,15,1,1000

top


LCD

Nadat de soldeerverbinding van de level convertor was hersteld, en de ESP Easy configuratie was ingesteld, was er nog niets te zien op de LCD Display...
De simpele oplossing was de potentiometer instelling op het "PCF8574" adapter board, die achter op de LCD gemonteerd zit.
Deze adapter is om de parallel poort van de LCD aan te passen naar het i2c protocol van de Wemos.

top


Power

Voor het dimensioneren van de voeding is het stroomverbruik van belang!
De Wemos, BME280, LCD en de LDR verbruiken ca 110 mA met ingeschakelde (maximale) LCD-achtergrond verlichting.
Zonder achtergrond verlichting is het stroomverbruik ca 70 mA
De meting is uitgevoerd met een "KWS-MX17", zie: IoT: power

W3Ccss valid-html401

top