5007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1 13.08.
Alle Versuche im Überblick Internet of Things Adventskalender 2017.................... 3 12e dag ....................................................................27 Broncodes en bijkomende informatie . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Achtergrondinformatie m.b.t. de onderdelen . . . . . . . . . . . . . . . . . . . . . 3 LED’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Weerstanden en hun kleurcodes . . . . . . . . . . . .
Internet of Things Adventskalender 2017 Volgens Cisco zullen er tegen 2020 meer dan 50 miljard apparaten worden gebruikt die met het internet zijn verbonden. Intel is nog optimistischer en spreekt van 200 miljard apparaten1. Elk van deze apparaten – ook „Ding“ genaamd – beschikt over een uniek adres en communiceert via het internet of via een andere interface, bv. Bluetooth, met de buitenwereld.
LED in welke richting aansluiten? Beide aansluitkabels van een LED hebben een verschillende lengte. De langere is de pluspool, de anode, de kortere de kathode. Makkelijk op te merken: Het plusteken heeft een streep meer dan het minteken en dat maakt de kabel een beetje langer. Bovendien zijn de meeste LED‘s langs de minzijde afgevlakt, zoals een minteken. Makkelijk op te merken: Kathode = kort = kant.
1e dag Vandaag in de adventskalender 1. dag • 1 x IoT Bluething Board2 Vandaag leert u het board kennen waarmee u de projecten in de volgende 24 dagen zult omzetten. Als voorbereiding voor de volgende dagen zult u de driver voor de USB-verbinding installeren die Arduino IDE installeert en tot slot maakt u een eerste programma voor het board aan. Chipset op het IoT-board Het IoT-board komt met twee chipsets. Voor de uitvoering van de programma‘s bevindt zich een ATmega328P op het board.
Download de Windows Installer voor de huidige versie van Arduino IDE op www. arduino.cc/en/Main/Software of gebruik gewoon het bestand arduino-windows. exe uit de downloads bij de adventskalender. Onder Windows 10 kunt u de Arduino IDE ook uit de Windows Store downloaden en installeren. Let daarbij op dat in het dialoogveld Installation Options alle haakjes zijn aangevinkt. Naargelang de Windowsconfiguratie is een bevestiging van het gebruikersaccountbeheer nodig.
IoT-board testen Na de uitgevoerde update van de firmware kunt u het board nu testen. Open daarvoor de seriële monitor van de Arduino IDE via Tools / Seriële monitor. Stel de gegevensoverdracht op 57600 Baud in. Nu moet leesbare tekst in het uitvoervenster verschijnen. Als teken dat de configuratie voltooid is, verschijnt het bericht Configuratie succesvol!, gevolgd door informatie over het draadloos netwerk. Nu kunt u met uw Adroid smartphone testen of u het draadloos netwerk ook ziet.
Onder het broncodevenster ziet u de uitgaven van de Arduino IDE bij het compileren en het uploaden. Als de LED niet knippert, controleert u de foutmelding in de Arduino IDE. Hier is de verbinding met het IoT-board mislukt. In dit geval werd de verkeerde poort geselecteerd, dit kan snel via het menupunt Tools /Poortt worden verholpen. IoT-board altijd in de AT-modus gebruiken Op het IoT-board bevindt zich een jumper. Deze jumper moet voor alle projecten in deze kalender op AT staan.
2e dag 2. dag Vandaag in de adventskalender • 1 x steekplatine (SYB 46) • 1 x jumperkabel Analoge waarden meten Vandaag programmeert u een sketch in de Arduino IDE om waarden van een analoge ingang te analyseren. De waarden worden via tekstweergave en grafisch weergegeven. Onderdelen: 1 x steekplatine, 1 x jumperkabel (mannelijk – mannelijk) Het programma Het programma voor vandaag draagt de naam Tag02.ino en bevindt zich in het downloadarchief in de directory Dag02.
3e dag 3. dag Vandaag in de adventskalender • 1 x LED rood met voorweerstand • 1 x schakeldraad Knipperlicht Vandaag laat u een LED met een frequentie van 2 Hz knipperen. Onderdelen: • 1 x steekplatine, 1 x LED rood met voorweerstand Het programma Het programma voor vandaag draagt de naam Tag03.ino en bevindt zich in het downloadarchief in de directory Dag03. const int ledPin = 2; int ledState = LOW; U hebt geen afzonderlijke weerstand nodig want de LED heeft reeds een geïntegreerde weerstand.
4e dag Vandaag in de adventskalender 4. dag • 1 x LED geel met voorweerstand Knipperlicht (wisselend) Twee LED’s knipperen afwisselend. Onderdelen: 1 x steekplatine , 1 x LED geel met voorweerstand, 1 x LED rood met voorweerstand Het programma Het programma voor vandaag draagt de naam Tag04.ino en bevindt zich in het downloadarchief in de directory Dag04.
5e dag 5. dag Vandaag in de adventskalender • 1 x LED groen met voorweerstand Verkeerslicht Het huidige project is een verkeerslicht die met de grafische ontwikkelingsomgeving Snap! wordt gemaakt. Onderdelen: 1 x steekplatine, 1 x LED groen met voorweerstand, 1 x LED geel met voorweerstand, 1 x LED rood met voorweerstand, 1 x draadbrug Snap! installeren en IoT-board voorbereiden Vanaf drie LED’s wordt het een beetje knapper, daarom wordt GND extra aan de bovenste lijst gevoerd.
6e dag Vandaag in de adventskalender 6. dagg • 1 x LED blauw met voorweerstand Verbinding met het IoT-board Vandaag bouwt u met uw smartphone een verbinding met het IoT-board en schakelt u de blauwe LED via de smartphone in en opnieuw uit. Onderdelen: • 1 x steekplatine, 1 x LED blauw met voorweerstand App voor de besturing installeren Vandaag gebruikt u nog geen eigen app, maar stuurt u het board via de gratis app Serial Bluetooth Terminal uit de app store Google Play.
Wanneer het board LED aan of Led aan of LED AAN ontvangt, worden via digitalWrite(LedPin, HIGH) en digitalWrite(LedPinBlue, HIGH) de interne LED en de blauwe LED ingeschakeld. Wanneer het IoTboard gegevens ontvangt, wordt de volgende lus uitgevoerd: while(HC05.available() > 0){ … Text=““; } Voeg nu voor de laatste regel een oproep van de nog te programmeren functie hookRec(Text) in: De naam van het netwerk luidt Bluething103 en het wachtwoord is 1234. while(HC05.
7e dag Vandaag in de adventskalender 7. dag • 1 x potentiometer, 15 kOhm Stuurbaar looplicht Het project van vandaag is een looplicht waarvan de snelheid via een potentiometer kan worden gestuurd. Onderdelen: 1 x steekplatine, 1 x LED groen met voorweerstand, 1 x LED geel met voorweerstand, 1 x LED rood met voorweerstand, 1 x potentiometer van 15 kOhm, 4 x draadbrug (verschillende lengtes) Het programma Het programma voor vandaag draagt de naam Tag07.
8e dag 8. dag Vandaag in de adventskalender • 1 x Piezo Tonen via app uitvoeren Via een app geeft u tonen op een piezo uit. Onderdelen: 1 x steekplatine, 1 x Piezo De twee draden van de piezo worden met D2 en GND verbonden. De rest wordt via software geactiveerd. Ontwikkelingsomgeving voor de apps De besturing van het IoT-board gebeurt in deze adventskalender met de reeds gebruikte app Serial Bluetooth Terminal en met zelf-ontwikkelde smartphone apps voor het besturingssysteem Android6.
Het oppervlak is nog niet in het Nederlands beschikbaar. Om uw zelf-ontwikkelde app ook al tijdens de ontwikkeling snel te kunnen testen, moet u de gratis app MIT AI2 Companion uit de Google Play Store op uw smartphone installeren. Na de start moet u de code van uw app invoeren. Hiervoor moet u eerst een app aanmaken. De eerste app met AI2 Kik nu op de startknop Start new projectt en voer als naam Mijn_ eerste_app in. Let op dat de naam geen spaties mag bevatten.
Het venster is in meerdere delen opgedeeld. Links ziet u in het bereik Palett de oppervlakte-elementen die voor uw app beschikbaar zijn. Daarnaast ziet u in Viewer het oppervlak van de app. In Components ziet u de in uw app gebruikte onderdelen en in Properties de eigenschappen van de huidige geselecteerde onderdelen. Trek nu een opschrift in de vorm van een label in het venster. Pas het opschrift aan door Width op Fill parentt te zetten en TextAlignmentt op center:I.
Selecteer nu de twee blokken when Button1.TouchDown en when Button1.TouchUp. In beide gevallen moet de inhoud van het label Label2 worden aangepast. Klik hiervoor op Label2 en selecteer het element set Label2.Text to. Ofwel voegt u het element tweemaal in of voegt u het element eenmaal in en kopieert u het element via het contextmenu (rechter muisknop) van de onderdelen. Onderdelen hebben een contextmenu. Via Duplicate kopieert u de geselecteerde onderdelen.
Piezo met app besturen Om het IoT-board via een app te sturen, hebt u een sketch op het board nodig die op de commando’s van de app reageert en een app. Vandaag moet de meegeleverde piezo via een app worden gestuurd. De sketch die daarvoor nodig is, is Dag08.ino in de directory Dag08. Laad deze sketch op het IoT-board op. De sketch baseert zich op het reeds gebruikte bestand Model.ino.
de draadloze verbinding wordt het element Clock (in de bovenste afbeelding Timer) uit Sensors gebruikt. Het TimerInterval wordt in het venster Properties op 200 gezet. De programmering gebeurt in de driver Blocks. Via de Timer wordt de verbindingsstatus gezet. Via de eigenschap isConnected kunt u controleren of de app met een Bluetooth-apparaat is verbonden. Regelmatig wordt gecontroleerd of de draadloze verbinding al of niet bestaat.
App testen Start de app nu via Connect / AI Companion en roep de app MIT AI2 Companion op uw Android-smartphone op. Scan de QR-code of voer de code in en start de app via connect with code. Nu start de app. Klik nu op Verbinding maken. Nu kunt u zich met het IoT-board verbinden. In het begin is de verbinding nog niet actief. De app is nu met het IoT-board verbonden. Wanneer u nu Melodie afspelen aanraakt, wordt op het IoT-board een melodie via de piezo afgespeeld.
9e dag Vandaag in de adventskalender 9. dag • 1 x RGB-LED met voorweerstand RGB-LED’s Een normale LED licht altijd slechts in een kleur op. De in de adventskalender gebruikte RGB-LED‘s kunnen naar keuze in meerdere kleuren oplichten. Hier zijn in principe drie LED‘s met verschillende kleuren in een doorzichtige behuizing ingebouwd. Elk van deze drie LED‘s heeft een eigen anode via dewelke ze met een GPIO-pin wordt verbonden.
Elke kleur heeft een eigen functie binnen de sketch. Daarna wordt de functie rood() voorgesteld: void rood() { Serial.println(“Rot”); analogWrite(redPin, HIGH); analogWrite(greenPin, LOW); analogWrite(bluePin, LOW); } De app De daarbij horende app bevindt zich in het bestand RGB.aia. Importeer het bestand in AI2.
10e dag Vandaag in de adventskalender 10. dag • 1 x knop Toetsdruk weergeven Vandaag reageert uw IoT-board op een mechanische druk op de knop en geeft een melding aan de draadloze interface door. Onderdelen: 1 x steekplatine, 1 x knop, 1 x potentiometer, 5 x draadbruggen (verschillende lengtes) Digitale pins kunnen niet alleen gegevens uitgeven, bijvoorbeeld via LED‘s, maar ook voor gegevensinvoer worden gebruikt.
11e dag 11. dag Vandaag in de adventskalender • 1 x schakeldraad LED-echo via app Het huidige project is een LED-echo. Ze stellen een sequentie via twee knoppen in de app in en de LED‘s op het steekplatine knipperen in deze sequentie. Onderdelen: 1 x steekplatine , 1 x LED rood met voorweerstand, 1 x LED groen met voorweerstand, 1x draadbrug De sketch Het programma voor vandaag is Tag11.ino en bevindt zich in de directory Dag11. De echosequentie wordt door de app bepaald.
12e dag Vandaag in de adventskalender 12. dag • 1 x LED oranje met voorweerstand Looplichtsnelheid via app instellen In het huidige project stuurt u de snelheid van een looplicht via Bluetooth. Onderdelen: 1 x steekplatine, 1 x LED rood met voorweerstand, 1 x LED oranje met voorweerstand, 1 x LED groen met voorweerstand, 1 x draadbrug De sketch Het programma voor vandaag is Tag12.ino en bevindt zich in de directory Dag12.
13e dag 13. dag Vandaag in de adventskalender • 1 x LED roze met voorweerstand RGB via slider in app aanpassen Een RGB-LED kan niet alleen een van de drie grondkleuren weergeven, maar ook overgangen. Met behulp van een app kunt u de kleur van de RGB-LED precies instellen. Onderdelen: 1 x steekplatine , 1 x RGB-LED met voorweerstand, 1 x LED roze met voorweerstand, 1x draadbrug De sketch De roze LED wordt gebruikt om de opgebouwde verbinding te signaleren; Het programma voor vandaag is Tag13.
De app AI2 dient als ontwikkelingsomgeving voor de huidige app. Importeer daarvoor het bestand RGB_Slider.aia. Via drie slides wordt de waarde van het respectievelijke kleur ingesteld. Door het indrukken van Kleur zetten wordt de waarde van de drie sliders naar het IoTboard verzonden. Bij het aanraken van Kleur zetten wordt de te bepalen tekst in de variabele kleur samengezet. Via Bluetooth.SendText wordt de tekst via de draadloze interface verzonden.
14e dag 14. dag Vandaag in de adventskalender • 1 x boetseerklei rood • 1 x weerstand 20 MOhm Boetseerkleicontact Vandaag gebruikt u de inbegrepen boetseerklei als invoer en wijzigt u bij het aanraken van de boetseerklei de achtergrondkleur van een oppervlak in de app. Onderdelen: 1 x steekplatine, 2 x stuk boetseerklei, 1 x weerstand 20 MOhm, 3 x draadbruggen (verschillende lengtes) Zo werken sensorcontacten Het uiteinde van beide uitstekende draadbruggen gaat telkens in een stuk boetseerklei.
De app De huidige app Boetseerklei_schakelaar.aia bevat een label dat bij het begin oranje als achtergrondkleur heeft. Om te controleren of een tekst via de Bluetooth-interface werd verzonden, moet regelmatig worden gecontroleerd of er een tekst aanwezig is. Dit wordt in de aanwezige timer gedaan. Blokken configureren De elementen in het bereik Blocks in de blokeditor kunnen deels geconfigureerd worden. De configuratie gebeurt via het blauwe tandwiel aan het onderdeel.
15e dag 15. dag Vandaag in de adventskalender • 1 x weerstand 20 MOhm Verschillende boetseerkleicontacten Nu gebruikt u twee boetseerkleicontacten en toont u in een app, welke contacten werden ingedrukt. Onderdelen: 1 x steekplatine, 3 x stuk boetseerklei, 2 x weerstand 20 MOhm, 4 x draadbruggen (verschillende lengtes) De sketch Het programma voor vandaag is Tag15.ino en bevindt zich in de directory Dag15. Zoals reeds op dag 14 wordt het indrukken van een boetseerkleicontact via analogRead ingelezen.
16e dag Vandaag in de adventskalender 16. dag • 1 x knipper-LED rood met voorweerstand Knipper-LED via app sturen Via een knop schakelt u de knipper-LED in en via een andere knop opnieuw uit. Onderdelen: • 1 x steekplatine, 1 x knipper-LED rood met voorweerstand De sketch Het programma voor vandaag is Tag16.ino en bevindt zich in de directory Dag16. De sketch reageert op Aan en Uit van de draadloze interface: if (Text.startsWith(“Aan”) || Text.startsWith(“AAN”) || Text.
17e dag 17. dag Vandaag in de adventskalender • 1 x potentiometer Weergave van de weerstandswaarde Vandaag meet u de waarde van een potentiometer via een analoge ingang en voert u de waarde in een app uit. Onderdelen: 1 x steekplatine, 1 x potentiometer van 15 kOhm, 4 x draadbruggen (verschillende lengtes) De sketch Een potentiometer is van uit programmeerzicht niets anders dan een analoge sensor. Het programma voor vandaag is Tag17.ino en bevindt zich in de directory Dag17.
18e dag Vandaag in de adventskalender 18. dag • 1 x jumperkabel RGB-looplicht Via een app stuurt u de knipperduur van een RGB-LED. Daarbij knippert de LED in afwisselende kleuren. Het knipperen kunt u daarbij ook opnieuw uitschakelen. Onderdelen: 1 x steekplatine, 1 x RGB-LED met voorweerstand, 1 x jumperkabel De sketch Het programma voor vandaag is Tag18.ino en bevindt zich in de directory Dag18. De sketch reageert op de tekst stop en op een verzonden cijfer.
19e dag 19. dag Vandaag in de adventskalender • 1 x jumperkabel app voor selectie van hardware-apps Vandaag worden twee functies in een schakeling gecombineerd: Geluidsweergave met piezo en knipperen van een RGBLED. Via de app kiest u de overeenkomstige functie. Onderdelen: 1 x steekplatine, 1 x RGB-LED met voorweerstand, 1 x piezo, 1 x jumperkabel De sketch Het programma voor vandaag is Tag19.ino en bevindt zich in de directory Dag19.
20e dag Vandaag in de adventskalender 20. dag • 1 x NTC Warmtesensor in de app In het huidige project wordt een NTC voor de temperatuurmeting gebruikt. U kunt het project bv. goed testen door met de NTC dichter bij een kaars op de adventskrans te komen. Onderdelen: 1 x steekplatine, 1 x NTC, 1 x potentiometer van 15 MOhm, 6 x draadbruggen (verschillende lengtes) De sketch Het programma voor vandaag is Tag20.ino en bevindt zich in de directory Dag20. De sketch is zeer eenvoudig opgebouwd.
21e dag 21. dag Vandaag in de adventskalender • 1 x fototransistor • 1 x weerstand 1 kOhm Helderheid en duisternis in de app meten Nu hebt u een bijkomende sensor voor uw projecten. Met de fototransistor kunt u helderheid en duisternis weergeven. Dit leert u vandaag. Met deze kennis kunt u snel een detectiecel bouwen en hebt u zo een alarminstallatie met weergave in een app.
22e dag Vandaag in de adventskalender 22. dag • 1 x vochtigheidssensor • 1 x weerstand 1 kOhm Vochtigheidsmeter Vandaag krijgt u nogmaals een sensor, een vochtigheidssensor. Daarmee kunt u de vochtigheid meten. Onderdelen: 1 x steekplatine, 1 x vochtigheidssensor, 1 x weerstand 1 kOhm, 3 x draadbruggen (verschillende lengtes) De sketch Het programma voor vandaag is Tag22.ino en bevindt zich in de directory Dag22.
23e dag 23. dag Vandaag in de adventskalender • 1 x jumperkabel Codebreker Het huidige project is een klein spel: In een app stelt u een code in. Deze code geeft u aan het IoT-board door. Nu moet de code met de knop worden ingegeven. Wanneer de code correct werd ingegeven, brandt de rode LED en in de app wordt weergegeven dat de code correct werd ingegeven. Anders brandt de rode LED niet en in de app wordt weergegeven dat de code verkeerd werd ingegeven.
Aangezien drie knoppen voor het spel nodig zijn, zijn er ook drie when.Click-blokken. Het ontvangen van teksten van het IoT-block gebeurt in de periodieke timer. Hierbij wordt de timer gebruikt die reeds voor de weergave van de verbindingsstatus wordt gebruikt. Bij ontvangst van JA wordt de achtergrondkleur op groen gezet, anders op rood. 15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 41 13.08.
24e dag 24. dag Vandaag in de adventskalender • 1 x knop Reactiespel Tot slot van de adventskalender is er nog een klein reactiespel. Via een knop in de app start u het spel. De LED op het steekplatine gaat aan en zodra de LED uit gaat, moet u op de knop drukken; De duur wordt in de app weergegeven.
Om het spel te starten wordt bij een klik op de knop Spel starten, het blok when geanalyseerd en de tekst START via de draadloze interface bepaald. startButton.click Het analyseren van de draadloze interface moet altijd in een timer gebeuren. Want men weet niet precies wanneer een datapakket aankomt. Zalig kerstmis! 15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 43 13.08.