Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand...

44

Transcript of Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand...

Page 1: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board
Page 2: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

2

Voor we beginnen … ............................................................................................. 3

Dag 1: Het NodeESP-board .....................................................................................4Mogelijkheid 1: WPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Mogelijkheid 2: Configuratie via de website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Dag 2: OnBoard-LED en updates ............................................................................6

Dag 3: UDP en Packet Sender .................................................................................8

Dag 4: UDP en JSON ..............................................................................................10

Dag 5: Node-RED .................................................................................................12

Dag 6: Touch to Speach ........................................................................................14

Dag 7: Trappenhuislicht ........................................................................................15

Dag 8: Een regelaar ..............................................................................................16

Dag 9: Een sfeerlicht .............................................................................................18

Dag 10: Deep Sleep ...............................................................................................19

Dag 11: MQTT........................................................................................................21

Dag 12: MQTT-Button ........................................................................................... 23

Dag 13: Slimme schakelaar voor een soundboard ................................................ 25

Dag 14: Slimme lichten ........................................................................................ 27

Dag 15: Afstandsbedieningsontvanger .................................................................. 29

Dag 16: Universele afstandsbediening .................................................................. 30

Dag 17: Tijdgestuurde lichten .............................................................................. 33

Dag 18: Kaarsenalarm .......................................................................................... 34

Dag 19: Cheerlights .............................................................................................. 35

Dag 20: Plantenbewaker ...................................................................................... 36

Dag 21: Piano-Player ............................................................................................ 38

Dag 22: Klimaatbewaker ...................................................................................... 39

Dag 23: Alarminstallatie .......................................................................................41

Dag 24: Kerstverlichting ....................................................................................... 42

Alle Versuche im Überblick

Page 3: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

3

Voor we beginnen …… nog een paar woorden over de adventskalender van dit jaar . Wanneer men mij vroeg of ik tijd en zin had om de IoT-kalender 2018 te maken, heb ik meteen toegezegd . Ik heb met veel plezier de adventska-lenders van 2015 en 2016 gemaakt . Het was voor mij ook snel duidelijk dat de tijd gekomen is om een nieuw ontwikkelings-board in het spel te brengen, en een op basis van de ESP31-microcontroller . Dat was de geboorte van het NodeESP-board .

Als ik de Arduino-programma’s voor het board begon te schrijven, werd me snel duidelijk dat de integra-tie van de ESP32 in Arduino nog volop aan de gang is . Bijna wekelijks waren er wijzigingen, en meerdere keren functioneerden de programma’s plotseling niet meer zoals gewenst . Gelijktijdig worden de bron-teksten steeds langer en complexer, omdat ik de efficiëntie en de functionaliteit van de ESP32-controller wilde vergroten . Zulke complicaties zijn natuurlijk een zeer groot risico voor een ES-geslaagde kerstperi-ode, zowel voor u als voor u als voor mij . Er moest dus een beter oplossing komen .

Daarom heb ik bij deze adventskalender voor een ietwat andere weg gekozen . In deze kalender wordt de NodeESP als een Art Blackbox beschouwd, die slechts enkele interfaces beschikbaar stelt . De functies worden gewoon als programma van de dag op de board-website gekozen . Het board opent dan de com-municatiekanalen en reageert op de vooraf gedefinieerde bevelen . Opdat het niet te langdradig zou wor-den, heeft u de mogelijkheid om via het programma Node-RED zelf kleine programma’s te creëren .

Omdat het daarbij ook tot moeilijkheden kan komen en de interfaces en bevelen zelf ook enige docu-mentatie nodig hebben, is er ook dot jaar weer een website bij het adventskalenderproject . Op www.iot.fkainka.de wordt niet enkel dagelijks het project van de dag voorgesteld, maar kunt u ook met behulp van de commentaarfunctie over het project discussiëren of ondersteuning krijgen bij problemen . Boven-dien vindt u op de website de flow van de dag, het programmaverloop dus, die u eenvoudig in uw Node-RED-omgeving kunt importeren . Bijkomende worden op de website verdere informatie en extra projecten weergegeven, zodat het de moeite loont om ook na de kerstperiode eens een kijkje te nemen op de website .

Ik hoop dat ik ook dit jaar op de website veel door techniek begeesterde lezers mag verwelkomen, die samen het adventskalenderproject nog interessanter, leerrijker en socialer maken .

Ik wens u een fijne en spannende kerstperiode!

Fabian Kainka

Page 4: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

4

1. Tag

Dag 1: Het NodeESP-boardHet is de eerste dag van het adventskalenderproject 2018 en dus tijd om het eerste deurtje te openen . Achter het deurtje vindt u het microcontrollerboard van deze kalender . Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen .

Het NodeESP-board met gemarkeerde WPS-knop

De eerste stap is het board van stroom voorzien . U kunt het board gewoon via een micro-USB-kabel met de PC of de oplader van een smartphone verbinden . U heeft minstens 300 mA nodig om het board te starten, oudere laptops en USB-hubs zonder externe voeding kunnen voor problemen zorgen . De RGB-led op het board begint na een korte tijd geel op te lichten . Daarmee is de initialisatie voltooid . U moet nu nog uw WLAN-gegevens invoeren . Daarvoor zijn er twee mogelijkheden:

Mogelijkheid 1: WPSMisschien kent u de WPS-functie al van andere apparaten; Door op een knop op uw router te druk-ken en op het nieuw te verbinden apparaat, wisselen beide de WLAN-gegevens zelfstandig uit . Ook het NodeESP-board heeft deze functie . Druk gedurende enkele seconden op de Boot-knop (de knop dichtbij de batterij-aansluiting, aangeduid op de afbeelding) en de led knippert geel . Druk dan op de WPS-knop op uw router . Na een korte periode start de NodeESP opnieuw . Als de verbinding succesvol was, licht de led na kort knipperen permanent groen op . Is dit niet het geval, dan kunt u de procedure herhalen of de tweede mogelijkheid proberen .

Mogelijkheid 2: Configuratie via de websiteDe tweede mogelijkheid, een verbinding maken met uw thuisnetwerk, bestaat erin de voorgeprogram-meerde configuratiewebsite te gebruiken . Daarvoor moet u een verbinding maken met de hotspot van het board . Het creëert namelijk in uw omgeving een open WLAN-netwerk met de naam NodeESP . Maak nu verbinding met een PC of een smartphone met deze hotspot . Aansluitend roept u een browser op en typt u het adres van het board in de Access-Point-Modus http://192.168.4.1. De in het board geïnte-greerde website wordt nu opgebouwd.

Op het kleine board loopt een volledige webserver en zijn er ook een paar pagina’s die u kunt bezoe-ken . U vindt daar onder andere de configuratiepagina Board Configuration . Hier heeft u onder andere de mogelijkheid om uw WLAN-gegevens in te geven . Klik op het punt WIFI Station Settings . Het board scant op WLAN-netwerken in de reikwijdte . Na een korte periode kunt u uw netwerk in de lijst kiezen en in het onderste tekstveld het paswoord ingeven .

Page 5: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

5

De configuratiepagina van het board .

De verbinding met het thuisnetwerk bestaat nu ook . Nu kunt u de boardwebsite via het thuisnetwerk oproepen . De IP van het board gebeuren ook via de configuratiepagina van het board . Eventueel moet u daarvoor ook opnieuw met het NodeESP-netwerk verbinden . In het bereik Board WiFi Status bevinden zich de IP-adressen die uw board van uw router toegewezen heeft gekregen . Verbind nu opnieuw met uw thuisnetwerk en roep deze IP in de browser op . In het afgebeelde voorbeeld is dat http://192.168.178.114/ .

De configuratiepagina van het board

Een iets praktischere weg gaat via de Bonjour-service van Apple . Daarvoor moet u een kleine tool instal-leren, die u op de website

https://support.apple.com/de-de/bonjour

kunt downloaden .

Opmerking: Deze stappen gelden enkel voor Windows-gebruikers . Apple- en Linux-gebruikers hebben de dienst al vooraf geïnstalleerd . Het werkt niet met Android-smartphones .

Na de installatie typt u in de browser simpelweg http://nodeesp.local/ om naar de website van het board te gaan . De IP-adressen aanduiden is dan overbodig . De service die daar achter zit noemt overi-gens mDNS (multicast Domain Name System) en functioneert terwijl het board voortdurend zijn IP en domeinnamen aan het netwerk verstuurd . De mDNS-naam kan overigens ook op de configuratiepagina aangepast worden . Daarmee wordt een kleine verbinding met het thuisnetwerk gemaakt . Indien u te maken krijgt met problemen, vindt u hulp pp de projectpagina www.iot.fkainka.de

Page 6: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

6

Dag 2: OnBoard-LED en updatesAchter het deurtje van de tweede dag vindt u een insteekboard voor de komende testopstellingen . Ik beveel echter aan om uw NodeESP nog niet op het insteekboard te steken . We bekijken vandaag hoe u de vooraf geïnstalleerde programma’s op het board kunt starten, en brengen het board bovendien op de nieuwste stand .

