Conrad 4019631150073 Operation Manual [de]

Page 1
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1 19.07.2017 14:14:4619.07.2017 14:14:46
Page 2
3
Q
3
3
.
3
.
.
.
0
g
0
0
r
......................................................................
2
2
2
2
2
......................................................................
3
.
g
f
......................................................................
.
.
.
eute
tskalender
etc
das Io
d
h
k
....................................................................
eute
der
.
lle Versuche im Überblick
eute
der
7
7
7
7
n
...................................................................
k
.
e
.....................................................................
ge d
k
App
.....................................................................
t
k
....................................................................
.
k
eute
der
.
.
Sketch
App
.
p
...................................................................
0
eute
der
0recher
0
p
0
2
k
p
Internet of Things Adventskalender 2017 ..............
uellcodes und zusätzliche Informationen . . . . . . . . . . . . . . . . . . . . . . .
Hintergrundwissen zu den Bauteilen . . . . . . . . . . . . . . . . . . . . . . . . . . .
LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Widerstände und ihre Farbcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. Tag .......................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IoT-Board konfi gurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schritt 1: Installation des Treibers für das IoT-Board . . . . . . . . . . . . . . . .
Schritt 2: Installation der Arduino IDE . . . . . . . . . . . . . . . . . . . . . . . . . .
Update der Firmware auf dem IoT-Board . . . . . . . . . . . . . . . . . . . . . . .
IoT-Board testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
On-Board-LED zum Blinken bringen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Tag ......................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analoge Werte messen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
So funktioniert das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Tag ......................................................................0
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Blinklicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Das Pro
ramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
So funktioniert das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
. Tag .......................................................................11
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Wechselblinke
Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
So funktioniert das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Ampel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Snap! installieren und IoT-Board vorbereiten . . . . . . . . . . . . . . . . . . . . 1
Programm in Snap! umsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
6. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verbindung mit dem IoT-Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
App zur Steuerun
as Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
installieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Tag .......................................................................15
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Steuerbares Laufl icht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
as Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
So
unktioniert das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Töne über App ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entwicklungsumgebung für die Apps . . . . . . . . . . . . . . . . . . . . . . . . . .
e erste App mit AI2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ezo mit App steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionsweise der App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
pp testen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9. Tag ......................................................................
H
im Adven
RGB-LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Farbe einer RGB-LED per App ändern . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sk
Die App. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
h für
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
T-Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10. Tag .....................................................................25
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Tasten
ruck anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sketc Rea
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
tion des IoT-Boards anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11. Tag
H
im Adventskalen
LED-Echo per App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12. Tag ....................................................................
H
im Adventskalen
Laufl ichtgeschwindigkeit per App einstellen . . . . . . . . . . . . . . . . . . . . . 2
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Die App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
13. Tag .................................................................... 28
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
RGB über Slider in App anpasse
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
e App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
14. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Knete
ontakt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
So funktionieren Sensorkontakte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15. Tag.....................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Unterscheidbare Knetekontakt
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16. Tag ....................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Blink-LED per App steuern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Anzei Der S
es Widerstandswertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
etch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
e
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3
RGB-Laufl ich Der S
e App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
etch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19. Tag
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
App zur Auswahl von Hardware-Apps . . . . . . . . . . . . . . . . . . . . . . . . .
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5
e App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20. Tag ....................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wärmesensor in der App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Der S
etch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
e App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21. Tag ....................................................................
H
im Adventskalen
Helligkeit und Dunkelheit in der App messen . . . . . . . . . . . . . . . . . . .
Der
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
e
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22. Tag ....................................................................
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Feuchtemesser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die Ap
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
23. Tag
H
im Adventskalen
5
Der Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5
Die Ap
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
24. Tag ................................................................... 4
Heute im Adventskalender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Reaktionsspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Der S
6
etch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
Die Ap
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7
30
1
2
3
4 4 4 4
5 5
7
7 7 7 7
9
4
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2 19.07.2017 14:15:0219.07.2017 14:15:02
Page 3
Internet of Things Adventskalender 201
7
!
n
)
-
dafür auf die Seite
5007-3
t
esen Sie bitte auch die Date
.
d
-
-
.
h
.
n
auteilen.
g
d
d
.
d
Wenn es nach Cisco geht, dann werden im Jahr 2020 mehr als 50 Milliarden vernetzte Geräte im Einsatz sein, Intel ist noch optimistischer und proklamiert 200 Milliarden Geräte Jedes dieser Geräte – auch
Ding“ genannt – besitzt eine eindeutige Adresse und kommuniziert über das Internet oder auch über
ine andere Schnittstelle, wie z.B. Bluetooth, mit der Außenwelt: Von der Kaffeemaschine bis zum Kühl­schrank, vom Auto bis zum Zug, von der Produktionsmaschine bis zum Armband, alles ist programmier­bar und kann mit anderen Dingen kommunizieren. Dieses Thema ist mehr als ein Hype, es wird Stand der Technik, und deswegen sollten wir uns alle damit beschäftigen. Nutzen Sie doch die Adventszeit und steigen Sie ein ins Internet der Dinge, auch Internet of Things (IoT) genannt. In 24 Experimenten werden Sie sich dem Thema nähern und programmieren Ihr eigenes Ding. Viel Spaß dabei
uellcodes und zusätzliche Informatione
Sie werden in den nächsten 24 Tagen viele neue Informationen zum Thema IoT (Internet of Things bekommen und spannende Projekte umsetzen. Damit Sie die teils recht großen Programme nicht abtip pen müssen, stehen Ihnen die kompletten Quellcodes und ggf. weitere Informationen zum Download
reit. Gehen Sie
nden Sie ein Archiv zum Download. Im Archiv befi ndet sich für jeden Tag ein eigenes Verzeichnis. Für
illierte Informationen l
Die Programme ab Tag 8 sind teilweise sehr groß, deswegen werden die Programme auch nicht komplett
gedruckt. Es werden nur die Bestandteile des Projekts im Handbuch beschrieben, die Sie zwingen zum Verständnis und zur Umsetzung benötigen. Bei Projekten, die mit einer eigens erstellten Smart phone-App gesteuert werden, steht jeweils der komplette Download zur Verfügung. Wollen Sie Änderun
en am Programm vornehmen, dann sehen Sie sich immer zuerst das fertige Programm an, erstellen Sie
sich eine Kopie davon und ändern Sie dann die Kopie. Sollte etwas schiefgehen, so fi nden Sie auf
www.buch.cd die Ausgangsdateien
ttp://www.buch.cd und geben Sie den Code 1
i
im Archiv
ein. Dor
ttp://
Aktualisierungen im Downloadbereic
Der Adventskalender wurde weit vor der Adventszeit erstellt und beruht auf den Programmversionen zum damaligen Zeitpunkt. Sollten bis zum Advent größere Änderungen auftreten, so fi nden Sie im Downloadbereich eine Aktualisierung der betroffenen Projekte
Hintergrundwissen zu den Bauteile
In jedem Fach ist ein Bauteil enthalten. An dieser Stelle erfahren Sie wichtigste Informationen zu den B
LEDs (Leuchtdioden) leuchten, wenn Strom in Durchfl ussrichtung hindurchfl ießt. LEDs werden in Schaltungen mit einem pfeilförmigen Dreieckssymbol dargestellt, das die Flussrichtung vom Pluspol zum Minuspol oder zur Masseleitung angibt. Eine LED lässt in der Durchfl ussrichtung nahezu beliebi viel Strom durch, sie hat nur einen sehr geringen Widerstand. Um den Durchfl ussstrom zu begrenzen und damit ein Durchbrennen der LED zu verhindern, muss üblicherweise zwischen dem verwendeten
nschlusspin und der Anode der LED oder zwischen Kathode und Masse-Pin ein 220-Ohm-Vorwiderstan
ingebaut werden. Dieser Vorwiderstand schützt auch den Ausgang des enthaltenen IoT-Boards vor zu
ohen Stromstärken. Die LEDs im Adventskalender haben den Vorwiderstand bereits eingebaut un
önnen daher direkt an die Pins des IoT-Boards angeschlossen werden
Schaltplan einer LED mit Vorwiderstan
Quelle: https://www.fool.com/investing/general/2016/01/18/internet-of-things-in-2016-6-stats-everyone-should.aspx
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3 19.07.2017 14:15:0219.07.2017 14:15:02
Page 4
ED in welcher Richtung anschließen?
.
iderstände und ihre Farbcodes
stände fü
det
aße
-
.
b-
-
ständen.
g
.
g
)
g
lber10
0%
1
%
1
0
%
00
%
0lb10
000
n10
000
%
000.000
%
t
000.000
ß10
000.000.000
ie beiden Anschlussdrähte einer LED sind unterschiedlich lang. Der längere ist der Pluspol, die
Anode, der kürzere die Kathode. Einfach zu merken: Das Pluszeichen hat einen Strich mehr als das
inuszeichen und macht damit den Draht etwas länger. Außerdem sind die meisten LEDs auf der inusseite abgefl acht, wie ein Minuszeichen. Leicht zu merken: Kathode = kurz = Kante
W
Widerstände werden zur Strombegrenzung an empfi ndlichen elektronischen Bauteilen sowie als Vorwi-
Farbe
i
Gold 10 Schwarz Braun Rot 2 Orange 3310
Blau
Violet
Grau
Wei
iderstandswert in Ohm
. Rin
(Zehner)
. Ring
Einer)
spielt in der Digitalelektronik kaum eine Rolle. Die Tabelle zeigt die Bedeutung der farbigen Ringe auf Wider
. Ring
Multiplikator
= 0,01±1
= 0, 10 = 10 = 1 10 = 1
= 1.00
4
= 10.
= 100. 10 = 1. 10
= 10.000.000 ±0,1%
10 = 100.
= 1.
. Rin
Toleranz)
±5
±1 ±2
±0,5 ±0,25
±0,05%
r
r LEDs verwen
. Die M
inheit für
iderstände ist Ohm. 1.000 Ohm entsprechen einem
iloohm, abgekürzt kOhm. 1.000 kOhm entsprechen
einem Megaohm, abgekürzt MOhm. Oft wird für die
inheit Ohm das Omega-Zeichen Ω verwendet.
ie farbigen Ringe auf den Widerständen geben den
iderstandswert an. Diese sind deutlich leichter zu erkennen als winzig kleine Zahlen, die man nur noch auf ganz alten Widerständen fi ndet, und mit etwas
bung können Sie die Werte auch aus den Farb
odes schnell „übersetzen“
ie meisten Widerstände haben vier solcher Far
inge. Die ersten beiden Farbringe stehen für die
iffern, der dritte bezeichnet einen Multiplikator und
er vierte die Toleranz. Dieser Toleranzring ist meis
ens gold- oder silberfarben – Farben, die auf den
ersten beiden Ringen nicht vorkommen. Dadurch ist
ie Leserichtung eindeutig. Der Toleranzwert selbst
In welcher Richtung ein Widerstand eingebaut wird, ist egal. Bei LEDs dagegen spielt die Einbaurichtun eine wichtige Rolle
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 415007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4 19.07.2017 14:15:0219.07.2017 14:15:02
Page 5
1. Ta
g
d
.
ese
ocontrolle
über die serielle Sc
ttstelle
n
.
oft an einer blaue
E
itt
nstallation des
eibers für das Io
d
-
-
:
.
d
h
ate
E
-
.
stall
sta
itt
nstallation de
duino
E
.
ausschalten
usschalte
auchen einfac
das US
abe
ode
u
.
Heute im Adventskalender
•1x IoT Bluething Boar
Heute lernen Sie das Board kennen, mit dem Sie die Projekte in den nächsten 24 Tagen umsetzen. Als Vorbereitung für die nächsten Tage werden Sie den Treiber für die USB-Verbindung installieren, die Arduino IDE installieren, und zum Abschluss erstellen Sie ein erstes Programm für das Board
Chipsatz auf dem IoT-Board
Das IoT-Board kommt mit zwei Chipsätzen. Für die Ausführung der Programme ist ein ATmega328P
f dem Board. Di Der HC-05 ist für die Funkverbindung (Bluetooth) verantwortlich. Das Modul unterstützt Bluetooth V2.0+EDR. Für die App-Kommunikation ist ein Smartphone mit Android erforderlich.
r Mikr
r kommuniziert
hni
mit einem HC-05.
IoT-Board konfi guriere
Um das IoT-Board in Betrieb zu nehmen, benötigen Sie einen PC mit Linux, MacOSX oder Windows und ein Micro-USB-Kabel. Dieses Anschlusskabel dient der Stromversorgung und der Verbindung des IoT-Boards mit dem PC, um dieses zu programmieren. Sie brauchen nicht extra ein solches Kabel zu kaufen, denn vermutlich besitzen Sie schon eines – fast alle modernen Smartphones verwenden diesen Steckertyp
Richtigen USB-Port am PC auswählen
Schließen Sie das Kabel nach Möglichkeit an einem USB-2.0-Anschluss Ihres PCs an. Bei USB-3.0-An­schlüssen kann es eventuell zu Verbindungsproblemen kommen. Einen USB-3.0-Anschluss erkennen
ie
n Buchse.
. Tag
Bevor Sie das Board mit dem PC verbinden, sind folgende Schritte notwendig:
•Schritt 1: Installation des Treibers für das IoT-Board
•Schritt 2: Installation der Arduino ID
r
1: I
Der auf dem IoT-Board befi ndliche USB-Port ist mit einem CH340G-Chipsatz ver bunden. Um diesen Chipsatz für die USB-Verbindung zu nutzen, müssen Sie den passenden Treiber für Ihr Betriebssystem installieren. Führen Sie hierfür nachfol
ende vier Schritte aus
1 Laden Sie sich die Beispielprogramme und den Gerätetreiber bei
uch.c
Anweisungen auf dem Bildschirm. 2 Entpacken Sie das ZIP-Archiv in einen beliebigen Ordner unterhalb Ihres Benutzerordners. 3 Schließen Sie das IoT-Board über das USB-Kabel an und starten Sie dann die Treiberinstallation mit
tensteuerung bestätigen 4 Klicken Sie im Installationsdialog auf In
Treiber in
r
Das IoT-Board ist kompatibel zum Arduino Nano und kann mit der Arduino IDE In der Arduino IDE schreiben Sie die Programme in der Programmiersprache C und übertragen sie dann direkt auf das IoT-Board. Nach der Übertragung läuft das Programm ohne Verbindung zum PC, deswegen können Sie danach auch diese Verbindung trennen
erunter. Geben Sie dort den Code 15007-3 ein und folgen Sie den
r D
i
H341SER.EX
lliert wurde.
2: I
Tr
. Zur Installation müssen Sie eventuell eine Anfrage der Windows-Benutzerkon
r Ar
ID
T-Boar
ttp://www
Installation des Gerätetreibers
und warten Sie, bis eine Bestätigung erscheint, dass der
programmiert werden.
IoT-Board
Das IoT-Board hat keinen A trennen, und das IoT-Board schaltet sich ab. Beim nächsten Einschalten startet automatisch das zuletzt gespeicherte Programm. Das Gleiche passiert, wenn man den Reset-Taster drückt
Im weiteren Verlauf als IoT-Board bezeichnet. Für die Projekte wurde die Arduino IDE in der Version 1.8.2 eingesetzt. Sollte bis zum Erscheinen des Adventskalenders eine neuere
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 515007-3 Conrad Adventskalender Internet of Things 2017_02.indd 5 19.07.2017 14:15:0319.07.2017 14:15:03
r. Sie br
Version erhältlich sein, so können Sie diese einsetzen. Sollten die Änderungen markant sein, so werden Sie im Downloadbereich einen entsprechenden Hinweis fi nden.
h nur
B-K
l vom PC
r Netzteil z
Page 6
Laden Sie sich den Windows Installer für die aktuelle Version der Arduino IDE bei
ate
s.exe
aus de
oads zu
-
.
-
.
d
stallierte
ähle
das Häkchen.
automatisch erkannt wurde
esso
uss
n
ate
ese be
det sic
oadarc
steht
aden Sie übe
etc
aden
das Board
auch die Icons
Über de
aden Sie die
auf
d.
.
stallation de
E
www.arduino.cc/en/Main/Softwareherunter oder verwenden Sie einfach die
D
i
rduino-window
n Downl
m Adventskalender. Unter Win dows10 können Sie die Arduino IDE auch aus dem Windows Store herunterladen und installieren
Achten Sie dabei darauf, dass im Dialogfeld Installation Options alle Häkchen
esetzt sind. Je nach Windows-Konfi guration ist eine Bestätigung der Benutzer
kontensteuerung erforderlich
Update der Firmware auf dem IoT-Boar
Damit Sie auch alle Beispiele mit Ihrem IoT-Board nachvollziehen können, up daten Sie zunächst die Firmware des Boards. Hierfür öffnen Sie zuerst die zuvor
In
r Arduino ID
in
rt Hier wird in den meisten Fällen nur ein einziger serieller Port angezeigt.
Arduino IDE und w
zen Sie hier
n im Menü der Arduino IDE Werkzeuge /
Wählen Sie anschließend über den Menüpunkt nicht bereits
. Als Proz
erkzeuge / Board den Arduino Nano, wenn dieser
r m
mega328 gewählt werden.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 615007-3 Conrad Adventskalender Internet of Things 2017_02.indd 6 19.07.2017 14:15:0319.07.2017 14:15:03
Schneller Start des Downloads der Firmware auf das Board
In der Arduino IDE das passende Board wähle
Nach dem Start der Arduino IDE und der Auswahl des Boards öffnen Sie über den Menüpunkt D
ffnen... nun die Firmware Firmware_V1.2b.ino. Di
fi n
h im Downl
hiv im Verzeichnis
Firmware_V1.2b. Bevor Sie die Firmware aufspielen, stellen Sie sicher, dass der Jumper auf dem IoT-
Board auf AT
ie
. L
r
k
h / Hochl
im Editor dafür verwenden:
die Firmware auf
n Pfeil nach rechts l
. Alternativ können
Firmware
Boar
Die Firmware ist ein normales Arduino-Programm. Solch ein Arduino-Programm wird als Sketch bezeichnet
i /
Page 7
Nach kurzer Zeit sollte in der Statuszeile des Editors die MeldungHochladen abgeschlossen stehen. Nun
n
.
b
das Fu
auch sehe
das Funk-
.
n
.
.
.
.
-
.
ist das IoT-Board aktualisiert.
IoT-Board teste
Nach dem durchgeführten Update der Firmware können Sie das Board nun testen. Öffnen Sie dafür den seriellen Monitor der Arduino IDE über Werkzeuge / Serieller Moni-
or. Stellen Sie die Datenübertragung auf 57600 Baud ein.
Nun sollte lesbarer Text im Ausgabefenster erscheinen. Den
bschluss bildet die Ausgabe Konfi guration erfolgreich!
gefolgt von Informationen zum Funknetzwerk
Nun können Sie mit Ihrem Android-Smartphone testen, o
ie
dem Smartphone Bluetooth ein, und nach kurzer Zeit sollte
netzwerk aus (im nachfolgenden Screenshot Bluething103 und bestätigen Sie die Auswahl mit
Für den Aufbau der Verbindung müssen Sie ein Passwort eingeben, in diesem Fall
nknetzwerk
n. Schalten Sie hierfür auf
Funknetzwerk erscheinen. Wählen Sie nun
K.
234
Der Name des Netzwerks lautet in diesem Beispiel Bluething103 und das Passwort 1234.
Auf Ihrem System wird der Name des IoT-Boards auch mit
uething beginnen, aber evtl. mit einer anderen Nummer
enden. Die Nummer wird anhand der MAC-Adresse Ihres
oards individuell generiert.
Nach der Eingabe des richtigen Passworts erscheint das Netzwerk unter
EKOPPELTE
ERÄTE. Jetzt kann Ihr Smartphone mit dem IoT-Board kommunizieren
On-Board-LED zum Blinken bringe
Nun soll noch das Programmieren des IoT-Boards getestet werden. Als Beispiel wird der in der
rduino IDE integrierte Blink-Sketch verwendet. Wählen Sie dafür im Menü Datei / Beispiele /
1.Basics / Blink
Klicken Sie jetzt oben links auf das runde Symbol mit dem Pfeil, um das Programm auf das angeschlossene IoT-Board hochzuladen, was auch als Flashen bezeichnet wird
ber den Haken kompilieren Sie die Daten,
mit dem Pfeil nach rechts laden Sie das Programm auf das IoT-Board
Nachdem das Hochladen abgeschlossen ist, blinkt die LED D2 (neben Anschluss D13) auf dem IoT-Board. Nun ist das Board für die nächsten Tage einsatzbereit
ei der Verbindungsaufnahme mit dem IoT-Board
üssen Sie ein Passwort eingeben
Sobald ein Gerät mit einem Smartphone gekoppelt ist, ist eine Verbindungsaufnahme auch ohne erneu ten Scan möglich
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 715007-3 Conrad Adventskalender Internet of Things 2017_02.indd 7 19.07.2017 14:15:0319.07.2017 14:15:03
Page 8
Unterhalb des Quellcodefensters sehen Sie die Ausgaben der Arduino IDE beim Kompilieren und beim Hochladen
.
behobe
.
immer im
odus nutzen
T
.
Sollte die LED nicht blinken, schauen Sie sich die Fehlermeldung in der Arduino IDE an.
Hier hat die Verbindung zum IoT-Board nicht geklappt. In diesem Fall ist der falsche Port ausgewählt, dies kann schnell über den Menüpunkt
IoT-Board
AT-M
Auf dem IoT-Board ist ein Jumper. Dieser Jumper muss für alle Projekte in diesem Kalender auf A
n
n werden
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 815007-3 Conrad Adventskalender Internet of Things 2017_02.indd 8 19.07.2017 14:15:0419.07.2017 14:15:04
Page 9
2. Ta
g
)
-
)
m
d
2
des Do
oadarc
s.
.
;
;
{
;
{
;
(
);
m
;
gPin
bestehe
destens aus de
d
p
{
;
);
tup
g
)
-
audrate
p()
p
.
p()
;
);
g
d
-
p
n
y
)
.
übe
otter übe
aud
g
Heute im Adventskalender
•1x Steckbrett (SYB 46
•1x Jumperkabel
Analoge Werte messen
Heute programmieren Sie einen Sketch in der Arduino IDE, um Werte eines analogen Eingangs auszulesen. Die Werte werden per Textausgabe und grafi sch dargestellt.
: 1x Steckbrett, 1xJumperkabel (männlich – männ
lich
as Program
Das Programm für diesen Tag trägt den Namen liegt im Verzeichnis
int analogValue = 0 int analogPin = A0
oid setup() pinMode(analogPin, INPUT) Serial.begin(9600);
ag0
innerhalb
wnl
ag02.ino
n
hiv
oid loop() analogValue = analogRead(analogPin) Serial.println(analogValue); delay
2. Ta
as Jumperkabel dient als Antenne. Probieren Sie die Messungen auch mal ohne dieses Kabel,
m zu sehen, ob das Kabel einen Unterschied in Ihrer Messumgebung bewirkt
1000
So funktioniert das Program
int analogPin = A0
Zu Beginn wird die verwendete Pinnummer in der Variablen analo
rduino IDE
oid setup() pinMode(analogPin, INPUT) Serial.begin(9600
Die Funktion se Pin wird als Eingabe festgelegt. Über Serial.be
n min
n zwei Funktionen setupn
läuft einmal zum Start und wird meistens zur Konfi guration verwendet. Der analoge
in(9600
wird die serielle Kommunikation gestartet, um
Werte auf dem seriellen Monitor und dem seriellen Plotter anzuzeigen. Der Parameter bei dieser Funk
ion ist die B
oid loo
Die Funktion
.
{
oo
wird so lange wiederholt, bis man die Stromversorgung trennt oder den Reset-Knopf drückt
oid loo analogValue = analogRead(analogPin); Serial.println(analogValue) delay(1000
{
festgelegt. Alle Programme in der
oo
r analo
angs in der Variablen
r Serial.
Rea
wird der Wert des analogen Ein
nalogValue
rintl
ausgegeben. Durch dela
espeichert und
(1000
Die Datenrate muss im Dropdown im rechten unteren Eck des Fensters richtig eingestellt sein, in diesem Fall
B
wartet das Programm 1000 Millisekunden
ffnen Sie nun den seriellen Monitor
r
erkzeuge / Serieller Monitor. So sehen Sie die gemessenen
Werte. Die Werte können Sie auch grafi sch anzeigen lassen. Schließen Sie hierfür den zuvor geöffneten
riellen Monitor und öffnen Sie den seriellen Pl
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 915007-3 Conrad Adventskalender Internet of Things 2017_02.indd 9 19.07.2017 14:15:0519.07.2017 14:15:05
r
erkzeuge / Serieller Plotter
Page 10
1
0
g
r
d
t
licht
-
und
;
;
m
;
e
(
ll
.
g
3. Ta
3. Ta
Heute im Adventskalende
•1x LED rot mit Vorwiderstan
•1x Schaltdrah
Sie benötigen keinen separaten Widerstand, denn die LED hat diesen bereits integriert.
k
Heute lassen Sie eine LED mit einer Frequenz von 2Hz blin ken.
auteile:
x Steckbrett, 1xLED rot mit Vorwiderstand
as Programm
Das Programm für diesen Tag trägt den Namen
iegt im Verzeichnis
onst int ledPin = 2; nt ledState = LOW
void setup() { pinMode(ledPin, OUTPUT);
void loop() {
ag03
ag03.ino
So funktioniert das Program
if (ledState == LOW) ledState = HIGH else ledState = LOW;
In der Variablen
en Wert
edStat
wird festgehalten, ob die LED leuchtet oder nicht. Zu Beginn hat die Variable
. Dieser Wert wird über delay
if (ledState == LOW) ledState = HIGH else ledState = LOW; digitalWrite(ledPin, ledState); delay(500);
500) a
e 500ms umgeschaltet. Dadurch blinkt die LED
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1015007-3 Conrad Adventskalender Internet of Things 2017_02.indd 10 19.07.2017 14:15:0519.07.2017 14:15:05
Page 11
4. Ta
g
auteile
stand
m
d
;
;
{
);
;
);
);
;
);
;
);
}
;
m
;
);
;
);
}
n
1
.
.
Heute im Adventskalender
•1x LED gelb mit Vorwiderstand
Wechselblinker
Zwei LEDs blinken abwechselnd.
B
: 1x Steckbrett, 1xLED gelb mit Vorwiderstand,
1xLED rot mit Vorwider
Das Program
Das Programm für diesen Tag trägt den Namen
iegt im Verzeichnis
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
ag04
ag04.ino
4. Tag
n
Beide Kathoden (kurze Beine der LED) müssen auf GND geführt werden. Links ist die gelbe LED, rechts die rote LED
oid loop() { if (pin == ledPin1) { pin = ledPin2 digitalWrite(ledPin1, LOW } else { pin = ledPin1 digitalWrite(ledPin2, LOW
digitalWrite(pin, HIGH); delay(500)
So funktioniert das Program
if (pin == ledPin1) { pin = ledPin2 digitalWrite(ledPin1, LOW } else { pin = ledPin1 digitalWrite(ledPin2, LOW
In der temporären Variable
Pin
. Über eine if-Abfrage wird die Variable auf den anderen Pin gesetzt, und die gerade leuchtende
LED wird ausgeschaltet. Das Umschalten geschieht alle 500ms
i
wird gespeichert, welche LED gerade leuchtet. Initial steht dieser Wert auf
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 11 19.07.2017 14:15:0519.07.2017 14:15:05
Page 12
5. Ta
g
r
d
-
.
auteile
e
n
dafür die
ese
dete Versio
Software unte
ter
-
e
eutsc
s
.
.
.
.
lb
ste
auch die aktuellste Version unte
ade
Obe
.
.
e-
.
g
5. Ta
Heute im Adventskalende
•1x LED grün mit Vorwiderstan
Ab drei LEDs wird es etwas enger, deswegen wird GND extra an die obere Leiste geführt. LEDs
on links nach rechts: grün, gelb und rot
Um nun Snap4Arduino mit Ihrem Board verwenden zu können, müssen Sie einen speziellen Sketch
uf das Board aufspielen, nämlich Firmata. Schließen Sie hierfür das IoT-Board an Ihren PC an und
nen Sie die Arduino IDE. Wählen Sie unter Datei / Beispiele / Firmata / Standard Firmata au
und laden Sie den Sketch über Klick auf den Pfeil nach rechts auf das Board. Jetzt können Sie das Board mit Snap4Arduino programmieren
mpel
as heutige Projekt ist eine Ampel, die mit der grafi schen Ent
wicklungsumgebung Snap! erstellt wird
B
: 1x Steckbrett, 1xLED grün mit Vorwiderstand,
xLED gelb mit Vorwiderstand, 1xLED rot mit Vorwider-
tand, 1xDrahtbrück
Snap! installieren und IoT-Board vorbereite
Snap! ist eine grafi sche Entwicklungsumgebung, die in Form
on Snap4Arduino auch speziell für Arduino existiert. Laden ie sich
r
nstallation stellen Sie die Sprache der Oberfl äche auf Deutsch
m. Klicken Sie hierfür in Snap4Arduino auf das Einstellungen Symbol (Zahnrad) und wählen Sie im Menü Sprache D
in di
r
m Kalender verwen
ttp://www.buch.cd herun
h
n
Nach der
anguage di
In der Kategorie Arduino fi nden Sie die El mente für die Steuerung des IoT-Boards
rduino IDE und Snap! nicht gleichzeitig verwenden
ie Arduino IDE und Snap! können nicht gleichzeitig verwendet werden. Schließen Sie deswegen
as jeweils andere Programm, bevor Sie mit der von Ihnen gewünschten Umgebung arbeiten
rogramm in Snap! umsetzen
in Programm in Snap! wird mit grafi schen Elementen zusammengestellt, die in ategorien eingeteilt sind. Das Menü der Kategorien fi nden Sie oben links
iehen Sie nun aus
Arbeitsbereich. Um die LEDs an- und auszuschalten, nutzen Sie das Element
igitalen Pin. Die Werte setzen Sie über das umschaltbare Element wahr auspe-
atoren. Damit das Programm auch nicht endet, benötigen Sie das Schleifenele-
ent aus
teuerung Damit die LEDs auch nicht sofort wieder umschalten, bauen
ie ein Pause von einer Sekunde über warte aus
evor Sie das Programm starten können, müssen Sie das IoT-Board mit Snap!
erbinden. Hierfür klicken Sie auf das Element Mit Arduino verbinden innerha
er Kategorie
tehenden Anschlüsse gezeigt. Wählen Sie den ersten Anschluss aus. Nun klicken
Sie auf den grünen Pfeil (oben rechts), und schon fängt die Ampel an.
Externes Projekt in Snap! öffnen
as Programm für den heutigen Tag liegt im Ordner
ehen Sie auf das erste Symbol und wählen Importieren... aus. Navigieren Sie
m Ordner Tag05 und wählen Sie
eöffnet, und Sie können es nutzen.
teuerung
as Element mit der grünen Farbe in den mittleren
teuerung ein
rduino. Beim Klick auf das Symbol werden Ihnen die zur Verfügung
ag05. In der Menülei
ag05-snap.xml aus. Jetzt ist das Projekt
etze
Das mit Snap! erstellte Programm
Alternativ können Sie sich
on den Screenshots abweichen, die Programme sollten aber trotzdem funktionieren
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 12 19.07.2017 14:15:0619.07.2017 14:15:06
r http://snap4arduino.org/ herunterl
n. Die
rfl äche kann leicht
Page 13
3
6. Ta
g
d
auf und schalten die blaue
über das Smart
.
luetooth Te
aus
.
m
e
.
g06
o
g
aus de
s
6
ate
edPinBlue
usät
:
de ne Led
lue 2
d d
:
...
);
:
)){
);
);
}
)){
);
);
}
n
d
d
(
)
d
)
:
;
}
.
.
g
g
1
Heute im Adventskalender
•1x LED blau mit Vorwiderstand
Verbindung mit dem IoT-Boar
Heute bauen Sie mit Ihrem Smartphone eine Verbindung zum IoT-Board
LED
-
phone an und wieder aus
Bauteile: 1x Steckbrett, 1xLED blau mit Vorwiderstand
App zur Steuerung installieren
Heute nutzen Sie noch keine eigene App, sondern steuern das Board über die kostenlose App
em App-Store Google Play
rial B
rminal
Die Schaltung gleicht der Schaltung von Tag 3
as Program
Das Programm für den heutigen Tag baut auf der Firmware für das IoT-Board auf. Die aus der Firmware notwendigen Programmteile liegen in der Datei Vorlage.ino im Verzeichnis
Funkverbindung bereit
Die Firmware (und somit auch die Vorlage) ist so programmiert, dass die orange LED an Pin 13 dauerhaft leuchtet, sobald die Funkverbindung bereit ist. Warten Sie deswegen, bis diese LED leuchtet, bevor Sie eine Verbindung mit dem IoT-Board aufbauen
orlag
6. Ta
Kopieren Sie die Datei Vorlage.ino in ein neues Verzeichnis Ta
Tag06.in
zen. Nun öffnen Sie die D
um. Alternativ können Sie direkt die fertige Ta
i mit der Arduino IDE. Die Vorlage enthält schon einiges an Funktio­nalität. Die Konstante für die interne LED ist bereits vorhanden. Die Konstante L z
zliche LED defi nieren Sie direkt unterhalb der internen LED
#defi ne LedPin 13 #
m Ende der Methode
oid set
digitaWrite(LedPinBlue, HIGH
PinB
p() {
etup wir
ie LED angeschaltet
und benennen Sie die Datei in
06.ino
m Verzeichni
Tag0
nut-
für die
Für das An- und Abschalten der integrierten LED an Pin 13 ist der Code bereits vorhanden. Dieser wird nun wie folgt ergänzt
if (Text.startsWith("Led an") || Text.startsWith("LED an") || Text.startsWith("LED AN" digitalWrite(LedPin, HIGH digitalWrite(LedPinBlue, HIGH
if (Text.startsWith("Led aus") || Text.startsWith("LED aus") || Text.startsWith("LED AUS" digitalWrite(LedPin, LOW digitalWrite(LedPinBlue, LOW
Nach dem ersten Start erscheint ein leeres schwarzes Fenster
Wenn das Board un
digitalWrite(LedPinBlue, HIGH
a
oder Le
an o
er
AN
mpfängt, so werden über digitalWrite
ie interne LED und die blaue LED angeschaltet. Wenn das IoT-
LedPin, HIGH
Board Daten empfängt, wird folgende Schleife ausgeführt
while(HC05.available() > 0){
Text=""
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 13 19.07.2017 14:15:0619.07.2017 14:15:06
Page 14
)
:
;
über die Funksc
ttstelle aus
{
(
-
übe
eses Passwort sehen Sie auch
elle
J
ces
aus.
J
l
auswähle
ste
.
l
.
aus
-
.
Der Name
des Netzwerkes lautet
-
-
ste de
uetoot
das Netzwe
des Io
ds.
ho
k
.
Bluething103
ügen Sie nun vor der letzten Zeile einen Aufruf der och zu programmierenden Funktion in
while(HC05.available() > 0){ … hookRec(Text) Text=""; }
n dieser Funktion geben Sie nun den empfangenen
und das Passwort ist 1234
xt
oid hookRec(String text) if (text.startsWith("echo") || text. tartsWith("Echo")) {
HC05.print
}
hni
">> " + text);
un können Sie das Programm auf das IoT-Board aufspielen. Schalten Sie Bluetooth an Ihrem
martphone ein und wählen Sie das neu aufgebaute Bluetooth-Netzwerk aus. Den entsprechen
den Namen sehen Sie im seriellen Monitor der Arduino IDE. Das dazugehörige Fenster öffnen
ie
r
erkzeuge / Serieller Monitor. Bei der Verbindung müssen Sie ein Passwort eingeben,
i
im seri
n Monitor.
ookRec(Text
:
ber das zentrale Menü gelangen Sie zu den Ein
stellungen der App.
In der Li
h
r Bl
h-Netzwerke fi nden Sie
rk
T-Boar
etzt starten Sie die zuvor installierte Bluetooth-App. Gehen Sie nach dem Start in das Menü
drei übereinanderliegende Striche am linken Rand) der App und wählen Sie den Menüpunkt
Devi
etzt wählen Sie das entsprechende Netzwerk aus und wechseln ins Terminal, indem Sie einma
uf das Menüsymbol klicken und dann Terminal
n.
m Terminal klicken Sie auf das Verbindungssymbol (links neben dem Mülleimer). Nach kurzer
eit werden Sie zur Eingabe des Passworts aufgefordert. Dieses lautet 1234
Beim er
n Mal
lappt der Verbindungsaufbau noch nicht, deswegen klicken Sie nochmals auf das Symbol. Nun ollte die Verbindung aufgebaut sein. Im Terminal-Fenster erscheint die Meldung Connected Jetzt
können Sie mit dem IoT-Board kommunizieren
Doppelter Verbindungsaufbau notwendig
Solange Sie in der Bluetooth-App noch kein Passwort eingegeben haben, müssen Sie zweima die Verbindung aufbauen. Beim ersten Mal geben Sie das Passwort ein, und beim zweiten Mal wird die Verbindung aufgebaut
Wenn Sie nun Led
eschaltet. Durch Eingabe von
eingeben und auf das Pfeilsymbol drücken, werden die beiden LEDs aus
ein schalten Sie die LEDs wieder ein. Jede Eingabe, die mit
beginnt, wird an das Board gesendet, und dieses sendet die Eingabe beginnend mit zwei
Pfeilen zurück. Der Text wird dann vom Terminal ausgegeben
Über ec Informationen vom IoT-Board empfangen kann
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1415007-3 Conrad Adventskalender Internet of Things 2017_02.indd 14 19.07.2017 14:15:0719.07.2017 14:15:07
önnen Sie sehen, dass die App auch
ie Terminal-App ist nun bereit für die Kommuni
ion.
Page 15
7. Ta
g
.
auteile
-
-
)
m
und
;
;
;
;
{
);
);
;
);
);
);
;
m
;
g
);
i
Ü
.
5
Heute im Adventskalender
•1x Potenziometer, 15 kOhm
Steuerbares Laufl icht
Das heutige Projekt ist ein Laufl icht, dessen Geschwindigkeit über ein Potenziometer gesteuert werden kann
B
: 1x Steckbrett, 1xLED grün mit Vorwiderstand,
1xLED gelb mit Vorwiderstand, 1xLED rot mit Vorwider stand, 1x15-kOhm-Potenziometer, 4x Drahtbrücke (unter schiedliche Längen
as Program
Das Programm für diesen Tag trägt den Namen liegt im Verzeichnis
nt analogPin = A5 nt analogValue
nt led1 = 8 nt led2 = 6; nt led3 = 4
oid setup() pinMode(analogPin, INPUT
ag07
ag07.ino
7. Tag
as Potenziometer belegt einiges an Platz. Deswegen muss das IoT-Board im Vergleich zum
ortag nach oben geschoben werden. LEDs von links nach rechts: grün, gelb und rot.
pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); Serial.begin(9600);
oid loop() { analogValue = analogRead(analogPin); Serial.println(analogValue
delay(analogValue) digitalWrite(led3, LOW); digitalWrite(led1, HIGH
delay(analogValue digitalWrite(led1, LOW); digitalWrite(led2, HIGH
delay(analogValue) digitalWrite(led2, LOW); digitalWrite(led3, HIGH);
So funktioniert das Program
analogValue = analogRead(analogPin); delay(analogValue) digitalWrite(led3, LOW); di
italWrite(led1, HIGH
In der temporären Variable analogP wird gewartet, und dann werden die LEDs umgeschaltet
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1515007-3 Conrad Adventskalender Internet of Things 2017_02.indd 15 19.07.2017 14:15:0719.07.2017 14:15:07
n wird der eingestellte Wert des Potenziometers gelesen.
ber delay
Page 16
1
6
g
r
o
n
.
.
s
uetoot
e
-
.
.
-
board
.
.
g
8. Ta
8. Ta
Heute im Adventskalende
•1x Piez
Töne über App ausgebe
ber eine App geben Sie Töne auf einem Piezo aus
ile: 1x Steckbrett, 1xPiezo
Die zwei Drähte des Piezos werden mit D2 und GND verbunden. Der Rest wird über Software gelöst
Entwicklungsumgebung für die App
Die Steuerung des IoT-Boards erfolgt in diesem Adventskalender mit der bereits genutzten App
Bl
ertigen Projektdateien können Sie jeweils unter
umgebung kommt MIT App Inventor 2 (http://appinventor.mit.edu zum Einsatz
Die Entwicklungsumgebung läuft im Browser. Deswegen benötigen Sie während der Entwicklungszeit auch einen Internetzugang
Mit Klick auf die Schaltfl äche benötigen Sie einen kostenlosen Account bei Google.
Nach erfolgreicher Anmeldung befi nden Sie sich im Dashboard. Hier werden Ihnen alle Ihre bisher ent wickelten Apps angezeigt. Da Sie wahrscheinlich bisher noch keine App mit AI2 entwickelt haben, sehen
h Terminal und mit selbst entwickelten Smartphone-Apps für das Betriebssystem Android Di
ttp://www.buch.cd herunterladen. Als Entwicklungs
reate apps! starten Sie die Entwicklungsumgebung. Für die Nutzung
Account bei Google anlegen
ollten Sie noch keinen Account bei Google haben, so legen Sie sich für die Entwicklung mit dem
App Inventor 2 (AI2) einen Account über
ie ein leeres Dash
.
ttps://accounts.google.com an
rial
IT
Der auf dem IoT-Board integrierte Chipsatz wird nur von Android-Smartphones unterstützt
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1615007-3 Conrad Adventskalender Internet of Things 2017_02.indd 16 19.07.2017 14:15:0819.07.2017 14:15:08
Page 17
Die Oberfl äche steht derzeit noch nicht in Deutsch zur Verfügun
g.
-
.
AI2
auf die Startfl äche
und geben Sie
.
.
.
Um Ihre selbst entwickelte App auch schon während der Entwick­lung schnell testen zu können, müssen Sie die kostenlose App MIT
I2 Companion aus dem Google Play Store auf Ihrem Smartphone
installieren. Nach dem Start müssen Sie den Code Ihrer App einge ben, hierfür müssen Sie zunächst eine App erstellen
e erste App mit
Klicken Sie nun als Name keine Leerzeichen enthalten darf. Nun öffnet sich die Entwicklungs­umgebung in Ihrem Browser
eine_erste_App ein, achten Sie darauf, dass der Name
Während der Entwicklung starten
ie nicht direkt die App, sondern
ehen den Umweg über MIT App
nventor 2 Companion. Dadurch
rsparen Sie sich eine manuelle
nstallation der App auf dem
erät
Nach dem Start ist die Oberfl äche der App noch leer
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1715007-3 Conrad Adventskalender Internet of Things 2017_02.indd 17 19.07.2017 14:15:0819.07.2017 14:15:08
Page 18
1
8
pp
Obe
ä-
-
dth
setzen und
auf nte
st
übe
ouc
touched
-
locks
.
Das Fenster ist in mehrere Bereiche aufgeteilt. Links sehen Sie im Bereich zur Verfügung stehen. Daneben sehen Sie in Viewer che der App. In deten Komponenten und in aktuell selektierten Komponente.
Ziehen Sie nun eine Beschriftung in Form von einem Label in das Fenster. Passen Sie die Beschriftung an, indem Sie Wi
die Beschriftung horizontal zentriert. Als Nächstes ändern Sie die Schriftgröße in FontSize 30 und setzen den Text (Feld:
Meine erste App.
Nun soll die App noch um eine Interaktion erweitert werden. Hierfür fügen Sie einen Button aus dem Fenster Components hinzu und ändern
me. Darunter fügen Sie ein Label mit der Beschriftung not
alette die Oberfl ächenelemente, die für Ihre A
ie
omponents sehen Sie die in Ihrer App verwen
roperties die Eigenschaften der
r:I. Nun i
r
roperties die Beschriftung in T
hinzu.
rfl
xt auf
h
:
nderungen an einer Komponente nehmen Sie im Fenster
Viewer ändert sich dann sofort
AI2 hat zwei Ansichten für eine App: die Ansicht zur Gestaltung der Oberfl äche, den sogenannten Desi
ner (Reiter Designer), und die Ansicht zur Programmierung in der Blocksprache (Reiter Blocks. Diese
beiden Reiter sehen Sie im oberen Bereich der Entwicklungsumgebung.
r die Reiter
esigner und Blocks gelangen Sie zu den beiden Ansichten der Entwicklungsumgebung.
roperties vor. Die Ansicht im
App-Oberfl äche mit den drei Komponenten
Nach Klick auf B
öffnet sich die Ansicht der Block-Programmiersprache. Wählen Sie nun innerhalb
des Bereichs Blocks die Komponente Button1 aus, und schon sehen Sie die zur Verfügung stehenden Ereignisse, auf die Sie in der App reagieren können.
Wählen Sie nun die zwei Blöcke
en Button1.TouchDownundwhen Button1.TouchUp aus. In beiden
Fällen soll der Inhalt des Labels Label2angepasst werden. Klicken Sie hierfür auf Label2 und wählen Sie
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1815007-3 Conrad Adventskalender Internet of Things 2017_02.indd 18 19.07.2017 14:15:0919.07.2017 14:15:09
Page 19
das Element
.
e
.
utto
ouchDo
d
t
das leere Element
d
.
dafü
ect
aus
tuelle
-
Code
ode
ect
Code
t.
.
et Label2.Text to aus. Entweder fügen Sie das
Element zweimal ein oder fügen Sie das Element einmal ein und kopieren Sie das Element über das Kontextmenü (rechte Maustaste) der Komponente
Komponenten haben ein Kontextmenü. Über Duplicat
opieren Sie die selektierte Komponente
Die beiden Komponenten fügen Sie nun innerhalb der beiden zuvor eingefügten Elemente (when B
n1.T
wn
n
when Button1.TouchUp) ein. Jetzt fehlt noch der Textinhalt.
Wählen Sie hierfür aus der Kategorie
ex
oberstes Element) aus.
ur Programmierung der Logik können Sie zur Auswahl über Kategorien (Built-in oder über die
Komponenten (creen1
Das Element mit den zwei Anführungszeichen wird für die Änderung der Beschriftung genutzt.
Im Falle von
en Button1.TouchDown wir
der Text auf Status: Touched gesetzt. Bei when
utton1.TouchUp wird der Text auf
tatus: Not
touched gesetzt
Nun können Sie die App auf Ihrem Smartphone
n. Wählen Sie
Companion
r im Menü
nn
. Nun erscheinen ein tex
/ AI
r
Code und ein QR-Code. Geben Sie nun entwe
r den
scannen Sie den QR-Code über scan QR code Die App starten Sie mit
in MIT AI2 Companion ein
nn
with
r
. Jetzt öffnet sich die App auf Ihrem Smartphone. Wenn Sie nun die Schaltfl äche berühren, ändert
ich der Tex
ext des Labels wird bei Berührung des Buttons angepasst
gehen.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1915007-3 Conrad Adventskalender Internet of Things 2017_02.indd 19 19.07.2017 14:15:1019.07.2017 14:15:10
o einfach ist App-Entwicklung mit AI2.
Page 20
ezo mit App steuern
g
o
g08
.
etch basiert auf der bereits verwendete
ate
}
d
.
-
h
h
h
(
t
mehrere Layoutmanager (z.B.
-
-
-
aus der Kategorie
_BT_A
E
-
h-
.
.
m das IoT-Board über eine App zu steuern, benötigen Sie einen Sketch auf dem Board,
der auf die Kommandos der App reagiert, und eine App. Heute soll der beiliegende Piezo
ber eine App gesteuert werden. Der dafür notwendige Sketch ist Ta is Ta
Laden Sie diesen Sketch auf das IoT-Board
08.in
im Verzeich-
Im oberen Bereich der App wird angezeigt, ob die Bluetoot
erbindung aufgebaut ist oder nicht
r Sk
n D
i Vorlage.ino. Das Prinzip aller Sket-
ches in diesem Adventskalender, die auf eine App reagieren, ist wie folgt: Es wird ein Text
ber die Funkschnittstelle geschickt, dieser wird im Sketch ausgewertet, und dann wird eine Aktion ausgeführt. In die andere Richtung funktioniert es genauso: Die App empfängt einen Text vom IoT-Board über die Funkschnittstelle, wertet den Text aus und führt dann eine entsprechende Aktion aus. Das Kommando, um einen Ton abzuspielen, lautet
if (Text.startsWith("Ton") || Text.startsWith("TON") || Text.
tartsWith("ton")){
playMelody();
ie dazugehörige App befi ndet sich in der Datei
ezo.aia. Importieren Sie
on:
ie Datei in
2.
Projekte in AI2 importieren
Alle Apps liegen vorgefertigt im Downloadarchiv als aia-Dateien bereit. Um eine Datei
n AI2 zu öffnen, müssen Sie die Projektdatei über den Menüpunkt
rojects / Import
project (.aia) from my computer ... importieren
Funktionsweise der App
ie nachfolgenden Apps, die mit AI2 erstellt wurden, sind anhand einer Vorlage aufge
aut, deswegen wird diese App nun genau beschrieben, und im weiteren Verlauf wird darauf verwiesen. Die App besteht aus insgesamt vier Bereichen:
•Verbindungsbereic
•Funktionsbereic
Alle in der App enthaltenen Komponen-
en in einer hierarchischen Übersicht. Die wichtigen Komponenten wurden mit sprechenden Namen versehen
•App-Infobereich
•Interner, nicht sichtbarer Bereic
In der linken Abbildung sehen Sie die einzelnen Bereiche der App. Zum Verbindungsbereich gehören Container_Verbindung undContainer_MAC. Die eigentliche App, die sich auch von Projekt zu Projekt ändert, befi ndet sich in Container_App Dieser Container enthält den Funktionsbereich den App-Infobereich (ontainer_App_Info
.
nTon
und
Was ist ein Container?
ür die Platzierung der Elemente stehen Ihnen in der Kategorie
ayou
orizontalArrangement) zur Verfügung; diese helfen Ihnen bei der horizontalen und vertikalen Platzie
ung. Die Elemente werden innerhalb solch eines Layoutmanagers platziert. Da diese Layoutmanager
eist mehrere Elemente enthalten, werden diese auch als Container (Layoutcontainer) bezeichnet.
omponentennamen ändern
Wenn Sie Komponenten zu einer Oberfl äche im AI2 hinzufügen, haben die Komponenten einen auto
atisch generierten Namen. Im Gegensatz zu den anderen Eigenschaften einer Komponente kön
en Sie den Namen nicht über das Fenster Properties ändern, sondern im Bereich
omponents Hier
elektieren Sie die entsprechende Komponente und klicken auf die Schaltfl äche Rename
Die Oberfl äche enthält insgesamt drei nicht sichtbare Komponenten. Für die Nutzung von Bluetooth benötigen Sie die Komponente
onnectivity Die Komponente wird
dabei lediglich in den Oberfl ächenbereich gezogen und muss nicht weiter konfi guriert werden. Für die Auswahl des entsprechenden Bluetooth-Gerätes wird die Komponente ActivityStarter (im oberen Bild
enn
android.bluetooth.adapter.action.REQUEST_ENABL
n
aus
onnectivity benötigt. Dem ActivityStarter wird im Fenster
zugewiesen. Für die stete Prüfung der Funkverbin
roperties
r Wert
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2015007-3 Conrad Adventskalender Internet of Things 2017_02.indd 20 19.07.2017 14:15:1119.07.2017 14:15:11
Page 21
dung wird das Element Clock (im obe
-
ste
.
uetooth-Gerät verbunde
utto
stellen
-
-
.
g
üssen Sie nu
das Passwort
-
e
den.
-
.
d
h.
.
-
k
.
.
-
ren Bild Timer DasTimerInterval wird im Fen
Properties auf
aus Sensors genutzt.
r
00 gesetzt
Die Programmierung erfolgt innerhalb des Reiters Blocks. Über den Timer wird der Verbindungsstatus gesetzt.
ber die Eigenschaft
sConnected
können Sie prüfen, ob die App mit
inem Bl
Beim Klick auf den B
r
wird die Liste der verfügba
n ist.
n Verbindung
Regelmäßig wird geprüft, ob die Funkverbindung besteht oder nicht
ren Bluetooth-Geräte angezeigt. Sollte die Liste leer sein, so müssen Sie in der App zurückgehen, dann wird automatisch nach der Zugriffsberechtigung auf die Bluetooth-Schnittstelle gefragt. Als Passwort geben Sie 1234 ein. Bei erneutem Klick auf die Schaltfl äche sollte nun die Liste darge
llt werden
Hier sollte auch ein Eintrag mit dem Namen Bluething auftauchen. Nach Klick auf den Eintra m
n noch
234
ingeben, und schon ist die App mit dem Board verbun
den. Die Anzeige dieser Liste wird über den Block when Verbinde.BeforePicking realisiert. Wi Sie am nachfolgenden Block sehen, hat die Schaltfl äche zwei Funktionen: Verbindung aufbauen und Verbindung trennen.
ber die Schaltfl äche kann die Bluetooth-Verbindung zwischen Board und App
initiiert wer
Die Verbindung selbst wird im Block when Verbinde.AfterPik king hergestellt
Die obigen drei Blöcke werden in allen Apps in diesem
ventskalender vorkommen. Die eigentliche Funktionalität in
er heutigen App ist im Block In dieser Funktion wird lediglich der Wert abgeschlossen durch ein
en buttonTon.Click realisiert.
on übermittelt,
n. Das Sen
en eines Textes über
die Funkschnittstelle erfolgt über den Block call Bluetoot
SendTe xt. Als Parameter übergeben Sie den Text. Vergessen
Sie nicht, ein Endkriterium zu defi nieren. In diesem Beispiel ist
as Endkriterium
n. Auf dieses Zeichen reagiert der Sketch
Name und MAC-Adresse der verfügbaren Geräte werden angezeigt.
ie Verbindung mit dem ausgewählten Gerät wird hergestellt
Blöcke in andere Projekte kopieren
Im Bereich
locks sehen Sie einen Rucksack, den sogenannten Backpack.
Da rüber können Sie Blöcke aus dem Blockeditor von einem Projekt in ein anderes Projekt kopieren. Ziehen Sie einfach entsprechende Blöcke in den Backpack, und schon können Sie die Blöcke in einem anderen Projekt wieder verwenden. Um den Backpack wieder zu leeren, klicken Sie mit der rechten Maustaste in die Arbeitsfl äche und wählen Sie
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 21 19.07.2017 14:15:1119.07.2017 14:15:11
mpty Backpac
Strings können über die Komponentejoin miteinander verbunden wer
en.
Page 22
pp teste
n
pp
pp.
.
.
.
tarten Sie die App nun über
ion auf Ihrem Android-Smartphone auf. Scannen Sie den QR-Code oder geben Sie den Code
in und starten Sie die App über
onnect / AI Companion und rufen Sie die A
onnect with code
Nun startet die A
IT AI2 Compa-
Anfangs ist die Verbindung noch nicht aktiv
rühren Sie nun
Die App ist nun mit dem IoT-Board verbunden
erbindung herstellen. Nun können Sie sich mit dem IoT-Board verbinden
Wenn Sie jetzt abgespielt.
on abspielen berühren, wird auf dem IoT-Board eine Melodie über den Piezo
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 22 19.07.2017 14:15:1219.07.2017 14:15:12
Page 23
9. Ta
g
s
dete
,
-
.
auchen deshalb auc
.
.
ke
ode und muss
asse verbunde
.
etch für das Io
d
d l
Sketch
:
D
n
;
;
();
{
;
}
Heute im Adventskalender
•1x RGB-LED mit Vorwiderstand
RGB-LED
Eine normale LED leuchtet immer nur in einer Farbe. Die im Adventska­lender verwen
n RGB-LEDs können wahlweise in mehreren Farben leuchten. Hier sind im Prinzip drei LEDs verschiedener Farbe in einem transparenten Gehäuse eingebaut. Jede dieser drei LEDs hat eine eigene
node, über die sie mit einem GPIO-Pin verbunden wird. Die Kathode die mit der Masseleitung verbunden wird, ist nur einmal vorhanden. Deshalb hat eine RGB-LED vier Anschlussdrähte.
Die Anschlussdrähte der RGB-LEDs sind unterschiedlich lang, um sie eindeu tig kenntlich zu machen. Im Gegensatz zur normalen LED ist die Kathode
ier der längste Draht
RGB-LEDs funktionieren wie drei einzelne LEDs und br drei 220-Ohm-Vorwiderstände (rot-rot-braun). In den RGB-LEDs in diesem
ventskalender sind diese bereits eingebaut
Farbe einer RGB-LED per App ändern
Heute programmieren Sie eine App, um die Farbe einer RGB-LED zu ändern
Bauteile: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand, 1xDrahtbrüc
9. Tag
Anschlusspins einer RGB-LE
h
Schaltplan für eine RGB-LED mit 3 Vorwiderstände
Auch die RGB-LED hat bereits die Vorwiderstände integriert. Das zweite Bein (kurzes Bein) ist die Kath
Der Sk
Das Programm für diesen Tag trägt den Namen
mit M
T-Boar
n werden
ag9.ino un
iegt im Verzeichnis
ag9
Der
reagiert auf vier Schaltfl ächen
if (Text.startsWith("Rot") || Text.startsWith("ROT") || Text.startsWith("rot")){ rot() } else if (Text.startsWith("Blau") || Text.startsWith("BLAU") || Text.startsWith("blau")){ blau() } else if (Text.startsWith("Gruen") || Text.startsWith("GRUEN") || Text.startsWith("gruen")){ gruen } else if (Text.startsWith("Aus") || Text.startsWith("AUS") || Text.startsWith("aus")) aus()
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 23 19.07.2017 14:15:1219.07.2017 14:15:12
Page 24
Jeder Farbe hat eine eigene Funktion innerhalb des Sketches. Nachfolgend wird die Funk
-
{
;
);
;
pp
.
d
f
d
f
det.
.
2
ion rot() vorgestellt:
oid rot() Serial.println("Rot") analogWrite(redPin, HIGH analogWrite(greenPin, LOW); analogWrite(bluePin, LOW)
Die A
Die dazugehörige App befi ndet sich in der Datei RGB.aia Importieren Sie die Datei in AI2
Abhängig von der gedrückten Schaltfl äche wird ein entsprechender Text über die Blue-
ooth-Schnittstelle gesendet: Für rot wir ür grün wird
ruen\n gesendet, und
ot\n gesendet,
ür blau wird
ür das Ausschalten wird
us\n gesen
au\n gesen
et,
ber vier Schaltfl ächen werden die LEDs geschaltet
Die Blöcke im AI
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2415007-3 Conrad Adventskalender Internet of Things 2017_02.indd 24 19.07.2017 14:15:1319.07.2017 14:15:13
Page 25
10. Ta
g
r
n
auteile
)
.
t.
-
Sketch
0
Über de
:
p() {
{
;
}
{
{
g;
{
;
} }
igi
;
:
{
n
lBl
.
.
5
Heute im Adventskalender
•1x Taste
Tastendruck anzeige
Heute reagiert Ihr IoT-Board auf einen mechanischen Tasten­druck und gibt eine Meldung an die Funkschnittstelle weiter.
B
5xDrahtbrücken (unterschiedliche Längen
Digitale Pins können nicht nur Daten ausgeben, zum Beispiel über LEDs, sondern auch zur Dateneingabe verwendet werden. Zur Eingabe verwenden wir im heutigen Projekt einen Taster, der direkt auf die Steckplatine gesteckt wird. Der Taster hat vier Anschlusspins, wobei je zwei gegenüberliegende (gro­ßer Abstand) miteinander verbunden sind. Solange die Taste gedrückt ist, sind alle vier Anschlüsse miteinander verbunden. Im Gegensatz zu einem Schalter rastet ein Taster nicht ein. Die
erbindung wird beim Loslassen sofort wieder getrennt
Liegt auf einem digitalen Eingang ein +5-V-Signal an, wird dieses als logisch wahr ausgewerte
Bei offenem Taster hätte der Eingang keinen eindeutig defi nierten Zustand. Wenn ein Programm diesen Pin abfragt, kann es zu zufälligen Ergebnissen kommen. Um das zu verhindern, schließt man einen ver gleichsweise sehr hohen Widerstand gegen Masse. Dieser sogenannte Pull-down-Widerstand zieht den Status des Eingangspins bei geöffnetem Taster wieder nach unten auf 0V. Da der Widerstand sehr hoch ist, besteht, solange der Taster gedrückt ist, auch keine Kurzschlussgefahr. Im gedrückten Zustand des Tasters sind +5V und die Masseleitung direkt über diesen Widerstand verbunden.
: 1x Steckbrett, 1xTaster, 1xPotenziometer,
as IoT-Board ist sehr lang, deswegen muss der Taster quer auf das Steckbrett gesteckt wer-
en, und teilweise müssen die Drahtbrücken unter dem angeschlossenen USB-Kabel verlegt
erden.
10. Tag
Der
Das Programm für diesen Tag trägt den Namen von digitalRead wird ausgewertet, ob der Taster gedrückt wurde
id loo
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) lastDebounceTime = millis()
if ((millis() – lastDebounceTime) > debounceDelay) if (reading != buttonState) buttonState = readin
if (buttonState == HIGH) ledState = !ledState }
d
talWrite(LedPin, ledState)
Falls der Taster gedrückt wurde, wird eine Nachricht über die Funkschnittstelle gesendet
if (reading != lastButtonState) HC05.print("Taste gedrückt\n");
ag10.ino und liegt im Verzeichnis Tag1
.
n Aufruf
Reaktion des IoT-Boards anzeige
Für die Anzeige des Tastendrucks auf dem Smartphone wird die bereits genutzte App Seria
uetooth Terminal verwendet. Nach der Verbindung mit dem IoT-Board wird bei einem Tasten-
ruck dann die Meldung
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2515007-3 Conrad Adventskalender Internet of Things 2017_02.indd 25 19.07.2017 14:15:1319.07.2017 14:15:13
angezeigt
Empfangene Meldungen werden in grüner Farbe ins Terminalfenster geschrieben
Page 26
11. Ta
g
r
t
p
h
ino
-
:
;
p
drte zurücksetzen
oderrü
setzen Sie die beide
eder auf 0
übe
tte
g
11. Ta
Heute im Adventskalende
•1x Schaltdrah
Durch die integrierten Vorwiderstände ist die Schaltung sehr kompakt. LEDs von links nach rechts: rot und grün.
ED-Echo per Ap
Das heutige Projekt ist ein LED-Echo. Sie stellen eine Sequenz über zwei Schaltfl ächen in der App ein, und die LEDs auf dem Steckbrett blinken in dieser Sequenz.
ile:
x Steckbrett, 1xLED rot mit Vorwiderstand, 1xLED
rün mit Vorwiderstand, 1xDrahtbrücke
er Sketc
Das Programm für diesen Tag ist Tag11.
ichnis
ag11
Von der App wird die Echosequenz ermittelt. Dabei kommt der Text in folgender Form: RNNGNN. R steht für rot und G für grün, z.B. R5G3 – hier würde die rote LED fünfmal blinken und danach die grüne LED dreimal
if (Text.indexOf("R") != -1 && Text.indexOf("G") != -1)
setzeFarbe(Text)
else if (Text.startsWith("Aus") || Text. tartsWith("AUS") || Text.startsWith("aus")){
aus();
und liegt im Ver
e Ap
Die App hat neben dem schon bekannten Verbindung herstellen vier Schaltfl ächen:
rün erte übertragen un
Bei Berühren von
zen
n wird das jeweilige Label um eins erhöht. Mit
n Werte wi
. Miterte übertragen
rmi
Werte an das IoT-Board. Der zu übermittelnde Wert wird dabei in einer globalen Variablen zwischengespeichert. Der Inhalt der Variablen wird bei Berühren auf Werte übertragen über Bluetooth übertragen.
ür jeden Button gibt es eine separate when.Click-Abfrage.
rte zurück-
ln Sie die
Die App nutzt die bereits bekannte App von Tag8.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2615007-3 Conrad Adventskalender Internet of Things 2017_02.indd 26 19.07.2017 14:15:1319.07.2017 14:15:13
Page 27
12. Ta
g
n
.
auteile
-
e
h
ino
-
s
2
-
-
-
:
{
));
();
;
);
p
.
-
Heute im Adventskalender
•1x LED orange mit Vorwiderstand
Laufl ichtgeschwindigkeit per App einstelle
Im heutigen Projekt steuern Sie über Bluetooth die Geschwin­digkeit eines Laufl ichts
B
: 1x Steckbrett, 1xLED rot mit Vorwiderstand,
1xLED orange mit Vorwiderstand, 1xLED grün mit Vorwi derstand, 1xDrahtbrück
Der Sketc
Das Programm für diesen Tag ist Tag12. zeichni
ag1
. Zur Steuerung des Laufl ichts werden zwei Para meter benötigt: die Wartezeit, während eine andere LED leuch tet, und die Anzahl der Durchläufe. Diese Werte werden in einem String der Form wTTTdNN von der App gesendet. Zum Beispiel bedeutet w500d4, dass jede LED 500ms leuchtet, und vor Einschalten einer anderen LED wird 500ms gewartet. Ins gesamt würde das Laufl icht viermal laufen
if (Text.indexOf("w") != -1 && Text.indexOf("d") != -1) String temp = Text.substring(Text.indexOf("w")+1,Text.indexOf("d" int wartezeit = temp.toInt temp = Text.substring(Text.indexOf("d")+1) int durchlaeufe = temp.toInt(); laufl icht(wartezeit, durchlaeufe
und liegt im Ver
aufl icht mit drei LEDs: rot, orange und grün
2. Tag
e Ap
Für das Übermitteln der Werte wird die AppSerial Bluetooth Terminal genutzt. Nach dem
ufbau der Verbindung können Sie direkt das Kommando im beschriebenen Format an das IoT-
Board senden.
In der Ausgabe sieht man, dass zwei Verbindungs versuche zur erfolgreichen Verbindung mit dem IoT-Board notwendig sind. Sollte die Verbindung nicht klappen, prüfen Sie über den Menüpunkt Bluetooth Devices, ob Sie auch das richtige Gerät
usgewählt haben.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2715007-3 Conrad Adventskalender Internet of Things 2017_02.indd 27 19.07.2017 14:15:1419.07.2017 14:15:14
Page 28
13. Ta
g
r
d
n
auteile
h
ino
-
3
über die Methode
-
:
{
;
;
}
;
e
:
{
{
}
;
));
{
}
);
{
}
;
;
.
g
13. Ta
Heute im Adventskalende
•1x LED pink mit Vorwiderstan
Die pinke LED wird genutzt, um die aufgebaute Verbindung zu signalisieren
while(HC05.available() > 0){ Zeichen = HC05.read(); Text.concat(Zeichen); if (Zeichen == ‚\n‘) { if (Text.indexOf("R") != -1 && Text.indexOf("G") && Text.indexOf("B") ) setzeFarbe(Text) } else if (Text.startsWith("Aus") || Text.startsWith("AUS") || Text.startsWith("aus"))
GB über Slider in App anpasse
Eine RGB-LED kann nicht nur eine der drei Grundfarben anzei-
en, sondern auch Übergänge. Mittels einer App können Sie
ie Farbe der RGB-LED genau einstellen.
B
: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand,
1xLED pink mit Vorwiderstand, 1xDrahtbrücke
Der Sketc
Das Programm für diesen Tag ist Tag13. zeichnis
ag1
Die Steuerung der RGB-LED erfolgt über einen
String in der Form RNNNGNNNBNNN. Nur wenn ein String in
ieser Form vom IoT-Board empfangen wird, dann wird die Farbe schalten, muss der String
setzeFarbe gesetzt. Um die LED abzu
us gesendet werden
und liegt im Ver
aus()
Text=""
In der Funktion setzeFarbe wird der übergebene Text mit der Methode substring in Einzelteile zerlegt und die Werte werden dann über
void setzeFarbe(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 gruen = temp.toInt();
temp = text.substring(text.indexOf("B")+1 if (temp.indexOf(".") != -1) temp = temp.substring(0, temp.indexOf("."));
int blau = temp.toInt() analogWrite(redPin,rot) analogWrite(greenPin,gruen); analogWrite(bluePin, blau); }
nalogWrit
geschrieben
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2815007-3 Conrad Adventskalender Internet of Things 2017_02.indd 28 19.07.2017 14:15:1519.07.2017 14:15:15
Page 29
e Ap
p
a
.
e
luetooth.SendText
-
.
.
ls Entwicklungsumgebung für die heutige App dient AI2. Importieren Sie dafür die Datei
RGB_Slider.ai
Betätigen von Farbe setzen wird der Wert der drei Slider an das IoT-Board gesendet
Bei Berührung von Farbe setzen wird der zu übermittelnde Text in der Variable farb zusammengesetzt. Über B
. Über drei Slider wird der Wert der jeweiligen Farbe eingestellt. Durch
wird der Text über die Funkschnittstelle gesen
Die Zusammensetzung des Strings erfolgt über join, das man auch schachteln kann
Jeder Slider ist zusammen mit einem Label in einem
zontalArrangement
sind, wurde die Breite der drei Labels auf 15% gesetzt
Damit die Slider alle untereinander
ori-
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2915007-3 Conrad Adventskalender Internet of Things 2017_02.indd 29 19.07.2017 14:15:1519.07.2017 14:15:15
Page 30
14. Ta
g
r
t
m
ontakt
.
)
-
-
.
-
-
.
-
.
-
.
Sketch
lich
log
d
über die Funk
p() {
);
{
);
tschema für Sensorkontakte a
d
g
14. Ta
Heute im Adventskalende
•1x Knete ro
•1x Widerstand 20 MOh
Das Ende der beiden herausragenden Drahtbrücken geht jeweils in ein Stück Knete. Am besten
ormen Sie jeweils eine kleine runde Kugel. Der Knetekontakt an A3 wird als Eingang genutzt.
hal
m IoT-Boar
k
Heute nutzen Sie die beiliegende Knete als Eingabe und ändern bei Berührung der Knete die Hintergrundfarbe einer Fläche in der App
Bauteile: 1x Steckbrett, 2xKnetestück, 1xWiderstand
0MOhm, 3xDrahtbrücke (unterschiedliche Längen
So funktionieren Sensorkontakte
Der als Eingang geschaltete Pin ist über einen extrem hochoh­migen Widerstand (20MOhm) mit +3,3V verbunden, sodass ein schwaches, aber eindeutig als High defi niertes Signal anliegt. Ein Mensch, der nicht gerade frei in der Luft schwebt, ist immer geerdet und liefert über die elektrisch leitfähige Haut einen Low-Pegel. Berührt dieser Mensch jetzt einen Sensorkon
akt, wird das schwache High-Signal von dem deutlich stärke
ren Low-Pegel der Fingerkuppe überlagert und zieht den Pin auf Low-Pegel
ie hoch allerdings der Widerstand zwischen Hand und Masse
irklich ist, hängt von vielen Dingen ab, unter anderem von Schu
hen und Fußboden. Barfuß im nassen Gras ist die Verbindung
ur Masse der Erde am besten, aber auch auf Steinfußboden
unktioniert es meistens gut. Holzfußböden isolieren stärker,
Kunststoff bodenbeläge sind oft sogar positiv aufgeladen. Damit die
chaltung immer funktioniert, ist ähnlich wie bei Sensortasten an
ufzügen und Türen bei jeder Schaltung zusätzlich ein Massekon
akt vorgesehen. Berührt man diesen und den eigentlichen Sensor
gleichzeitig, ist die Masseverbindung auf jeden Fall hergestellt
Knete leitet den Strom etwa so gut wie menschliche Haut. Sie lässt sich leicht in jede beliebige Form bringen, und ein Knetekontakt fasst sich viel besser an als ein einfaches Stück Draht. Die Fläche, mit der die Hand den Kontakt berührt, ist deutlich größer. So kommt es nicht so leicht zu einem „Wackelkon takt“. Schneiden Sie ein etwa 10cm langes Stück des Schaltdrahts ab, entfernen Sie an beiden Enden auf etwa 1cm Länge die Isolierung und stecken Sie das eine Ende in ein Stück Knete. Stecken Sie das andere Ende wie auf der Abbildung in das Steckbrett
Das IoT-Board verfügt über analoge Eingänge, die sich sehr gut für Sensorkontakte eignen. Analoge Ein
änge liefern Werte zwischen 0 (Low-Pegel) und 1023 (High-Pegel): Werte zwischen 100 und 200 sind ute Grenzwerte, um zwischen berührtem und nicht berührtem Sensorkontakt zu unterscheiden
Der
Das Programm für diesen Tag ist in diesem Sketch kann in wenigen Zeilen programmiert werden. Mit ana sen, und wenn dieser unter dem Schwellwert liegt, dann wird ein Text mit schnittstelle gesendet:
void loo sensorValue = analogRead(sensorPin
if (sensorValue < 256) HC05.print("LOW\n" delay(1000); }
ag14.ino
nd liegt im Verzeichnis
ag14. Die eigent
Rea
wird der Wert eingele-
C05.print
e Funktionalität
-
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3015007-3 Conrad Adventskalender Internet of Things 2017_02.indd 30 19.07.2017 14:15:1519.07.2017 14:15:15
Page 31
e Ap
p
_
a
.
.
stützt auch else und else-if.
-
.
.
eceiveText
.
Die heutige App Knete farbe hat.
Um zu prüfen, ob ein Text über die Bluetooth-Schnittstelle gesendet wurde, muss periodisch geprüft werden, ob ein Text vorliegt. Dies wird im vorhandenen Timer gemacht
Blöcke konfi gurieren
Die Elemente im Bereich Konfi guration erfolgt über das blaue Zahnrad an der Komponente
Schalter.ai
enthält ein Label, das zu Beginn orange als Hintergrund-
locks im Blockeditor können teilweise konfi guriert werden. Die
Der if-Block unter
1
Klicken Sie dann auf das Element, das Sie nutzen wollen, und schon ändert sich die Kom ponente
Bisher wurde der Timer nur genutzt, um den Status der Funkverbindung anzuzeigen
r
h.R
wird der
Text von der Funkschnittstelle gelesen.
Damit das farbige Label gut sichtbar ist, wurden Breite und Höhe auf 30 Pixel gesetzt
Die zu setzende Farbe können Sie über ein Auswahlfeld wählen.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 31 19.07.2017 14:15:1619.07.2017 14:15:16
Page 32
15. Ta
g
r
m
e
.
auteile
h
ino
-
etekontakts übe
d
-
t
.
{
}
}
}
p
-
f-
.
-
.
g
15. Ta
Heute im Adventskalende
•1x Widerstand 20 MOh
Das Ende der drei herausragenden Drahtbrücken geht jeweils wieder in ein Stück Knete. Au
rund der zwei Knetekontakte benötigen Sie auch zwei hochohmige Widerstände
nterscheidbare Knetekontakt
Nun nutzen Sie zwei Knetekontakte und zeigen in einer App an, welcher Kontakt gedrückt wurde
B
: 1x Steckbrett, 3xKnetestück, 2xWiderstand
0MOhm, 4x Drahtbrücke (unterschiedliche Längen)
Der Sketc
Das Programm für diesen Tag ist Tag15. zeichnis Kn
ag15
Wie schon an Tag 14 wird das Betätigen eines
r
nalogRea
eingelesen. Für jeden Knete
kontakt gibt es eine extra Variable. Über
as Kommando an die Funkschnittstelle übergeben
void loop() { sensorValue1 = analogRead(sensorPin1); sensorValue2 = analogRead(sensorPin2);
if (sensorValue1 < 256) HC05.print("Kontakt 1\n");
if (sensorValue2 < 256) { HC05.print("Kontakt 2\n");
if (sensorValue1 < 256 || sensorValue2 < 256) { delay(1000);
und liegt im Ver
C05.prin
wird dann
Das Betätigen eines Knetekontakts führt zur pro grammierten Ausgabe im Terminal
e Ap
ür die Anzeige der Texte wird die App unächst mit dem IoT-Board, und schon sollten die Texte erscheinen, sobald Sie einen Knetekon
akt berühren.
erial Bluetooth Terminal genutzt. Verbinden Sie sich
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 32 19.07.2017 14:15:1619.07.2017 14:15:16
Page 33
16. Ta
g
d
n
eder aus.
auteile
d
h
ino
-
s
6
d
on de
kschnittstelle
();
{
;
e
.
);
);
}
);
}
App
a
.
ll Bl
t
.
-
g.
Heute im Adventskalender
•1x Blink-LED rot mit Vorwiderstan
Blink-LED per App steuer
ber eine Schaltfl äche schalten Sie die Blink-LED ein und über
ine andere Schaltfl äche wi
B
: 1x Steckbrett, 1xBlink-LED rot mit Vorwiderstan
Der Sketc
Das Programm für diesen Tag ist Tag16. zeichni Fun
if (Text.startsWith("An") || Text.startsWith("AN")
an } else if (Text.startsWith("Aus") || Text. startsWith("AUS") || Text.startsWith("aus")) aus()
ag1
. Der Sketch reagiert auf n n
:
Text.startsWith("an")){
Das Schalten der Blink-LED erfolgt in zwei separaten Funktio­nen. Dabei wird dann nur der Wert LOW oder HIGH über
und liegt im Ver
us v
r
gitalWrit
6. Tag
Auch die Blink-LED hat einen Vorwiderstand, und deswegen braucht es keine weiteren Ele mente für die Schaltun
geschrieben
void an() { Serial.println("An" digitalWrite(blinkPin, HIGH
void aus() { Serial.println("Aus"); digitalWrite(blinkPin, LOW
e
Die App
Für das Senden wird die bereits bekannte Methode ca
linker.ai
hat zwei Schaltfl ächen zum Ein- und Ausschalten der Blink-LED
uetooth.SendTex
eingesetzt
Über den beiden Schaltfl ächen (An und Aus) befi ndet sich als Positionierungselement ein
erticalArrangement
Denken Sie daran, dass Sie beim Senden auch das Endekriterium an den String hängen.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 33 19.07.2017 14:15:1719.07.2017 14:15:17
Page 34
17. Ta
g
r
.
auteile
)
h
ino
-
ächst werden die
able
in
d
e
-
auf
;
ode
p
übe
g
d
:
p() {
);
;
);
p
luetooth Te
g
17. Ta
Heute im Adventskalende
•1x Potenziometer
Ein Potenziometer ist aus Programmiersicht nichts anderes als ein analoger Sensor.
nt sensorPin = A5; nt sensorValue = 0
In der Meth
loo
wird der Wert
ben. Danach wird 2000ms gewartet, und der Wert wird erneut gelesen
void loo sensorValue = analogRead(sensorPin HC05.print("Wert Potenziometers = " ) HC05.println(sensorValue); delay(2000
nzeige des Widerstandswertes
Heute messen Sie den Wert eines Potenziometers über einen analogen Eingang und geben den Wert in einer App aus
B
: 1x Steckbrett, 1xPotenziometer 15 kOhm,
xDrahtbrücke (unterschiedliche Längen
Der Sketc
Das Programm für diesen Tag ist Tag17. zeichnis
n
ag17
sensorValu
Zun
defi niert. Das Potenziometer hängt am analo
en Eingang 5, und deswegen wird
r analo
Rea
eingelesen und an die Funkschnittstelle weitergege-
und liegt im Ver
zwei Vari
ensorPin
n
5 gesetzt:
ensorP
e Ap
Für die Anzeige der Texte wird die App mit dem IoT-Board, und schon sehen Sie Werte des Potenziometers.
rial B
rminal genutzt. Verbinden Sie sich zunächst
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3415007-3 Conrad Adventskalender Internet of Things 2017_02.indd 34 19.07.2017 14:15:1719.07.2017 14:15:17
Page 35
18. Ta
g
t
abei b
.
,
h
ino
-
s
8
d
p
bschalten einer der dre
-
:
)){
;
;
{
}
p
-
.
l
t
.
.
5
Heute im Adventskalender
•1x Jumperkabel
RGB-Laufl ich
ber eine App steuern Sie die Blinkdauer einer RGB-LED.
D
linkt die LED in abwechselnden Farben. Das Blinken
können Sie dabei auch wieder abschalten
Bauteile: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand 1xJumperkabel
Der Sketc
Das Programm für diesen Tag ist Tag18. zeichni
ag1
. Der Sketch reagiert auf den Text stop un auf eine gesendete Zahl. Im Falle von ausgeschaltet. Kommt eine Zahl an, wird sie als Wartezeit zwi-
hen dem An- und A
genutzt
if (Zeichen == ‚\n‘) { Serial.println(Text); if (Text.startsWith("stop" aus() blinkDauer = 0 } else blinkDauer = leseBlinkdauer(Text);
und liegt im Ver
to
wird die RGB-LED
i LEDs der RGB
18. Tag
urch die integrierten Vorwiderstände ist die Schaltung sehr kompakt.
e Ap
e App RGB_Lau
ten des Blinkens
ber das schon bekannte Kommando B
Text stop über die Funkschnittstelle gesendet
Die Wartezeit wird nicht extra codiert, sondern es wird lediglich der Wert des Sliders gefolgt von einem abschließenden \n gesendet
icht.aia hat einen Slider und zwei Schalt
uetooth.SendTex
ächen zum Ein- und Ausschal
werden die Wartezeit oder der
Der minimale Wert des Sliders ist 0, und der maximale Wert ist 2000. Die Werte stehen für die Wartezeit in Millisekunden.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3515007-3 Conrad Adventskalender Internet of Things 2017_02.indd 35 19.07.2017 14:15:1719.07.2017 14:15:17
Page 36
19. Ta
g
r
l
-
auteile
h
ino
-
;
;
o
d
Die
:
;
{
p
App
a
.
.
-
g
19. Ta
Heute im Adventskalende
•1x Jumperkabe
Die RGB-LED benötigt wieder keine Vorwiderstände. Das Jumperkabel nutzen Sie zur Herstel lung der Masseverbindung.
pp zur Auswahl von Hardware-Apps
Heute werden zwei Funktionalitäten in einer Schaltung kom biniert: Tonwiedergabe mit Piezo und Blinken einer RGB-LED. Per App wählen Sie die entsprechende Funktionalität aus.
B
: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand,
1xPiezo, 1xJumperkabel
Der Sketc
Das Programm für diesen Tag ist Tag19. zeichnis
ag19
Zunächst müssen die richtigen Pins als Variable
niert werden:
/---- Pins der RGB-LED nt redPin = 9; nt greenPin = 7; nt bluePin = 8
---- Pin Piezo
nt piezo = 3
Der Sketch reagiert auf die Kommandos Methoden wurden aus den bisherigen Sketches übernommen
und liegt im Ver
ez
un
rgb
Diese App nutzt für den Verbindungsaufbau die schon bekannten Elemente aus den anderen Apps. Über
ung herstellen etablieren Sie die Verbindung.
erbin-
if (Text.startsWith("piezo")){ aus() playMelody(); } else if (Text.startsWith("rgb")) blinken(500);
;
e Ap
e
pp_Wechsler.ai
Die Funktionalität ist in zwei when.Click-Blöcken abgebildet. Es wird lediglich der zu sen-
ende Text angepasst
Die Blöcke sind sehr ähnlich. Passen Sie in solchen Fällen auf, dass Sie die richtige Schaltfl äche im when.Click-Block auswählen
hat zwei Schaltfl ächen zum Wechsel zwischen Piezo und RGB.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3615007-3 Conrad Adventskalender Internet of Things 2017_02.indd 36 19.07.2017 14:15:1819.07.2017 14:15:18
Page 37
20. Ta
g
C
p
.
)
h
ino
-
s
0
l
d
:
{
;
p
luetooth Te
h
-
.
Heute im Adventskalender
•1x NT
Wärmesensor in der Ap
Im heutigen Projekt wird ein NTC zur Temperaturmessung ein­gesetzt. Testen können Sie das Projekt z.B. gut, indem Sie sich mit dem NTC einer Kerze auf dem Adventskranz nähern
Bauteile: 1x Steckbrett, 1xNTC, 1 x Potenziometer 15kOhm, 6xDrahtbrücke (unterschiedliche Längen
Der Sketc
Das Programm für diesen Tag ist Tag20. zeichni
ag2
ruf von ana
. Der Sketch ist sehr einfach aufgebaut. Nach
ogRea
wird der Wert über Bluetooth an die App gesendet, dann wird anschließend 2 Sekunden gewartet und erneut der Wert eingelesen und gesendet
oid loop() sensorValue = analogRead(sensorPin); HC05.print("Wert des NTC = ") HC05.println(sensorValue); delay(2000);
und liegt im Ver
0. Tag
ber das Potenziometer können Sie die Empfi ndlichkeit des NTC einstellen. Im Ruhezustand
ist ein Wert zwischen 500 und 600 empfehlenswert. Den Wert sehen Sie im Ausgabefenster
er App.
e Ap
Für die Anzeige der Texte wird die App zunächst mit dem IoT-Board, und schon sehen Sie Werte des NTC. Wenn die Werte kleiner wer den, ist das ein Anzeichen für steigende Temperatur.
rial B
rminalgenutzt. Verbinden Sie sic
Wie schon in den anderen Projekten werden empfangene Daten in grüner Schrift dargestellt. Vergessen Sie im Sketch nicht den Aufruf von delay ansonsten erhalten Sie zu viele Werte
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3715007-3 Conrad Adventskalender Internet of Things 2017_02.indd 37 19.07.2017 14:15:1819.07.2017 14:15:18
Page 38
21. Ta
g
r
r
m
n
auteile
)
h
-
s
1
tedauer be
y
.
{
);
);
p
uetoot
g
.
21. Ta
Heute im Adventskalende
•1x Fototransisto
•1x Widerstand 1 kOh
Der Aufbau ist ähnlich zu Tag 20. Vorsicht: Es wird ein anderer Widerstand genutzt, und die Verbindung zu VCC (+5V) ist wichtig
void loop() sensorValue = analogRead(sensorPin HC05.print("Wert des Fototransistors = "); HC05.println(sensorValue); delay(2000
elligkeit und Dunkelheit in der App messe
Nun haben Sie einen weiteren Sensor für Ihre Projekte. Mit dem Fototransistor können Sie Helligkeit und Dunkelheit anzeigen. Dies lernen Sie am heutigen Tag. Mit diesem Wissen können Sie schnell eine Lichtschranke bauen und haben damit eine Alarmanlage mit Anzeige in einer App.
B
: 1x Steckbrett, 1xFototransistor, 1xWiderstand
kOhm, 3xDrahtbrücke (unterschiedliche Längen
er Sketc
Das Programm für diesen Tag ist Tag21.ino und liegt im Ver
ichni
Falls Sie mehr Werte am Smartphone sehen wollen, so müssen
ie die War
ag2
. Der Sketch gleicht dem Sketch vom vorigen Tag.
im Aufruf von
ela
verringern
e Ap
Für die Anzeige der Texte wird die App mit dem IoT-Board, und schon sehen Sie Werte des Fototransistors. Schauen Sie sich an, wie sich die Werte bei Licht und Dunkelheit ändern.
rial Bl
h Terminal genutzt. Verbinden Sie sich zunächst
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3815007-3 Conrad Adventskalender Internet of Things 2017_02.indd 38 19.07.2017 14:15:1919.07.2017 14:15:19
Page 39
22. Ta
g
m
euchtemesse
.
auteile
h
ino
-
s
2
übe
l
d
:
{
;
p
uetoot
.
Heute im Adventskalender
•1x Feuchtesensor
•1x Widerstand 1 kOh
F
r
Heute bekommen Sie nochmals einen Sensor, einen Feuchte­sensor. Damit können Sie die Feuchtigkeit messen
B
: 1x Steckbrett, 1xFeuchtesensor, 1xWiderstand
1kOhm, 3xDrahtbrücke (unterschiedliche Längen)
Der Sketc
Das Programm für diesen Tag ist Tag22. zeichni
r Sensor
ag2
. Wie schon an den vorangegangenen Tagen wird
r ana
ogRea
ausgelesen und der Wert an die
Funkschnittstelle weitergegeben
oid loop() sensorValue = analogRead(sensorPin); HC05.print("Wert des Feuchtesensors = ") HC05.println(sensorValue); delay(2000);
und liegt im Ver
2. Tag
fritzing
ie Schaltung gleicht der Schaltung von Tag 21. Lediglich der Sensor muss
usgetauscht werden
e Ap
Für die Anzeige der Texte wird die App mit dem IoT-Board, und schon sehen Sie Werte des Feuchtesensors. Nehmen Sie den Feuchtesensor zwischen zwei Finger und beobachten Sie die Entwicklung der Werte.
rial Bl
h Terminal genutzt. Verbinden Sie sich zunächst
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 3915007-3 Conrad Adventskalender Internet of Things 2017_02.indd 39 19.07.2017 14:15:1919.07.2017 14:15:19
Page 40
23. Ta
g
r
l
Code e
esen Code übe
tte
das Io
g
auteile
-
h
-
3
Code
übe
ttelt:
)){
.
();
;
;
;
}
ode
uslesen
);
;
{
;
}
p
App
bcode.aia
abels
abe
h.
t
.
.
.
g
23. Ta
Heute im Adventskalende
•1x Jumperkabe
Damit der Taster auch gut funktioniert, wird ein Spannungsteiler über das Potenziometer aufgebaut. Statt der Drahtbrücken können Sie auch die Jumperkabel nutzen
Codebrecher
as heutige Projekt ist ein kleines Spiel: In einer App stellen
ie einen
in. Di
rmi
ln Sie an
T-
oard. Nun muss mit dem Taster der Code eingegeben werden.
enn der Code richtig eingegeben wurde, leuchtet die rote ED, und in der App wird angezeigt, dass der Code richti ingegeben wurde. Ansonsten leuchtet die rote LED nicht, und
n der App wird angezeigt, dass der Code falsch eingegeben
wurde.
B
: 1x Steckbrett, 1xTaster, 1xLED rot mit Vorwider-
tand, 1xPotenziometer 15 kOhm, 5x Drahtbrücke (unter
chiedliche Längen)
er Sketc
as Programm für diesen Tag ist Tag23.ino und liegt im Ver
ichnis
ag2
Der
if (Text.startsWith("C" anzahlTasten = Text.substring(Text indexOf("C")+1).toInt
wird in Form von CNNN
rmi
Über ein farbiges Label wird angezeigt, ob der Code über den Hardwaretaster richtig eingegeben wurde oder nicht
nsgesamt hat der Spieler fünf Sekunden Zeit, um den Code einzugeben:
interval = millis() – start Serial.println(interval) while (interval < 5000) { pressed += tasterAuslesen(); delay(100); interval = millis() – start
r die Meth
rA
wird geprüft, ob eine Taste gedrückt wurde. Zwischen den
rüfungen wird 100ms gewartet. Das Ergebnis wird an die App zurückgegeben:
if (pressed == anzahlTasten) { HC05.print("JA" digitalWrite(redPin, HIGH); delay(5000) digitalWrite(redPin, LOW); } else HC05.print("NEIN")
e Ap
e
Far
eingegebene Code angezeigt und mit dem zweiten Label wird der Spielstatus angezeigt. Falls der Code richtig über den Hardwaretaster eingegeben wurde, so wird die Hintergrundfarbe des Labels zum Spielstatus auf grün gesetzt, ansonsten auf rot.
er Code wird in einer globalen Variablen zwischengespeichert und dann mit
SendTex
übermittelt
hat drei Schaltfl ächen und zwei L
. Mit dem einen L
l wird der
uetoot
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4015007-3 Conrad Adventskalender Internet of Things 2017_02.indd 40 19.07.2017 14:15:2019.07.2017 14:15:20
Page 41
Da drei Schaltfl ächen für das Spiel benötigt werden, gibt es auch drei when.Click-Blöcke
.
-
.
.
Das Empfangen der Texte vom IoT-Block erfolgt im periodischen Timer. Hierbei wird der Timer verwen det, der schon zur Anzeige des Verbindungsstatus genutzt wird
Bei Empfang von JA wird die Hintergrundfarbe auf grün gestellt, ansonsten auf rot
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 41 19.07.2017 14:15:2019.07.2017 14:15:20
Page 42
24. Ta
g
r
-
-
h
-
Über die Funktio
tdaue
;
}
}
p
pp
a
-
e
utton.click
T
über die Funksc
ttstelle übe
ttelt
h
LED
.
g
4. Ta
Heute im Adventskalende
•1x Taster
Die heutige Schaltung gleicht der Schaltung vom Vortag. Lediglich wurde die rote LED durc
ne grüne
ersetzt.
eaktionsspiel
Zum Abschluss des Adventskalenders gibt es noch ein kleines Reaktionsspiel. Über eine Schaltfl äche in der App starten Sie
as Spiel. Die LED auf dem Steckbrett geht an, und sobald die LED ausgeht, müssen Sie auf den Taster drücken. Die Dauer wird in der App angezeigt.
Bauteile: 1x Steckbrett, 1xTaster, 1xLED grün mit Vorwider stand, 1xPotenziometer 15 kOhm, 5x Drahtbrücke (unter schiedliche Längen)
Der Sketc
Das Programm für diesen Tag ist Tag24.ino und liegt im Ver zeichnis
emessen, bis der Taster gedrückt wird:
if (Text.startsWith("START")){
digitalWrite(greenPin, HIGH); delay(1000); digitalWrite(greenPin, LOW);
ag24
n millis
ird die Zei
r
//Startzeit int dauer = millis();
Serial.println(interval) while (tasterAuslesen() != 1) { delay(100);
dauer = millis() – dauer; HC05.print(dauer); digitalWrite(greenPin, LOW);
e Ap
ie A
Reaktionsspiel.ai
etätigung der Schaltfl äche wird der Text über die Funkschnittstelle gesendet. Der ankom
ende Text vom IoT-Board wird in dem Label über der Schaltfl äche angezeigt.
ür das Starten des Spiels wird bei Klick auf die Schaltfl äche
rtB
ausgewertet und der Text
hat eine Schaltfl äche mit der Bezeichnung Spiel starten Bei
iel starten der Block wh
TAR
hni
rmi
n
.
ber der Schaltfl äche Spiel starten liegt ein Label ohne
Text. Erst wenn ein Text vom IoT-Board ankommt, wird der Text im Label gesetzt
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 42 19.07.2017 14:15:2019.07.2017 14:15:20
Page 43
3
Das Auslesen der Funkschnittstelle sollte immer in einem Timer erfolgen. Denn man weiß nicht genau, wann ein Datenpaket
ohe Weihnachte
ankommt.
4
Fr
n!
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 43 19.07.2017 14:15:2119.07.2017 14:15:21
Page 44
!
.
g
.
.
f
g
r
.
g
.
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.
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
eschrieben
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-
beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden
tun
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
nnahmestelle fi nden, sagt Ihnen Ihre kommunale Verwaltung
Warnung! Augenschutz und LEDs:
Blicken Sie nicht aus geringer Ent
ü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
erwendung von Sammellinsen geboten. Betreiben Sie die LEDs so, wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.
© 2017 Franzis Verla
lle 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 Verla
GmbH, Richard-Reitzner-Allee 2, 85540 Haa
ernung 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
folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 4415007-3 Conrad Adventskalender Internet of Things 2017_02.indd 44 19.07.2017 14:15:2119.07.2017 14:15:21
Loading...