Oude Ebbingestraat 60
9712 HL Groningen

Telefoon (050) 318 73 84

E-Mail info@okaphone.nl
Web http://www.okaphone.nl/
IOT

NodeMCU

Een NodeMCU is een kleine computer met allerlei in- en uitgangen die eenvoudig met het internet kan worden verbonden. Je kunt een NodeMCU herkennen aan de micro-USB aansluiting aan de ene kant en een WiFi-antenne aan de andere kant.

Internet of Things (IoT) voor iedereen

Wat heb je nodig?

  • Een NodeMCU
  • Een micro-USB kabeltje
  • Een Windows- of OS X computer (Linux kan ook, maar het gebruik daarvan beschrijven we hier niet)
  • Beschikking over een WiFi toegangspunt
  • Een breadboard met minimaal 400 gaatjes en draadbruggen.

Op je computer moet een USB-driver voor de NodeMCU worden geïnstalleerd en moet de ESPlorer programmeeromgeving worden gedownload. (Hiervoor moet ook Java zijn geïnstalleerd.) Al deze programma's zijn gratis en onderaan deze pagina vind je links waarmee je de software kunt downloaden.

De NodeMCU bestaat uit een aantal belangrijkste onderdelen:

  • een spanningsregulator naar 3,3 volt
  • een USB naar serieel conversiechip,
  • een ESP8266 microcontroller met een 4 MB groot flashgeheugen voor de Lua interpreter,
  • de firmware en jouw eigen programma's

In het midden van het blokschema is de microcontroller getekend. Dit is een klein chipje van 5 x 5 mm dat samen met het flashgeheugen onder het metalen dekseltje op de NodeMCU zit. In het chipje zit WiFi, een moderne microprocessor, de aansluitingen voor sensoren en actuatoren, een 'Real Time Clock' en de communicatiepoort die met de USB omzetter is verbonden.

Het flashgeheugen bevat een bootloader en de NodeMCU firmware. Met de bootloader is het mogelijk om nieuwe, verbeterde NodeMCU firmware te laden. Ook zit er in het flashgeheugen een 'SPIFFS': een bestandssysteem dat ervoor zorgt dat je je programma's kunt opslaan, maar ook dat je vanuit je programma's eenvoudig gegevens kunt bewaren.

NodeMCU's hebben een kleine USB conversiechip. Het merk en type hiervan bepaalt, welke USB driver je nodig hebt voor je NodeMCU. De benodigde USB drivers kun je van de website van de fabrikant van de USB conversiechip downloaden. De NodeMCU's van Amica en LoLin maken gebruik van de Silicon Labs CP210. De NodeMCU's van GeekCreit DOIT maken gebruik van de WCH CH340. Het merk van de NodeMCU staat op de achterkant.

De gebruikte programmeeromgeving die wordt gebruikt voor de NodeMCU heet Explorer. Deze programmeeromgeving kun je van de website van de auteur downloaden. De download is een .zip bestand, dat uitgepakt een enkele esplorer.jar bevat. Als java niet op je computer is geïnstalleerd moet die alsnog worden gedaan.

Aan de slag

Als je iets op je NodeMCU wilt aansluiten dan is het handig om een breadboard te gebruiken. Met een micro-USB kabeltje voorzie je de NodeMCU (en alles wat er op is aangesloten) van stroom. Ook kun je daarmee de NodeMCU programmeren.

De programmeeromgeving

  • Verbindingsinstellingen: hier kies je de USB poort waarop je NodeMCU is aangesloten.
  • De verbindingssnelheid moet op 115.200 zijn ingesteld. Klik op de grote knop om met je NodeMCU te verbinden.
  • Terminalvenster: hier wordt de uitvoer van de NodeMCU getoond.
  • Bestandsbeheer: met deze knoppen kun je de bestanden op je NodeMCU beheren. Met Refresh ververs je de lijst.
  • Programmabeheer: met deze knoppen maak je een nieuw programma aan, bewaar je het programma dat je aan het schrijven bent en open je programma's die je op je computer hebt opgeslagen.
  • Editor: dit is het venster waarin je je programma's kunt maken en aanpassen.
  • Directe instructies: hier kun je een enkele instructie naar de NodeMCU sturen, die direct wordt uitgevoerd.