Verbind uw board opnieuw met een stroombron . De WLAN-gegevens die u gisteren heeft ingevoerd zijn opgeslagen, en daardoor verbindt het board automatische met uw WLAN . Roep dan de boardpagina op via de IP of de mDNS-naam (http://nodeesp.local/) . Eerst moet er naar mogelijke software-updates gezocht worden . Daarvoor opent u de configuratiepagina, klikt u helemaal onderaan op het punt Advan-ced Settings en daar op Check for Firmware Updates .

Het board is op de nieuwste stand

Wanneer een nieuwe update wordt gevonden, krijgt u op de configuratiepagina een melding die u moet bevestigen . Daarna kunt u eerst een koffie gaan halen, want de vooruitgang van de update kan lang duren (tot 20 minuten) . Van zodra het board weer groen oplicht, kunt u verdergaan . Controleer opnieuw of er updates zijn . Normaal meldt het board nu dat alles op de nieuwste stand is . Indien er iets is fout gelopen, vindt u op de projectpagina een handleiding over hoe u dit kunt herstellen .

Maar nu naar de vooraf geïnstalleerde programma’s: op de configuratiepagina ziet u het punt Applica-tion Settings . Daar vindt u alle programma’s en een infobox, die u zegt welke momenteel actief is . Kies vervolgens in de bovenste box IoT Adventscalendar 2018 en in de onderste het programma van de dag (begint met IoT Calendar 2018 – Day 2) . Bevestig aansluitend met Submit . Het board start nu met het gekozen programma .

2. Tag

Page 7: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

7

Het Color-Picker-Element .

Na opnieuw opstarten en een nieuwe verbinding kunt u nu wisselen naar de hoofdpagina van het board . Daar vindt u een verdere link met de aanduiding Application Page . Wanneer u deze link volgt, bereikt u een website met een zogenaamd Color-Picker-Element, waarmee u kleuren kunt kiezen . De door u geko-zen kleur wordt doorgestuurd naar het board en door de OnBoard-led geproduceerd . U heeft dus een kleine lamp en dat zonder dat u iets moet samen steken .

Page 8: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

8

Dag 3: UDP en Packet SenderAchter het deurtje van vandaag bevindt zich een verder insteekboard . Het kan samen gestoken worden met het insteekboard van gisteren . Het NodeESP-board kan dan gelijktijdig op de beide boards geplaatst worden . Het bleek wel dat deze constellatie niet altijd functioneert . De eenvoudigste oplossing is om de zijkanten van het insteekboard af te breken . Daarvoor heb ik de boards in elkaar gestoken en gewoon zo lang gebogen totdat een zijkant afbrak . Met het andere board ben ik op dezelfde manier te werk gegaan . Met een tang gaat het ook . Zonder zijkanten kunnen de insteekboards dichter bij elkaar geplaatst wor-den en zijn er geen problemen met het raster . Het NodeESP-board steekt u dan gewoon op de beide boards, zoals op de afbeelding te zien is . Zo blijft er genoeg plaats voor verdere bouwdelen . In het hui-dige project zullen we zien hoe u vanaf de PC een verbinding met het board kunt maken en dat zonder de webbrowser te gebruiken .

Kies op de configuratiepagina het programma van de huidige dag . Het board start dan opnieuw op . U bent nog niet helemaal klaar met de instellingen . Op de configuratiepagina is er een verder bereik, UPD Settings . Daar vindt u het punt IP (send) . Deze IP kan al correct zijn, maar waarschijnlijk moet u hier uw Broadcast-adres manueel invoeren . In de meeste gevallen moet u gewoon uw lokale IP, die bovenaan in het bereik Board WiFi Status staat, in het veld kopiëren en het laatste getal na het punt vervangen door 255 . Er zijn echter ook enkel thuisnetwerken die een andere structuur gebruiken . Wanneer het moeilijk wordt, kunt u een online tool zoals

https://remotemonitoringsystems.ca/broadcast.php

gebruiken of in het commentaarbereik van het huidige programma hulp zoeken . Na het bevestigen met Submit start het board zoals gewoonlijk opnieuw en begint meteen berichten te versturen . Doch nu heb-ben we nog een programma op de PC nodig, waarmee we de berichten kunnen ontvangen . Daarvoor is de tool Packet Sender aan te bevelen, dat voor alle gebruikelijke besturingssystemen op via de pagina

https://packetsender.com/download

kan gedownload worden . Naar eigen keuze gebruikt u de versie om te installeren of de portable-versie, die u onmiddellijk kunt starten . Na de start vraagt Windows eventueel naar de firewall-instellingen . Hier moet u kiezen voor thuisnetwerk en toegang toelaten .

Onderaan in het Packet-Sender programma moet nu UDP gevolgd door het getal 55056 te zien zijn . Wanneer dit getal niet 55056 is, moet u onder File/Settings in het Register Network bij UDP Server Poort invoeren, omdat dezelfde poort ook op de configuratiepagina van ons board is ingesteld .

3. Tag

Page 9: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

9

Het Packet-Sender-programma met geopende instellingen

En daadwerkelijk, na een korte periode verschijnt in het onderste venster een bericht dat elke vijf secon-den wordt herhaald . U heeft dus al met succes een bericht van uw board ontvangen .

Page 10: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

10

Dag 4: UDP en JSONAchter het vierde deurtje van de adventskalender vindt u een set kabels die voor de komende hard-wareopstellingen nuttig zijn . In het huidige project willen we echter bekijken wat het JSON-formaat is en hoe het ons helpt om met het board te communiceren .

Eerst activeert u zoals gewoonlijk het programma van de huidige dag . Daarnaast heeft u het Packet-Sender-Programma met dezelfde instellingen als gisteren nodig . Vandaag verschijnt dan pas een bericht wanneer u kort op de boot-knop op het board heeft gedrukt . Dit bericht ziet er zo uit:

{"cmd":"boot_pressed"}

Het bericht in het Packet-Sender-Programma .

Dit komt doordat dit bericht het JSON (JavaScript Object Notation) volgt . Daarbij gaat het over een beperkt gegevensuitwisselingsformaat voor machines, dat ook voor mensen goed leesbaar is . Aan de basis bestaat in het JSON-formaat alles uit namen en waarden . Eerst komt de naam van de waarde (ook key genoemd), hier cmd, (kort voor command, commando) en aansluitend de waarde, hier boot_pressed . Beide zijn door een dubbele punt van elkaar gescheiden en, omdat het hier over tekst gaat, door aanhalingstekens ingesloten . Een volledig JSON-object is bijkomende door accolades omgeven .

Het board kan niet alleen berichten versturen, maar ook ontvangen . Daarvoor moet u in het Packet-Sen-der-programma een paar instellingen inschakelen . In het bovenste bereik vindt u een tekstveld waarin adres geschreven staat . Hier moet u opnieuw het Broadcast-adres invoeren, dat u ook gebruikt heeft op het board . Alternatief kunt u het board-IP ook enkel met de mDNS-naam (gewoon nodeesp) gebruiken . In het veld Port rechts daarnaast voegt u weer de poort 55056 in . Als laatste instelling kiest u in het drop-down menu verder rechts voor UDP . Nu kunt u iets verder bovenaan in het veld ASCII een bericht ingeven en met de Send-knop doorsturen . Stuur vervolgens een willekeurige tekst door, bijvoorbeeld ‘hallo’ . Omdat het Packet-Sender-Programma onder dezelfde poort ook luistert en u het Broadcast-IP-adres gebruikt, zult u een enkele van de verstuurde berichten ook zelf ontvangen . Bijkomend ontvangt u van het board het bericht {"cmd":"ack"} . ack is de afkorting van acknowledged (bevestigd). Daar-mee bevestigt het board dus de ontvangst van een bericht, ook wanneer het waarschijnlijk met het bericht zelf niets kan aanvangen.

4. Tag

Page 11: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

11

Wanneer u nu echter een vooraf gedefinieerd bevel in JSON-formaat verstuurt, dan ziet de zaak er helemaal anders uit. Verstuur bijvoorbeeld de tekst {"cmd":"ping"}, dan volgt er na een korte tijd {"cmd":"pong"} als antwoord van het board. Er zijn nog andere bevelen die u kunt uitproberen. Met {"cmd":"get_wifi_status"} krijgt u de verbindingsstatus van het board terug. Met {"cmd":"get_wifi_scan"} worden alle WLAN-netwerken binnen het bereik gevonden en in een lijst overgedragen.

Er is een ganse reeks van commando’s die u op de boardpagina of op de projectpagina kunt vinden . Maar voorzichtig: een paar commando’s uit de categorie Settings kunnen de instellingen van het board zodanig veranderen dat niets meer werkt . Wanneer dat gebeurt, kunt u terugkeren naar de standaardin-stellingen indien u de boot-knop gedurende tien seconden ingedrukt houdt . Dit is mogelijk in alle pro-gramma’s waarbij WPS in accolades achter de programmanaam staat . Dezelfde functies is ook op de configuratiepagina onder Advanced Settings te vinden . (Restore Default Configuration) . Als derde moge-lijkheid kunt u pin 13 bij de boardstart op LOW zetten . Vergeet echter niet de verbinding aan pin 13 na de reset weer los te koppelen .

Page 12: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

12

Dag 5: Node-RED Achter het vijfde deurtje van de adventskalender vindt u een knop die bij de huidige test in plaats van de boot-knop moet gebruikt worden . De knop wordt zo aan pin 18 en GND aangesloten, dat hij bij het drukken de pin op massa, dus LOW, trekt . Wanneer u nu het programma van de dag kiest en op de knop drukt, wordt er weer een bericht via UDP overgedragen .

Vandaag leert u het programma Node-RED beter kennen, waarmee u uw eigen kleine programmaverloop kunt creëren en processen kunt automatiseren . Node-RED is een gratis software die het ons mogelijk maakt om verschillende apparaten, online diensten en API’s (programmeerinterfaces) via een eenvou-dig grafisch interface te verbinden . De verbindingen, flows genoemd, worden daarbij gewoon door een muisklik voortgebracht .

Node-RED is er voor Linux, Windows en macOS . Het gebruik van een Rasp-berry Pi is zinvol, omdat deze zonder groot energieverlies altijd actief kan zijn, volledig in de zin van Smarthome . Daarnaast is Node-RED daar onder Rasp-bian al vooraf geïnstalleerd .

Ik stel als voorbeeld de installatie voor Windows 10 voor . De meeste van deze bevelen zijn echter ook op andere systemen overdraagbaar .

In een eerste stap moet Node .js geïnstalleerd worden . Deze software vindt u op de website https://nodejs.org/, waar ook een installatiehandleiding te vin-den is . Installeer het ong . 16MB grote MSI-bestand door een dubbele muisklik . Om zeker te zijn dat alles correct geïnstalleerd wordt, moet u nu de Windows-terminal, ook commandoregel genoemd (Windows-knop + [R] en dan cmd invoeren), openen en

node --version && npm –version

invoeren . Het resultaat luidt bv . v8.10.0 und 5.6.0, u kunt echter al een nieu-were versie hebben . In de commandoregel met u dan het bevel voor de instal-latie van Node-RED invoeren:

npm install -g --unsafe-perm node-red

Dat kan een tijdje duren . Aansluitend start u Node-RED met deze commandoregel:

node-red

De firewall meldt zich . In de achtergrond start Node-RED in de console .

5. Tag

Page 13: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

13

Dadelijk meldt de firewall zich, die moet weten hoe hij moet verdergaan met de nieuwe verbinding . Het is belangrijk dat u private netwerken en toegang toelaten selecteert . Enkel dan kan Node-RED correct werken . Het is ook belangrijk dat u de terminal nu niet sluit, want daarmee beëindig u ook Node-RED weer .

Nu heeft u de Node-RED geïnstalleerd en gestart, maar buiten een paar regels in de terminal nog niet veel nuttigs gezien . Dat komt doordat de bedieningsinterface van de software via de browser geopend worden . Daarvoor opent u het adres http://127.0.0.1:1880/ . Daarbij gaat het over het localhost-adres van uw computer . Het getal 1880 staat voor de poort via dewelke u Node-RED bereikt . Wanneer u vanaf een andere computer Node-RED wilt bereiken, moet u natuurlijk het correcte IP van de computer gebruiken . Nu ziet u de interface van NodeRED met het flow-vlak in het midden, de Node aan de linkerzijde en informatie aan de rechterzijde .

Instellingen en een ontvangen bericht

Aan de linkerzijde vindt u in het bereik Input een node met de aanduiding udp . Trek het vrije vlak in het midden . Iets verder naar beneden onder het punt output vindt u debug . Trek de node op dat vlak . Verbind beide nodes door te klikken en te verslepen met de muis . Aansluitend klikt u dubbel op de UDP-node om de instellingen te openen . Voer in exact zoals u bovenaan op de afbeelding ziet . Dan bevestigt u met Done . Om te starten moet u op de Deploy-knop rechts bovenaan in de hoek klikken . Er verschijnt kort de melding Succesfully deployed . De nieuwe flow is nu actief . Als laatste stap kiest u aan de rechter rand het register debug en drukt dan op de knop op het insteekboard . In het debug-venster verschijnt een bericht in het bekende JSON-formaat {"cmd":"btn1_pressed"} . De verbinding met Node-RED is gemaakt .

Opmerking: Het aftellen van de board-pins kan moeizaam verlopen . Daarom is er op de boardpagina in het bereik Pinout een sjabloon, dat u kunt uitdrukken, uitsnijden en op het board leggen .

Page 14: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

14

Dag 6: Touch to SpeachAchter het zesde deurtje van de adventskalender vindt u een weerstand met KOhm, die pas morgen gebruikt wordt . Vandaag willen we ons verder met Node-RED bezighouden en de Touch-functie van het board uitproberen . Daarvoor moet u zoals gewoonlijk het programma van de huidige dag selecteren en daarnaast de volgende schakeling opbouwen . De gele draden zijn de touch-sensoren met een vrij einde .

Na de opbouw kunt u de Node-RED weer via de terminal en het bevel node-redt starten . Open dan via het adres http://127.0.0.1:1880/ de Node-RED editor. Eerst en vooral zullen we vandaag een paar nodes installeren. Daarvoor klikt u aan de rechter bovenrand op de drie strepen. U vindt dan het punt manage palette. Hier staan alle geïnstalleerde nodes in een lijst. Wanneer u nu het Install-Register selecteert, ziet u een groot aantal verschillende modules die u kunt installeren. Voor vandaag zoeken we naar de module node-red-dashboard. Klik op de install-button. Een bericht verschijnt, dat u voor de deels moeilijke installatie waarschuwt. Klik op ok, want met deze module gaat het eenvoudig. Na een korte wachttijd verschijnt een succesmelding en u heeft de nieuwe node in uw node-regel.

In de volgende stap kunt u de flow van de huidige dag instellen . Opdat u niet alles zelfs zou moeten dien, is er de mogelijkheid ganse flows in Node-RED te importeren . Klik daarvoor weer op de drie strepen en aansluitend op Import, gevolgd door het Clip-board . In het verschenen tekstveld kunt u de flows kopi-eren . U vindt de flow van de huidige dag, net zoals voor de volgende dagen, op de website iot .fkainka .de en daar op de subpagina van de actuele test .

Na het importeren moet bovenaan in de lijst een nieuw register te zien zijn . Vervolgens moet u echter de flow van gisteren deactiveren omdat hij aan de UDP-poort zal lezen . Dubbelklik op de tab van de flow, wissel dan in het flow-menu de status van Enabled naar Disabled en bevestig met Done . Nu kunt u het nieuwe verloop met Deploy bevestigen .

Open in de browser deze pagina:

http://127.0.0.1:1880/ui

Wat u nu ziet, is een userinterface (UI), vaak het dashboard genoemd . Dankzij de installatie van de nieuwe Node-Module is het nu mogelijk om een eigen interface aan te maken, via dewelke u de processen kunt sturen . De interface van vandaag heeft u mee geïmporteerd met de flow van de huidige dag . Het gaat om een tekstbox die de UDP-berichten aanduidt . Er is echter nog iets bijkomend: Ik hoop dat u de geluidssterkte van uw pc niet te hoog hebt ingesteld, wanneer u nu de vrij hangende draden aan het board aanraakt . Het board herkent automatisch de aanraking en zendt een UDP-bericht dat in het tekstveld verschijnt . Bijkomend is er op het dashboard ook een Tekst-to-Speech-Node, die de tekstwaarde in het JSON-object voorleest . U heeft dus met suc-ces een eerste spraakuitvoer gerealiseerd – en dat met slechts één enkele node .

Tip: Als een aanraking geen bericht voortbrengt, pas dan op de configuratiepagina de gevoelig-heid van de touch-herkenning aan . Hoe hoger de waarde, hoe ontvankelijker de touch-knoppen reageren op aanrakingen .

Drie draden hangen aan een uiteinde in de lucht .

Het eenvoudige dashboard .

6. Tag

Page 15: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

15

Dag 7: TrappenhuislichtAchter het deurtje van vandaag bevindt zich een orde led . Daarmee willen we een eenvoudig trappen-huislicht met webinterface realiseren . Daarvoor moet u de volgende schakeling opbouwen en het hui-dige programma activeren .

De Node-RED om te importeren vindt u op de website . Deactiveer daarna na het importeren de flow van gisteren, waardoor de UDP-ontvangst-nodes niet in de query komen . In de flow zelf vindt u deze keer naast de ontvangst- ook een verzendnode . Die moet u waarschijnlijk aan uw broadcast-IP aanpassen . Wanneer op de UDP-node een bericht aankomen, wordt ze weer door een JSON-string, dus een zuivere tekst, in een JSON-object geconverteerd . Het onderscheid is, dat men nu direct toegang heeft tot individu-ele attributen .

De flow van het trappenhuislicht .

De volgende switch-node is vergelijkbaar met een IF-verzoek . Er wordt gecontroleerd of het command trigger verstuurd wordt . Dit commando wordt door het drukken op de knop gekozen . Een trigger-node neemt het werk over . Wordt de trigger-node geactiveerd, zend ze het bevel light_on voor "Licht aan" . Dit bericht, ook in JSON-formaat, wordt door de het NodeESP-board geïnterpreteerd, en overeenkomstig wordt het licht aangeschakeld . Na vier seconden zendt de trigger-node het bericht: light_off voor "Licht uit" . Ook hierop reageert het board overeenkomstig . Het off-bericht kan uitgesteld worden, als de trigger-node opnieuw geactiveerd wordt . U kunt dus et trappenlicht ook via de smartphone activeren, helemaal in de zin van smarthome .

Opmerking: In de Windows-versie van Node-RED functioneerde de UDP-Node voor het verzenden niet met de instelling broadcast message (in de node-properties onder send a) . In de Node-RED-versie, die ik op een Raspberry getest heb, functioneerde alleszins het verzenden enkel met deze instelling . Dat betekent dat Raspberry -gebruikers waarschijnlijk op deze plaats de UDP-node aanpassen om te ver-zenden .

7. Tag

Page 16: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

16

Dag 8: Een regelaarAchter het achtste deurtje van de adventskalender bevindt zich een potentiometer die hier als spannings-deler gebruikt wordt . U kunt een spanning tussen 0 V en 3,3 V instellen, die door het board gemeten en aan de Node-RED overgedragen worden . Bijkomend bij het trappenhuislicht van gisteren kunt u ook de meetwaarde overdragen .

De flow van vandaag verkrijgt u gewoon van de website . Vergeet niet die van gisteren te deactiveren en eventueel de Verzend-IP aan te passen . In de huidige flow wordt bovendien een nieuwe node voor het dashboard gebruikt, namelijk een gauge (meetapparaat), via dewelke de gemeten waarde visueel gecre-eerd wordt .

Wanneer u het programma van de huidige dag activeert, zult u zien dat het gauge-element (wijzer-instrument) op de dashboard-pagina ongeveer elke twee seconden actualiseert en de nieuwe meet-waarde aanduidt . Wanneer u nu aan het wieltje van de potmeter draait, wijzigen deze waarden . Deze meetwaarde kan voor verschillende toepassingen gebruikt worden, bijvoorbeeld om de helderheid van de led te wijzigen of de lichtduur van het trappenlicht in te stellen, dus typische toepassingen in uw smarthome .

8. Tag

Page 17: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

17

De userinterface voor de huidige test

Page 18: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

18

Dag 9: Een sfeerlichtAchter het deurtje van vandaag vindt u een fototransistor . Hij wordt gebruikt om de omgevingshelderheid te meten . In deze schakeling ligt de potmeter in serie met de fototransistor . Zo kan men met de potmeter dan gevoeligheid van de sensor veranderen . De schakeling bekomt dat door het verdonkeren van de sensor de meetwaarde verhoogt .

Dit kunt in het gauge-element op de gebruikersinterface bij de huidige dag zien . Daarvoor moet u echter eerst de flow van de huidige dag in uw Node-RED-omgeving importeren en starten, natuurlijk niet zonder die van gisteren te deactiveren . Vergeet ook niet om het huidige programma op de configuratiepa-gina te activeren en de IP van deze UDO-verzend-node aan te passen .

Bijkomend bij de aanduiding van de meetwaarde wordt ook weer de OnBoard-led ingezet . Die moet, afhankelijk van de gemeten waarde, de kleur automa-tisch aan de lichtverhouding aanpassen . Wanneer het absoluut donker is, moet de led rood oplichten . Hoe helderder het wordt, des te meer verandert de kleur over groen naar blauw . Zo kunt u bijvoorbeeld uw werkplek ’s avonds in een ontspannend rood verlichten, en overdag in een krachtig blauw .

De Range-node rekent de gemeten waarde van 0 tot 4095 op een bereik van 240 tot 0 om . Daarmee wordt de gewenste led-kleur in een zogenaamd HSV-formaat verzonden . HSV staat voor Hue, Saturation en Value, dus kleurtoon . Verzadiging en (hier) helderheidswaarde . Het gaat over een alternatieve weer-gave bij het RGB-systeem . In het HSV-formaat wordt de kleurtoon door een hoek van 0° tot 360° weergegeven . Rood komt overeen met °, groen ligt rond de 120° en blauw bij 240° . Op deze plaats wordt de meetwaarde dus in een waarde tot 240 omgerekend, want daarmee is het ganse kleurenpallet van rood tot bauw afgedekt . In de volgende Template-node wordt het commando samengesteld dat aansluitend naar het board gestuurd wordt . Bij een gemid-delde waarde is het commando:

{"cmd":"set_rgb_hsv","value":"hsv(120, 100%, 100%)"}

De procenttekens na de verzadiging en de helderheid kunnen ook weggelaten worden . Het board wijzigt nu ook de kleur en zend als bevestiging dezelfde waarden met het commando get_rgb_hsv terug. Dit wordt ook door Node-RED ontvangen en aan de hand van een Color-Picker-element op de inter-facewebsite weergegeven. Zo kunt u altijd volgen welke kleur het board nu aanduidt.

De flow van de huidige dag

9. Tag

Page 19: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

19

Dag 10: Deep SleepAchter het deurtje van vandaag vindt u een batterijvak voor drie A-batterijen (4,5 V), om het board onafhankelijk van een stekkerdoos te kunnen bedienen . Voor een zuinig batterijverbruik is er de Deep-Sleep-Modus . Deze laat toe aan het board om te wisselen in een diepe-slaap-modus en zo goed als geen stroom te verbruiken . Na een bepaalde tijd ontwaakt het board zelf en vervuld een kleine opdracht, om kort daarna weer te gaan slapen . Door de lange slaap- en korte wektijden bespaart deze modus veel energie en kan het board zo gedurende maanden via de batterijen gebruikt worden . De opbouw van vandaag gebruikt weer de lichtsensore en heeft bijkomend een draadbrug van pin 23 naar GND .

De draadbrug bij pin 23 in acht nemen .

Stel vervolgens het programma van de huidige dag in . Wanneer het bord nu reset, knippert de status-led kort groen, maar gaat dan weer uit . Na ong . 20 seconden begint het spel weer van in het begin, de Deep-Sleep-modus is dus actief .

De flow van de huidige dag bestaat uit een gauge en een chart . Een chart dient ertoe om meerdere meetwaarden over een bepaalde tijdsperiode grafisch weer te geven . Vandaag worden de meetwaarden overigens met een Range-node omgedraaid, zodat een sterke helderheid ook een hoge meetwaarde op de gauge en de chart levert . U kunt nu dus de Node-RED-instantie op een computer of een Raspberry laten draaien, terwijl u het board met de batterijen ergens plaatst en daar de helderheid over een ganse dag verdeeld meet .

10. Tag

Page 20: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

20

Het gauge- en chart-element op de dashboardpagina .

Opmerking: Wanneer het knipperen van de status-led elke 20 seconden u stoort, bijvoorbeeld als u de lichtverdeling in uw slaapkamer gedurende de nacht wilt meten, kunt u deze ook eenvoudig op de configuratiepagina deactiveren . Om de Deep-Sleep-Modus te verlaten, moet u de draadbrug aan pin 23 weer verwijderen en het board resetten of een Deep-Sleep-cyclus afwachten .

Page 21: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

21

Dag 11: MQTTAchter de deur van vandaag vindt u weer een set kabels, die we voor de volgende dagen en de opstellin-gen die complexer worden nodig zullen hebben .

In de laatste dagen hebben we de meeste van onze gegevens via UDP overgedragen . Dit protocol is zeer praktisch, omdat het enerzijds een kleine overhead (gegevens die naast de eigenlijke gebruiksgegevens overgedragen worden) heeft en anderzijds broadcast-gevoelig is en aan verschillende apparaten gelijk-tijdig gegevens kan versturen . Vandaag willen we echter nog een tweede protocol beter leren kennen, dat in het bereik van IoT een grote rol speelt . Het gaat om het berichtenprotocol MQTT (Message Queue Telemetry Transport), dat speciaal voor de communicatie van machine tot machine (M2M) ontwikkeld werd . De reden dat dit protocol zo geniaal is, ligt in de compactheid en de eenvoudigheid, waarmee de gegevens zoals besturingsgegevens, meetgegevens of teksten tussen apparaten kunnen uitgewisseld worden . In vergelijking met HTTP is de overhead zeer klein . Daarom kunnen ook Embeded Devices, dus microcontrollers zoals onze NodeESP de gegevens goed verwerken .

De basis voor de communicatie wordt gelegd door een zogenaamde broker . Een broker is een servertoe-passing die alle berichten verwerkt . Een apparaat zoals onze NanoESP kan verbinden met de broker en berichten openbaar maken (publishen), dus aan de broker verzenden . Een ander apparaat kan dan op bepaalde thema’s (topics genoemd) abonneren (subscriben) en krijgt dan meteen alle nieuwe openbare berichten die bij dit thema behoren ter beschikking .

De MQTT-broker maakt de berichten beschikbaar .

De topics zijn hiërarchisch gestructureerd waarbij subthema’s door een / gescheiden zijn . Bijkomend zijn er zogenaamde Wildcards . Door + of # kan er op meerdere thema’s tegelijk geabonneerd worden . De topics MyHome/Kitchen/Temperature en MyHome/Nathroom/Temperature kunnen zo bijvoorbeeld door het subscriben voor het thema MyHome/+/Temperature gelijktijdig ontvangen worden . De plus maakt daarbij telkens slechts één topic-vlak, de hashtag maakt ze meteen allemaal . Met het topic MyHome/# ontvangt u dus meteen alle berichten die in alle subtopics van MyHome gepublished worden . Een bericht kan op die manier alles zijn: van zuivere tekst over een meetwaarde tot een eenvoudig 1/0 bevel voor het schakelen van licht .

Voor vandaag heeft u geen hardwareopbouw nodig, omdat we beginnen met een paar fundamentele testen . Raadpleeg de instellingen op de configuratiepagina . Zeker en vast is u al het bereik MQTT Settings opgevallen . Hier vindt u de correcte vooraf geconfigureerde instellingen . Als broker-adres is een speciaal voor de adventskalender ingerichte server aangegeven, namelijk broker .fkainka .de . U kunt echter ook zelf een broker opzetten, bv . op uw Raspberry Pi . Ik beveel daarvoor de Open-Source-software Mosquitto aan . De Client-id wordt aan de hand van het MAC-adres van het board gegenereerd . De reden daarvoor is, dat deze ID serverwijd slechts door één enkel apparaat mag gebruikt worden . Omdat een MAC-adres

11. Tag

Page 22: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

22

wereldwijd eenduidig moet zijn, biedt deze zich hier als ID aan . Een username en een paswoord heeft u voor de testbroker niet nodig .

U kunt de verbinding testen indien u verder onderaan op de knop Test Connection klikt . Nu moeten de kleuren van de vlakken ernaast ook naar groen wisselen, wanneer de verbinding met de broker succesvol was . Indien het niet werkt, kan het zijn dat de server down is en dat u de broker moet wisselen . Een alternatieve vrij verkrijgbare broker is b .v . broker .mqttdashboard .com .

Nadat u de principiële verbinding getest heeft, kunt u nu het programma van de huidige dag instellen . Ga aansluitend naar de pagina

http://www.hivemq.com/try-out/

en klik daar op Try the websocket client . Er verschijnt een interface waarmee u zicht kunt aanmelden bij een MQTT-broker met webso-

cket-ondersteuning . Onder host moet u een broker, hier dus broker .fkainka .de, invoeren en aansluitend met connect een verbinding tot stand brengen . De interface uit de afbeelding wordt geopend . U kunt nu met een klik op Add New Topic Subscription uw eigen, persoonlijke topic abonneren . Dit wordt samen-gesteld door het begrip NodeESP en de Client-id . Bij mijn board was dat bijvoorbeeld:

NodeESP/240AC48178E4/

Alle MQTT-communicatie van en naar het board begint met dit topic . Ik zal het client-id-deel in de toe-komst met [PID] voor "persoonlijke ID" afkorten . U moet dit deel door uw client-id vervangen . Bij de eerste test kunt u alle communicatie van het board met het topic

NodeESP/[PID]/#

ontvangen. Wanneer u het board reset, ziet u na een korte tijd de melding die u zegt dat het board zich verbonden heeft met de broker. Deze melding wordt het topic Topic NodeESP/[PID]/status geschreven en door het subscriben, met # eveneens ontvangen. Nu kunt u een eerste bericht aan het board overdragen. Daarvoor geeft u in het publish-bereik in het veld topic uw persoonlijk topic plus het subtopic testtopic in, dus in mijn geval:

NodeESP/[PID]/testtopic

In het veld message kunt u nu naar wens een bericht invoeren . Het veld kan ook leeg blijven . Klik aansluitend op publish, en slechts enkele ogenblikken later heeft u twee verdere berichten in het Messages-bereik . Het ene bericht is een begroetingstekst en wordt in het topic NodeESP/[PID]/testtopic/out openbaar gemaakt . Het andere bericht bevat eveneens de begroetingstekst, als JSON-string inclusief commando-key, en wordt in het topic NodeESP/[PID]/out openbaar gemaakt .

Deze beide berichten komen tot stand omdat het board de topics in dit bekende commandoformaat overzet en dan evalueert . De antwoorden verschijnen in een topic, dat samengesteld is uit het com-mando en out, hier dus …/testtopic/out, en gelijktijdig in het kanaal NodeESP/[PID]/out .

Equivalent aan het out-topic is er ook een in-topic, waarin u direct commando’s in JSON-formaat kunt publiceren . Wanneer u bijvoorbeeld in het topic NodeESP/[PID]/ in de JSON-string {"cmd":"testtopic"} schrijft, komt het tot dezelfde antwoorden zoals bij het eerste verzoek . U kunt dus een commando ofwel via een overeenkomstig topic, of via het in-Channel als JSON-object verzenden . Wees er niet verbaasd over dat enkele bekende commando’s zoals bv . get_wifi_status niet functioneren . Dat komt doordat deze commando’s gevoelige gegevens kunnen bevatten en daarom niet via een openbare broker mogen ver-stuurd worden .

De verbinding met het board via MQTT is dus gemaakt . Morgen bekijken we wat we ermee kunnen doen .

Page 23: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

23

Dag 12: MQTT-ButtonAchter het deurtje van vandaag vindt u nog een button . Bij de test van vandaag zullen we ons verder met het MQTT-protocol bezighouden, deze keer in verbinding met Node-RED . Bovendien zullen we zien hoe twee buttons gelijktijdig geëvalueerd kunnen worden . De test van vandaag heeft de volgende opbouw:

De opbouw met twee buttons .

Er zijn dus twee buttons die we kunnen gebruiken . Activeer nu het programma van de huidige dag . Aansluitend kunt u de Node-RED-flow importeren . Deze moet u vervolgens lichtjes aanpassen . U moet namelijk [PID] in topic door uw persoonlijke MQTT-id vervangen . Dat gaat echter heel eenvoudig met de volgende truc:

Kopieer de Node-RED-flow in een teksteditor naar keuze, in Windows bijvoorbeeld in de editor . Aan-sluitend kiest u voor de optie vervangen (in editor onder bewerken/vervangen ([Strg]+[H]) . Daar geeft u in het veld zoeken na [PID] in het veld vervangen door uw persoonlijke id . Aansluitend kunt u gewoon klikken op alles vervangen . Nu heeft u de flow aangepast en kunt u deze in Node-RED importeren en starten, natuurlijk niet zonder de oude flows te deactiveren .

Zo kunt u de flow snel op uw persoonlijke id aanpassen .

12. Tag

Page 24: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

24

Wanneer u nu in Node-RED op het debug-register gaat en een button op het insteekboard drukt, ziet u daar bijvoorbeeld het volgende bericht:

{ "cmd": "get_button_state", "value": [ { "pin_name": "Button1", "pin_id": 1, "pin_nr": 18, "pin_state": true, "pin_value": 0 }, { "pin_name": "Button2", "pin_id": 2, "pin_nr": 16, "pin_state": false, "pin_value": 0 } ]}

Onder de key cmd wordt het commando get_buton_state verzonden . Onder value volgt een matrix met alle buttons en hun waarden . Via pin_name, pin_id of pin_nr kunt u een button identificeren . De eerste twee waarden zijn zelf gedefinieerd, de derde geeft de gebruikte pin op het board aan . Pin_state geeft aan hoe de boleaanse waarde van de button is, dus TRUE of FALSE of HIGH of LOW . Is de button niet ingedrukt, dan is de pin-value overigens TRUE . Dat komt doordat de pin met een interne pull-up wee-stand op HIGH en door een druk op de knop op LOW getrokken wordt . De key pin_value geeft een ana-loge waarde aan die bij buttons geen rol speelt .

In dit geval heb ik op button2 gedrukt en het board heeft meteen een melding met alle geactiveerde but-tons en hun waarden zowel aan het out-topic, dat aan de debug-node hangt, alsook aan het topic

NodeESP/[PID]/button/state/get/out

verzonden . Het laatste topic wordt in Node-RED geëvalueerd . Daarbij komt een JSON-node, die uit de zuivere tekst een JSON-object maakt . De split-node scheidt de button-matrix in individuele elementen die na elkaar aan de switch-node worden aangeboden . Deze controleert de pinnamen en beslist om welke van de beide buttons het gaat . Er volgt een template-node die enkel de waarde van pin_state filtert, dus TRUE of FALSE aan de volgende node doorgeeft . Hierbij gaat het om een dashboard-button die een aan-toestand weergeeft, als de waarde FALSE was, en omgekeerd . Hij inverteert dus op deze plek als het ware de waarde van de buttons .

Wanneer u naar het dashboard wisselt, als u bijvoorbeeld op het dashboard-register op de rechterzijde en aansluitend op de rechthoek met de pijl naar boven klikt, ziet u ook de beide buttons . Omdat het board bij het loslaten van de buttons direct de statuswijziging meedeelt, kunt u meteen zien welke but-ton ingedrukt is en welke niet .

Het grote voordeel bij MQTT en het gebruik van een online-broker is dat men de buttons van overal ter wereld kan evalueren . U kunt dus het board mee naar het werk nemen terwijl de NodeRED-server thuis op een computer draait . En dan kunt bijvoorbeeld het licht en de verwarming instellen, wanneer u op weg bent naar huis, of via spraakuitvoer meedelen aan de mensen thuis dat u onderweg bent . En dat alles met een simpele druk op de knop van waar ook ter wereld .

Page 25: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

25

Dag 13: Slimme schakelaar voor een soundboardAchter het deurtje van vandaag bevindt zich nog een weerstand met 1kOhm, die vandaag nog geen rol speelt . In plaats daarvan wil ik u tonen hoe men een slimme touch-schakelaar bouwt . Daarvoor is de volgende opbouw nodig, die slechts uit vier los hangende draden als touch-buttons en een draadbrug aan pin 23 bestaat .

Vijf gele draden als Touch-Buttons .

De bijzonderheid van de test van vandaag bestaat vooral in het programma zelf, dat u op deze plaats via de configuratiepagina kunt activeren . Na het activeren zult u vaststellen dat de status-led kort knip-pert en dan uitdooft . Dat komt doordat het board weer gebruikt wordt in de energiebesparende Deep-Sleep-Modus . Het wordt echter niet gewekt na een bepaalde tijd, maar slechts wanneer u een van de touch-buttons aanraakt . Het board zendt dan info via de touch-button naar de broker, die het ontwaken geactiveerd heeft . Dat ziet er dan bv . zo uit:

{"cmd":"get_touch_state","pin_name":"Touch4","pin_id":6,"pin_nr":14,"pin_state":true}

Tijdens de verbindingsopbouw kunt u zien dat de status-led groen knippert . Na het verzenden licht ze groen op en geeft zo aan dat de verzending succesvol was . Als de led rood oplicht, dan is de verzending niet gelukt . Direct daarna gaat het board weer in de Deep-Sleep-modus . Het systeem bespaart zodanig energie, dat men het board weer met de batterijen kan gebruiken, om de slimme schakelaar ergens in de woning te plaatsen .

Opmerking: Om van de Deep-Sleep-modus weer te wisselen naar de normale modus, moet u gewoon de draadbrug aan pin 23 eruit trekken en het board resetten .

De slimme schakelaar zelf is al iets speciaal, maar we willen de schakelaar nu ook met Node-RED en een toepassing verbinding . We zullen in de Node-RED van vandaag nog één keer de Audio-out-node gebruiken, deze keer echter ook om audiobestanden af te spelen . Daarvoor moet u vervolgens één keer de flow van de huidige dag importeren, natuurlijk niet zonder de oude flow te deactiveren, en uw per-soonlijk id in plaats van de [PID]-variabele invoeren .

13. Tag

Page 26: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

26

De flow van de huidige dag .

Nu kunt u ook eens uitproberen welke functies de buttons hebben . Maar niet vergeten de luidspreker zachter te zetten .

Page 27: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

27

Dag 14: Slimme lichtenAchter het deurtje van de 14e dag bevindt zich nog een led . Nu hebben we twee leds met voorweerstan-den en twee knoppen net als genoeg kabels, om een complex lampensysteem te bouwen . Daarvoor heeft u de volgende opbouw nodig:

De opbouw met vier losse kabels (geel) als touch-buttons .

Nu kunt u het programma van vandaag activeren en de huidige flow invoegen . Vergeet echter niet de [PID] door uw persoonlijke id te vervangen, het eenvoudigst via de truc met de editor .

In het door u geactiveerde programma zijn de leds als PWM-leds ingesteld . Dat betekent dat ze de hel-derheid van de leds kunnen veranderen . Het waardebereik gaat daarbij van 0 tot 55 . Bijkomend kunt u de leds achter ook nog altijd als digitale uitgangen in- of uitschakelen . Volgend commando’s kunt u gebruiken:

Commando in in-Topic Instellingen{"cmd":"set_pwm_state", "LED1":255} De led wordt op de maximale helderheid ingesteld. Enkel

zichtbaar wanneer de led aan is.{"cmd":"set_pwm_state", "LED1":0} led wordt op de minimale helderheid ingesteld (de led brandt

niet).{"cmd":"set_pwm_state", "LED1":true} De led wordt geactiveerd en de laatste helderheid ingesteld.

Wijzigingen van de helderheid worden meteen zichtbaar.{"cmd":"set_pwm_state", "LED1":"ON"}{"cmd":"set_pwm_state", "LED1":false} De led wordt gedeactiveerd. Een wijziging van de helderheid

wordt pas na een nieuwe activatie zichtbaar. {"cmd":"set_pwm_state", "LED1":"off"} Deze statuswijzigingen kunnen via het out-topic of via NodeESP/[PID]/pwm/state/set verzonden worden . Bij een wijziging van een status wordt de actuele toestand ook via het topic

gepublisht .

Bijkomend zijn in het huidige programma twee buttons en vier touch-buttons geactiveerd, die volgens het bekende systeem functioneren . De Node-RED-flow is vandaag iets groter, want voor elke button en elke instelling is er een UI-schakelvlak .

14. Tag

Page 28: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

28

De userinterface van het programma van vandaag .

De userinterface geeft al een beetje aan hoe de test van vandaag functioneert . De beide leds simuleren twee dimbare lampen in huis . Met de beide knoppen op het insteekboard of via de webinterface kun-nen ze in- of uitgeschakeld worden . Met de regelaar in de UI kan de helderheid ingesteld worden . Via de schakelvlakken eronder wordt de helderheid telkens met +10 of +10 gewijzigd . De touch-buttons hebben ook dezelfde functie . Wanneer u de op de opbouwafbeelding links weergegeven draad aanraakt, ver-mindert u op termijn de helderheid van de linker led . De draad direct rechts ernaast verhoogt daarbij de helderheid . De beide resterende draden functioneren net op dezelfde manier voor de rechter led . U kunt de helderheid ook veranderen wanneer de led niet aan is . Alleszins wordt dan de wijziging pas zichtbaar nadat u de led weer ingeschakeld heeft . De functie kan zeer praktisch zijn wanneer u bijvoorbeeld de helderheid van de lampen afhankelijk van het uur wenst te variëren .

De flow van de dag .

Page 29: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

29

Dag 15: AfstandsbedieningsontvangerAchter het deurtje van vandaag bevindt zich een heel bijzonder bouwdeel, namelijk een infraroodont-vangsmodule . Daarmee is het mogelijk standaard infraroodbedieningssignalen te ontvangen . Daarvoor hebben we de opbouw hiernaast nodig .

Nadat u de schakeling heeft opgebouwd, kunt u het programma van de hui-dige dag selecteren . De boardwebsite kunt u dan niet meer bereiken, want deze moet voor de test gedeactiveerd worden . Het board werkt nu in de headless-modus, dus zonder zichtbare oppervlakken . Om weer de website te starten en bijvoorbeeld andere programma’s te kunnen activeren, moet u de draadbrug aan pin 23 eruit trekken en het board opnieuw starten . Dan loopt alles weer zoals gewoonlijk .

Om te zien of het programma van de huidige dag correct werkt, moet u eerst de flow van de huidige dag in uw NodeRED-omgeving invoegen . Vergeet niet de voorgaande flows te deactiveren en het MQTT-topic aan uw persoonlijke topic aan te passen .

Nadat u de flow heeft geactiveerd, kunt u een afstandsbediening op de ont-vanger richten . U ziet dan op de GIU-pagina de door het board doorgezonden tekst, bijvoorbeeld het volgende:

{"cmd":"ir_recv","type":3,"value":551489775,"length":32}

Belangrijk is vooral de value-waarde . Kies bijvoorbeeld de power-knop op uw afstandsbediening en kopieer de ontvangen waarde . Deze moet in de switch-node ingebracht worden . U kunt vijf verschillende waarden, dus vijf verschil-lende asfstandsbedieningsknoppen, in de switch-node inbrengen . Elk van deze knoppen voert dan naar node, die een tekst als playload instelt en deze aan een audio-out verder doorgeeft . De eerste waarde in de switch-node komt overeen met de power-knop . Dus wordt ook "Power" gelezen door de browser . Dit dient alleszins enkel ter demonstratie . In de zin van het smarthome kunt u dus eenvoudig de woonkamerverlichting dimmen wanneer de televisie wordt aangeschakeld . Node-RED doet de aanpassing naar eigen voorkeur heel een-voudig .

Zo sluit u de IR-module correct aan op het board .

De flow van vandaag .

15. Tag

Page 30: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

30

Dag 16: Universele afstandsbedieningAchter het deurtje van vandaag bevindt zich het tegenstuk van het bouwdeel van gisteren, namelijk een IR-diode . Nu kunt een complete afstandsbediening voor de televisie opbouwen, die u via smartphone en website kunt bedienen . Daarvoor heeft u de volgende opbouw nodig .

De opbouw van de afstandsbedieningen met IR-ontvanger en zenddiode .

Kies het programma van vandaag . Het board start aansluitend weer in de headless-modus indien de website van het board niet bereikbaar is . In plaats daarvan is de MQTT-functie van het board beschik-baar . Om naar de standaardmodus te gaan, moet u de draadbrug aan pin 23 verwijderen en het board opnieuw starten .

16. Tag

Page 31: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

31

flow van vandaag .

De flow van vandaag ziet er complex uit, maar bestaat eigenlijk enkel uit een groot aantal UI-knoppen die allemaal in hetzelfde topic schrijven . Voordat u de flow importeert en start, moet u alle topics met de "Alles vervangen" truc op uw persoonlijke topic omzetten . Bovendien moet u alle voorgaande flows deactiveren . Aansluitend kunt u de flow starten en wisselen naar de UI-pagina . U ziet een ganse reeks buttons, die alleszins nog niet op een tv-toestel gekalibreerd zijn . Daarom gaat u vervolgens naar de tweede tab met de naam Day16 Receive IR codes . Deze pagina ziet er veel monotoner uit, aangezien hij slechts één tekstveld bevat, maar hij is echter heel nuttig . Wanneer u namelijk nu een afstandsbediening op de ontvanger richt en op een knop drukt, verschijnt er een tekst in het venster, bijvoorbeeld het vol-gende:

{"cmd":"ir_send","type":3,"value":551494365,"length":32}

Deze tekst wordt via het topic NodeESP/[PID]/ir/recv/out ontvangen en bevat de gegevens van de ont-vangen codes . Slechts enkel kleinigheden worden door de flow gewijzigd . Er worden zogenaamde her-halingscodes uitgefilterd, of het commando van ir_recv wordt gewijzigd naar ir_send gewijzigd en wel hierom: u heeft nu de tekst enkel nodig om te kopiëren en kunt hem aansluitend in het payload-bereik van een button invoegen . De button verzendt bij aanraking op de UI-pagina het commando met de gegevens van de codes naar het board, dat weeral de code via IR-diode naar de tv doorstuurt . Op deze manier kunt code na code programmeren en een eigen afstandsbediening maken .

Page 32: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

32

Op deze manier worden de commando’s als playload van de buttons bewaard .

Opmerking: De layout van de GUI is gebaseerd op een gemiddelde moderne afstandsbediening . Ico-nen op de buttons moeten de functies verduidelijken . Een lijst met bruikbare iconen vindt u op de website https://klarsys .github .io/angular-material-icons/ .

Page 33: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

33

Dag 17: Tijdgestuurde lichten Achter het deurtje van de 17e dag bevindt zich nog een potmeter . Dat betekent dat nu voor elke led exact telkens een potmeter ter beschikking staat . Daarmee kunnen we het programma van dag 13, de slimme lichten, uitbreiden met een praktische en intuïtieve dimfunctie . Bovendien zullen we vandaag zien hoe men met Node-RED tijdgestuurde gebeurtenissen start .

U moet het programma van vandaag activeren in het weboppervlak . Aanslui-tend kunt u de huidige flow in de Node-RED-omgeving invoegen, natuurlijk niet zonder de voorgaande flows te deactiveren en het MQTT-topic aan uw persoonlijke id aan te passen .

De leds kunnen nu, zoals reeds bekend, via de hardware-buttons of via de userinterface aan- en uitgeschakeld worden . De helderheid van de individuele leds wordt via de potmeters gestuurd . Als alternatief voor de buttons zijn er de inject-nodes links onderaan . Via deze kunnen tijden aangegeven worden waarop een bevel naar het board gestuurd wordt . Daarvoor moet u weer dub-belklikken op de overeenkomstige node en dan kunt u al een tijdstip en dag selecteren waarop het bericht moet verstuurd worden . Zo kunt u bijvoorbeeld een automatische lamp voor ruimten of een aquarium instellen of op werkda-gen een speciale verlichting activeren – helemaal automatisch en helemaal in deze zin van smarthome .

De flow van dag 17 .

17. Tag

Page 34: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

34

Dag 18: KaarsenalarmAchter het deurtje van vandaag bevindt zich een kleine diode . We gaan deze diode als temperatuursen-sor voor bijzonder hoge temperaturen gebruiken . Daarmee is het mogelijk om een kleine kaarsenmelder te bouwen .

De opbouw van de huidige dag bestaat, naast de diode, uit een potmeter die als 10-kOhm-weerstand gebruikt wordt . Deze weerstand is vast en kan ook niet ingesteld worden . Het board mist nu de spanning aan de iode en verzend de waarde via MQTT aan Node-RED .

De flow van de kaarsenmelder .

De flow van vandaag evalueert nu constant de gemeten waarde . Indien een bepaalde waarde overschre-den wordt (hoe hoger de temperatuur, hoe kleiner de gemeten spanning), wordt een alarm onder de vorm van een tekstbericht en een infobox uitgegeven . U kunt in de userinterface een drempelwaarde voor het alarm instellen . Wanneer u nu de diode zodanig aan het onderste deel van een kaars legt, zodat de vlam bij het opbranden in de buurt van de diode komt, dan heeft u een praktische melde voor een opgebrande kaars .

18. Tag

Page 35: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

35

Dag 19: CheerlightsAchter het deurtje van vandaag bevindt zich een heel bijzondere led . Het gaat om een RGB-led met geïn-tegreerde controller (type PL9823, vergelijkbaar met WS2812) . Ze maakt het mogelijk om meerdere leds na elkaar te schakelen en deze via een protocol individueel aan te sturen . Vandaag zullen we alleszins een led aansturen . Daarvoor is er een test die al een traditionele plek heeft in mijn adventskalenders: het Cheerlight-project van Hans Schaaler . Voor iedereen die het project niet kent: het gaat om wereldwijd netwerkgebonden kleurrijke lichten die simultaan via een Twitter-commando kunnen gestuurd worden . Een daarvoor is Node-RED zeer geschikt . Voor de test van vandaag hebben we de volgende opbouw nodig en het programma van vandaag .

De led kan nu via een serie van commando’s gestuurd worden . Ze wordt via het begrip pixel aangesproken . Vandaag zullen we vooral zien hoe men alle leds met dezelfde kleur kan aansturen, want vandaag hebben slechts één led . Bij een verdere test wordt echter duidelijk met welke commando’s men de leds individuele kleuren kan toewijzen .

Commandi in in-Topic Instellingen

{"cmd":"set_pixel_hex", "value":"#FFFFFF"}

alle leds op de kleurwaarde in HEX-formaat.

{"cmd":"set_pixel_rgb", "value":"rgb(255,255, 255)"}

Zet alle leds op de kleurwaarde in RGB-formaat.

{"cmd":"set_pixel_hsv", "value":"hsv(120, 100%, 100%)"}

Zet alle leds op de kleurwaarde in HSV-formaat.

{"cmd":"get_pixel_hex"} Geeft de actuele kleur in het overeenkomstige formaat weer, wordt automatisch bij het instellen van een kleur teruggegeven.

{"cmd":"get_pixel_rgb"}{"cmd":"get_pixel_hsv"}

Het Cheerlights-projec heeft een website (https://cheerlights.com/), waarop u informatie over het project vindt . Bovendien vindt u daar een sub-pagina, aangeduid met Cheerlights API, waarop u vele mogelijkhe-den vindt, hoe u de actuele kleurwaarde verkrijgt . We gebruiken hier de interface

http://api.thingspeak.com/channels/1417/field/2/last.json

via dewelke de actuele waarde als JSON-value en in HEX-formaat aangeboden wordt .

In de flow van vandaag moeten we eenvoudigweg slechts elke paar seconden deze pagina oproepen en op de actuele waarde zetten . Er wordt gecontroleerd of de waarde wijzigde . Is dat het geval, dan wordt de nieuwe kleur aan het board doorgezonden . Bijkomend kunt u ook de Twitter-node met uw Twitter-gegevens configureren, indien u aangemeld bent bij Twitter . Hij zoekt dan naar tweets met de Cheer-lights-tekst en leest de berichten, terwijl het op de GUI aangeduid wordt .

Hoe kunt u nu de kleur veranderen? Dat gaat indien u een Twitter-bericht maakt en daarmee uw en ook de kleuren van alle andere Cheerlights-gebruikers verandert . Het bericht moet #Cheerlights, @Cheerlights of gewoon Cheerlights bevatten en een van de vooraf gedefinieerde kleuren moet achter het trefwoord staan . Tot de vooraf gedefinieerde kleuren behoren:

red, green, blue, cyan, white, warmwhite, purple, magenta, yellow, orange, pink

Een mogelijke tweet luidt dus als volgt: Testing my #cheer-lights project on my #NodeESP with the color blue . Daarmee geeft u uzelf en de hele wereld een andere kleur .

Zo wordt de PL9823 correct aangesloten .

19. Tag

Page 36: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

36

Dag 20: PlantenbewakerAchter het deurtje van vandaag bevindt zich een NTC-weerstand (Negative Temperature Coefficient) voor het meten van de temperatuur . Samen met de fototransistor en een paar draden wordt daarmee een plantenbewaker gebouwd, die ons voor slechte omstandigheden voor een te bewaken plant waarschuwt . Daarvoor hebben we de volgende opbouw nodig en het programma van vandaag .

De plantenbewaker .

De beide gele draden zijn daarbij eenvoudige draden die in de potgrond gestoken kunnen worden . Ze moet erover waken hoe vochtig de aarde is . Voor de eerste test volstaat het echter om de beide draden met een vinger aan te raken .

De flow van vandaag kan weer eenvoudig in de Node-RED-omgeving geïmporteerd worden, natuurlijk niet zonder de voorgaande te deactiveren en het topic aan te passen . Via het out-topic wordt nu een JSON-string ontvangen, die er ongeveer zo uitziet:

{"cmd":"get_hum_state","Light":3903,"Temp":368,"HUMIDITY":45}

20. Tag

Page 37: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

37

Zodus worden de gegevens licht, temperatuur en vochtigheid doorgezonden . Licht is hierbij weer een relatieve waarde met een waardebereik van 0 tot 4095, net als de gemeten vochtigheid . De temperatuur wordt eveneens in dit waardebereik overgedragen . Omdat daarmee niemand iets kan ontvangen, is er een function-node die de waarde omrekent in Celsius . De waarden worden weergegeven op het gebrui-kersoppervlak . Naast de aanduiding vindt u ook nog een paar regelaars .

De userinterface van de plantenbewaker .

Deze regelaars moeten de grens vastleggen voor de meetwaarde . Men kan een minimum- en maximum-waarde vastleggen . Wanneer men niet kan testen op een waarde of grens, kan men de regelaar ook instellen op een extreme positie die nooit door het board kan gemeten worden . Wanneer men bijvoor-beeld wil dat ’s nachts niet het alarm ingeschakeld wordt voor een te geringe helderheid, dan kan men de minimumregelaar instellen op -1 .

Als een van de grenswaarden wordt overschreden, dan triggert de overeenkomstige switch-node, en wordt een bericht gemaakt dat dan via UI uitgegeven wordt . Omdat men dit niet geopend heeft, kan men bijkomend zijn e-mail toegangsgegevens in de e-mail-node invoeren . Dan wordt er een e-mail ver-zonden die eraan herinnert dan men de planten weer water moet geven of voor een betere lichtverhou-ding moet zorgen . Zo wordt zelfs de eenvoudige kamerplant smart .

Page 38: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

38

Dag 21: Piano-PlayerAchter het deurtje van de 21e dag vindt u een luidspreker . Bij de huidige test zullen we daarmee wat muziek afspelen . Daarvoor hebben we de volgende eenvoudige opbouw nodig .

Bij deze test is de luidspreker aan een van de beide DAC-uitgangen van het board aangesloten . DAC betekent Digital-Analog-Converter en maakt het mogelijk door digitale bevelen een analoog signaal te creëren . Bij de huidige test zullen we daarmee tonen aanmaken, beter gezegd tonen van een piano . De

noten, pauzes en toonaarden worden daarbij via UDP overgedragen, en dat als matrix van getallen .

Kopieer vervolgens de Node-RED-flow van vandaag in uw omgeving, natuur-lijk niet zonder de voorgaande te deactiveren . Bovendien moet u nog de IP van de UDP-node op de broadcast-IP van uw board aanpassen . Selecteer dan het programma van vandaag . Dan kunt u de flow starten .

Er zijn reeds vooraf gedefinieerde liedjes, die via de userinterface kunnen worden gestart . U kan alleszins ook zelf liedjes overzetten of componeren . Daarvoor is er een tekstveld waarin u uw compositie kunt kopiëren .

De noten komen daarbij overeen met het eenvoudige notenschema en wor-den onder de volgend vorm aangeboden:

NOTE_C1, NOTE_CS1, NOTE_D1, NOTE_DS1, NOTE_E1, NOTE_F1, NOTE_FS1, NOTE_G1, NOTE_GS1, NOTE_A1, NOTE_AS1, NOTE_B1

Het getal achter de note komt overeen met het octaaf . U kunt de 1 door een cijfer van 1 tot 7 vervangen . Bovendien kunt u de nootlengte met de prefix BEAT aangeven, om zo halve, vierde of achtste noten te maken . Het BEAT-attribuut heeft altijd betrekking op de voorafgaande noot . Standaard is BEAT_1, vandaar moet het niet bijkomend voor elke noot aangegeven wor-den . De volgende nootlengtes gelden:

BEAT_025, BEAT_05, BEAT_075, BEAT_1, BEAT_125, BEAT_15, BEAT_175, BEAT_2, BEAT_25, BEAT_3, BEAT_4, BEAT_5

Om bijvoorbeeld het begin van de beroemde 5e symfonie van Beethoven te spelen, kan de volgende tekst in het venster worden ingegeven:

NOTE_G5,BEAT_075,NOTE_G5,BEAT_075,NOTE_G5,BEAT_075,NOTE_E5,BEAT_5,

NOTE_F5,BEAT_075,NOTE_F5,BEAT_075,NOTE_F5,BEAT_075,NOTE_D5,BEAT_5

U moet alleszins geen muzikaal genie zijn . Probeer gewoon een paar noten en nootlengtes en componeer zo uw eigen lied . Of zet een bekend lied in dit systeem om . Uw fantasie kent daarbij geen grenzen .

De flow van vandaag .

21. Tag

Page 39: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

39

Dag 22: KlimaatbewakerAchter het deurtje van de 22e dag bevindt zich een nieuwe sensor, die de actuele luchtvochtigheid kan meten . We gebruiken hem om een complete ruimteklimaatbewaker te realiseren . Daarvoor hebben we de volgende schakeling nodig .

De schakeling van de ruimteklimaatbewaker .

De test van vandaag brengt drie sensoren samen: de temperatuursensor (NTC), de lichtsensor (fototran-sistor) en de luchtvochtigheidssensor . Samen kunnen ze een goede indruk geven van de verschillende factoren in een kamer . Daarvoor moet u echter het programma van vandaag starten .

Het programma meet alle 30 seconden alle waarden en zend ze door via MQTT, wat er bijvoorbeeld zo uitziet:

{"cmd":"get_hum_state","Light":3903,"Temp":368,"HUMIDITY":45}

Wanneer u de flow van vandaag in uw Node-RED-omgeving kopieert, natuurlijk niet zonder het persoon-lijke topic aan te passen en de voorgaande flows te deactiveren, kunt u op de GUI-pagina de gemeten waarden inkijken . Een function-node heeft ook vandaag de temperatuur naar een passende waarde omgerekend . Voor een exacte kalibratie zijn de beide potmeters daar, waarmee u de waarden tempera-tuur en omgevingshelderheid kunt aanpassen .

22. Tag

Page 40: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

40

De flow voor meting op lange termijn .

Er is echter nog een extra functie . Alle vijf minuten bewaart het programma namelijk de actueel geme-ten waarde in een bestand . Dit draagt de naam climadata .txt en bevindt zich in de regelaar in de map waarin Node-RED werkt . Bij mij was dat:

C:\Users\[USERNAME]

[USERNAME] staat voor een eigen Windows-gebruikersnaam . U kunt het bestandspad ook in de node aanpassen, Bewaard wordt overigens in een CSV-formaat (Comma Separated Values), waarbij alle waar-den door een komma gescheiden zijn . Zo kunt u de gegevens ook eenvoudig in een Excel-tabel invoegen en daar analyseren . De analyse van de meting op lange termijn wordt daardoor kinderspel .

Page 41: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

41

Dag 23: AlarminstallatieAchter het voorlaatste deurtje van de adventskalender bevindt zich een zogenaamde tilt-sensor (inclino-sensor) . De sensor herkent wanneer hij gekanteld wordt . We gebruiken hem vandaag als alarminstal-latie . De luidspreker van twee dagen geleden dient daarbij als signaalgever . Daarvoor hebben we de volgende opbouw nodig .

Activeer zoals gewoonlijk het programma van vandaag en voeg vervolgens de Node-RED-flow in de omgeving in . Pas bovendien het MQTT-topic aan en deac-tiveer alle voorgaande flows .

De flow wacht nu op de activatie van de tilt-sensor en op de publicatie van een bericht in de overeenkomstige topic . Dit activeert een trigger-node, die het playboard op TRUE zet . Deze wordt via een topic weer naar het board gestuurd, dat een alarm activeert . De trigger-node stuurt dan na vijf seconden een FALSE, om het alarm weer te deactiveren .

Gelijktijdig met het alarmsignaal via het board is er in de hoek rechts boven-aan nog een serie van bijkomende nodes, die een alarm aangeven . Enerzijds is er vandaag een audio-out-node die informeert over het alarm . Een tekstbericht verschijnt eveneens op de userinterface . Buiten de userinterface kunt u zich ook via mail of Twitter laten informeren over een alarm . Het is eveneens moge-lijk om nodes te installeren die push-berichten aan de smartphone kunnen verzenden . Pushbullet is bijvoorbeeld zo’n service met een praktische app . Zo is uw smarthome ook tegen inbraak beschermd .

De flow van de alarminstallatie .

23. Tag

Page 42: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

42

Dag 24: KerstverlichtingAchter het laatste deurtje van de adventskalender bevindt zich nog een programmeerbare RGB-led . Daarmee heeft u nu twee leds die u kunt verbinden tot een kleine kerstverlichting . Daarvoor heeft u de volgende opbouw nodig .

De opbouw van de kerstverlichting . De lange pinnen van de leds bevinden zich rechts .

Activeer dan het programma en importeer de flow van vandaag . Deactiveer alle voorgaande flows en wijzig de broadcast-IP van de UDP-node .

De laatste flow van de adventskalender .

De flow bevat weer een paar userinterface-elementen, eerst en vooral twee color-picker-elementen, via dewelke u de beide leds kunt sturen . Er zijn echter nog twee elementen, en wel een switch en een element voor het instellen van een getal . Wanneer u op de button drukt, ziet u hoe de beide color-picker-elementen veranderen . De cirkel die de actuele waarde aanduidt, draait rond de cirkel . Gelijktijdig wijzi-gen de kleuren van de beide leds aan het NodeESP-board . Ze kunnen ook de fade-speed-tijd veranderen en zo een langzamere of snellere wissel instellen . Bovendien kunnen ze tijdens het fade-proces de kleur van een led veranderen . Het verloop gaat dan vanaf het nieuwe punt verder . Het resultaat is een mooie kleine verlichting, die u in de kerstboom kunt hangen . Ik wens u een prettig kerstfeest .

24. Tag

Page 43: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

43

De userinterface met de beide Color-Pickers .

Page 44: Voor we beginnen … 3 - Conrad Electronic...Vandaag gaat het er vooral om, een verbinding tot stand te brengen met het thuisnetwerk en het board wat beter te leren kennen . Het NodeESP-board

Liebe Kunden!

Dieses Produkt wurde in Übereinstimmung mit den geltenden europäischen Richtlinien hergestellt und trägt daher das CE-Zeichen . Der bestimmungsgemäße Gebrauch ist in der beiliegenden Anleitung

beschrieben .

Bei jeder anderen Nutzung oder Veränderung des Produktes sind allein Sie für die Einhaltung der geltenden Regeln verantwortlich . Bauen Sie die Schaltungen deshalb genau so auf, wie es in der Anlei-

tung beschrieben wird . Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden .

Das Symbol mit der durchgekreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss . Wo Sie die nächstgelegene kostenlose

Annahmestelle finden, sagt Ihnen Ihre kommunale Verwaltung .

© 2018 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien . Das Erstellen und Verbreiten von Kopien auf Papier, auf Datenträgern oder im Inter-

net, insbesondere als PDF, ist nur mit ausdrücklicher Genehmigung des Verlags gestattet und wird widrigenfalls strafrechtlich verfolgt .

Die meisten Produktbezeichnungen von Hard- und Software sowie Firmennamen und Firmenlogos, die in diesem Werk genannt werden, sind in der Regel gleichzeitig auch eingetragene Warenzeichen

und sollten als solche betrachtet werden . Der Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller .

Vorsichtsmaßnahmen Auf keinen Fall irgendwelche GPIO-Pins miteinander verbinden und abwarten, was passiert . Nicht alle GPIO-Pins lassen sich frei programmieren . Einige sind für die Stromversorgung und andere Zwecke fest eingerichtet .

Warnung! Augenschutz und LEDs: Blicken Sie nicht aus geringer Entfernung direkt in eine LED, denn ein direkter Blick kann Netzhautschäden verursachen! Dies gilt besonders für helle LEDs im klaren Gehäuse sowie in besonderem Maße für Power-LEDs . Bei weißen, blauen, violetten und ultravioletten LEDs gibt die scheinbare Helligkeit einen falschen Eindruck von der tatsächlichen Gefahr für Ihre Augen . Besondere Vorsicht ist bei der Verwendung von Sammellinsen geboten . Betreiben Sie die LEDs so, wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen .