ESP8266 WiFi – GPIO pinnen aansturen (NodeMCU)

nodeMCU logo

wireless connection icon

Op deze pagina vind je een paar stappen om met NodeMCU (0.9.6dev) GPIO pinnen aan te sturen (HOOG/LAAG).

Let op: De voltage op deze pinnen is o of 3.3v (geen 5v zoals arduino)

GPIO pin configureren:
De commando’s om de GPIO pinnen in te stellen zijn als volgt:

Zet een pin als mode “INGANG”: gpio.mode(pin, gpio.INPUT)
Zet een pin als mode “UITGANG”: gpio.mode(pin, gpio.OUTPUT)
Zet een pin als mode “INTERRUPT”: gpio.mode(pin, gpio.INT)

GPIO pin nummering:
Je zou denken pin 2 is GPIO2, maar hhelaas de GPIO pinnnen hebben een IO index, dat is het nummer wat je moet aanspreken om de juiste GPIO poort te benaderen, de tabel:

GPIO pinIO index
GPIO03
GPIO110
GPIO24
GPIO39
GPIO42
GPIO51
GPIO6-
GPIO7-
GPIO8-
GPIO911
GPIO1012
GPIO11-
GPIO126
GPIO137
GPIO145
GPIO158
GPIO160

Aan de slag:
Hier in dit voorbeeld zetten we de GPIO2 poort van een ESP-01 module hoog of laag.

1) Open een seriële verbinding met de module.
2) Zet de GPIO2 pin als uitgang met het commando:

gpio.mode(4, gpio.OUTPUT)

3) Zet de pin “HOOG” met het commando:

gpio.write(4, gpio.HIGH)

4) De status van een GPIO pin kan je opvragen met het commando:

gpio.read(pin) , om bijvoorbeeld de status van de GPIO2 pin naar de console te printen:  print(gpio.read(4))

Voorbeeld in een IF loop

Voorbeeld van INTERRUPT mode
Je kan een functie aanmaken en triggeren als een pinwaarde veranderd, je zet de GPIO uitgang dan als INTERRUPT gpio.trig() , zie hier een voorbeeld code:

in het 2e argument van de gpio.trig()  functie is het “event” op de pin waarnaar geluisterd moet worden, deze kan zijn:

up Wanneer de pin naar hoog gaat.
down Wanneer de pin naar laag gaat.
both Wanneer de pin hoog of laag wordt.
low Wordt herhaaldelijk herhaald als de pin laag is.
high Wordt herhaaldelijk herhaald als de pin hoog is.

GPIO pin map
Er is ook een makkelijke manier als je de GPIO IO index niet wilt aanhouden, je kan eenvoudig de IO index mappen met het volgende commando:

Om nu GPIO2 aan te sturen gebruik je:

Om nu GPIO2 aan te sturen gebruik je:


GPIO bedienen via Web interface

Het is ook mogelijk om de ESP als een mini webservertje in te stellen en je online bijvoorbeeld via een browser de GPIO pinnen kan schakelen, gebruik daarvoor het volgende script:

Tip: Download de code sla het op als bestand, en gebruik de “Upload…” knop in ESPlorer.

Voer het lua script uit, dit is het resultaat:

esp8266 gpio webinterface screen

Je kan nu met de knoppen de GPIO poorten bedienen


Bronnen:
esp8266.co.uk
nodemcu.com
paulcuth * gtihub.com
cnx-software.com