ID.nl logo
Huis

Maak een weerstation met je Arduino

Eerder schreven we al over de Arduino: een goedkope programmeerbare microcontroller die de basis vormt voor zelf in elkaar geknutselde projecten. Het kan nog leuker: een Arduino met ingebouwde wifi-chip maakt het mogelijk om ook aan internet verbonden projectjes te maken! We gaan aan de slag met het ontwikkelbordje NodeMCU om een weerstation te maken.

Zoals gezegd besteedden we al eerder in Computer!Totaal aandacht aan Arduino, een opensource elektronicaplatform dat je zelf kunt programmeren en kunt gebruiken in combinatie met elektronische componenten. Hier kun je op onze website een aantal artikelen over Arduino lezen. Erg leuk om mee te knutselen, maar het heeft één nadeel: het blijft door gebrek aan netwerkmogelijkheden bij lokale projecten.

Een Arduino met wifi opent deuren naar nieuwe mogelijkheden. Je kunt informatie van internet ophalen en tonen, of je Arduino bijvoorbeeld inzetten als sensor die jou waarschuwingen geef, ook als je buitenshuis bent. In deze cursus gaan we een dergelijke Arduino met wifi inzetten voor twee met internet verbonden projecten die beide met weersinformatie te maken hebben. We hebben gekozen voor de NodeMCU.

Het project Weeralarm laat je aan de hand van een brandend ledje in één oogopslag zien of er in jouw regio momenteel een weeralarm van kracht is, waarbij uiteraard onderscheid gemaakt wordt tussen de verschillende kleuren die het KNMI hanteert. Uiteraard zijn ledjes niet de enige manier waarop je informatie kunt tonen. In het tweede project, Weermonitor, gebruiken we daarom een oled-schermpje waarop we weersinformatie van een zelfgekozen weerstation in Nederland tonen. Eerst wat algemene uitleg.

01 Wat is de NodeMCU?

De NodeMCU is technisch gezien geen Arduino, maar een ontwikkelbordje gebaseerd op de ESP8266 wifi-module. Je kunt deze wifi-module ook los kopen en koppelen met een Arduino. De chip is echter zo krachtig dat hij ook functioneert als een complete microcontroller. Deze chip is herkenbaar als een zilverkleurig blokje op de printplaat.

Naast de ESP8266 bevat de NodeMCU een usb-interface voor de communicatie met de ontwikkelomgeving, een voedingscircuit en twee rijen aansluitpinnen voor gebruik op een breadboard. Het NodeMCU-ontwikkelbordje is oorspronkelijk ontwikkeld voor de NodeMCU-ontwikkelomgeving waarin de programmeertaal Lua gebruikt wordt. NodeMCU en het bijbehorende bordje zijn bedoeld om op een goedkope manier IoT-projecten te maken. Het werd echter nog leuker toen ontwikkelaars ondersteuning voor de ESP8266-chip in de Arduino-ontwikkelomgeving inbouwden. Hierdoor kun je bordjes op basis van ESP8266 zoals de NodeMCU als een Arduino-bordje gebruiken.

Het grote voordeel van de NodeMCU ten opzichte van andere Arduino-bordjes voorzien van wifi is dat dit bordje erg goedkoop is. Voor drie euro heb je een compleet bordje met ingebouwde wifi-radio, dat je kunt programmeren met de Arduino-ontwikkelomgeving. Je vind de NodeMCU-bordjes op bijvoorbeeld eBay of AliExpress. Let wel op dat je de juiste versie koopt, koop er een die wordt aangeduid met 1.0 of v2. De v3 (ook aangeduid als LoLin) is breder en past hierdoor niet goed op een breadboard.

©PXimport

02 Een hoop pinnen