Nadat je de NodeMCU op je computer hebt aangesloten en de programmeeromgeving hebt geopend, kies je de juiste USB poort en stel je de verbindingssnelheid in op 115.200 bits per seconde. Je kunt nu de verbinding openen met de grote knop waar de tekst Open op staat. Als je niet direct iets in het terminalvenster ziet verschijnen druk dan op de Reset knop van je NodeMCU. In het terminalvenster verschijnt de tekst die de NodeMCU verstuurt.

Je eerste programma

Het programma blink.lua laat een ingebouwde LED op de NodeMCU knipperen. Je controleert met dit programma of je alles goed op je computer hebt geïnstalleerd en je ziet gelijk je NodeMCU werken.

Je maakt op de hierboven beschreven wijze verbinding met de NodeMCU en kopieert de code van blink.lua in het programmavenster. Sla het programma op door op het icoon van de diskette te klikken. Er wordt om de naam van het programma gevraagd: voer hier blink.lua in. Na het opslaan wordt het programma naar de NodeMCU verzonden; je ziet de voortgang hiervan in het terminalvenster. Na enkele seconden zie je hoe de LED van je NodeMCU gaat knipperen.

De NodeMCU met het internet verbinden

De NodeMCU onthoudt automatisch het laatst gebruikte WiFi toegangspunt. Dat betekent dat, als je eenmaal je NodeMCU hebt ingesteld om gebruik te maken van een bepaald WiFi toegangspunt, de NodeMCU die verbinding steeds opnieuw zelf maakt. Om de WiFi instellingen goed te zetten kun je gebruik maken van het wifi.lua script. Je moet in dit script de gegevens van je eigen WiFi toegangspunt zetten. Als je het script uitvoert dan zie je op het scherm van je computer of het gelukt is om de verbinding te maken.

Een sensor aansluiten op je NodeMCU

Er kunnen op verschillende manieren sensoren worden uitgelezen met de NodeMCU:

  • Analoge waarden, zoals die van een LDR of vochtsensor aangesloten op A0, uitlezen met sensorwaarde = adc.read(0)
  • Aan-uit schakelaars uitlezen met sensorwaarde = gpio.read(poortnummer). Poortnummer kan hier 0 tot 8 zijn, voor sensoren die zijn aangesloten op D0..D8
  • Speciale sensoren, zoals de DS18B20 temperatuursensor en de DHT22 vochtsensor, hebben eigen manieren om te verbinden met de NodeMCU. In Lua zijn hiervoor speciale instructies opgenomen.

Problemen oplossen

Werken met microcontrollers zoals de NodeMCU is niet moeilijk en meestal krijg je snel resultaten. Soms zit er echter wat tegen. Hieronder volgt een lijstje aandachtspunten voor als het even tegenzit en allemaal niet werkt zoals je dat wilt:

  • Je ziet de USB poort niet in de programmeeromgeving verschijnen

Controleer of je NodeMCU is aangesloten. Druk op de Refresh knop gelijk rechts naast de lijst met USB poorten. Staat je USB poort er niet tussen? Dan moet je waarschijnlijk de USB driver nog installeren

  • Je kunt geen verbinding maken met de NodeMCU

Controleer dat je de micro-USB kabel hebt aangesloten, de juiste USB poort hebt gekozen, 115200 als verbindingssnelheid heb gekozen en op de Open knop hebt gedrukt. Als je niet nog steeds niets in het terminalscherm ziet, druk dan op de Reset-knop van de NodeMCU

  • De NodeMCU lijkt niet te willen werken met drijvende-komma-getallen, of enkele Lua instructies die hier genoemd worden lijken niet op je NodeMCU te werken

Het kan nodig zijn om nieuwe, verbeterde NodeMCU firmware op je NodeMCU te zetten.

Bronvermelding: Deze tekst is ons welwillend ter beschikking gesteld door Rudi Niemijer. Op zijn persoonlijke website kun je code voorbeelden, diagrammen en nog veel meer informatie vinden: http://github.com/rudiniemeijer/Zelf-een-IoT-toepassing-maken


Google+