15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 115007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 113.08.2017 17:09:2213.08.2017 17:09:22
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 215007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 213.08.2017 17:09:2613.08.2017 17:09:26
Page 3
Internet of Things Adventskalender 201
7
-
!
ebsite
code
5007-3
oa-
ook het bestand
-
.
.
delen.
.
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. Van het koffi ezetapparaat tot de koelkast, van de
auto tot de trein, van de productiemachine tot en met een armband, alles is programmeerbaar en kan
met andere dingen communiceren. Dit thema is meer dan een hype, het wordt de standaard van de tech
niek en daarom moeten wij er ons allemaal mee bezig houden. Gebruik de adventsperiode en stap mee
in het Internet der Dingen, ook Internet of Things (IoT) genaamd. In 24 experimenten leert u meer over
het thema en programmeert u uw eigen ding. Veel plezier ermee
Broncodes en bijkomende informatie
U ontvangt in de volgende 24 uur veel nieuwe informatie over het thema IoT (Internet of Things) en zult
deze in spannende projecten omzetten. Opdat u de deels echt grote programma‘s niet moet aftippen,
geven wij u de volledige broncodes en evt. bijkomende informatie om te downloaden. Ga hiervoor naar
w
den. In het archief bevindt zich voor elke dag een eigen directory. Voor meer gedetailleerde informatie
u
De programma’s vanaf dag 8 zijn deels heel groot. Daarom worden de programma‘s ook niet volledig
afgedrukt. Alleen de bestanddelen die u absoluut nodig hebt om het project te begrijpen en om te zetten,
worden in het handboek beschreven. Bij projecten die met een eigen aangemaakte smartphone app wor
en gestuurd, is er eveneens een volledige download beschikbaar. Als u wijzigingen aan het programma
uitvoert, dan kijkt u altijd eerst naar het volledige programma, maakt u een kopie daarvan en wijzigt u
an de kopie. Als er iets mislukt, dan vindt u op
ttp://www.buch.cd en voer de
in het archief.
1
in. Daar vindt u een archief om te downl
ttp://www.buch.cd de startbestanden
Updates in het downloadbereik
De adventskalender werd lang voor de adventsperiode opgemaakt en berust op de programmaversies
ie op dat moment beschikbaar waren. Als er tegen de advent grote wijzigingen optreden, vindt u een
update van het betreffende project in het downloadbereik
Achtergrondinformatie m.b.t. de onderdelen
In elk vak bevindt zich een onderdeel. Op deze plaats verneemt u de belangrijkste informatie in verband
met de onder
LED‘s (lichtdioden) branden wanneer er stroom in de doorstroomrichting doorstroomt. LED‘s worden in
schakelingen met een pijlvormig driehoeksymbool weergegeven dat de stroomrichting van de pluspool
naar de minpool of massaleiding aangeeft. Een LED laat in de doorstroomrichting bijna een willekeurige
hoeveelheid stroom door, ze heeft slechts een zeer kleine weerstand. Om de debietstroom te begrenzen
en zo het doorbranden van de LED te voorkomen, moet gewoonlijk tussen de gebruikte aansluitpin
en de anode van de LED of tussen de kathode en massapin een voorweerstand van 220 Ohm worden
ingebouwd. Deze voorweerstand beschermt ook de uitgang van het inbegrepen IoT-board tegen te hoge
stroomsterktes. De LED‘s in de adventskalender hebben de voorweerstand reeds ingebouwd en kunnen
aarom rechtstreeks aan de pins van het IoT-board worden aangesloten
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 315007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 313.08.2017 17:09:2713.08.2017 17:09:27
Page 4
ED in welke richting aansluiten?
k-
eeste weerstande
ebbe
-
g
-
-
.
.
leurrstandswaarde
g
n
g
)
g
)
g
r10
2
%
0
1
%
1
0
01%
00%
e
000
000
oen
000
%
000.000
%
000.000
%
js
000.000
%
t10
000.000.000
eide 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
inteken 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.
Weerstanden en hun kleurcodes
Weerstanden worden bij gevoelige elektronische onderdelen en als voorweerstanden voor LED‘s gebruikt
om de stroom te begrenzen. De maateenheid voor weerstanden is Ohm. 1.000 Ohm komt overeen met
een kiloohm, afgekort kOhm. 1.000 kOhm komt overeen met een megaohm, afgekort MOhm. Vaak wordt
voor de eenheid Ohm het omegateken
elijker te herkennen als de ultrakleine cijfers die
en alleen nog op hele oude weerstanden vindt
en met een beetje oefening kunt u de waarden ook
it de kleurcodes snel „vertalen“.
m
n h
n vier zulke kleur
ingen. De eerste twee kleurringen staan voor de
ijfers, de derde is een multiplicator en de vierde
e tolerantie. Deze tolerantiering is meestal goud-
of zilverkleurig – kleuren die op de eerste twee
ingen niet voorkomen. Daardoor is de leesrichtin
niek. De tolerantiewaarde zelf speelt in de digi
ale elektronica nauwelijks een rol. De tabel toont
e betekenis van de gekleurde ringen op weerstan
n
et is gelijk in welke richting een weerstand
wordt ingebouwd. Bij LED‘s daarentegen speelt de
nbouwrichting een belangrijke rol
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 415007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 413.08.2017 17:09:2813.08.2017 17:09:28
Page 5
1e da
g
r
2
.
-
.
n
-
.
J
.
:
d
E
d
-
-
load d
.
d
E
-
l-
E
-
board uitschakele
-
.
.
ucties.
Vandaag in de adventskalende
•1x IoT Bluething Board
andaag 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 ATme
ga328P op het board. Deze microcontroller communiceert via de seriële interface met een HC-05. De
HC-05 is verantwoordelijk voor de draadloze verbinding (Bluetooth). De module ondersteunt Bluetooth
V2.0+EDR. Voor de app-communicatie is een smartphone met Android nodig
IoT-board confi gurere
Om het IoT-board in gebruik te nemen hebt u een pc met Linux, Mac OS X of Windows en een micro
USB-kabel nodig. Deze aansluitkabel dient voor de stroomverzorging en de verbinding van het IoT-board
met de pc om het te programmeren. U hoeft geen bijkomende dergelijke kabel te kopen aangezien u er
vermoedelijk al een bezit – bijna alle moderne smartphones gebruiken dit stekkertype
uiste USB-poort aan de pc selecteren
Sluit de kabel indien mogelijk aan een USB-2.0-aansluiting van uw pc aan. Bij USB-3.0-aansluitingen
an dit tot verbindingsproblemen leiden. Een USB 3.0-aansluiting herkent u vaak aan een blauwe bus
oor u het board met de pc verbindt, zijn de volgende stappen nodig
1. dag
•Stap 1: Installatie van de driver voor het IoT-boar
•Stap 2: Installatie van de Arduino ID
Stap 1: Installatie van de driver voor het IoT-boar
De USB-poort die zich op het IoT-board bevindt is met een CH340G-chipset verbon
en. Om deze chipset voor de USB-verbinding te gebruiken moet u de passende
river voor uw besturingssysteem installeren. Voer hiervoor de volgende vier stap
pen uit:
1 Down
e voorbeeldprogramma‘s en de apparaatdriver op
ttp://www
uch.cd. Voer daar de code 15007-3 in en volg de instructies op het scherm.
2 Pak het ZIP-archief in een willekeurige map onder uw gebruikersmappen uit.
Installatie van de driver van het apparaat
Sluit het IoT-board via de USB-kabel aan en start dan de installatie van de driver met het bestan
H341SER.EX
. Voor de installatie moet u eventueel een vraag van het Windows-gebruikersaccountbe
eer bevestigen.
Klik in de installatiedialoog op Install en wacht tot een bevestiging verschijnt dat de driver geïnsta
eerd werd.
Stap 2: Installatie van de Arduino ID
Het IoT-Board is compatibel met de Arduino Nano and kan met de Arduino IDE3 geprogrammeerd wor
den. In de Arduino IDE schrijft u programma’s in de programmeertaal C en zet u ze dan onmiddellijk op
et IoT-board over. Na de overdracht loopt het programma zonder verbinding met de pc en daarom kunt
u daarna deze verbinding ook verbreken.
IoT-
Het IoT-board heeft geen uit-schakelaar. U hoeft gewoon de USB-kabel van de pc of de adapter te ont
koppelen en het IoT-board schakelt zichzelf uit. Bij het volgende inschakelen start automatisch het
laatst opgeslagen programma. Hetzelfde gebeurt wanneer men op de resetknop drukt
2 Hieronder verder als IoT-board genoemd
3 Voor de projecten werd de Arduino IDE in versie 1.8.2. gebruikt. Als er bij het verschijnen van de adventskalender een nieuwere
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 515007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 513.08.2017 17:09:2813.08.2017 17:09:28
n
versie beschikbaar is, kunt u deze gebruiken. Als de wijzigingen markant zijn, vindt u in het downloadbereik de overeenkomstige
instr
Page 6
Download de Windows Installer voor de huidige versie van Arduino IDE op www
.
.
e
.
-
d
.
h
.
d
-
stallatie van de
E
d
arduino.cc/en/Main/Software of gebruik gewoon het bestand arduino-windows
x
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 Optionsalle haakjes zijn aange
vinkt. Naargelang de Windowsconfi guratie is een bevestiging van het gebruikersaccountbeheer nodig.
Update van de fi rmware op het IoT-boar
Opdat u ook alle voorbeelden met uw IoT-board kunt uitvoeren, update u eerst de
In
Arduino ID
ven. Plaats hier het haakje
Kies vervolgens via het menupunt To ols / Board de Arduino Nano wanneer deze niet reeds automatisc
werd herkend. Als processor moet
fi rmware van het board. Hiervoor opent u eerste de eerder geïnstalleerde Arduino
IDE en kies in het menu van Arduino IDE
ort
Hier wordt in de meeste gevallen slechts een enkele seriële poort weergege-
ools /
mega328 geselecteerd worden
In de Arduino IDE kiest u het passende board.
Snelle start van de downloa
an de fi rmware op het board
Na de start van Arduino IDE en de selectie van het board opent u nu via het menupunt
nen... de fi rmware Firmware_V1.2b.ino
Deze bevindt zich in het downloadarchief in de directoryrm-
ware_V1.2b. Voor u de fi rmware afspeelt, verzekert u dat de jumper op het IoT-board op
via
etch / Uploaden de fi rmware op het board op. Anders kunt u ook de icons in de Editor daarvoor
estand / Ope-
staat. Laa
gebruiken: Via de pijl naar rechts laadt u de fi rmware4 op het board.
Na korte tijd moet in de statusregel van de editor het bericht Uploaden voltooid staan. Nu is het IoT
oard geüpdatet.
4 De fi rmware is een normaal Arduino-programma. Een dergelijk Arduino-programma wordt als Sketch beschreven.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 615007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 613.08.2017 17:09:2813.08.2017 17:09:28
Page 7
IoT-board teste
n
-
.
-
.
.
.
n
estand
bee
-
g.
.
d.
Na de uitgevoerde update van de fi rmware kunt u het board nu testen. Open daarvoor de seriële moni
tor 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 confi guratie voltooid is, verschijnt het bericht
Confi guratie succesvol!, gevolgd door informatie over het
draadloos netwerk
Nu kunt u met uw Adroid smartphone testen of u het draad
loos netwerk ook ziet. Schakel hiervoor op de smartphone
Bluetooth in en na korte tijd moet het draadloos netwerk
verschijnen. Kies nu het draadloos netwerk (in het volgende
screenshot Bluething103) en bevestig de selectie met
K
De naam van het netwerk in dit voorbeeld luidt
Op uw systeem zal de naam van het IoT-board ook met Bluething beginnen maar evt. met een ander nummer
eindigen. Het nummer wordt aan de hand van het MAC-adres van uw board individueel gegenereerd
oor de opbouw van de verbinding moet u een wachtwoord invoeren, in dit geval 1234
Nadat het juiste wachtwoord werd ingevoerd, verschijnt net netwerk onder
EKOPPELDE
. Nu kan uw smartphone met het IoT-board communiceren
an zodra een apparaat met een smartphone is gekoppeld, is het mogelijk ook zonder
nieuwe scan een verbinding aan te maken
luething103 en het wachtwoord is 1234
ij de verbindingsopname met het IoT-board moet
een wachtwoord invoeren
On-Board-LED doen knippere
Nu moet het programmeren van het IoT-board worden getest. Als voorbeeld wordt de in de
rduino IDE geïntegreerde Blink-sketch gebruikt. Kies daarvoor in het menu B
den / 01.Basics / Knipper
Klik nu linksboven met de pijl op het ronde symbool om het programma op het aangesloten IoT
board te uploaden, wat ook Flashen wordt genoemd.
Met het haakje compileert u de bestanden, met de pijl naar rechts laadt u
et programma op het IoT-board.
Nadat het uploaden is voltooid, knippert LED D2 (naast aansluiting D13) op het IoT-board. Nu is
het board gebruiksgereed voor de volgende da
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 715007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 713.08.2017 17:09:2913.08.2017 17:09:29
/ Voor
l-
Op uw systeem zal de naam van het IoT-board ook
met Bluething beginnen maar evt. met een ander
nummer eindigen. Het nummer wordt aan de hand
van het MAC-adres van uw board individueel gege-
nereer
Page 8
Onder het broncodevenster ziet u de uitgaven van de Arduino IDE bij het compileren en het uploaden
.
worden verholpen.
T
.
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
oT-board altijd in de AT-modus gebruiken
p het IoT-board bevindt zich een jumper. Deze jumper moet voor alle projecten in deze kalender op
A
n
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 815007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 813.08.2017 17:09:3013.08.2017 17:09:30
Page 9
2e da
g
r
)
.
a
i
.
;
;
{
;
{
;
(
);
a
;
in
bestaan te
ste uit de twee functies
{
;
);
e
p
g
)
audrate
p()
p
-
;
);
a
d
g
g
p
n
y
)
.
tor
-
otter
l
aud
g
Vandaag in de adventskalende
•1x steekplatine (SYB 46
•1x jumperkabel
Analoge waarden meten
andaag programmeert u een sketch in de Arduino IDE om
waarden van een analoge ingang te analyseren. De waarden
worden via tekstweergave en grafi sch weergegeven
Het programma voor vandaag draagt de naam Tag02.
bevindt zich in het downloadarchief in de directory
int analogValue = 0
int analogPin = A0
oid setup()
pinMode(analogPin, INPUT)
Serial.begin(9600);
no
ag02
oid loop()
analogValue = analogRead(analogPin)
Serial.println(analogValue);
delay
2. da
e jumperkabel dient als antenne. Probeer de metingen ook eens zonder deze kabel om te
zien of de kabel voor een verschil in uw meetomgeving zorgt
1000
Zo werkt het programm
int analogPin = A0
In het begin wordt het gebruikte pinnummer in de variabele
Arduino IDE
oid setup()
pinMode(analogPin, INPUT)
Serial.begin(9600
De functi
setu
loopt eenmaal tot aan de start en wordt meestal voor de confi guratie gebruikt. De ana-
oge pin wordt als invoer vastgelegd. Via Serial.be
nmin
in(9600
waarden op de seriële monitor en de seriële plotter weer te geven. De parameter bij deze functie is het
B
De functie
oid loo
.
{
oo
wordt lang herhaald tot men de voe
dingsspanning ontkoppelt of op de resetknop drukt.
oid loop() {
analogValue = analogRead(analogPin);
Serial.println(analogValue)
delay(1000
setup
nalogP
n loop:
vastgelegd. Alle programma‘s in
wordt de seriële communicatie gestart om
i
analogRea
ingang in de variabele analo
via Serial.
wacht het programma 1000 milliseconden
Open nu de seriële monitor van de Arduino IDE via Tools / Seriële moni
wordt de waarde van de analoge
rintl
uitgegeven. Door dela
Value op
eslagen en
(1000
Het daterate moet in het dropdown rechtsonder in de hoek van het venster correct zijn ingesteld, in dit geva
B
. Zo ziet u de gemeten waar
den. Die waarden kunt u ook grafi sch laten weergeven. Sluit hiervoor de voorheen geopende seriële
monitor en open de seriële plotter via Tools / Seriële Pl
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 915007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 913.08.2017 17:09:3113.08.2017 17:09:31
Page 10
1
0
g
d
d
-
a
ino
en
;
;
{
);
{
;
;
);
;
;
(
)
d.
g
3e da
3. da
Vandaag in de adventskalender
•1x LED rood met voorweerstan
•1x schakeldraa
U hebt geen afzonderlijke weerstand nodig want de LED heeft reeds een geïntegreerde weer-
n
nipperlicht
Vandaag laat u een LED met een frequentie van 2 Hz knipperen.
Onderdelen:
1x steekplatine, 1 x LED rood met voorweer
stand
et programm
et programma voor vandaag draagt de naam Tag03.
evindt zich in het downloadarchief in de directory
const int ledPin = 2
nt ledState = LOW
void setup()
pinMode(ledPin, OUTPUT
void loop()
ag03
Zo werkt het programma
if (ledState == LOW) ledState = HIGH
else ledState = LOW;
In de variabele
waarde LOW Deze waarde wordt via delay
wordt onthouden of de LED al of niet brandt. In het begin heeft de variabele de
if (ledState == LOW) ledState = HIGH
else ledState = LOW
digitalWrite(ledPin, ledState
delay(500)
500
e 500 ms omgeschakeld. Daardoor knippert de LED.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1015007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1013.08.2017 17:09:3113.08.2017 17:09:31
Page 11
4e da
g
r
d
)
-
a
i
4
;
;
{
;
);
);
;
;
;
{
;
);
}
;
a
;
;
;
;
}
i
d
1
.
Vandaag in de adventskalende
•1x LED geel met voorweerstan
Knipperlicht (wisselend
Twee LED’s knipperen afwisselend.
Onderdelen: 1x steekplatine , 1xLED geel met voorweer
stand, 1xLED rood met voorweerstand
Het programm
Het programma voor vandaag draagt de naam Tag04.
bevindt zich in het downloadarchief in de directory
const int ledPin1 = 10;
const int ledPin2 = 12;
nt ledState = LOW
nt pin = ledPin1
oid setup()
pinMode(ledPin1, OUTPUT)
pinMode(ledPin2, OUTPUT
digitalWrite(ledPin1, LOW
digitalWrite(ledPin2, LOW)
ag0
4. dag
no
Beide kathoden (korte benen van de LED) moeten op GND worden geleid. Links is de gele LED,
rechts de rode
oid loop() {
if (pin == ledPin1) {
pin = ledPin2
digitalWrite(ledPin1, LOW)
} else
pin = ledPin1
digitalWrite(ledPin2, LOW
. Via een if-vraag wordt de variabele op de andere pin gezet en de huidig brandende LED
wordt uitgeschakeld. Het omschakelen gebeurt elke 500 ms.
n wor
t opgeslagen welke LED nu brandt. Oorspronkelijk staat deze waarde
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1115007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1113.08.2017 17:09:3213.08.2017 17:09:32
Page 12
5e da
g
d
.
n
-
-
.
n
-
uit
uit
selectee
.
.
elemente
d.
.
g
. da
Vandaag in de adventskalender
•1x LED groen met voorweerstan
Vanaf drie LED’s wordt het een beetje knapper, daarom wordt GND extra aan de bovenste lijst
gevoerd. LED’s van links naar rechts: groen, geel en rood
en speciale Sketch op het bord afspelen, nl. Firmata. Sluit hiervoor het IoT-board aan uw pc aan
n open Arduino IDE. Kies onder Bestand / Voorbeelden / Firmata / Standaard Firmata en laad de
Sketch via een muisklik op de pijl naar rechts op het board. Nu kunt u het board met Snap4Arduino
erkeerslicht
et huidige project is een verkeerslicht die met de grafi sche
ntwikkelingsomgeving Snap! wordt gemaakt
nderdelen:
x steekplatine, 1xLED groen met voorweer-
tand, 1xLED geel met voorweerstand, 1xLED rood met
oorweerstand, 1xdraadbrug
Snap! installeren en IoT-board voorbereide
Snap! is een grafi sche ontwikkelingsomgeving die in de vorm
an Snap4Arduino ook speciaal voor Arduino bestaat. Down
oad daarvoor de in deze kalender gebruikte versie van de
software op
aal van het oppervlak op Nederlands in. Klik hiervoor in Sna
4Arduino op het instellingensymbool (tandwiel) en kies in het
u
Om Snap4Arduino met uw bord te kunnen gebruiken, moet u
ttp://www.buch.cd 5. Na de installatie stelt u de
anguage de taalNederlands
In de categorie Arduino vindt u d
oor de besturing van het IoT-boar
rduino IDE en Snap! niet tegelijk gebruiken
rduino IDE en Snap! kunnen niet tegelijk worden gebruikt. Sluit daarom het respectievelijk
n
ndere programma voor u met de door u gewenste omgeving aan de slag gaat
rogramma in Snap! omzette
en programma in Snap! wordt met grafi sche elementen samengesteld die in cate
gorieën zijn ingedeeld. Het menu van de categorieën vindt u linksboven.
rek nu uit
eik. Om de LED‘s in en uit te schakelen gebruikt u het element Plaats digitale pin
waarden zet u via het omschakelbare element
rogramma ook niet stopt, hebt u het luselement uit
ED‘s ook niet onmiddellijk opnieuw omschakelen, bouwt u een pauze van een
nde in via
Voor u het programma kunt starten, moet u het IoT-board met Snap! verbinden.
iervoor klikt u op het element
ij een klik op het symbool ziet u de beschikbare aansluitingen. Selecteer de
erste aansluiting. Nu klikt u op de groene pijl (rechtsboven) en het verkeerslicht
egint reeds te werken.
Extern project in Snap! Openen
et programma voor vandaag bevindt zich in de map
gaat u op het eerste symbool staan en kiest u
apag05 en
et gebruiken
esturinget element met de groene kleur in het middelste werkbe-
eratoren
Opdat het
esturing nodig. Opdat de
esturing
et Arduino verbindenin de categorie
ag05
In de menulijst
rduino
mporteren.... Navigeer naar de
r
ag05-snap.xml Nu is het project geopend en u kunt
Het met Snap! gemaakte programma
5 Anders kunt u ook de meest recente versie downloaden onder
de screenshots afwijken, de programma’s moeten echter toch werken
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1215007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1213.08.2017 17:09:3213.08.2017 17:09:32
ttp://snap4arduino.org/. Het oppervlak kan lichtjes van
Page 13
3
6e da
g
r
d
d
.
a
-
o
l
d
-
g06
g
o
g
o
g
geb
-
odel bevat reeds enkele functies
-
lue
tstreeks onder de
defi ne Led
3
2
ode
p
p()
...
);
ld:
)){
);
;
}
)){
;
;
}
jkt
.
g
g
1
Vandaag in de adventskalende
•1x LED blauw met voorweerstand
Verbinding met het IoT-boar
andaag 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: •1x steekplatine, 1 x LED blauw met voor-
weerstan
App voor de besturing installeren
andaag gebruikt u nog geen eigen app, maar stuurt u het
oard via de gratis app Serial Bluetooth Terminal uit de app
De schakeling geli
op de schakeling van dag 3.
store Google Play
et programm
Het programma voor vandaag bouwt op de fi rmware voor het IoT-board verder. De uit de fi rm
ware benodigde programma-onderdelen liggen in het bestand
Draadloze verbinding geree
De fi rmware (en dus ook het model) is zo geprogrammeerd dat de oranje LED aan pin 13 per
manent brandt van zodra de draadloze verbinding gereed is. Wacht daarom tot deze LED
randt voor u een verbinding met het IoT-board aanmaakt.
odel.in
in de directory Mode
. da
Kopieer het bestand Model.ino naar een nieuwe directory Da
naam Da
06.in
. Anders kunt u onmiddellijk het klare Da
en. Nu opent u het bestand met Arduino IDE. Het m
stante voor de interne LED is reeds aanwezig; De Constante
fi nieert u rech
#
#defi ne LedPinBlue
Pin 1
n het einde van de meth
oid setu
digitalWrite(LedPinBlue, HIGH
{
interne LED:
setu
wordt de LED ingeschakeld:
en geef het bestand een nieuwe
06.in
uit de directory Da
PinB
voor de bijkomende LED
06
. De con
rui
oor het in- en uitschakelen van de geïntegreerde LED aan pin 13 is de code reeds aanwezig.
Deze wordt nu als volgt aangevu
if (Text.startsWith(“Led aan”) || Text.startsWith(“LED aan”) || Text.startsWith(“LED
AAN”
digitalWrite(LedPin, HIGH
digitalWrite(LedPinBlue, HIGH)
if (Text.startsWith(“Led uit”) || Text.startsWith(“LED uit”) || Text.startsWith(“LED
Na de eerste start verschijnt een leeg zwart venster
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1315007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1313.08.2017 17:09:3313.08.2017 17:09:33
Page 14
anneer het board
f
AAN
g
)
g
}
)
…
””
}
Bij
ecteren.
ected
-
.
invoert en op het pijlsymbool
.
.
-
board
-
.
ntvangt, worden via di
n di
italWrite(LedPinBlue, HIGH)
aan o
ed aan
italWrite(LedPin, HIGH
interne LED
n de blauwe LED ingeschakeld. Wanneer het IoT-
oard gegevens ontvangt, wordt de volgende lus
itgevoerd:
while(HC05.available() > 0){
…
Text=““;
oeg nu voor de laatste regel een oproep van de nog
e programmeren functie
ookRec(Text
De naam van het netwerk luidt Bluething103 en het wachtwoord is 1234
n deze functie geeft u nu de ontvangen tekst via de draadloze interface uit:
u kunt u het programma op het IoT-board afspelen. Schakel Bluetooth op uw smartphone in en
electeer het nieuw aangemaakte Bluetooth-netwerk. U ziet de overeenkomstige naam in de seri-
e monitor van de Arduino IDE. Het bijhorende venster opent u via To ols / Seriële monitor.
Via het centrale menu komt u in de instellingen van
e app
e verbinding moet u een wachtwoord invoeren; dit wachtwoord ziet u ook in de seriële monitor.
u start u de eerder geïnstalleerde Bluetooth-app. Ga naar start in het menu (drie boven elkaar
iggende streepjes in de linker rand) van de app in selecteer het menupunt Bluetooth Devices
u kiest u het overeenkomstige netwerk en gaat u naar de terminal door eenmaal op het menu-
ymbool te klikken en dan
n de terminal klikt u op het verbindingssymbool (links naast de prullenmand). Na korte tijd krijgt
de vraag om het wachtwoord in te voeren. Dit luidt 1234
an de verbinding nog niet en daarom klikt u nogmaals op het symbool. Nu moet de verbinding
ijn aangemaakt. In het terminalvenster verschijnt de melding
rd communiceren
rminalte sel
while(HC05.available() > 0){
hookRec(Text);
Text=
}
;
Bij de eerste keer lukt het opbouwen
nn
Nu kunt u met het IoT
In de lijst van de Bluetooth-netwerken vindt u ook
het netwerk van het IoT-
Via echokunt u zien dat de app ook infor
matie van het IoT-board kan ontvangen
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1415007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1413.08.2017 17:09:3413.08.2017 17:09:34
Dubbele verbindingsopbouw nodig
.
olang u in de Bluetooth-app nog geen wachtwoord hebt ingevoerd, moet u tweemaal de verinding opbouwen. Bij de eerste maal voert u het wachtwoord in en bij de tweede maal wordt
de verbinding aangemaakt.
anneer u nu
rukt, worden beide LED‘s uitgeschakeld. Door Led
an in te voeren, schakelt u de LED‘s opnieuw in.
Elke invoer die met
cho begint, wordt naar het
board verzonden en dit zendt de invoer beginnend
met twee pijlen terug. De tekst wordt dan door de
De terminal-app is nu gereed voor de communica
ie.
terminal uitgegeven
Page 15
7e da
g
r
-
-
a
ino
en
;
;
;
{
);
);
p()
;
);
;
;
);
;
a
;
;
g
g
5
Vandaag in de adventskalende
•1x potentiometer, 15 kOhm
Stuurbaar looplicht
Het project van vandaag is een looplicht waarvan de snelheid
via een potentiometer kan worden gestuurd.
Onderdelen: 1x steekplatine, 1xLED groen met voorweer
stand, 1xLED geel met voorweerstand, 1xLED rood met
voorweerstand, 1x potentiometer van 15 kOhm, 4 xdraad
brug (verschillende lengtes)
et programm
Het programma voor vandaag draagt de naam Tag07.
bevindt zich in het downloadarchief in de directory
nt analogPin = A5
nt analogValue
nt led1 = 8;
nt led2 = 6
nt led3 = 4;
oid setup()
pinMode(analogPin, INPUT
ag07
7. dag
e potentiometer neemt een beetje plaats in. Daarom moet het IoT-board in vergelijking met
et model, naar boven worden geschoven. LED‘s van links naar rechts: groen, geel en rood.
In de tijdelijke variabele analo
wordt gewacht en dan worden de LED‘s omgeschakeld.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1515007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1513.08.2017 17:09:3513.08.2017 17:09:35
Pin wordt de in
estelde waarde van de potentiometer gelezen. Via
elay
Page 16
1
6
g
o
n
.
.
s
lBl
.
-
-
.
g
8e da
8. da
Vandaag in de adventskalender
•1x Piez
Tonen via app uitvoere
Via een app geeft u tonen op een piezo uit
nderdelen: 1x steekplatine, 1xPiezo
De twee draden van de piezo worden met D2 en GND verbonden. De rest wordt via software geactiveerd
Ontwikkelingsomgeving voor de app
De besturing van het IoT-board gebeurt in deze adventskalender met de reeds gebruikte app
uetooth Terminal en met zelf-ontwikkelde smartphone apps voor het besturingssysteem Android6. De
afgewerkte projectbestanden kunt u telkens van
somgeving wordt MIT App Inventor 2 (ttp://appinventor.mit.edu) gebruikt.
De ontwikkelingsomgeving loopt in de browser. Daarom hebt u tijdens de ontwikkelingstijd ook toegang tot het internet nodig
Met een klik op de knopreate apps! start u de ontwikkelingsomgeving. Voor het gebruik hebt u een
gratis account bij Google nodig
Account bij Google aanmaken
Als u nog geen account bij Google hebt, maakt u voor de ontwikkeling met de MIT App Inventor 2
AI2) een account aan via https://accounts.google.com.
ttp://www.buch.cd downloaden. Als ontwikkeling-
eria
Nadat u zich met succes hebt aangemeld, bevindt u zich in het dashboard. Hier zit u alle totnogtoe ont
wikkelde apps. Aangezien u waarschijnlijk nog geen app met AI2 hebt ontwikkeld, ziet u een leeg dash
rd.
De op het IoT-board geïntegreerde chipset wordt alleen door Android smartphones ondersteund.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1615007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1613.08.2017 17:09:3513.08.2017 17:09:35
Page 17
Het oppervlak is nog niet in het Nederlands beschikbaar
.
de
-
aken.
2
en voer als naam
_
.
MIT A
t.
Om uw zelf-ontwikkelde app ook al tijdens de ontwikkeling snel
te kunnen testen, moet u de gratis app MIT AI2 Companion uit
Google Play Store op uw smartphone installeren. Na de start moet u
e code van uw app invoeren. Hiervoor moet u eerst een app aan
m
De eerste app met AI
Kik nu op de startknop
eerste_app in. Let op dat de naam geen spaties mag bevatten. Nu
opent de ontwikkelingsomgeving zich in uw browser
Mijn
Tijdens de ontwikkeling start
niet direct de app op, maar
eemt u een omweg via
nventor 2 Companion. Daardoor
espaart u zich een manuele
nstallatie van de app op het
pparaa
pp
Na de start is het oppervlak van de app nog leeg.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1715007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1713.08.2017 17:09:3613.08.2017 17:09:36
Page 18
1
8
de oppervlakte-elementen die voor uw app
p
te zetten e
e
p
ij-
ouc
touched
toe
n
-
g.
ks
d
.
-
.
Het venster is in meerdere delen opgedeeld. Links ziet u in
het bereik
beschikbaar zijn. Daarnaast ziet u in
de app. In
omponents 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
idth o
opnter:I Nu is het opschrift horizontaal
ecentreerd. Vervolgens verandert u de tekengrootte in
en plaatst u de tekst (Veld: Tekst) op Mijn eerste ap
Nu moet de app nog met een interactie worden uitgebreid. Hiervoor voegt u een knop uit het venster
zigt u via
roperties het opschrift in T
u een label met het opschrift
iewer
et oppervlak van
omponents toe en w
h me. Daaronder voegt
: not
n
ntSiz
.
Wijzigingen aan een onderdeel voert u in het venster
wer verandert dan onmiddellijk.
AI2 heeft twee aanzichten voor een app: het aanzicht voor de weergave van het oppervlak, de zoge
naamde designer (driver Designer), en het aanzicht voor de programmering in de bloktaal (driver
Blocks. Deze beide drivers ziet u bovenaan de ontwikkelingsomgevin
Via de drivers
esigner en Blocks gaat u naar beide aanzichten van de ontwikkelingsomgeving
roperties uit. Het aanzicht in de vie
App-oppervlak met de drie componente
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1815007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1813.08.2017 17:09:3713.08.2017 17:09:37
Nadat u opBlocks
ereik Bloc
e onderdelen
unt reageren
ebt geklikt, opent het aanzicht van de Block-programmeertaal. Kies nu binnen het
utton1 en u ziet al de beschikbare gebeurtenissen waarop u in de app
Page 19
Selecteer nu de twee blokken
en
abe
abel2
-
t
het lege element (bovenste
).
.
utto
ouchDo
p
ouched
.
-
.
.
hen Button1.TouchDown
when Button1.TouchUp. In beide gevallen moet de inhoud
van het l
l L
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 een
maal 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.
Beide onderdelen voegt u nu binnen de beide eerder ingevoegde elementen (when Button1.TouchDown
n
en But-
ton1.TouchUp in. Nu ontbreekt de tekstinhoud nog. Selecteer
iervoor uit de categorie Te x
element
Voor de programmering van de logica, kunt u voor de keuze via categorieën (Built-in of via de
nderdelen (creen1
gaan.
Het element met de twee aanhalingstekens wordt gebruikt om het opschrift te wijzigen
Ingeval van when B
e tekst o
utton1.TouchUp wordt de tekst op
: T
n1.T
wn wordt
ingesteld. Bijwhen
: Not
hed geplaatst
Nu kunt u de app op uw smartphone testen.
Selecteer daarvoor in het menu Connect / AI Companion. Nu verschijnt er een tekst- en een
QR-code. Voer nu hetzij de code in
AI2
Companion in of scan de QR-code via scan QR
code. De app starten u met connect with Code
Nu opent de app zich op uw smartphone. Wan
neer u nu de knop aanraakt, verandert de titel.
e tekst van het label wordt bij het aanraken van de knop aangepast
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1915007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 1913.08.2017 17:09:3813.08.2017 17:09:38
o eenvoudig is de app-ontwikkeling met AI2
Page 20
Piezo met app besturen
8
o
}
d
ia
/
.
p
-
:
k
k
k
t
meerdere layoutmanagers (bv.
-
.
h
e
uit de categorie
g
de
E
-
-
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
Dag0
Laad deze sketch op het IoT-board op.
ag08.ino in de directory
Bovenaan de app wordt aangeduid of de Bluetooth-verbin
ding al of niet is aangemaakt.
e sketch baseert zich op het reeds gebruikte bestand
odel.in
. Het principe van alle
sketches in deze adventskalender die op een app reageren, is als volgt: Er wordt een tekst
via de draadloze interface verzonden en deze wordt in de sketch geanalyseerd en dan
wordt een actie uitgevoerd. In de andere richting gaat het net zo: De app ontvangt via de
draadloze interface een tekst van het IoT-board, analyseert de tekst en voert dan een overeenkomstige actie uit. Het commando om een melodie af te spelen, luidt
if (Text.startsWith(“Ton”) || Text.startsWith(“TON”) || Text.
tartsWith(“ton”)){
playMelody();
e daarbijhorende app bevindt zich in het bestan
Piezo.a
Importeer het bestand in
elodie:
2.
rojecten in AI2 importeren
Alle apps liggen voorgemaakt als aia-bestanden in het downloadarchief gereed . Om
een bestand in AI2 te openen, moet u het projectbestand via het menupunt
rojects
Import project (.aia) from my computer ... importeren
Werkwijze van de ap
e volgende apps die met AI2 opgemaakt werden, zijn aan de hand van een model opgeouwd en daarom wordt deze app nu beschreven en in het verdere verloop wordt daar
aar verwezen. De app bestaat uit in totaal vier bereiken
•Verbindingsbereik
Alle onderdelen in de app in een hiërar-
chisch overzicht. De belangrijke onder
delen werden van sprekende namen
oorzien.
•Werkberei
•App-infoberei
•Intern, niet-zichtbaar berei
In de linker afbeelding ziet u de afzonderlijke bereiken van de app. Bij het verbindingsbereik horen
Container_Verbindingenontainer_MAC. De eigenlijke app die ook van project tot project verandert,
evindt zich in
ontainer_App. Deze container bevat het functiebereik (uttonTon
en het app-infobe-
reik (Container_App_Info
Wat is een container?
m de elementen te plaatsen zijn er in de categorie Layou
Horizon-
talArrangement) beschikbaar; deze helpen u bij de horizontale en verticale plaatsing. De elementen
orden binnen een dergelijke layoutmanager geplaatst. Aangezien deze layoutmanagers meestal meer
ere elementen bevatten, worden deze ook containers (layoutcontainers) genoemd
nderdelennamen wijzigen
Wanneer u onderdelen tot een oppervlak in de AI2 toevoegt, hebben de onderdelen een automatisc
gegenereerde naam. In tegenstelling tot andere eigenschappen van een onderdeel kunt u de naam niet
via het venster
omstige onderdelen en klikt u op de knop
roperties wijzigen, maar in het bereik, Components. Hier selecteert u de overeen-
enam
Het oppervlak bevat in total drie niet-zichtbare onderdelen. Voor het gebruik van Bluetooth hebt u de
nderdelen
onnectivity nodig. De onderdelen worden daarbij slechts
in het oppervlaktebereik getrokken en moeten niet verder geconfi gureerd worden. Voor de keuze van het
overeenkomstige Bluetooth-apparaat hebt u het onderdeel
Wanneer_BT_Aan uit
waar
android.bluetooth.adapter.action.REQUEST_ENABL
onnectivity nodig. Aan de ActivityStarter wordt in het venster Properties
ctivityStarter (in de bovenste afbeeldin
toegewezen. Voor de constante controle van
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2015007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2013.08.2017 17:09:3913.08.2017 17:09:39
Page 21
de draadloze verbinding wordt het
sConnected
.
aken
k-
-
oet ook ee
.
fte
-
-
slechts de waarde
elodie
d
D
-
.
het
beschikbare
element
ding
lock (in de bovenste afbeel-
imer
uit
nsors gebruikt. Het
imerInterval wordt in het venster
Properties op00 gezet.
De programmering gebeurt in de
driver
locks Via de Timer wordt de
verbindingsstatus gezet. Via de eigenschap i
of de app met een Bluetooth-apparaat
is verbonden
kunt u controleren
Regelmatig wordt gecontroleerd of de draadloze verbinding al of niet bestaat
Bij een klik op de knop Verbinding
m
wordt de lijst van de beschi
bare Bluetooth-apparaten weergegeven. Als de lijst leeg is, moet u in de app terugkeren en dan wordt automatisch na de toegangs
autorisering op de Bluetooth-interface gevraagd. Als wachtwoord voert u 1234
n. Wanneer men
opnieuw op de knop klikt, moet de lijst worden weergegeven.
Hier m
n invoer met de naam
luething opduiken. Na een klik op de invoer moet u
nog het wachtwoord 1234 invoeren en de app is met het board verbonden. De weergave van deze
lijst wordt via het blok when Verbind.BeforePicking gerealiseerd. Zoals u in het volgende blok
ziet, heeft de knop twee functies: Verbinding maken en verbinding ontkoppelen.
Via de knop kan de Bluetooth-verbinding tussen het board en de app geïniti-
rd worden
De verbinding zelf wordt in het blok
ing
emaakt.
hen Verbinde.A
rPik
De bovenste drie blokken zullen in alle apps in deze advents
kalender voorkomen. De eigenlijke functionaliteit in de huidige
app is in het blok
waarde wordt
oor een
n. Het verzen
interface gebeurt via het blok
en buttonTon.Clickgerealiseerd. In deze
M
bepaald, afgesloten
en van een tekst via de draadloze
all Bluetooth.SendTe x t . Als
e verbinding met het geselecteerde apparaat wordt gemaakt.
parameters voert u de tekst in. Vergeet niet een eindcriterium
te defi niëren. In dit voorbeeld is het eindcriterium
n.
e
sketch reageert op dit teken.
De naam en
pparaten worden weergegeven.
MAC-adres van de
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2115007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2113.08.2017 17:09:3913.08.2017 17:09:39
Blokken naar andere projecten kopiëren
In het bereik Blockszit u een rugzak, het zogenaamde backpack. Hiermee
unt u blokken uit de blokeditor van een project naar een ander project
opiëren. Trek gewoon de overeenkomstige blokken in het backpack en u kunt
e blokken in een ander project opnieuw gebruiken. Om het backpack opni
euw leeg te maken, klikt u met de rechter muisknop op het werkvlak en kiest
u
mpty Backpack.
Strings kunnen via de onderdelenjoin met elkaar worden verbonden.
Page 22
pp teste
n
board verbinde
.
f.
tart de app nu via
ndroid-smartphone op. Scan de QR-code of voer de code in en start de app via connect with
ode. Nu start de app.
onnect / AI Companion en roep de appMIT AI2 Companion op uw
In het begin is de verbinding nog niet actie
lik nu op
De app is nu met het IoT-board verbonden
erbinding maken Nu kunt u zich met het IoT-
n.
anneer u nu Melodie afspelen aanraakt, wordt op het IoT-board een melodie via de piezo
afgespeeld.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2215007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2213.08.2017 17:09:4013.08.2017 17:09:40
Page 23
9e da
g
r
s
-
.
d.
-
d.
n
.
g
ode e
oet met de massa worde
.
sketch voor het IoT-board
g
o
k
:
D
lpl
.
();
();
{
();
}
Vandaag in de adventskalende
•1x RGB-LED met voorweerstand
RGB-LED’
Een normale LED licht altijd slechts in een kleur op. De in de advents
kalender 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. De
kathode die met de massaleiding wordt verbonden, is slechts eenmaal
aanwezig. Daarom heeft een RGB-LED vier aansluitdraden
De aansluitdraden van de RGB-LED‘s hebben een verschillende lengte om
ze uniek kenbaar te maken. In tegenstelling tot normale LED‘s is de kathode
ier de langste draa
RGB-LED‘s werken zoals drie afzonderlijke LED‘s en hebben daarom ook
drie voorweerstanden van 220 Ohm (rood-rood-bruin) nodig. In de RGB
LED‘s in deze adventskalender zijn deze reeds ingebouw
Kleur van een RGB-LED via app wijzige
andaag programmeert u een app om een kleur van de RGB-LED te veran-
eren
Onderdelen: 1 x insteekprintplaat, 1 x RGB-LED met voorweerstand,
1xdraadbru
. dag
Aansluitpins van een RGB-LE
Ook de RGB-LED heeft reeds de voorweerstanden geïntegreerd. Het tweede been (kort been) is de
kath
n m
n verbonden
Schake
an voor een RGB-LED met 3 voorweerstanden
De
Het programma voor vandaag draagt de naam Ta
irectory
if (Text.startsWith(“Rot”) || Text.startsWith(“ROT”) || Text.startsWith(“rot”)){
rood();
} else if (Text.startsWith(“Blauw”) || Text.startsWith(“BLAUW”) || Text.startsWith(“blauw”)){
blauw
} else if (Text.startsWith(“Groen”) || Text.startsWith(“GROEN”) || Text.startsWith(“groen”)){
groen
} else if (Text.startsWith(“Uit”) || Text.startsWith(“UIT”) || Text.startsWith(“uit”))
uit
ag09. De s
etch reageert op vier toetsen
09.in
en bevindt zich in het downloadarchief in de
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2315007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2313.08.2017 17:09:4113.08.2017 17:09:41
Page 24
Elke kleur heeft een eigen functie binnen de sketch. Daarna wordt de functie rood() voor
-
:
{
;
);
;
pp
-
face verzonde
ood wordt
d
e
i
erzonden.
ld.
gesteld
oid rood()
Serial.println(“Rot”)
analogWrite(redPin, HIGH
analogWrite(greenPin, LOW);
analogWrite(bluePin, LOW)
De a
De daarbij horende app bevindt zich in het bestand RGB.aia Importeer het bestand in AI2.
Afhankelijk van de ingedrukte knop wordt een overeenkomstige tekst via de Bluetooth
inter
onden, voor groen wordt groen\n
n: Voor r
roo
\n
erzonden, voor blauw wordt
erzonden, en voor het uitschakelen u
t\n v
auw\n v
r-
De LED‘s worden via vier knoppen geschake
De blokken in de AI2
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2415007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2413.08.2017 17:09:4213.08.2017 17:09:42
Page 25
10e da
g
r
p
.
)
-
-
g
.
aar
g
sketch
g
o
0
:
loo
{
();
}
{
{
;
}
}
}
);
{
n
luetooth Te
-
d.
.
5
Vandaag in de adventskalende
•1x kno
Toetsdruk weergeven
andaag reageert uw IoT-board op een mechanische druk op de
knop en geeft een melding aan de draadloze interface door
Digitale pins kunnen niet alleen gegevens uitgeven, bijvoor
eeld via LED‘s, maar ook voor gegevensinvoer worden
gebruikt. Voor de invoer gebruiken wij in het huidige project
een knop die rechtstreeks op de steekplatine wordt gestoken.
De knop heeft vier aansluitpins, waarbij telkens twee tegen
overliggende (grote afstand) met elkaar verbonden zijn. Zolan
e knop ingedrukt is, zijn alle vier de aansluitingen met elkaar
verbonden. In tegenstelling tot een schakelaar klikt een knop
niet in. De verbinding wordt bij het loslaten onmiddellijk opnieuw verbroken
s er met een digitale ingang een +5-V-signaal verbonden is, wordt deze als logischw
Bij een open knop heeft de ingang geen uniek gedefi nieerde toestand. Wanneer een programma deze
pin opvraagt, kan het tot toevallige resultaten komen. Om dat te voorkomen, sluit met ter vergelijkin
een zeer hoge weerstand tegen massa. Deze zogenaamde Pull down-weerstand trekt de status van de
ingangspin bij geopende knop opnieuw naar beneden tot 0 V. Aangezien de weerstand zeer hoog is,
estaat er ook geen kortsluitingsgevaar zolang de knop is ingedrukt. In de ingedrukte toestand zijn +5 V
en de massaleiding rechtstreeks via deze weerstand verbonden.
et IoT-board is zeer lang en daarom moet de toets dwars over het steekplatine worden gesto
en en deels moeten de draadbruggen onder de aangesloten USB-kabel worden geleg
geanalyseerd.
0. dag
De
Het programma voor vandaag draagt de naam Ta
irectory
int reading = digitalRead(buttonPin);
if (reading != lastButtonState)
lastDebounceTime = millis
if ((millis() – lastDebounceTime) > debounceDelay) {
if (reading != buttonState)
buttonState = reading;
if (buttonState == HIGH)
ledState = !ledState
digitalrite(LedPin, ledState
ag1
. Door het oproepen van
{
igitalRead wordt geanalyseerd of de knop ingedrukt werd
ls de knop werd ingedrukt, wordt een bericht via de draadloze interface verzonden:
if (reading != lastButtonState)
HC05.print(“Knop ingedrukt\n”);
10.in
en bevindt zich in het downloadarchief in de
Reactie van het IoT-board weergeve
oor de weergave van de druk op de knop op de smartphone, wordt de reeds gebruikte app
rial B
e knop de melding
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2515007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2513.08.2017 17:09:4213.08.2017 17:09:42
rminal gebruikt. Na de verbinding met het IoT-board wordt bij een druk op
weergegeven.
Ontvangen meldingen worden in het groen in het
terminalvenster geschreven
Page 26
11e da
g
d
-
g
h
i
b
h
l:
-
en
n
.
g.
g
11. da
Vandaag in de adventskalender
•1x schakeldraa
Door de geïntegreerde voorweerstanden is de schakeling zeer compact. LED’s van links naar
rechts: rood en groen.
ED-echo via app
Het huidige project is een LED-echo. Ze stellen een sequentie
ia twee knoppen in de app in en de LED‘s op het steekplatine
knipperen in deze sequentie.
nderdelen:
x steekplatine , 1xLED rood met voorweer
tand, 1xLED groen met voorweerstand, 1x draadbru
e sketc
Het programma voor vandaag is Tag11.
irectory
ag11. De ec
osequentie wordt door de app bepaald.
Daarbij komt de tekst in de volgende vorm: RNNGNN. R staat
oor rood en G voor groen, bv. R5G3 – hier zou de roe LED vijf-
maal knipperen en daarna de groene LED driemaa
if (Text.indexOf(“R”) != -1 && Text.indexOf(“G”) !=
1) {
zetKleur(Text);
else if (Text.startsWith(“Uit”) || Text.
tartsWith(“UIT”) || Text.startsWith(“uit”)){
uit();
no en
evindt zich in de
e app
De app heeft naast de reeds bekende Verbinding maken vier knoppen: Rood
en overdragen
Bij het aanraken van
aarden terugzette
ood of
roen wordt het overeenkomstige label met een verhoogd. Met
Waarden terugzettenzet u beide waarden terug op 0. Met Waarden overdragen bepaalt u
e waarden aan het IoT-board. De te bepalen waarde wordt daarbij in een globale variabele
tussenopgeslagen. De inhoud van de variabelen wordt bij het aanraken via Bluetooth naar
Waarden overdragen overgedragen
oor elke knop is er een aparte when.Click-vraa
roen
aar
De app gebruikt de reeds gekende app van dag 8.
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2615007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2613.08.2017 17:09:4313.08.2017 17:09:43
Page 27
12e da
g
r
d
n
uetooth.
-
g
h
2
500d4 dat elke
500 ms brandt e
et
:
{
;
);
;
p
-
.
.
-
luetooth Devices
.
Vandaag in de adventskalende
•1x LED oranje met voorweerstan
Looplichtsnelheid via app instelle
In het huidige project stuurt u de snelheid van een looplicht
via Bl
Onderdelen: 1x steekplatine, 1xLED rood met voorweer
stand, 1xLED oranje met voorweerstand, 1xLED groen met
voorweerstand, 1xdraadbru
De sketc
Het programma voor vandaag is Tag12.ino
de directory
ag1
. Voor de sturing van het looplicht zijn twee
parameters nodig: de wachttijd terwijl een andere LED oplicht
en het aantal doorlopen. Deze waarden worden door de app
in een string van de vorm wTTTdNN verzonden Bijvoorbeeld
kent w
LED
inschakelen van een andere LED wordt 500 ms gewacht. In totaal zou het looplicht viermaal lopen
if (Text.indexOf(“w”) != -1 && Text.indexOf(“d”) != -1)
String temp = Text.substring(Text.indexOf(“w”)+1,Text.indexOf(“d”));
int wachttijd = temp.toInt()
temp = Text.substring(Text.indexOf(“d”)+1
int doorlopen = temp.toInt();
looplicht(wachttijd, doorlopen)
n bevindt zich in
ooplicht met drie LED’s: rood, oranje en groen
n voor h
2. dag
e ap
Om de waarden te bepalen wordt de app
van de verbinding kunt u rechtstreeks het commando in het beschreven formaat naar het IoT
rd verzenden
erial Bluetooth Terminal gebruikt. Na het aanmaken
In de uitgave ziet men dat twee verbindingspogin
gen nodig zijn voor een succesvolle verbinding met
et IoT-board. Als de verbinding niet slaagt, contro-
eert u via het menupunt B
het juiste toestel hebt gekozen
of u
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2715007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2713.08.2017 17:09:4413.08.2017 17:09:44
Page 28
13e da
g
d
-
h
3
ode
leur
t
:
{
();
}
““;
e
geg
e
:
{
{
{
();
;
{
{
g
13. da
Vandaag in de adventskalender
•1x LED roze met voorweerstan
De roze LED wordt gebruikt om de opgebouwde verbinding te signaleren;
while(HC05.available() > 0){
Teken = HC05.read();
Text.concat(Teken);
if (Teken == ‚\n‘) {
if (Text.indexOf(“R”) != -1 && Text.indexOf(“G”) && Text.indexOf(“B”) )
zetKleur(Text);
} else if (Text.startsWith(“Uit”) || Text.startsWith(“UIT”) || Text.startsWith(“uit”))
GB 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: 1x steekplatine , 1xRGB-LED met voorweer
stand, 1xLED roze met voorweerstand, 1x draadbrug
e sketc
et programma voor vandaag is Tag13.ino
n de directory
ag1
. De sturing van de RGB-LED gebeurt via
een string in de vorm RNNNGNNNBNNN. Slechts wanneer
een string in deze vorm door het IoT-board wordt ontvangen,
wordt de kleur via de meth
te schakelen, moet de string
K
i
verzonden worden
n bevindt zich
gezet. Om de LED uit
uit
Text=
In de functi
opgedeeld en de waarden vervolgens via
void zetKleur(String text)
if (text.indexOf(“R”) != -1 && text.indexOf(“G”) && text.indexOf(“B”) )
String temp = text.substring(text.indexOf(“R”)+1,text.indexOf(“G”));
if (temp.indexOf(“.”) != -1)
temp = temp.substring(0, temp.indexOf(“.”));
}
int rot = temp.toInt
temp = text.substring(text.indexOf(“G”)+1,text.indexOf(“B”))
if (temp.indexOf(“.”) != -1)
temp = temp.substring(0, temp.indexOf(“.”));
}
int groen = temp.toInt();
even tekst met de methode substring in afzonderlijke delen
nalogWrit
geschreven
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2815007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2813.08.2017 17:09:4513.08.2017 17:09:45
Page 29
e ap
p
a
-
.
-
l
t
aadloze
face verzonden.
-
.
I2 dient als ontwikkelingsomgeving voor de huidige app. Importeer daarvoor het bestand
RGB_Slider.ai
Door het indrukken van
board verzonden
. Via drie slides wordt de waarde van het respectievelijke kleur ingesteld.
leur zetten wordt de waarde van de drie sliders naar het IoT
Bij het aanraken van Kleur zetten wordt de te bepalen tekst in de variabele
gezet. Via B
De samenstelling van de string gebeurt viajoin
uetooth.SendTex
wordt de tekst via de dr
dat men ook kan dozen kan.
inter
r samen
lke slider is samen met een label in een HorizontalArran
ement
Opdat de sliders allemaal onder elkaar zijn, werd
de breedte van de drie labels op 15% ingesteld
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2915007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 2913.08.2017 17:09:4513.08.2017 17:09:45
Page 30
14e da
g
d
m
leicontact
-
.
)
n
g
-
-
-
.
-
.
.
h
b
4
d
-
:
{
);
{
);
.
tacten aan het IoT-board
g
14. da
Vandaag in de adventskalender
•1x boetseerklei roo
•1x weerstand 20 MOh
Het uiteinde van beide uitstekende draadbruggen gaat telkens in een stuk boetseerklei.
U vormt het best telkens een kleine ronde bol. Het boetseerkleicontact aan A3 wordt als
ingang gebruikt
ma voor sensorcon
Ze laat zich in elke willekeurige vorm brengen en een boetseerkleicontact kan veel makkelijker worden
vastgenomen dan een eenvoudig stuk draad. Het oppervlak waarmee de hand het contact raakt, is dui
delijk groter. Zo komt het niet zo snel tot een “loszittend contact”. Snijd een lang stuk van ongeveer 10
cm van de schakeldraad af, verwijder aan beide uiteinden over ongeveer 1 cm lengte de isolatie en steek
het ene uiteinde in een stuk boetseerklei. Steek het andere uiteinde in het steekplatine, zoals op de
afbeelding
rk
Vandaag gebruikt u de inbegrepen boetseerklei als invoer en
wijzigt u bij het aanraken van de boetseerklei de achtergrond
kleur van een oppervlak in de app
De als ingang geschakelde pin is via een extreem hoog-ohmige
weerstand (20 MOhm) met +3,3V verbonden zodat een
wakke, maar duidelijk als High gedefi nieerd signaal aanwezi
is. Een mens die niet helemaal vrij in de lucht zweeft, is altijd
geaard en levert via de elektrisch geleidende huid een Low
niveau. Als deze mens nu een sensorcontact aanraakt, wordt
het zwakke High-Signal met het duidelijk sterkere Low-niveau
an de vingertop gemengd en trekt de pin naar Low-niveau.
Hoe hoog de weerstand tussen hand en massa werkelijk is, hangt
an veel dingen af, onder meer van schoenen en vloer. Blootsvoets
in het natte gras is de verbinding met de massa van de aarde het
best, maar ook op een stenen vloer werkt het meestal goed. Hou
en vloeren isoleren beter, kunststof vloerbekledingen zijn vaak
elfs positief geladen. Opdat de schakeling altijd werkt is, zoals bij
sensortoetsen aan liften en deuren bij elke schakeling een bijko
mend massacontact voorzien. Als men dit aanraakt en tegelijk de
eigenlijke sensor, is de massaverbinding in elk geval aangemaakt
Boetseerklei leidt de stroom ongeveer zo goed als menselijke huid.
Het IoT-board beschikt over analoge ingangen die zeer goed geschikt zijn voor sensorcontacten. Analoge
ingangen leveren waarden tussen 0 (low niveau) en 1023 (high niveau): waarden tussen 100 en 200 zijn
goede grenswaarden om een onderscheid te maken tussen aangeraakt en niet-aangeraakt sensorcontact
De sketc
Het programma voor vandaag is
eze sketch kan heel snel worden geprogrammeerd. Met
neer deze onder de drempelwaarde ligt, dan wordt via de draadloze interface een tekst met
verzonden
void loop()
sensorValue = analogRead(sensorPin
if (sensorValue < 256)
HC05.print(“LOW\n”
delay(1000);
}
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3015007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3013.08.2017 17:09:4613.08.2017 17:09:46
ag14.ino en
evindt zich in de directory
nalogRea
wordt de waarde ingelezen en wan
ag1
De eigenlijke functie in
C05.print
Page 31
e ap
p
a
.
.
.
steunt ook else en else-if
.
.
a
eceiveText
ld.
ette
ecteren.
De huidige app
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 confi gureren
De elementen in het bereik Blocks in de blokeditor kunnen deels geconfi gureerd worden.
De confi guratie gebeurt via het blauwe tandwiel aan het onderdeel
oetseerklei_schakelaar.ai
bevat een label dat bij het begin oranje als
1
De if-blok onder
.
Klik dan op het element dat u wilt gebruiken en het onderdeel verandert al
Totnogtoe werd de timer alleen gebruikt om de status van de draadloze verbinding weer te geven
i
h.R
wordt de
tekst via de draadloze interface gelezen.
Opdat het gekleurde label goed zichtbaar is, werden
reedte en hoogte op 30 pixels ingeste
De te z
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3115007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3113.08.2017 17:09:4613.08.2017 17:09:46
n kleur kunt u via een keuzeveld sel
Page 32
15e da
g
m
h
i
b
y
l
d
-
d
.
{
);
);
{
}
{
}
{
);
}
pp
uetoot
-
boetsee
tact leidt tot
l.
g
5. da
Vandaag in de adventskalender
•1x weerstand 20 MOh
Het uiteinde van drie uitstekende draadbruggen gaat telkens opnieuw in een stuk boetseerklei.
Omwille van de twee boetseerkleicontacten hebt u ook twee weerstanden met een hoge Ohm-
waarde nodig.
erschillende boetseerkleicontacten
Nu gebruikt u twee boetseerkleicontacten en toont u in een
app, welke contacten werden ingedrukt.
if (sensorValue1 < 256)
HC05.print(“Contact 1\n”);
if (sensorValue2 < 256)
HC05.print(“Contact 2\n”);
if (sensorValue1 < 256 || sensorValue2 < 256)
delay(1000
no en
evindt zich in de
ingelezen. Voor elk boet
C05.print wor
t
Het aanraken van een
e geprogrammeerde uitvoer in de termina
rkleicon
e a
oor de weergave van de teksten wordt de app
erbinding met het IoT-board en de teksten moeten verschijnen van zodra u een boetseerkleicon
aanraakt.
rial Bl
h Terminal gebruikt. Maak eerst
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3215007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3213.08.2017 17:09:4713.08.2017 17:09:47
Page 33
16e da
g
r
d
n
d
h
aadloze
face:
;
.
{
;
O
f
igi
e
.
);
);
}
);
;
pp
pp
a
luetooth.SendText
.
g.
t
Vandaag in de adventskalende
•1x knipper-LED rood met voorweerstan
Knipper-LED via app sture
ia een knop schakelt u de knipper-LED in en via een andere
knop opnieuw uit.
Onderdelen: •1x steekplatine, 1 x knipper-LED rood met
voorweerstan
De sketc
Het programma voor vandaag is Tag16.ino en bevindt zich in
de directory
r
if (Text.startsWith(“Aan”) || Text.startsWith(“AAN”)
|| Text.startsWith(“aan”)){
aan()
else if (Text.startsWith(“Uit”) || Text
startsWith(“UIT”) || Text.startsWith(“uit”))
uit()
Het schakelen van de knipper-LED gebeurt in twee afzonderlijke functies. Daarbij wordt dan
alleen de waarde L
ag16. De sketch reageert op
inter
W o
HIGH via d
an nit
talWrit
n de
Ook de knipper-LED heeft een voorweerstand en daarom heeft deze geen bijkomende elemen-
en voor de schakeling nodi
geschreven
6. dag
void aan() {
Serial.println(“Aan”
digitalWrite(blinkPin, HIGH
heeft twee knoppen om de knipper-LED in en uit te schakelen.
oor het verzenden wordt de reeds gekende methode
B
gebruikt.
Boven beide knoppen (Aan en Uit) bevindt zich als positio-
neringselement een
erticalArrangemen
Denk eraan dat u bij het verzenden ook het eindcriterium aan de string hangt
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3315007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3313.08.2017 17:09:4813.08.2017 17:09:48
Page 34
17e da
g
e
.
h
7
abele
e
p
:
;
dt d
d
{
);
);
);
uetoot
-
g
.
17. da
Vandaag in de adventskalender
•1x potentiometer
Een potentiometer is van uit programmeerzicht niets anders dan een analoge sensor
nt sensorPin = A5
nt sensorValue = 0;
In de methode
oop wor
e waarde via
ven. Daarna wordt 2000 ms gewacht en de waarde wordt opnieuw gelezen:
eergave van de weerstandswaard
Vandaag meet u de waarde van een potentiometer via een
analoge ingang en voert u de waarde in een app uit
Onderdelen: 1x steekplatine, 1xpotentiometer van
15kOhm, 4xdraadbruggen (verschillende lengtes)
e sketc
et programma voor vandaag is Tag17.ino en bevindt zich in
ing met het IoT-board en u ziet de waarden van de potentiometer.
rial Bl
h Terminal gebruikt. Maak eerst verbin
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3415007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3413.08.2017 17:09:4913.08.2017 17:09:49
Page 35
18e da
g
r
t
j
.
-
h
8
top
top
tschakele
.
{
{
();
;
} el
{
}
pp
ia
luetooth.SendText
p
aadloze
face verzonden.
.
g
5
Vandaag in de adventskalende
•1x jumperkabel
RGB-looplich
ia een app stuurt u de knipperduur van een RGB-LED. Daarbi
knippert de LED in afwisselende kleuren. Het knipperen kunt u
daarbij ook opnieuw uitschakelen
Onderdelen: 1 x steekplatine, 1 x RGB-LED met voorweer
stand, 1 x jumperkabel
De sketc
Het programma voor vandaag is Tag18.ino en bevindt zich
in de directory
op een verzonden cijfer. In geval van s
uitgeschakeld. Als een cijfer aankomt, wordt het als wachttijd
n het in- en ui
de RGB-LED gebruikt
if (Teken == ‚\n‘)
Serial.println(Text);
if (Text.startsWith(“stop”))
uit
knipperDuur = 0
se
knipperDuur = leesKnipperduur(Text);
ag1
. De sketch reageert op de tekst s
wordt de RGB-LED
n van een van de drie LED‘s van
en
8. da
oor de geïntegreerde voorweerstanden is de schakeling zeer compact.
De a
e app
GB_Looplicht.a
van het knipperen.
ia het reeds gekende commando B
o
via de dr
De wachttijd wordt niet extra gecodeerd, maar alleen de waarde van de slider, gevolgd door een afsluitende \n
verzonden.
heeft een slider en twee knoppen voor het in- en uitschakelen
worden de wachttijd en de tekst
inter
De minimale waarde van de slider is 0 en de maximale
waarde is 2000. De waarden staan voor de wachttijd in mil-
liseconden
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3515007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3513.08.2017 17:09:4913.08.2017 17:09:49
Page 36
19e da
g
l
-
.
-
h
:
D
;
;
;
gb
-
{
;
a
.
.
t
.
-
.
g
19. da
Vandaag in de adventskalender
•1x jumperkabe
De RGB-LED heeft weer geen voorweerstanden nodig. De jumperkabel gebruikt u om de mas
saverbinding te maken;
app voor selectie van hardware-apps
Vandaag worden twee functies in een schakeling gecombi
neerd: 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 voorweer
stand, 1 x piezo, 1 x jumperkabel
e sketc
et programma voor vandaag is Tag19.ino en bevindt zich in
de directory
worden gedefi nieerd
//---- pins van RGB-LE
nt redPin = 9;
nt greenPin = 7
nt bluePin = 8
---- Pin Piezo
nt piezo = 3
ag19. Eerst moeten de juiste pins als variabele
De sketch reageert op de commando’s
iezo en r
De methodes werden uit de voor
gaande sketches overgenomen:
if (Text.startsWith(“piezo”)){
uit();
playMelody();
} else if (Text.startsWith(“rgb”))
knipperen(500);
}
e app
e app
pp_Wisselaar.ai
De functie is in twee when.Click-blokken afgebeeld. Alleen de te verzenden tekst wordt
aangepast
heeft twee knoppen om tussen piezo en RGB te wisselen
Deze app gebruikt de reeds gekende elementen uit de
ndere apps om de verbinding te maken. Via Verbinding
aken maakt u een verbinding
De blokken zijn zeer gelijkaardig. Pas in zulke gevallen op da
u de juiste knop in het when.Click-blok kiest
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3615007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3613.08.2017 17:09:5013.08.2017 17:09:50
Page 37
20e da
g
r
C
-
)
h
0
l
d
uetoot
:
;
p
uetoot
.
.
Vandaag in de adventskalende
•1x NT
Warmtesensor in de app
In het huidige project wordt een NTC voor de temperatuurme
ting gebruikt. U kunt het project bv. goed testen door met de
NTC dichter bij een kaars op de adventskrans te komen.
Het programma voor vandaag is Tag20.ino en bevindt zich in
de directory
oproep van ana
app verzonden, vervolgens wordt 2 seconden gewacht en dan
opnieuw de waarde ingelezen en verzonden
oid loop() {
sensorValue = analogRead(sensorPin);
HC05.print(“Waarde van de NTC = “)
HC05.println(sensorValue);
delay(2000);
ag2
. De sketch is zeer eenvoudig opgebouwd. Na
ogRea
wordt de waarde via Bl
h naar de
20. dag
Vergeet niet de weerstand van 10 kOhm te gebruiken anders zult u niet tevreden zijn met de
meetresultaten
De ap
oor de weergave van de teksten wordt de app
verbinding met het IoT-board en u ziet de waarden van de NTC. Wanneer de waarden kleiner
worden is dit een teken voor stijgende temperatuur
rial Bl
h Terminal
ebruikt. Maak eerst
Zoals reeds in de andere projecten worden ontvan-
en gegevens in groene tekst weergegeven. Vergeet
in de sketch niet om
krijgt u teveel waarden.
elay op te roepen anders
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3715007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3713.08.2017 17:09:5113.08.2017 17:09:51
Page 38
21e da
g
n
.
h
1
g
y
{
);
);
uetoot
-
-
;
g
21. da
Vandaag in de adventskalender
•1x fototransistor
•1x weerstand 1 kOhm
De opbouw is gelijkaardig aan dag 20. Voorzichtig: Er wordt een andere weerstand gebruikt en
de verbinding met VCC (+5 V-) is belangrijk.
void loop()
sensorValue = analogRead(sensorPin
HC05.print(„Waarde van de fototransistor = „);
HC05.println(sensorValue);
delay(2000
elderheid en duisternis in de app mete
Nu hebt u een bijkomende sensor voor uw projecten. Met de
ototransistor 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
Het programma voor vandaag is Tag21.ino en bevindt zich in
e directory
oordien. Als u meer waarden op uw smartphone wilt zien,
moet u de wachtduur bij het oproepen van
ag2
. De sketch gelijkt op de sketch van de da
ela
verminderen.
De app
Voor de weergave van de teksten wordt de app
ding met het IoT-board en u ziet de waarden van de fototransistor. Kijk hoe de waarden bij licht en duis
ternis veranderen
rial Bl
h Terminal gebruikt. Maak eerst verbin
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3815007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3813.08.2017 17:09:5213.08.2017 17:09:52
Page 39
22e da
g
r
m
.
)
h
2
l
d
p
uetoot
.
.
Vandaag in de adventskalende
•1x vochtigheidssensor
•1x weerstand 1 kOh
Vochtigheidsmeter
andaag krijgt u nogmaals een sensor, een vochtigheidssensor.
Het programma voor vandaag is Tag22.ino en bevindt zich in
de directory
was, wordt de sensor via ana
aan de draadloze interface doorgegeven:
oid loop() {
sensorValue = analogRead(sensorPin);
HC05.print(„Waarde van de vochtigheidssensor = „);
HC05.println(sensorValue);
delay(2000);
ag2
. Zoals reeds de voorbije dagen het geval
ogRea
uitgelezen en de waarde
22. dag
fritzing
e schakeling gelijkt op de schakeling van dag 21. De sensor moet slechts
worden vervangen
De ap
oor de weergave van de teksten wordt de app
ding met het IoT-board en u ziet de waarden van de vochtigheidssensor. Neem de vochtigheidssensor
tussen twee vingers en kijk naar de ontwikkeling van de waarden
rial Bl
h Terminal gebruikt. Maak eerst verbin-
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3915007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 3913.08.2017 17:09:5213.08.2017 17:09:52
Page 40
23e da
g
l
-
.
)
h
o
code wordt
:
)){
.
;
;
;
;
}
ode
n
.
);
;
{
;
}
pp
code.aia
-
dkl
d.
l
t
.
g
23. da
Vandaag in de adventskalender
•1x jumperkabe
Opdat de knop ook goed werkt, wordt een spanningsdeler via de potentiometer opgebouwd. In
plaats van de draadbruggen kunt u ook de jumperkabels gebruiken
Codebreker
et 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 weer
egeven dat de code correct werd ingegeven. Anders brandt
de rode LED niet en in de app wordt weergegeven dat de code
erkeerd werd ingegeven
nderdelen:
x steekplatine, 1x knop, 1 x LED rood met
oorweerstand, 1xpotentiometer van 15 kOhm, 5xdraad-
ruggen (verschillende lengtes
e sketc
et programma voor vandaag is
n de directory
ag23
De
epaald
if (Text.startsWith(“C”
aantalKnoppen= Text.substring(Text
indexOf(“C”)+1).toInt()
ag23.in
en bevindt zich
in de vorm van CNNN
Via een gekleurd label wordt weergegeven of de code via
de hardwareknop al of niet correct werd ingevoerd.
n totaal heeft de speler vijf seconden tijd om de code in te voeren.
voerde code weergegeven en met het tweede label wordt de speelstatus weergegeven. Als
e code correct via de hardwareknop werd ingevoerd, wordt de achtergron
abel voor de speelstatus op groen gezet, anders op roo
e code wordt in een globale variabele tussenopgeslagen en dan met B
epaald.
r
heeft drie knoppen en twee labels. Met het ene label wordt de inge
eur van het
uetooth.SendTex
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4015007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4013.08.2017 17:09:5213.08.2017 17:09:52
Page 41
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 4115007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4113.08.2017 17:09:5313.08.2017 17:09:53
Page 42
24e da
g
h
4
e
s
:
)){
;
);
);
ijd
();
;
{
);
}
;
;
);
}
pp
pp
a
.
.
g
24. da
Vandaag in de adventskalender
•1x knop
De huidige schakeling gelijkt op de schakeling van de dag voordien. De rode LED werd slechts
oor een groene LED vervangen
eactiespel
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
rukken; De duur wordt in de app weergegeven.
Onderdelen: 1x steekplatine, 1x knop, 1 x LED groen met
voorweerstand, 1xpotentiometer van 15 kOhm, 5xdraad-
bruggen (verschillende lengtes)
e sketc
et programma voor vandaag is Tag24.ino en bevindt zich in
de directory
gemeten tot op de knop wordt gedrukt
van de knop wordt de tekst via de draadloze interface verzonden. De inkomende tekst van
et IoT-board wordt in het label boven de knop weergegeven.
heeft een knop met het opschrift Spel starten. Bij het indrukken
Boven de knop
wanneer een tekst van het IoT-board aankomt, wordt de
tekst in het label gezet
15007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4215007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4213.08.2017 17:09:5413.08.2017 17:09:54
pel starten ligt een label zonder tekst. Pas
Page 43
4
3
k
T
.
.
!
Om het spel te starten wordt bij een klik op de knop
geanalyseerd en de tekst
TAR
via de draadloze interface bepaald
el starten het blok when startButton.clic
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 4315007-3 Conrad Adventskalender Internet of Things 2017_nl.indd 4313.08.2017 17:09:5413.08.2017 17:09:54
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.