Net als bij een Arduino kan het aantal aansluitpinnen op de NodeMCU wat afschrikken, maar wees gerust: we gebruiken er slechts een paar. Er zit bovendien nogal wat herhaling in, zo zijn er drie 3V3-aansluitingen (+3,3 volt) en zelfs vier GND-pinnen (ground of 0 volt). De aansluitingen met dezelfde namen zijn onderling doorverbonden. Voor de schakelingen die je in zelfgebouwde projecten gebruikt, zijn vooral de digitale aansluitingen (het rijtje D0 tot en met D8) van belang. Deze aansluitingen gebruiken we om digitale signalen te versturen en uit te lezen. Daarnaast bevat de NodeMCU ook de analoge ingang (A0). Deze ingang verwerkt analoge signalen en kun je bijvoorbeeld gebruiken om sensoren uit te lezen om omgevingsfactoren te meten, zoals temperatuur en vochtigheid. De reset-pin (RST) spreekt voor zich en VIN dient om de module te kunnen voeden zonder usb-kabel. Als de module wel via de usb-kabel is verbonden, is deze aansluiting te gebruiken voor externe componenten die meer dan 3,3 volt nodig hebben.

©PXimport

03 Werking breadboard

Om de NodeMCU te gebruiken voor projecten, sluit je componenten als leds en weerstanden met jumperdraden aan. Het breadboard is letterlijk de basis van de schakelingen. Alsof het ministeck is, steek je alle componenten in de gaatjes, zodat die componenten onderling worden verbonden. Het breadboard is opgebouwd uit drie delen: aan weerszijden twee blauw-rood gemarkeerde rijen gaatjes en een deel ertussenin met een soort gootje in het midden. De gaatjes van het breadboard zijn op een slimme manier met elkaar verbonden. De buitenste twee delen bestaan elk uit twee rijen onderling verbonden gaatjes. Je hebt dus aan weerszijden van het breadboard een rode en een blauwe rij over de volle lengte van het breadboard.

In het middelste deel zijn telkens vijf gaatjes met elkaar verbonden. Als je goed kijkt, zie je cijfers en letters die de gaatjes coördinaten geven. De letters zijn van elkaar gescheiden en de cijfers vormen twee rijtjes van vijf verbonden gaatjes. Zo zijn a15 t/m e15 met elkaar verbonden en f15 t/m j15 ook. Tussen e15 en f15 loopt dus geen verbinding. De illustratie maakt het duidelijk. De grijze lijntjes geven aan op welke manier de gaatjes onderling zijn verbonden. Dus: telkens vijf gaatjes in het middelste deel en alle gaatjes over de hele lengte aan de buitenkanten. Overigens zijn de twee buitenste rijen niet met elkaar verbonden, al hebben ze dezelfde kleurcode. In onze schakelingen gebruiken we altijd de blauw gemarkeerde rij voor GND en de rood gemarkeerde rij voor 3,3 volt. Om praktische redenen werken we in deze cursus niet met coördinaten. Nu je weet hoe de gaatjes met elkaar zijn verbonden, kun je immers zelf bepalen wat je waar in het breadboard prikt. Een vuistregel: zorg ervoor dat er nooit meer dan één pootje van een component in hetzelfde rijtje zit. Prik dus nooit een led in a15 en b15, maar in a15 en a16. In e15 en f15 kan weer wel, want daartussen zit geen verbinding.

©PXimport

04 Werken met de Arduino-ontwikkelomgeving

De ontwikkelomgeving voor Arduino is een zogeheten integrated development environment oftewel IDE. We schrijven de programma’s (binnen de IDE ‘schets’ genoemd) erin, testen ze met de ingebouwde debugger en uploaden ze ermee naar de ESP-module.

De programma’s bestaan ten minste uit de functies setup en loop (lus). Alles wat in setup staat, wordt eenmalig uitgevoerd. Hier bepalen we onder andere welke aansluitpinnen we gaan gebruiken en of dat ingangen of uitgangen worden. Binnen loop staan instructies voor bijvoorbeeld het uitlezen van sensoren en het aan- en uitzetten van een led. Alles in dit gedeelte van het programma wordt oneindig vaak herhaald. Instructies die je slechts af en toe wilt uitvoeren, zet je in een of meerdere functies die je zelf definieert. In de praktijk wordt setup() nog voorafgegaan door variabelen die door het hele programma gebruikt worden. We kunnen bijvoorbeeld een pinnummer toewijzen aan een led of een drukknop, zodat we in de code niet alle pinnummers en de daarop aangesloten componenten hoeven onthouden.

