In deze workshop leggen we uit hoe je met Home Assistant en een NodeMCU Amica V2-ontwikkelaarsbordje zelf de CO2-concentratie in je huis kunt monitoren. Een tweede exemplaar zetten we in als watersensor.

Wim Dewijngaert

Home Assistant is een vaak gebruikt softwarepakket voor domotica. Bij veel hobbyisten doet het dienst om lampen, verwarming, zonnepanelen of wasmachine centraal te besturen. In deze workshop leggen we uit hoe je met een NodeMCU Amica V2- ontwikkelaarsbordje zelf de CO2-concentratie in je huis kunt monitoren; een ander bordje gebruiken we als watersensor.

    


BOODSCHAPPENLIJSTJE

          

Amica V2-bordje
Met een kostprijs van 7 euro per stuk zijn de Amica-bordjes ideaal om via wifi de Home Assistant-software te voorzien van diverse meetwaarden. Het werkgeheugen (RAM)  voor je programmacode is gelimiteerd tot 32 kilobyte, maar dat is meer dan voldoende voor de meeste toepassingen. De micro-usb-aansluiting op de bordjes dient niet alleen als voeding, maar kan ook worden ingezet om nieuwe firmware te flashen – wat we in deze workshop dan ook gaan doen.

ESPHome-firmware
Om te beginnen zetten we de ESPHome-firmware op het bordje. Deze firmware maakt het heel gemakkelijk om kleine projecten te realiseren: het volstaat namelijk om een YAML-tekstbestand aan te maken met daarin een aantal gegevens over de hardware die je hebt aangesloten en op welke poorten welke waarde moet worden uitgelezen. Dit bestand wordt nadien gecompileerd naar ESPHome-firmware, die dan naar de Amica geflasht kan worden. Een kind kan de was doen: meteen na het aansluiten herkent Home Assistant het bordje en verschijnen de meetwaarden.

Python
De ESPHome-firmware kun je op meerdere manieren flashen. In ons voorbeeld doen we dat met Python. Staat deze nog niet op je computer, dan volstaat een minimale installatie om aan de slag te gaan. Download het installatieprogramma via https://www.python.org/downloads

Op het eerste scherm kies je voor Customize installation. Selecteer enkel PIP als extra module. Als custom install location gebruik je c:\Python

Dubbelklik na het installeren op python.exe in de Python-directory. Er verschijnt nu een commandoprompt. Tik hier vervolgens:

pip3 install wheel
pip3 install esphome

Daarna zou de ESPHome-library geïnstalleerd moeten zijn. Dit kun je nakijken met het commando:

esphome version

Het versienummer van ESPHome komt dan op het scherm.

Koppel nu een Amica aan je computer met een usb-kabeltje. Als alles goed gaat, zal Windows het bordje automatisch herkennen. Voor alle veiligheid kijk je best toch even naar de Device Manager. Staat er bij Other Devices een onbekend USB2.0 Serial- apparaat, dan moet je alsnog de correcte drivers installeren. Dubbelklik hiervoor op het onbekende apparaat, kies in het tabblad Drivers voor Update Driver en selecteer vervolgens Search automatically for updated driver software.

Om de firmware vervolgens aan te maken en te uploaden op basis van een YAML- bestand, geef je de volgende instructie aan Phython:

esphome run c:\python311\naamvanhetbestand.yaml

Het hierboven genoemde bestandsnaam vervang je door CO2-meter of watersensor.

water 2
      co2 2
De afgewerkte
waterdetectie-module
  De afgewerkte
CO2-module

YAML-broncode
De YAML-broncode voor de CO2/temperatuur- en water-detectorprojecten vind je iets verderop in dit artikel, maar ook op onze website. Zoek hiervoor op pcactive.nl naar CO2- en watersensor. Tik je de code over, let dan op het gebruik van de spaties - deze zijn namelijk belangrijk. Vergeet ook niet de parameters voor je thuisnetwerk aan te passen in het bestand.

De YAML-broncode voor de co2meter.yaml:

esphome:
  name: co2meter

esp8266:
  board: nodemcuv2

# Enable logging
logger:

uart:
  rx_pin: GPIO3
  tx_pin: GPIO1
  baud_rate: 9600

sensor:
  - platform: mhz19
    co2:
      name: "MH-Z19 CO2 Value"
    temperature:
      name: "MH-Z19 Temperature"
    update_interval: 60s
    automatic_baseline_calibration: false
   
# Enable Home Assistant API
api:
  password: ""

ota:
  password: ""

wifi:
  ssid: "vul hier je ssid van je wifi netwerk in"
  password: "vul hier het paswoord van je wifi netwerk in"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:

homeassistant sensoren
Beide sensoren
verschijnen
automatisch
in Home Assistant

    ssid: "Co2Meter Fallback Hotspot"
    password: "YPLFztzCmwqE"

captive_portal:

En hier vind je de YAML-broncode voor de watersensor.yaml:

esphome:
  name: watersensor

esp8266:
  board: nodemcuv2

# Enable logging
logger:

sensor:
  - platform: adc
    pin: A0
    name: "Water sensor"
    update_interval: 10s
    accuracy_decimals: 1
    unit_of_measurement: 'V'
   
# Enable Home Assistant API
api:
  password: ""

ota:
  password: ""

wifi:
  ssid: "vul hier je ssid van je wifinetwerk in"
  password: "vul hier het wachtwoord van je wifinetwerk in"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Watersensor Fallback Hotspot"
    password: "XMpBwjLF5GBe"

captive_portal:

 

homeassistant2

De CO2-waarde kan ook worden weergegeven
in een grafiek

Verbinden
Na het compileren van het YAML-bestand verschijnt de melding INFO Successfully compiled program. Vervolgens wordt gevraagd hoe het bestand moet worden verstuurd naar de Amica. Kies hier voor USB to UART Bridge om de firmware via usb te flashen. Na afloop verwijder je de usb-kabel.

De sensoren zelf zijn met wat handigheid makkelijk aan de bordjes te bevestigen. De plaatjes bij dit artikel geven aan hoe alles moet gesoldeerd worden. Bij de waterdetector gaan de Vin en Gnd naar respectievelijk de + en de - op de sensor. Poort A0 verbind je met de S. Bij de CO2-detector moet je goed kijken naar het schema, omdat op de aansluitingen van de sensor zelf geen labels zijn aangebracht.

Controleren en alarm instellen
Om te verifiëren of de bordjes het doen, hang je ze aan een usb-voeding en open je vervolgens Home Assistant. Als alles goed gaat, staat er bij Notifications in de linkerkolom de melding We have discovered new devices on your network. Check it out. Als je dan op Check it out klikt, kom je op het integratiescherm. Klik op Configure en daarna Submit om de sensors toe te voegen op het dashboard.

Je kunt tot slot een alarm instellen in Home Assistant om je te waarschuwen als bijvoorbeeld de CO2-concentratie te hoog wordt (ppm > 1000), of er water in je kelder staat (V > 0).

schema1 2

      Aansluitschema van de waterdetector

 

schema2 2

         Aansluitschema van de CO2-detector