15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 115007-3 Conrad Adventskalender Internet of Things 2017_02.indd 119.07.2017 14:14:4619.07.2017 14:14:46
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 215007-3 Conrad Adventskalender Internet of Things 2017_02.indd 219.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ühlschrank, vom Auto bis zum Zug, von der Produktionsmaschine bis zum Armband, alles ist programmierbar 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
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 315007-3 Conrad Adventskalender Internet of Things 2017_02.indd 319.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
Gold10
Schwarz
Braun
Rot2
Orange3310
rü
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 419.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
•1x 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, MacOSX 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-Anschlü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 519.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
dows10 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 / Boardden 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 619.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 719.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 819.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
•1x Steckbrett (SYB 46
•1x 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.
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 919.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
•1x LED rot mit Vorwiderstan
•1x Schaltdrah
Sie benötigen keinen separaten Widerstand, denn die LED hat diesen bereits integriert.
k
Heute lassen Sie eine LED mit einer Frequenz von 2Hz blin
ken.
auteile:
x Steckbrett, 1xLED 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 500ms 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 1019.07.2017 14:15:0519.07.2017 14:15:05
. Über eine if-Abfrage wird die Variable auf den anderen Pin gesetzt, und die gerade leuchtende
LED wird ausgeschaltet. Das Umschalten geschieht alle 500ms
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 1119.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
•1x 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
: 1x Steckbrett, 1xLED grün mit Vorwiderstand,
xLED gelb mit Vorwiderstand, 1xLED rot mit Vorwider-
tand, 1xDrahtbrü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
anguagedi
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 1219.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
:
defi ne Led
lue 2
d d
:
...
);
:
)){
);
);
}
)){
);
);
}
n
d
d
(
)
d
)
:
…
;
}
.
.
g
g
1
Heute im Adventskalender
•1x 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: 1x Steckbrett, 1xLED 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 Funktionalitä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
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 1319.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
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 1419.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
•1x Potenziometer, 15 kOhm
Steuerbares Laufl icht
Das heutige Projekt ist ein Laufl icht, dessen Geschwindigkeit
über ein Potenziometer gesteuert werden kann
B
: 1x Steckbrett, 1xLED grün mit Vorwiderstand,
1xLED gelb mit Vorwiderstand, 1xLED rot mit Vorwider
stand, 1x15-kOhm-Potenziometer, 4x 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.
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 1519.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
•1x Piez
Töne über App ausgebe
ber eine App geben Sie Töne auf einem Piezo aus
ile: 1x Steckbrett, 1xPiezo
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 1619.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 Entwicklung 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 Entwicklungsumgebung 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 1719.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 1819.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 1919.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_VerbindungundContainer_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 2019.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 2119.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 2219.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
•1x RGB-LED mit Vorwiderstand
RGB-LED
Eine normale LED leuchtet immer nur in einer Farbe. Die im Adventskalender 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: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand, 1xDrahtbrü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 2319.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 2419.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
•1x Taste
Tastendruck anzeige
Heute reagiert Ihr IoT-Board auf einen mechanischen Tastendruck und gibt eine Meldung an die Funkschnittstelle weiter.
B
5xDrahtbrü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 0V. Da der Widerstand sehr hoch
ist, besteht, solange der Taster gedrückt ist, auch keine Kurzschlussgefahr. Im gedrückten Zustand des
Tasters sind +5V und die Masseleitung direkt über diesen Widerstand verbunden.
: 1x Steckbrett, 1xTaster, 1xPotenziometer,
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 2519.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
•1x 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, 1xLED rot mit Vorwiderstand, 1xLED
rün mit Vorwiderstand, 1xDrahtbrü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 Tag8.
15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2615007-3 Conrad Adventskalender Internet of Things 2017_02.indd 2619.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
•1x LED orange mit Vorwiderstand
Laufl ichtgeschwindigkeit per App einstelle
Im heutigen Projekt steuern Sie über Bluetooth die Geschwindigkeit eines Laufl ichts
B
: 1x Steckbrett, 1xLED rot mit Vorwiderstand,
1xLED orange mit Vorwiderstand, 1xLED grün mit Vorwi
derstand, 1xDrahtbrü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 500ms leuchtet, und
vor Einschalten einer anderen LED wird 500ms 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 2719.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
•1x 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
: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand,
1xLED pink mit Vorwiderstand, 1xDrahtbrü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
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 2819.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 2919.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
•1x Knete ro
•1x 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
Der als Eingang geschaltete Pin ist über einen extrem hochohmigen Widerstand (20MOhm) mit +3,3V 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 10cm langes Stück des Schaltdrahts ab, entfernen Sie an beiden Enden auf
etwa 1cm 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 3019.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 3119.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
•1x 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
: 1x Steckbrett, 3xKnetestück, 2xWiderstand
0MOhm, 4x Drahtbrücke (unterschiedliche Längen)
Der Sketc
Das Programm für diesen Tag ist Tag15.
zeichnis
Kn
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 3219.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
•1x 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
: 1x Steckbrett, 1xBlink-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 Funktionen. 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
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 3319.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
•1x 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 2000ms gewartet, und der Wert wird erneut gelesen
Heute messen Sie den Wert eines Potenziometers über einen
analogen Eingang und geben den Wert in einer App aus
B
: 1x Steckbrett, 1xPotenziometer 15 kOhm,
xDrahtbrü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 3419.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
fl
fl
-
.
l
t
.
.
5
Heute im Adventskalender
•1x 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: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand
1xJumperkabel
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 3519.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
•1x 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
: 1x Steckbrett, 1xRGB-LED mit Vorwiderstand,
1xPiezo, 1xJumperkabel
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 3619.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
•1x NT
Wärmesensor in der Ap
Im heutigen Projekt wird ein NTC zur Temperaturmessung eingesetzt. Testen können Sie das Projekt z.B. gut, indem Sie sich
mit dem NTC einer Kerze auf dem Adventskranz nähern
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 3719.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
•1x Fototransisto
•1x Widerstand 1 kOh
Der Aufbau ist ähnlich zu Tag 20. Vorsicht: Es wird ein anderer Widerstand genutzt, und die
Verbindung zu VCC (+5V) ist wichtig
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.
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 3819.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
•1x Feuchtesensor
•1x Widerstand 1 kOh
F
r
Heute bekommen Sie nochmals einen Sensor, einen Feuchtesensor. Damit können Sie die Feuchtigkeit messen
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 3919.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
•1x 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
: 1x Steckbrett, 1xTaster, 1xLED rot mit Vorwider-
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 4019.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 4119.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
•1x 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.
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 4219.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 4319.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.
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 Internet, 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 4419.07.2017 14:15:2119.07.2017 14:15:21
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.