©PXimport

05 Controleren en uploaden

Nadat de benodigde code is ingevoerd of geladen, is de eerste stap het verifiëren ervan. Dat gaat met het knopje met de V links bovenin. De IDE test niet de werking van de code, maar controleert of de structuur klopt. Heb je bijvoorbeeld alles netjes gegroepeerd en worden onderdelen correct geopend en afgesloten? En is er niet twee keer een andere waarde toegekend aan een constante? Overigens wordt de code voor het uploaden automatisch nog gecontroleerd. Dat voorkomt dat je code naar de module uploadt waardoor die zou kunnen vastlopen. Fouten worden gemeld in het zwarte venster onderaan.

De laatste stap is het al genoemde uploaden van je code. Dat gebeurt met de knop met de pijl naar rechts en bestaat uit drie fases, die automatisch na elkaar worden uitgevoerd. De eerste fase is zoals gezegd het controleren van het programma. De tweede fase is het compileren, dat is het omzetten naar instructies die de processor begrijpt. Die instructies zijn voor mensen onhanteerbaar, vandaar deze vertaalslag. Dit betekent overigens dat je de code niet op een later moment van de ESP-module kunt downloaden om er verder aan te werken. Bewaar je programma’s dus altijd goed! De derde en laatste fase is het daadwerkelijk versturen van de gecompileerde versie van het programma naar de module.

©PXimport

Installeren van de ontwikkelomgeving

Voordat je aan de slag kunt met de NodeMCU, moet je eerst het stuurprogramma en de Arduino-ontwikkelomgeving installeren. Op Windows-pc’s, macOS-computers en Linux-systemen wordt de module automatisch herkend, nadat je de Arduino-ontwikkelomgeving (IDE) hebt geïnstalleerd. Doe dat dus altijd als eerste!

  1. Installeer Arduino IDE.
  2. Sluit de NodeMCU aan met de usb-kabel. Als bij deze stap de module onverhoopt toch niet wordt herkend, trek dan de usb-kabel van module los. Download vervolgens de driver voor Windows of voor macOS (let op: downloadt direct) en pak het zip-bestand uit. Installeer de driver (voer bij Windows Setup.exe uit) en sluit de module weer aan.
  3. Start de Arduino IDE en geef indien nodig de firewall toestemming.
  4. Klik op Bestand / Voorkeuren en voer op het tabblad Instellingen de url http://Arduino.esp8266.com/stable/package_esp8266com_index.json in bij Additionele Board Beheer URLs.
  5. Voeg de module toe aan de IDE via Hulpmiddelen / Board / Boardbeheer.
  6. Zoek op ‘esp’ en klik bij esp8266 by Community op Installeren.
  7. Selecteer het juiste bord: Hulpmiddelen / Board / NodeMCU 1.0 (ESP-12E Module).
  8. Selecteer tot slot de juiste poort (Hulpmiddelen / Poort, kies de COM-poort met het hoogste nummer).

Arduino en nu online verder

De twee projecten die u op de volgende pagina’s vindt, zijn afkomstig uit het pakket ‘Arduino en nu online verder’, van dezelfde makers als dit tijdschrift. Het pakket bestaat uit een instructieboek met daarin 14 projecten. Daarnaast vind je in het pakket de NodeMCU, een breadboard en alle componenten die je nodig hebt om alle projecten te bouwen. Je vindt het pakket zolang de voorraad strekt hier. Normaal gesproken kost dit pakket 64 euro, gebruik de code ARDUINOTOTAAL om 10 euro korting te krijgen!

