Conrad Components 10215 Profi Lernpaket Internet of Things Course material 14 years and over Bedienungsanleitung

Typ
Bedienungsanleitung
Internet of Things
10215-5 HB_Titelei_Layout 1 19.04.16 09:42 Seite 1
Pro
Ler npaket
Internet of Things
Verbinden Sie die reale Welt mit der digitalen Welt
D
10215-5 HB_Titelei_Layout 1 19.04.16 09:42 Seite 2
INHALT
Bevor es losgeht
.....................................................................................................................
t
4
Das IoT-WiFi-Board (NanoESP
............................................................................................
.
5
Bauteile im Lernpaket
...........................................................................................................
.
t
9
1 Das Mo
d
u
l
k
ennen
l
erne
n
..................................................................................................... 1
0
1.1 Grun
dl
egen
d
e AT-Befe
hle
....................................................................................... 1
0
1.2 Automatisc
h
e Konfi
g
uratio
n
.................................................................................
.
17
1.3 Er
k
ennun
g
eines Netzwer
ks
..................................................................................
23
2 UDP un
d
I
P
.............................................................................................................................26
2.1 Daten zwisc
h
en Boar
d
un
d
PC mit UDP austausc
h
e
n
......................................
2
8
2.2 Daten sen
d
en un
d
empfangen mit UDP
..............................................................
32
2.3 Eine LED mit UDP sc
h
a
l
ten
....................................................................................
3
4
2.4 Netzwerkschalter
.....................................................................................................
r
36
2.5 Analoger Sensor
.......................................................................................................
r
39
3 TCP-Client
..............................................................................................................................
t
4
4
3.1 Ein Browser
...............................................................................................................
r
4
4
3.2 Eine Internetuhr
.......................................................................................................
r
4
6
3.3 Temperaturanzeig
e
.................................................................................................
4
9
4 TCP-Server
.............................................................................................................................
r
5
2
4.1 TCP-Webserver
.........................................................................................................
r
5
2
4.2 Autonomer Webserver
.............................................................................................
54
4.3 Webseite mit Buttons
..............................................................................................
5
6
4.4 Einsc
h
ub: HTML-Cras
hk
urs
....................................................................................
5
8
4.5 RGB-LED über TCP steuer
n
....................................................................................
62
4.6 Lichtsensor
...............................................................................................................
r
66
4.7 GPIO-Contro
l
.............................................................................................................
69
4.8 Einsc
h
ub: Vom Internet aus auf
d
as Boar
d
zugreifen
.......................................
74
5
T
h
ingSpea
k
............................................................................................................................
7
8
5
.1 T
h
ingSpea
k
...............................................................................................................
7
8
5
.2 Twitch-Anzei
ge
.........................................................................................................
8
2
5
.3 Twitter-Alarmanla
ge
...............................................................................................
8
4
5.
4 T
a
lkB
ack
....................................................................................................................
86
5
.5 Cheerli
g
hts
................................................................................................................
89
5.6
Twitt
e
r-F
eue
rm
e
l
de
r mit T
a
lkB
ac
k-F
u
nkti
o
n
.......................................................
9
1
A Anhan
g
...................................................................................................................................
96
AT-K
o
mm
a
n
dos
....................................................................................................................
96
Pin
ou
t
....................................................................................................................................
98
10215-5 Lernpaket Internet of Things_02.indd 310215-5 Lernpaket Internet of Things_02.indd 3 19.04.2016 12:17:1219.04.2016 12:17:12
4
BEVOR ES LOSGEHT
Beim ersten Anschließen des IoT-WiFi-Boards (im Folgenden auch
NanoESP genannt) kann es vorkommen, dass der Computer den erforder-
lichen Treiber für den USB-to-Serial-Wandler nicht automatisch fi ndet. Ist
dies der Fall, sollten Sie den Treiber von der Seite www.iot.fkainka.de/driver
herunterladen und manuell installieren. In der Arduino-Software können
Sie dann den Port und als Board Arduino Nano (Prozessor: Atmega328)
auswählen. Danach sollte der Controller voll einsatzbereit sein.
Für die Arbeit mit dem seriellen Monitor müssen Sie ebenfalls Einstel-
lungen vornehmen. Als Baudrate wird hier 19200Baud verwendet. Zum
Senden von Befehlen müssen Sie außerdem die Option CRundNL neben
dem Menü für die Baudrate auswählen.
Die richtigen Einstellungen in der Arduino-Umgebung
10215-5 Lernpaket Internet of Things_02.indd 410215-5 Lernpaket Internet of Things_02.indd 4 19.04.2016 12:17:1719.04.2016 12:17:17
5
Ich habe mit den Arduino-IDE-Versionen 1.6.5 und 1.6.6 gearbeitet. Ältere
Versionen können Probleme verursachen. Die aktuelle Arduino-IDE-Ver-
sion fi nden Sie auf der Internetseite www.arduino.cc.
Bei allen Schwierigkeiten oder Problemen mit dem Board oder dem Lern-
paket können Sie jederzeit auf der Interseite www.iot.fkainka.de Hilfe fi n-
den. Auf dieser Seite fi nden Sie außerdem ein Forum, neue Nutzerprojek-
te und auch alle hier vorgestellten Programme in der neuesten Version.
In dem Lernpaket befi ndet sich ein Steckboard, auf dem Sie den
NanoESP, wie auf dem Bild unten gezeigt, stecken können. Dadurch
bleibt der meiste Platz für Experimente, während das WLAN-Modul hin-
ten über das Steckboard hinausragt. Das Micro-USB-Kabel kann dann,
wie auf dem Bild im folgenden Abschnitt gezeigt, eingesteckt werden
und stört nur minimal. Detailliertere Aufbaubilder nden Sie im jeweili-
gen Kapitel.
Das IoT-WiFi-Board (NanoESP)
Das Hauptelement dieses Lernpakets ist das IoT-WiFi-Board (NanoESP).
Wie man an der Platine recht gut erkennen kann, besteht das Board aus
zwei Komponenten. Bei der linken Hälfte handelt es sich um ein Ardui-
no-kompatibles Mikrocontrollersystem, das mit dem Arduino Nano ver-
gleichbar ist. Der rechte Teil ist das WLAN-Modul mit der Bezeichnung
ESP8266.
Z
u
d
i
ese
m Pr
odu
kt fin
de
n
S
i
e
u
nt
er
w
ww
.buc
h
.cd
Z
usa
tzm
a
t
e
ri
a
l
zum Down
l
oa
d
. Tra
g
en Sie für
d
ieses Pro
d
u
k
t im Ein
g
a
b
efe
ld
d
en
Code 1
02
15-
5
e
i
n
.
10215-5 Lernpaket Internet of Things_02.indd 510215-5 Lernpaket Internet of Things_02.indd 5 19.04.2016 12:17:1719.04.2016 12:17:17
6 | Bevor es losgeht
Diese beiden Komponenten kommunizieren über eine per Software
g
ene-
r
i
e
rt
e
se
ri
e
ll
e
Sc
hnitt
s
t
e
ll
e
mit
e
in
a
n
de
r
.
Das Pinlayout des Boards
A
uf dem Board
g
ibt es viele verschiedene Elemente, wie z.B. die Pins, von
denen eini
g
e eine besondere Funktion haben, oder auch die LEDs, deren
Funktionen nicht immer auf den ersten Blick ersichtlich sind. Damit Sie
n
icht den
Ü
berblick verlieren, sind im fol
g
enden Bild die wichti
g
sten
Funktionen und Bezeichnun
g
en der einzelnen Elemente auf
g
eführt.
Der NanoESP auf
dem Steckboard
10215-5 Lernpaket Internet of Things_02.indd 610215-5 Lernpaket Internet of Things_02.indd 6 19.04.2016 12:17:1719.04.2016 12:17:17
| Das IoT-WiFi-Board (NanoESP) 7
Das WLAN-Modul wird über so
g
enannte AT-Kommandos
g
esteuert. Dazu
ist der Arduino-Teil des Boards über die Pins 11 und 12 mit dem WLAN-Mo
-
dul verbunden. Eine kleine Schaltun
g
wandelt die 5-V-Pe
g
el in kompatib
-
le 3,3-V-Pe
g
el um. Die Pins 11 und 12 sollten Sie also in ei
g
enen Pro
j
ekten
ni
c
ht
be
n
u
tz
e
n
.
Weitere wichti
g
e Hardwareei
g
enschaften des Boards nden Sie in de
r
u
nteren Tabelle kurz auf
g
elistet
.
Die wichtigsten Pins
und Bezeichnungen
des Boards
10215-5 Lernpaket Internet of Things_02.indd 710215-5 Lernpaket Internet of Things_02.indd 7 19.04.2016 12:17:1719.04.2016 12:17:17
8 | Bevor es losgeht
Technische Daten
Mi
k
rocontro
ll
er: ATme
g
a328
Flash-Speicher: 32 kB (davon 0,5 kB für den Bootloa
-
der
)
SRAM: 2 k
B
EEPROM: 1 k
B
T
aktrate: 16 MHz
I/O-Pins: 20 (davon 2 für die Kommunikation
m
it dem WLAN-Modul
)
da
v
o
n PWM
:
6
davon analo
g
e Ein
g
än
g
e: 6
USB-to-Serial-Chip: CH340G
Betriebsspannun
g
: 5
V
Empfohlene Ein
g
an
g
sspannun
g
: 7 – 12
V
Maximaler Strom pro I
/
O-Pin: 40 m
A
Belastbarkeit des 3,3-V-Aus
g
an
g
s: 50 m
A
WLAN-Modul: ESP8266
SPI-Flash 4 Mbi
t
Betriebsspannun
g
: 3,3 V
WLAN-Standards: 802.11 b
/g/n
WLAN-Modi: Wi-Fi Direct
(
P2P
)
, Soft-A
P
F
i
rmware: AT-F
i
rmware Vers
i
on
0
.
22
Sonsti
g
es: Inte
g
rierter TCP
/
IP-Stac
k
+19,5 dBm Aus
g
an
g
sleistun
g
im
8
02.11b-Modu
s
Inte
g
rierte Low-Power-32-bit-CP
U
K
o
mm
u
nik
a
ti
o
n
übe
r
U
ART
10215-5 Lernpaket Internet of Things_02.indd 810215-5 Lernpaket Internet of Things_02.indd 8 19.04.2016 12:17:1819.04.2016 12:17:18
| Das IoT-WiFi-Board (NanoESP) 9
BAUTEILE IM
LERNPAKET
Nachfol
g
end fi nden Sie eine
Ü
bersicht über die im Lernpaket enthalte
-
n
e
n B
au
t
e
il
e.
1 IoT-WiFi-Board
(
NanoESP
)
1 Steckplatine
1m Schaltdraht
2 Taster
1 9-V-Clip
1 LED
(
rot
)
1 RGB-LED
(
4 Anschlussbeine
)
1 Widerstand 10 kOhm (Braun-Schwarz-Oran
g
e)
1 Widerstand 1 kOhm
(
Braun-Schwarz-Rot
)
1 Fototransistor
(
2 Anschlussbeine
)
1 NTC 10 kOh
m
1 Piezo-Lautsprecher
1 Potenziometer 10 kOhm mit rotem Drehknopf
10215-5 Lernpaket Internet of Things_02.indd 910215-5 Lernpaket Internet of Things_02.indd 9 19.04.2016 12:17:1819.04.2016 12:17:18
10
1
DAS MODUL
KENNENLERNEN
In diesem ersten Kapitel geht es um die grundsätzlichen Funktionen des
WLAN-Moduls. Das Modul wird über sogenannte AT-Kommandos gesteu-
ert. Alle hier verwendeten Beispielprogramme sowie Hilfe und weitere In-
formationen fi nden Sie übrigens unter www.iot.fkainka.de
Am einfachsten ist es, Sie laden sich das komplette Zip-Verzeichnis her-
unter und kopieren den entpackten Ordner komplett in Ihren Sketchord-
ner. Dann können Sie aus der Arduino-Oberfl äche heraus alle Program-
me nacheinander komfortabel öffnen.
1.1 | Grundlegende AT-Befehle
Einen ersten Eindruck von der Verwendung der AT-Befehle bekommt
man am besten, indem man sie einfach ausprobiert. Deswegen werden
Sie in diesem Abschnitt einige der grundlegenden Befehle des Moduls
kennenlernen.
Öffnen Sie hierfür das Programm P01_SoftwareSerial in der Arduino-IDE.
Es handelt sich um ein sehr simples Programm, das nichts weiter tut, als
alle Daten, die über die serielle Hardwareschnittstelle des Mikrocontrol-
lers empfangen werden, über die selbst defi nierte Softwareschnittstel-
le an den ESP-Controller durchzureichen. Das Ganze funktioniert auch
in umgekehrter Richtung. Wie man im Quelltext sehen kann, sind die
beiden Anschlüsse der Softwareschnittstelle die Pins 11 und 12. Diese
sollten in eigenen Projekten nicht als GPIO-Pins verwendet werden. Sie
benötigen außerdem die SoftwareSerial-Library, die bei den meisten Ar-
duino-Versionen schon vorinstalliert ist – falls nicht, sollten Sie die Li-
brary über den Manager herunterladen.
Nachdem das Programm hochgeladen wurde, können Sie den seriellen
Monitor der Arduino-Oberfl äche starten. Bevor es losgehen kann, müs-
sen Sie noch zwei wichtige Einstellungen am Serial Monitor vornehmen,
nämlich unten rechts in der Ecke die Baudrate auf 19200 stellen und in
der Box links daneben die Einstellung CR und NL vornehmen.
Programm-
datei:
P01_
SoftwareSerial.ino
10215-5 Lernpaket Internet of Things_02.indd 1010215-5 Lernpaket Internet of Things_02.indd 10 19.04.2016 12:17:1819.04.2016 12:17:18
11
Jetzt können Sie schon eine Meldung sehen, nämlich AT und ein paar
Zeilen darunter OK. Das Kommando AT wurde vom Mikrocontroller an das
ESP-Modul gesendet und das Modul hat mit OK geantwortet. Hieran kön-
nen Sie erkennen, dass das WLAN-Modul funktioniert und einsatzbereit
ist.
1.1.1 | Basis-Befehle
Einige grundlegende Befehle des Moduls können Sie nun testen, indem
Sie einfach das Kommando eintippen und mit
[Enter] an das Modul sen-
den. Die Großschreibung des Befehls ist dabei von Bedeutung. Sie kön-
nen Ihren ersten eigenen Befehl übermitteln, indem Sie
AT
in den seriellen Monitor eintippen und [Enter] drücken. Das hochgela-
dene Programm reicht den Befehl an das ESP-Modul durch, das wieder-
um mit AT und danach OK antwortet. Der nächste Befehl, den Sie testen
können, lautet:
AT+GM
R
Mit diesem Befehl werden die aktuelle Firmware und die Versionsnum-
mer ausgegeben.
Mit dem Befehl
AT+R
ST
Terminal-Einstel-
lungen: CR und NL
und eine Baudrate
von 19200
10215-5 Lernpaket Internet of Things_02.indd 1110215-5 Lernpaket Internet of Things_02.indd 11 19.04.2016 12:17:1819.04.2016 12:17:18
12 1 | Das Modul kennenlernen
1
nn
e
n
S
i
e
das
M
odu
l z
u
r
üc
k
se
tz
e
n
.
S
i
e
se
h
e
n
da
nn im T
e
rmin
a
l
z
unächst ein paar unleserliche Zeichen und am Ende
r
ead
y
als Zeichen
,
d
ass
d
as Mo
d
u
l
nun
b
ereit ist. Ein weiterer Befe
hl
l
autet
:
A
TE
0
Mit ihm ist es mö
g
lich, das so
g
enannte Echo des Moduls zu deaktivieren.
Das bedeutet, dass Sie das
g
esendete Kommando nicht zurück
g
esendet
b
ekommen, sondern nur die Antwort. Wenn Sie beispielsweise
AT
senden,
T
ko
mmt ni
c
ht
e
r
s
t
AT
und dann
T
O
K
,
sondern nu
r
O
K z
u
r
üc
k
.
F
ü
r Ihr
e
e
r
s
t
e
n
Gehversuche ist es aber ratsam
,
das Echo mit
A
TE1
wie
d
er zu a
k
tivieren
.
Erste Versuche mit
den AT-Befehlen
10215-5 Lernpaket Internet of Things_02.indd 1210215-5 Lernpaket Internet of Things_02.indd 12 19.04.2016 12:17:1819.04.2016 12:17:18
1.1 | Grundlegende AT-Befehle 13
1.1.2 | WLAN-Befehle
M
it
d
en fo
lg
en
d
en WLAN-Komman
d
os
k
önnen Sie
d
ie WLAN-Ei
g
ensc
h
af
-
ten des Moduls verändern. Bei manchen Befehlen können Sie nicht nu
r
einen Zustand festle
g
en, sondern auch den aktuellen Zustand erfra
g
en.
D
ies
g
eschieht, indem Sie direkt hinter dem Befehl ein Fra
g
ezeichen ein
-
f
ü
g
en, z.B.
AT+CWMODE
?
Als Rück
g
abewert kommt im Re
g
elfall
+
C
WM
O
DE=2
g
efol
g
t von OK. Wenn Sie
AT+
C
WM
O
DE=
?
eintippen, antwortet das Modul Ihnen mit den mö
g
lichen Parametern des
B
efehls
,
hier nämlich 1-3. Bei CWMOD
E
handelt es sich übrigens um den
E
B
efehl, mit dem Sie den WLAN-Modus festle
g
en können.
E
s
g
ibt also drei Betriebsarten, die ich im Fol
g
enden nacheinander erläu
-
t
ere
.
AT+CWMODE=2 – das Modul als Access Point (AP-Modus
)
I
m Auslieferzustand ist das Modul ein Access Point. Das bedeutet
,
dass
Sie mit einem WLAN-fähi
g
en Gerät, wie einem Smartphone oder einem PC,
eine direkte Verbindun
g
mit dem Modul aufnehmen können. Dazu suchen
Sie einfach das offene WLAN mit dem Namen NanoES
P
und verbinden sich
damit. Im Werkszustand ist kein Passwort ver
g
eben, sodass das Verbinden
kein Problem darstellt. Wenn Sie mit dem Modul verbunden sind
,
haben
Sie keine Verbindun
g
zum Internet, denn das Modul ist kein Router mit
einer ei
g
enen Verbindun
g
zum Telefonnetz. Dieser WLAN-Modus ist abe
r
dennoch sinnvoll, wenn Sie beispielsweise ein sicheres, ab
g
eschlossenes
N
etzwerk benöti
g
en. Apropos Sicherheit: Es
g
ibt auch die Mö
g
lichkeit, dem
N
etzwerk ein Passwort zuzuteilen
,
und zwar über den Befehl:
AT+
C
W
S
A
P
E
s müssen hier noch Parameter an
g
e
g
eben werden, und zwar der Rei-
henfol
g
e nach und mit Komma
g
etrennt:
der Name des Netzwerks in Anführun
g
szeichen,
das Passwort in Anführun
g
szeichen,
10215-5 Lernpaket Internet of Things_02.indd 1310215-5 Lernpaket Internet of Things_02.indd 13 19.04.2016 12:17:1919.04.2016 12:17:19
14 1 | Das Modul kennenlernen
1
die Channel ID
(
beliebi
g
er Wert zwischen 1 und 13
)
,
und der Verschlüsselun
g
smodus (Wert von 0-4).
Eine mö
g
liche Einstellun
g
wäre:
A
T+CWSAP="M
y
NanoESP","M
y
Password",5,
3
Nach einer kurzen Zeit erscheint
OK
als Bestätigung. Sollte ein
K
ERROR
erscheinen, prüfen Sie noch einmal Ihre Ein
g
aben, vor allem die Anfüh-
r
un
g
szeichen. Sollte dennoch ein ERR
O
R erscheinen, prüfen Sie, ob de
r
C
WM
O
DE wirkli
c
h
2
is
t
.
Wenn alles funktioniert hat, können Sie sich mit einem WLAN-fähi
g
en
Ge
r
ä
t mit
de
m B
oa
r
d
v
e
r
b
in
de
n
.
All
e
mit
de
m M
odu
l v
e
r
bu
n
de
n
e
n
Ge
r
ä
t
e
k
önnen Sie mit IP- und MAC-Adresse über den Befehl
A
T+
C
WLIF
anzei
g
en lassen
.
Das Modul im Sta-
tionsmodus. Die IP
des verbundenen
Rechners ist mar-
kiert.
10215-5 Lernpaket Internet of Things_02.indd 1410215-5 Lernpaket Internet of Things_02.indd 14 19.04.2016 12:17:1919.04.2016 12:17:19
1.1 | Grundlegende AT-Befehle 15
AT+
C
WM
O
DE=1 –
das
M
odu
l im
S
t
a
ti
o
n
s
m
odus
M
it
de
m B
e
f
e
hl
AT+
C
WM
O
DE=1
setzen Sie das Modul in den Stationsmodus. Dieser Modus ermö
g
licht es
I
hnen, eine Verbindun
g
zu Ihrem WLAN-Router aufzubauen. Dadurch ist
das Modul auch mit dem Internet verbunden und hat viel mehr Mö
g
lich
-
keiten
.
Z
u
v
o
r k
ö
nn
e
n
S
i
e
abe
r mit
de
m B
e
f
e
hl
AT+
C
WLAP
alle Netzwerke in Reichweite aufl isten lassen und somit überprüfen, ob
I
hr Netzwerk im Empfan
g
sradius ist. Um eine Verbindun
g
zu Ihrem Route
r
aufbauen zu können, benöti
g
en Sie den Befehl
AT+
C
W
J
AP
D
ieser hat, ähnlich wie der CWSAP-Befehl, wichti
g
e Parameter, nämlich
den Namen des WLAN-Netzwerks (auch SSID
g
enannt) und das Passwort,
beides erneut in Anführun
g
szeichen und durch ein Komma
g
etrennt. Ein
Verbindun
g
saufbau zu einem zweiten Modul, das mit den im vorheri
g
en
Abschnitt erläuterten Daten ein
g
estellt ist, sähe also so aus
:
AT+CWJAP="M
y
NanoESP","M
y
Password
"
D
er Verbindun
g
saufbau kann ein paar Sekunden dauern und sollte dann
OK
zurückgeben. Sie können übrigens die vom Router vergebene IP des
K
M
oduls mit dem Befehl
AT+
C
IF
SR
abrufen. Dies wird später wichti
g
sein, wenn Sie eine Verbindun
g
zu dem
TCP-Server des Moduls herstellen wollen. Mit dem Befehl
AT+CW
Q
AP
können Sie die Verbindun
g
zu Ihrem Router auch wieder trennen.
10215-5 Lernpaket Internet of Things_02.indd 1510215-5 Lernpaket Internet of Things_02.indd 15 19.04.2016 12:17:1919.04.2016 12:17:19
16 1 | Das Modul kennenlernen
1
AT+CWMODE=3 – der duale Modus
Der dritte mö
g
liche Modus der WLAN-Einstellun
g
ist der duale Modus.
Er ermö
g
licht, wie der Name bereits vermuten lässt, das Betreiben des
Moduls sowohl im Stations- als auch im AP-Modus. Das bedeutet
,
es kön-
n
en Geräte sowohl eine direkte WLAN-Verbindun
g
mit dem Modul auf-
b
auen oder das Modul über den Router als Zwischenstation erreichen. Ein
p
raktischer Modus, z.B. wenn man ein internes Netz mit mehreren Modu-
l
en plant und dennoch ein Modul als Server dienen soll, der die Daten ins
Netz liefert. Aber dazu später mehr.
Befehlsübers
i
cht
i
m Anhan
g
und auf der Webse
i
te
Alle wichti
g
en Befehle fi nden Sie übri
g
ens auch im Anhan
g
und auf
de
r
be
r
e
it
s
e
rw
ä
hnt
e
n W
ebse
it
e
www
.
i
o
t
.
fk
a
ink
a.de
.
M
a
n
c
h
e
B
e
f
e
h-
l
e, wie das Einstellen der Baudrate, wurden bewusst nicht auf
g
elis
-
t
et
,
da Sie damit das Modul unbrauchbar machen könnten
.
Das Board baut
eine Verbindung
zu einem zweiten
NanoESP auf.
10215-5 Lernpaket Internet of Things_02.indd 1610215-5 Lernpaket Internet of Things_02.indd 16 19.04.2016 12:17:1919.04.2016 12:17:19
1.2 | Automatische Konfi guration 17
1.2 | Automatische Konfi guration
D
ie
g
run
dl
e
g
en
d
en Befe
hl
e
k
onnten Sie
b
ereits manue
ll
testen. In
d
ie
-
sem Kapitel soll nun die Fra
g
e
g
eklärt werden, wie diese Befehle auto
-
matisch über den Controller bedient werden können. Außerdem lernen
Sie einen weiteren Befehl kennen
,
mit dem Sie testen können
,
ob ein PC
im Netzwerk oder ein Server im Internet erreichbar ist. In diesem Beispiel
wird nämlich der Goo
g
le-Server an
g
epin
g
t. In dem Beispielpro
g
ramm
P02_Goo
g
lePin
g
werden die Vor
g
än
g
e, die Sie im ersten Beispiel manuell
ein
g
etippt haben, nun
g
rößtenteils automatisiert. Der Controller schickt
n
ac
h
e
in
a
n
de
r B
e
f
e
hl
e
a
n
das
E
S
P-M
odu
l
u
n
d
s
t
e
llt
so
u.
a.
d
i
e
V
e
r
b
in
-
d
un
g
zum WLAN her. Die verschieden lan
g
en Timeout-Zeiten
g
eben dem
M
odul
g
enü
g
end Zeit zum Antworten.
B
evor das Pro
g
ramm aber richti
g
funktionieren kann, müssen Sie Ihre
WLAN-Daten hinter #defi ne SSID
u
nd #defi ne PASSWORD
g
leich zu Be
g
inn
des Pro
g
ramm-Quellcodes eintra
g
en. Das Modul benöti
g
t nämlich Zu
g
an
g
zum Internet
,
um seinen letzten Befehl ausführen zu können. Mit dem Befehl
AT+PIN
G
können andere Geräte im Netzwerk an
g
epin
g
t werden. Pin
g
en bedeutet,
dass man anfra
g
t, ob ein Rechner
g
rundsätzlich erreichbar ist. Hier wird
der Goo
g
le-Server mit
A
T+PING="www.
g
oo
g
le.de" an
g
epin
g
t. Wenn eine
Antwort zurückkommt, erscheint eine Erfol
g
smeldun
g
im Serial Monito
r
und die mit D
3
beschriftete LED
,
die am Pin D1
3
d
es Boards an
g
eschlos
-
sen ist
,
wird aktiviert. Die erste Kommunikation mit dem Internet wäre
dann
g
e
g
lückt.
Das Pro
g
ram
m
Im Fol
g
enden werden wir die Funktionen des Pro
g
ramms schrittweise ana
-
lysieren. Zu Be
g
inn wird die Kommunikation mit dem Modul besprochen
.
Serielle Kommunikatio
n
Das Ganze funktioniert über die serielle Software-Schnittstelle
,
die mit
der
SoftwareSerial-Librar
y
bereit
g
estellt wird. Beim Initialisieren müssen
außerdem die verwendeten Pins an
g
e
g
eben werden, in diesem Fall die
Pin
s
11
u
n
d
12
.
00
1
#
include <SoftwareSerial.h
>
00
2
S
oftwareSerial esp8266(11, 12)
;
Programm-
datei:
P02_GooglePing.ino
Die Bezeichnung
für die Instanz der
Klasse Software-
Serial heißt ab jetzt
esp8266, genau wie
das WLAN-Modul.
10215-5 Lernpaket Internet of Things_02.indd 1710215-5 Lernpaket Internet of Things_02.indd 17 19.04.2016 12:17:1919.04.2016 12:17:19
18 1 | Das Modul kennenlernen
1
Genau wie bei der normalen seriellen Schnittstelle können dann Bytes
oder
g
anze Zeilen mit den Befehlen
esp8266.print
oder
t
esp8266.println
üb
ertra
g
en wer
d
en. Beson
d
ers pra
k
tisc
h
sin
d
auc
h
d
ie Befe
hl
e esp8266
.
nd und
e
sp8266.fi ndUnti
l
,
mit denen ein ankommender Stream auf
b
estimmte Zeichenketten überprüft werden kann. Dadurch ist es recht
einfach, die passende Antwort des Moduls abzufan
g
en. Wenn allerdin
g
s
eine erwartete Zeichenkette nicht auftaucht, kann es eine
g
anze Weile
dauern, bis das Pro
g
ramm weiter
g
eht. Die Wartezeit (Timeout) wird durch
e
sp8266.setTimeout
de
ni
e
rt
.
Mit
ndUntil
()
ka
nn
abe
r
auc
h
e
in
e
zw
e
i-
te Zeichenkette defi nieren werden, bei der die Suchfunktion ausstei
g
t
u
nd false als Rück
g
abewert liefert. Dies machen wir uns in der Funktion
sendCom
()
z
u
n
ut
z
e:
//
-------Controll ESP-------
-
002
003 boolean sendCom(String command, char respond[]
)
004
{
005 esp8266.println(command)
;
006 if (esp8266.findUntil(respond, "ERROR")
)
007
{
008 return true
;
00
9
}
0
1
0
e
l
se
0
11
{
0
1
2
debu
g
("ESP SEND ERROR: " + command)
;
013 return false
;
014 }
015 }
Wenn Sie die Funktion aufrufen, müssen Sie also den Befehl und den
erwarteten Rück
g
abewert an die Funktion über
g
eben, z.B.
AT
und den
T
erwarteten Rückgabewert
OK
.
Ü
be
r
p
rintln
()
w
ird das Kommando über
-
tragen und schließlich gewartet, bis der erwartete Rückgabewert oder ein
ERR
O
R
e
mpfangen wird. Ist die Erwartung erfüllt, gibt die Funktion den
W
e
rt
t
r
ue
z
urück. Falls nicht, sendet das Modul über die
d
ebug
()-
Fu
nk
-
t
io
n
ei
n E
S
P
S
END ERR
O
R
u
nd das
g
esendete Kommando zurück, sodass
m
an leicht über
p
rüfen kann, welcher Befehl die Probleme verursacht.
Ni
c
ht
a
ll
e
AT
-Befehle haben einen eindeuti
g
en oder einzeili
g
en Rück
g
a-
b
ewert. Wird z.B. die IP-Adresse ab
g
efra
g
t,
g
ibt es in der Re
g
el keinen
vorher bekannten Wert. Deswe
g
en
g
ibt es eine zweite
s
endCom
()
-F
u
nk-
tion, die nur den Paramete
r
co
mm
a
n
d
b
enöti
g
t und dann den
g
esamten
Überprüfung, ob in
der Antwort ERROR
enthalten ist
10215-5 Lernpaket Internet of Things_02.indd 1810215-5 Lernpaket Internet of Things_02.indd 18 19.04.2016 12:17:1919.04.2016 12:17:19
1.2 | Automatische Konfi guration 19
empfan
g
enen Strin
g
zurück
g
ibt. Der Strin
g
sollte aber nicht zu lan
g
sein,
de
nn
de
r B
u
ff
e
r v
o
n
So
ftw
a
r
eSe
ri
a
l
ka
nn
übe
rl
au
f
e
n
.
001
String sendCom(String command
)
00
2
{
003
es
p
8266.
p
rintln(command)
;
004
return esp8266.rea
d
String
();
00
5
}
F
e
hl
e
r
suc
h
e
Beim Entwickeln von Pro
g
rammen kommt es oft zu Fehlern und Kom
-
plikationen. Damit man überhaupt eine Chance hat,
g
ibt es zwei
d
e
b
u
g
-Fun
k
tionen,
d
ie ü
b
er einen Parameter
g
anz zu Be
g
inn
d
es Pro
-
g
ramms aktiviert oder deaktiviert werden.
#define DEBUG tru
e
Die erste Funktion bewirkt nichts weiter als eine vereinfachte Aus
g
abe
von Text über die als Standard defi nierte serielle Schnittstelle. Wenn die
K
onstante
D
EBU
G
wahr ist, wird der Inhalt der Zeichenkette
M
s
g
gesen-
det.
00
1
void debug(String Msg
)
00
2
{
00
3
if
(
DEBUG
)
00
4
{
005
Serial.println(Msg)
;
00
6
}
007
}
Die zweite Funktion ist ebenfalls schnell erklärt. Wird die Funktion
serialDebu
g
auf
g
erufen,
g
eht das Pro
g
ramm in eine Dauerschleife übe
r
u
nd verhält sich von da ab wie das erste
g
etestete SoftwareSeria
l
-
P
ro
-
g
ramm. Das heißt, dass alle Daten, die über den seriellen Monitor an den
Controller
g
esendet werden, direkt an das Modul weiter
g
ereicht werden
u
n
d
a
n
de
r
s
h
e
r
u
m
.
In
e
in
e
m F
e
hl
e
rf
a
ll k
a
nn m
a
n
a
l
so
d
i
e
F
u
nkti
o
n
au
fr
u-
fen und manuell Befehle senden, um zu testen, wo der Fehler ist
.
00
1
//
---Debug Functions--
-
00
2
void serialDebug()
{
003
w
h
i
l
e
(
true
)
00
4
{
10215-5 Lernpaket Internet of Things_02.indd 1910215-5 Lernpaket Internet of Things_02.indd 19 19.04.2016 12:17:1919.04.2016 12:17:19
20 1 | Das Modul kennenlernen
1
00
5 if (es
p
8266.available()
)
006 Serial.write(esp8266.read())
;
00
7
if
(
Serial.available
())
008 esp8266.write(Serial.read())
;
009
}
0
1
0
}
Kon
g
uration
Um die Pro
g
ramme all
g
emein übersichtlicher zu
g
estalten, wurden die
m
eisten Einstellun
g
en ebenfalls in ei
g
ene Funktionen aus
g
ela
g
ert, allen
v
o
r
a
n
d
i
e
F
u
nkti
o
n
e
spCon
g
,
in der die wichti
g
sten Parameter für das
j
eweili
g
e Pro
g
ramm
g
esetzt werden.
001
//
---Config ESP8266--
-
002
b
oo
l
ean espConfig
()
003
{
004 boolean success = true
;
005 esp8266.setTimeout(5000)
;
006 success &= sendCom("
A
T+RST", "ready")
;
007
esp8266.setTimeout(1000)
;
008
00
9
if (confi
g
Station(SSID, PASSWORD))
{
0
1
0
success &= true
;
0
11
debug("WL
A
N Connected")
;
0
12
d
e
b
ug
(
"My IP is:"
);
013 debu
g
(sendCom("AT+CIFSR"))
;
014 }
015 else
0
16 {
0
1
7
success &= false
;
018 }
0
1
9
020
success &= sendCom("
A
T+CIPMODE=0", "OK")
;
02
1
success &= sendCom("
A
T+CIPMUX=0", "OK")
;
02
2
023 return success
;
024 }
Zu Be
g
inn der Funktion wird zunächst die Variable
success
auf
tr
ue
g
esetzt, denn diese Variable wird nun mit verschiedenen Funktionen
Und-verknü
p
ft. Das bedeutet, wenn auch nur eine der Funktionen den
We
rt f
a
l
se
zurückliefert
,
wird
success
ebe
nf
a
ll
s
so
f
o
rt f
a
l
se
u
n
d
d
i
e
10215-5 Lernpaket Internet of Things_02.indd 2010215-5 Lernpaket Internet of Things_02.indd 20 19.04.2016 12:17:1919.04.2016 12:17:19
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83
  • Page 84 84
  • Page 85 85
  • Page 86 86
  • Page 87 87
  • Page 88 88
  • Page 89 89
  • Page 90 90
  • Page 91 91
  • Page 92 92
  • Page 93 93
  • Page 94 94
  • Page 95 95
  • Page 96 96
  • Page 97 97
  • Page 98 98
  • Page 99 99
  • Page 100 100

Conrad Components 10215 Profi Lernpaket Internet of Things Course material 14 years and over Bedienungsanleitung

Typ
Bedienungsanleitung