Hoofdstuk 5 van 14

YAML begrijpen en je eerste led besturen

Leer YAML lezen en aanpassen. Sluit een led met weerstand aan op je ESP32 en test hoe je die met ESPHome bestuurt.

Nu we firmware op de ESP32 kunnen installeren, willen we iets zichtbaar maken. Een losse led is daar een uitstekend hulpmiddel voor: hij laat onmiddellijk zien of een uitgang werkelijk reageert.

Eerst de schakeling

Koppel de USB-kabel los. Sluit een weerstand van 330 ohm aan tussen GPIO23 en de anode van een gewone led. Verbind de kathode met GND. Het lange ledpootje is doorgaans de anode; de afgeplatte zijde van de behuizing markeert meestal de kathode.

De stroomkring is:

GPIO23 → weerstand 330 Ω → led → GND

Sluit de led nooit rechtstreeks aan zonder geschikte stroombegrenzing. Gebruik evenmin een GPIO als voeding voor een grotere lamp of een ander apparaat.

Je eerste YAML-aanpassing

Open bij werkplaats-oefening de configuratie met Edit. Laat de bestaande regels voor esphome:, esp32:, logger:, api:, ota: en wifi: staan zoals de wizard ze heeft aangemaakt. Voeg daaronder de volgende sectie toe:

switch:
  - platform: gpio
    name: "Werkplaats testled"
    id: werkplaats_testled
    pin: GPIO23
    restore_mode: ALWAYS_OFF

Deze regels voegen een schakelaar toe die één GPIO aan- of uitzet. De naam maakt duidelijk welk onderdeel je later in Home Assistant ziet. Met pin: GPIO23 leggen we vast welke aansluiting bestuurd wordt. Met restore_mode: ALWAYS_OFF kiezen we bewust een uitgeschakelde uitgang bij het starten. Controleer bij andere toepassingen altijd of de feitelijke toestand tijdens het opstarten veilig is.

YAML lezen zonder te verdwalen

switch: vormt het hoofdonderdeel van onze nieuwe configuratie. Het streepje bij - platform: gpio begint een item in een lijst. De regels die eronder inspringen horen bij datzelfde item.

Spaties zijn in YAML dus onderdeel van de structuur. Gebruik geen willekeurige tabs om regels uit te lijnen. Wanneer een regel verkeerd inspringt, kan de Device Builder een foutmelding geven of de regel op de verkeerde plaats interpreteren.

Voorspel, installeer en observeer

Voordat je op Install klikt, voorspel je wat de led na het opstarten doet. Met ALWAYS_OFF verwachten we dat hij uit blijft totdat de uitgang wordt ingeschakeld.

Installeer de nieuwe firmware. Als de ESP32 verbonden is met Home Assistant, kun je de nieuwe schakelaar straks vanuit Home Assistant bedienen. Controleer voorlopig in de logs of het apparaat normaal opstart en maak geen extra aanpassingen totdat die eerste stap werkt.

Heb je al een werkende Home Assistant-koppeling? Schakel de entiteit Werkplaats testled dan aan en uit. Brandt de led niet, controleer dan eerst of het omschakelen zichtbaar wordt gemeld. Als dat wel zo is, richt je het onderzoek op de pin, weerstand, ledrichting en GND. Als het apparaat niet bereikbaar is, begin dan bij wifi en de installatie.

Een lokale knipperfunctie

Om te bewijzen dat de ESP32 ook zonder Home Assistant zelfstandig kan handelen, kun je een eenvoudige lokale tijdsactie toevoegen:

interval:
  - interval: 2s
    then:
      - switch.toggle: werkplaats_testled

Installeer de firmware opnieuw. Elke twee seconden verandert de schakelaar van toestand. De led zal dus twee seconden branden en daarna twee seconden uit zijn.

Wanneer dit werkt, schakel je Home Assistant of de netwerkverbinding tijdelijk uit zonder de ESP32 spanningsloos te maken. Voorspel of het knipperen doorgaat. Het interval draait in de firmware op de ESP32 zelf en heeft daarvoor geen Home Assistant nodig.

Verwijder na de proef de hele interval:-sectie, zodat de led later weer door onze eigen bediening kan worden bestuurd.

Wat je uit dit hoofdstuk kunt meenemen

Je kunt een GPIO-functie toevoegen zonder zelf een Arduino-programma te schrijven. Je begrijpt hoe een YAML-sectie is opgebouwd, waarom inspringing belangrijk is en dat de ESP32 ook lokale acties kan uitvoeren. In het volgende hoofdstuk geven we het apparaat een ingang: een drukknop.