Benodigde componenten

  • NodeMCU
  • Breadboard
  • 5 jumperdraden
  • 1 rode led
  • 1 oranje led
  • 1 gele led
  • 1 groene led
  • 4 weerstanden van 100 ohm

01 Schakeling bouwen

De schakeling voor het weeralarm is eenvoudig: we sluiten een groene, gele, oranje en rode led op de NodeMCU aan. Voor elke led gebruiken we een aparte aansluiting op het bordje: de pinnen D1, D2, D5 en D6, die we in de code instellen als digitale uitgang. Verbind voor elke led de kathode (het korte pootje) van de led via een weerstand van 100 ohm met GND om de stroom door de led te begrenzen. De anode (het lange pootje) van de rode led sluit je aan op D1, die van de oranje led op D2, die van de gele led op D5 en die van de groene led op D6. Heb je niet alle kleuren leds tot je beschikking, dan kun je uiteraard ook andere kleuren gebruiken. Maar dat is natuurlijk wel minder leuk en minder duidelijk.

02 Uploaden code

Je kunt de code voor dit project hier downloaden. Open de code in de ontwikkelomgeving. Stel als eerste de naam van je draadloze netwerk (in plaats van SSID) en het wachtwoord van je draadloze netwerk in (in plaats van WACHTWOORD). Vervolgens kun je de juiste regio instellen, zodat je het weeralarm van jouw regio ziet. Het oorspronkelijke weeralarm gold voor heel Nederland, maar sinds 2010 geeft het KNMI een weeralarm per provincie. Het KNMI heeft Nederland daarom ingedeeld in vijftien regio’s. Een regio per provincie plus de Waddeneilanden, de Waddenzee en het IJsselmeergebied. In de code die je voor dit project kunt downloaden, vind je de url “/weeralarm.php?regio=utrecht” terug. Je kunt utrecht vervangen door limburg, zeeland, noord-brabant, zuid-holland, noord-holland, gelderland, flevoland, overijssel, drenthe, groningen, friesland, ijsselmeergebied, waddenzee of waddeneilanden om de juiste regio te tonen. Upload de code vervolgens naar de NodeMCU en druk op het resetknopje. Na een korte tijd gaat het lampje branden van de weercode die momenteel in jouw regio actief is.

©PXimport

ESP8266 in een domoticasysteem

De Arduino-ontwikkelomgeving is niet de enige software die je in combinatie met de ESP8266 kunt gebruiken. In editie 12/2017 hebben we het NodeMCU-bordje gebruikt als basis om sensoren te verbinden met domoticasysteem Domoticz. Hiervoor gebruikten we de ESP Easy-firmware die een webinterface biedt waarmee je eenvoudig aangesloten sensoren als een bewegingsmelder, thermometer of luchtvochtigheidsmeter kunt uitlezen. Je kunt het artikel hier teruglezen.

©PXimport

Project Weermonitor

Benodigde componenten

  • NodeMCU
  • Breadboard
  • 4 jumperdraden
  • Oled-scherm

01 Schakeling bouwen

De schakeling voor de weermonitor is nog eenvoudiger dan die van het weeralarm. Het enige dat we doen is een eenvoudig beeldschermpje aansluiten. Dat kan met vier draadjes. VCC en GND van het schermpje verbinden we respectievelijk met 3.3V en GND op de ESP-module, SCL met D1 en SDA met D2. En daarmee is onze schakeling klaar. Er zijn verschillende schermpjes te koop die je kunt gebruiken in combinatie met ontwikkelbordjes. We gebruiken een I2C-OLED-schermpje met witte weergave met een afmeting van 0,96 inch met een resolutie van 128 x 64 pixels, voorzien van vier aansluitpinnen. Wil je een dergelijk schermpje los kopen, tik dan in bijvoorbeeld eBay of AliExpress de zoekterm “i2c oled 4 pin white Arduino”. Zo’n schermpje is voor zo’n 2,50 euro te vinden.

02 Oled-driver installeren

Om het oled-schermpje aan te sturen, hebben we een extra library nodig: esp8266-OLED. Download het zip-bestand, pak het uit en plaats de uitgepakte map in de map libraries van je map met Arduino-schetsen (Documents\Arduino onder je persoonlijke map in Windows). Maak eventueel de map libraries aan als die nog niet bestaat. Herstart daarna de Arduino IDE. We kunnen nu in onze code de nieuwe library gebruiken met de regel #include "OLED.h". Overigens voegen we ook een regel #include <Wire.h> toe, omdat de library OLED de library Wire nodig heeft voor de communicatie met het schermpje.

03 Code instellen

Je kunt de code voor dit project hier downloaden. Om de schets te laten werken vul je in de code de naam van je draadloze netwerk in plaats van SSID en je wachtwoord in plaats van WACHTWOORD. In de regel daarna kun je het nummer van het gewenste weerstation instellen. Ieder weerstation heeft een viercijferig nummer. Standaard staat hier 6260, de code voor het weerstation bij De Bilt. Je vindt alle weerstations hier. Upload de code vervolgens naar de NodeMCU. Herstart het bordje door op het resetknopje te drukken en de weergegevens verschijnen op het schermpje.

©PXimport

▼ Volgende artikel
🍕 Effe wachten… Met deze oven staat er in tweeënhalve minuut een verse pizza op tafel!
© sonyakamoz - stock.adobe.com
Huis

🍕 Effe wachten… Met deze oven staat er in tweeënhalve minuut een verse pizza op tafel!

Niks zo lekker als een verse pizza. Jammer alleen dat het altijd zo lang duurt voordat-ie klaar is. Dat probleem is nu opgelost: AEG komt met een inbouw combi-stoomoven die een speciale pizzastand heeft. Pizza erin en 2,5 minuut* later is het genieten geblazen. Mangiare!

*Om het even in perspectief te zetten: 2,5 minuut, dat is net lang genoeg om de vaatwasser uit te ruimen, je tanden goed te poetsen of één gemiddelde track op Spotify te beluisteren. Helemaal niks dus.

View post on Instagram
 

In een gewone oven duurt het bakken van een verse pizza al gauw 10 tot 12 minuten. De AEG TX7PB62FSB is dus echt supersnel. Dat komt omdat er een speciale pizzastand op zit met een indrukwekkende maximale temperatuur van 340°C. Dankzij deze enorme hitte bak je in slechts 150 seconden een pizza met een perfecte, luchtige en krokante korst. Het is dan ook niet voor niets dat deze oven officieel is goedgekeurd door de Scuola Italiana Pizzaioli, de Italiaanse Pizza Academy.

En het mooie is: ook wie geen principe della cucina (inderdaad, keukenprins) is maakt hiermee de lekkerste pizza's. Het EXCite Touch Display fungeert als je persoonlijke assistent in de keuken. Het scherm vertelt je exact wanneer je de pizza in de oven moet schuiven en wanneer hij er weer uit mag. Voor de voorbereiding kun je rekenen op de AEG-app, die je helpt bij het kneden van authentiek Napolitaans deeg, het bereiden van de perfecte tomatensaus én de nodige inspiratie biedt. Bovendien krijg je er een speciale bakplaat en pizzaschep bij. Succes gegarandeerd dus.

©AEG

Na afloop van een legendarische pizza-avond hoef je niet op te zien tegen het schoonmaken. De pyrolytische zelfreinigingsfunctie brandt vet en resten op hoge temperatuur weg tot as, waardoor je alleen nog maar een vochtig doekje over de binnenkant van de oven hoeft te halen.

Behalve voor die legendarische pizza-avonden is deze ruime oven van 72 liter ook handig voor allerlei andere gerechten. Je wisselt makkelijk tussen de broodbakfunctie met deegrijsfunctie en technieken zoals garen op lage temperatuur of het dehydrateren van fruit en kruiden. Wil je een ovenschotel gratineren, een quichebodem krokant krijgen met alleen onderwarmte of snel iets ontdooien, dan kies je simpelweg de stand die daarbij past. Zelfs aan de details is gedacht, met functies voor het voorverwarmen van borden, het warmhouden van maaltijden en een slimme stand voor inmaken.

Hebben? Effe wachten… effe wachten… zoals het er nu naar uitziet is de AEG TX7PB62FSB vanaf maart bij alle bekende aanbieders verkrijgbaar.

Bekijk alle inbouwovens van AEG op Kieskeurig.nl

▼ Volgende artikel
Gerucht: Resident Evil: Code Veronica-remake verschijnt volgend jaar
Huis

Gerucht: Resident Evil: Code Veronica-remake verschijnt volgend jaar

Het ziet er naar uit dat een remake van Resident Evil: Code Veronica ergens in de eerste helft van 2027 uitkomt.

Er gaan al geruime tijd geruchten over een remake van Resident Evil: Code Veronica. Resident Evil-insider Dusk Golem meldt al geruime tijd dat Capcom aan een remake van de game werkt, alsmede een remake van Resident Evil 0.

Nu heeft de betrouwbare insider NateTheHate zich ook uitgesproken over de remake. Hij claimt ook dat de remake ergens in de eerste helft van 2027 verschijnt. Het is dan ook waarschijnlijk dat de game ergens dit jaar wordt aangekondigd.

De meest recente remake van een Resident Evil-game is de remake van Resident Evil 4. Die game werd zeer goed ontvangen. Hoewel veel fans vermoedden dat de volgende remake die van Resident Evil 5 zou betreffen, lijkt het er op dat mensen hier voorlopig nog op moeten wachten, omdat Code Veronica - en mogelijk ook Resident Evil 0 - eerst aan de beurt zijn.

View post on X

Over Resident Evil: Code Veronica

Resident Evil: Code Veronica kwam in 2000 uit op Sega's laatste console, de Dreamcast, en later ook naar andere platforms. De game speelt zich ongeveer drie maanden na de gebeurtenissen uit Resident Evil 2 en 3 af. In het spel proberen Claire Redfield en haar broer Chris een uitbraak van het zombievirus op een afgelegen eiland en een onderzoeksfaciliteit in Antarctica te overleven.

De oorspronkelijke game bevatte de traditionele, ietwat ouderwetse besturing van de eerdere Resident Evil-delen voordat Resident Evil 4 een modernere besturing introduceerde. Wel werden de voorgerenderde achtergronden uit eerdere delen vervangen voor 3D-omgevingen en een dynamische camera.

Nog meer Resident Evil

Hoewel de Resident Evil-reeks in de jaren negentig ontstond, blijft de gamefranchise erg relevant, mede dankzij de remakes en nieuwe delen. Op 27 februari verschijnt het negende hoofddeel in de serie, genaamd Resident Evil: Requiem.

In Requiem besturen spelers twee personages: Grace Ashcroft en Leon S. Kennedy. Beide personages bieden een verschillende speelstijl. De segmenten met Leon - onder andere bekend uit Resident Evil 2 en Resident Evil 4 - zijn erg op actievolle schietgevechten gericht. Leon kan daarnaast ook de kelen van vijanden doorsnijden. Hij heeft ook een bijl waarmee hij aanvallen kan afweren. Grace's segmenten zijn juist erg gericht op spanning en horror en draaien vooral om het vermijden van intense gevechten.

Onlangs werden er nog nieuwe beelden van de game getoond, die hier zijn te bekijken. Resident Evil Requiem verschijnt op 27 februari (pre-orderen kan nu al) voor PlayStation 5Xbox Series X en S, Nintendo Switch 2 en pc. Op 27 februari zullen ook Resident Evil 7 en Resident Evil Village (het achtste deel) op Nintendo Switch 2 uitkomen.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.