65316 - Spielzeug Franzis Verlag - Kostenlose Bedienungsanleitung
Finden Sie kostenlos die Bedienungsanleitung des Geräts 65316 Franzis Verlag als PDF.
| Produkttyp | Lernpaket Internet der Dinge (IoT Maker Kit) |
| Modell | 65316 |
| Marke | Franzis Verlag |
| Mikrocontroller | ATmega328 (Arduino Nano kompatibel) |
| Taktfrequenz | 16 MHz |
| Flash-Speicher | 32 KB (0,5 KB Bootloader) |
| SRAM | 2 KB |
| EEPROM | 1 KB |
| I/O-Pins | 20 (davon 6 PWM, 6 analoge Eingänge) |
| WLAN-Modul | ESP8266 (802.11 b/g/n, Wi-Fi Direct, Soft-AP) |
| WLAN-Firmware | AT-Firmware Version 0.22.0.0 |
| USB-Schnittstelle | CH340G (USB-to-Serial) |
| Betriebsspannung | 5 V über Micro-USB oder 7-12 V über Batterieclip |
| Stromaufnahme (max. pro Pin) | 40 mA (I/O), 50 mA (3,3-V-Ausgang) |
| Lieferumfang | 1 IOT-Board (Pretzel Board), 2 Steckplatinen, LC-Display 2-zeilig, Piezo, 2 Taster, rote LED, RGB-LED, Fototransistor, NTC, Potenziometer, 9-V-Batterieclip, Widerstände (100/470/1k/10k Ω), Schaltdraht |
| Abmessungen (Board) | ca. 53 x 19 mm |
| Gewicht (Board) | ca. 30 g |
| Altersempfehlung | ab 14 Jahren |
| Sicherheit | CE-Kennzeichnung; Augenschutz bei LEDs beachten; nicht für Kinder unter 14 Jahren |
| Reinigung | Mit trockenem Tuch reinigen; keine feuchten Tücher verwenden |
| Reparatur | Nicht vorgesehen, Einzelteile grundsätzlich austauschbar |
Häufig gestellte Fragen - 65316 Franzis Verlag
Benutzerfragen zu 65316 Franzis Verlag
0 Frage zu diesem Gerät. Beantworten Sie die, die Sie kennen, oder stellen Sie Ihre eigene.
Eine neue Frage zu diesem Gerät stellen
Laden Sie die Anleitung für Ihr Spielzeug kostenlos im PDF-Format! Finden Sie Ihr Handbuch 65316 - Franzis Verlag und nehmen Sie Ihr elektronisches Gerät wieder in die Hand. Auf dieser Seite sind alle Dokumente veröffentlicht, die für die Verwendung Ihres Geräts notwendig sind. 65316 von der Marke Franzis Verlag.
BEDIENUNGSANLEITUNG 65316 Franzis Verlag
Bibliografische Information der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte Daten sind im Internet über http://dnb.ddb.de abrufbar.
Alle in diesem Buch vorgestellten Schaltungen und Programme wurden mit der größtmöglichen Sorgfalt entwickelt, geprüft und getestet. Trotzdem können Fehler im Buch und in der Software nicht vollständig ausgeschlossen werden. Verlag und Autor haften in Fällen des Vorsatzes oder der groben Fahrlässigkeit nach den gesetzlichen Bestimmungen. Im Übrigen haften Verlag und Autor nur nach dem Produkthaftungsgesetz wegen der Verletzung des Lebens, des Körpers oder der Gesundheit oder wegen der schuldhaften Verletzung wesentlicher Vertragspflichten. Der Schadensersatzanspruch für die Verletzung wesentlicher Vertragspflichten ist auf den vertragstypischen, vorhersehbaren Schaden begrenzt, soweit nicht ein Fall der zwingenden Haftung nach dem Produkthaftungsgesetz gegeben ist.
Warnung! Augenschutz und LEDs:
Blicken Sie nicht aus geringer Entfernung 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 fü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 Verwendung von Sammellinsen geboten. Betreiben Sie die LEDs so wie in der Anleitung vorgesehen, nicht aber mit größeren Strömen.
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 beschrieben.

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 Anleitung beschrieben wird. Das Produkt darf nur zusammen mit dieser Anleitung weitergegeben werden.
Das Symbol der durchkreuzten Mülltonne bedeutet, dass dieses Produkt getrennt vom Hausmüll als Elektroschrott dem Recycling zugeführt werden muss. Wo Sie die nächstgelegene kostenlose Annahmestelle finden, sagt Ihnen Ihre kommunale Verwaltung.

Autor: Fabian Kainka
Produktmanagement: Dr. Markus Stäuble
Art & Design: www.ideehoch2.de
© 2015 Franzis Verlag GmbH, Richard-Reitzner-Allee 2, 85540 Haar
Alle 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 Verlag folgt bei den Produktbezeichnungen im Wesentlichen den Schreibweisen der Hersteller.
INHALT
Bevor es losgeht 6
Das Pretzel Board ....7
Technische Daten 8
Bauteile im Lernpaket....9
1 Das Moul kennenlernen....1C
1.1 Grundlegende AT-Befehle....1 C
1.2 Automatische Konfiguration ..... 17
1.3 Erkennung eines Netzwerks 23
2 UDP uhlP 26
2.1 Daten zwischen Board und PC mit UDP austauschen 28
2.2 Daten dem und empfangen mit UDP 31
2.3 Eine LED mit UDP sc halten 33
2.4 Netzwerkschalter 35
2.5 Analoger Ser.... 38
2.6 Netzwerk-Pager 41
3 TCP-Client 44
3.1 Ein Browser 44
3.2 Eine Internet 46
3.3 Temperaturanzeige 49
3.4 Mediacenter-Steuerung.... 52
4 TCP-Server 58
4.1 TCP-Webserver 58
4.2 Autonomer Webserver 6C
4.3 Webseite mit Buttons 62
4.4 Einschub: HTML-Crashkurs....64
4.5 RGB-LED über TCP steuer n 67
4.6 Lichtsensor 70
4.7 GPIO Contro 72
4.8 Text to layDisp....76
4.9 Einschub: Vom Internet aus auf das Board zugreifen.... 78
5 ThingSpeak 82
5.1 ThingSpeak 82
5.2 Twitch-Anzeig e 86
5.3 Twitter-Alarmanlage 88
5.4 TalkBack 90
5.6 Twitter-Feuermelder mit Talkback-Funktion 94
6 Anhang 10C
6.1 At-Kommandos....10C
BEVOR ES LOSGEHT
Beim ersten Anschließen des Boards kann es vorkommen, dass der Computer den erforderlichen Treiber für den USB-to-Serial-Wandler nicht automatisch findet. 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.

text_image
P19_TCPServerGPIO | Arduino 1.6.5 Datei Bearbeiten Sketch Werkzeuge Hilfe P19_TCPServerGPIO /* TCP-Server GPIO Change SSID and PASSWORD. # #det: #det: #det: WLAN Connected My IP is: #det: AT+CIFSR #1nc: +CIFSR:STAIP, "192.168.178.72" +CIFSR:STAMAC, "18:fe:34:a4:67:87" OK con: "Die richtigen Einstellungen in der Arduino-Umgebung
Ich habe mit den Arduino-IDE-Versionen 1.6.4 — 1.6.5 gearbeitet. Ältere Versionen können Probleme verursachen. Die aktuelle Arduino-IDE-Version finden Sie auf der Internetseite www.arduino.cc
Für manche Linux-Versionen existiert derzeit allerdings nur eine alte Version. Tipps, wie Sie dieses und andere Probleme lösen können, fi nden Sie auf der Internetseite www.iot.fkainka.de
Dort fi nden Sie auch alle hier vorgestellten Beispiele und einiges Nützliches mehr.
In dem Lernpaket befin den sich zwei Steckboards, die Sie, wie unten zu sehen, ineinander stecken können. Am besten ist es, wenn Sie das Pretzel Board und das Display wie im Bild auf die Steckboards stecken. Dadurch bleibt der meiste Platz für Experimente, während das WLAN-Modul hinten über das Steckboard hinausragt und das Display auf dem unteren Steckboard genug Platz hat. Das Micro-USB-Kabel hängt dann zwischen den Kontaktseiten und stört nur minimal. Detailliertere Aufbaubilder fi n den Sie im jeweiligen Kapitel.

text_image
Temp: 23.32 C Color: PurpleDas Pretzel Board auf dem Steckboard mit Display
Das Pretzel Board
Das Hauptelement dieses Lernpakets ist das Pretzel Board (Interner Name des Pretzel Boards ist 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 Arduino-kompatibles Mikrocontrollersystem, das mit dem Arduino Nano verglichen werden kann. Der rechte Teil ist das WLAN-Modul mit der Bezeichnung ESP8266. Diese beiden Komponenten kommunizieren über eine per Software generierte serielle Schnittstelle miteinander.
Das Pretzel Board auf einem Steckboard.

| Mikrocontroller: | ATmega328 | |
| Flash-Speicher: 32 KB (davon 0,5 KB für den Bootloader) | ||
| SRAM: | 2 KB | |
| EPRUM: | 1 | KB |
| Taktrate: | 16 | MHz |
| I/O-Pins: 20 (davon 2 für die Kommunikation mit dem ) | WLAN-Mod | |
| -dav on PWM: | € | |
| -davon analoge Eingänge: | € | |
| USB-to-Serial-Chip: | CH340G | |
| Betriebsspannung: | 5 V | |
| Empfohlene Eingangsspannung: 7-12 V | ||
| Maximaler Strom pro I/O-Pin: | 40 A m | |
| Belastbarkeit des 3.3-V-Ausgangs: | 50 mA | |
| WLAN-Modul: | ESP826€ | |
| SPI-Flash 4M | bit | |
| Betriebsspannung: 3,3 | V | |
| WLAN-Standards: 802.11 b/g/ | r | |
| WLAN-Modi: Wi-Fi Direct | [P2P], Soft-AP | |
| Hirmware: AT-Firmware Version 0.2 | 2 | |
| Sonstiges: | Integrierter TCP/IP-Stack+19.5 dBm Ausgangs leistung im802.11 b-ModusIntegrierte bit-CPU Low-Kommunikation über UAR 1 | |
Das WLAN-Modul wird über sogenannte AT-Kommandosgesteuert. Dazu ist der Arduino-Teil des Boards über die Pins 11 und 12 mit dem WLAN-Modul verbunden. Eine kleine Schaltung wandelt die 5-V-Peg el inkompatible 3,3-V-Peg el um. Die Pins 11 und 12 sollten Sie also in eigenen Projekten nicht benutzen.
Bauteile im Lernpaket
Nachfolg end fi nden Sie eine Ü bersicht über die im Lernpaket enthaltenen Bauteile.
1 Pretze I Boarc
2 Steckplatine
⊥ LCD-Anzage
lm Schaltdraht
2 Taster
19-V-Cli p
⊥ LED (rot)
1 Widerstand 10 kOhm (Braun-Schwarz-Orange)
Widerstand 100 Ohm(Braun-Schwarz-Braun)
5 Widerstand 1 kOhm (Braun-Schwarz-Rot.
1 Widerstand 470 Ohm (Gelb-Violett-Braun)
1 Fototransistor (2 Anschlussbeine)
↓ NTC ↓ kUhm
1 Rezo
1 Potenziometer 10 kOhm mit rotem Drehkno pf
Quellcode der einzelnen Projekte
Den Quellcode zu den einzelnen Projekten können Sie unter Eingabedes Codes 65316-9 von http://www.buch.e herunterladen.

Projektcode:
http://www.buch.cd
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 gesteuert. Wie im Einleitungsteil erwähnt, finden Sie alle hier verwendeten Beispielprogramme auf der Webseite www.buch.cd mit Eingabe des Codes 65316-9.
Am einfachsten ist es, Sie laden sich das komplette Zip-Verzeichnis herunter und kopieren den entpackten Ordner komplett in Ihren Sketchordner. Dann können Sie aus der Arduino-Oberfl äche heraus alle Programme nacheinander komfortabel öffnen.

Programm-datei:
P01_SoftwareSerial.ino
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 Mikrocontrollers empfangen werden, über die selbst defi nierte Softwareschnittstelle 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. Sie ist bei den meisten Arduino-Versionen schon vorinstalliert — falls nicht, sollten Sie die Library ü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 Einstellung 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.
Nach dem Einstellen sehen Sie schon eine Meldung, nämlich ein AT und ein paar Zeilen darunter ein OK. Das Kommando AT wurde vom Mikrocontroller an das ESP-Modul gesendet und das Modul hat mit OK geantwortet. Daran können Sie erkennen, dass das WLAN-Modul funktioniert und einsatzbereit ist.

text_image
COM3 Senden AI OK Autoscroll CR und NL 19200 BaudBild 1.1: Terminal-Einstellungen: CR und NL und eine Baudrate von 19200
1.1.1 | Grundlegende Befehle
Einige grundlegende Befehle des Moduls können Sie testen, indem Sie einfach das Kommando eintippen und mit Enter an das Modul senden. Die Großschreibung des Befehls ist dabei von Bedeutung. Sie können Ihren ersten eigenen Befehl übermitteln, indem Sie
AT
in den seriellen Monitor eintippen und Enter drücken. Das hochgeladene Programm reicht den Befehl an das ESP-Modul durch, welches wiederum mit AT und danach OK antwortet. Der nächste Befehl, den Sie testen können, lautet:
AT+GMR
Mit diesem Befehl wird die aktuelle Firmware und Versionsnummer ausgegeben. Mit dem Befehl
AT+RST
1
können Sie das Modul zurücksetzen. Sie sehen dann im Terminal zunächst ein paar unleserliche Zeichen und am Ende ready als Zeichen, dass das Modul bereit ist. Ein weiterer Befehl lautet:
ATEC
Mit ihm ist es möglich, das sogenannte Echo des Moduls zu deaktivieren. Das bedeutet, dass Sie das gesendete Kommando nicht zurückgesendet bekommen, sondern nur die Antwort. Wenn Sie nun beispielsweise AT senden, kommt nicht erst AT und dann OK, sondern nur OK zurück. Für Ihre ersten Gehversuche ist es aber ratsam, das Echo mit
ATE1
wieder zu aktivieren.

text_image
COM3 Senden AI OK AI+GMR AI version:0.22.0.0(Mar 20 2015 10:04:26) SDK version:1.0.0 compile time:Mar 20 2015 11:00:32 OK AI+RST OK *qXON(AC!É IOÀ+Oy)ò(Ba☐ *☐oC"OI!aOSO)OIO™BOs4 Jr0J00N000J!RcÉD!"D:p"26 ready AIEO OK OK AT OK Autoscroll CR und NL 19200 BaudBild 1.2: Erste Versuche mit den AT-Befehlen
1.1.2 | WLAN-Befehle
Mit den folgenden Kommandos können Sie die WLAN-Eigenschaften des Moduls verändern. Bei manchen Befehlen können Sie nicht nur einen
Zustand festlegen, sondern auch den aktuellen Zustand erfragen. Dies geschieht, indem Sie direkt hinter dem Befehl ein Fragezeichen einfügen, z. B.
AT+CWMODE?
Als Rückg abewert kommt dann im Regelfall
+CWMODE=2
gefolgt von OK. Wenn Sie
AT+CWMODE=?
eintippen, antwortet das Modul Ihnen mit den möglichen Parametern des Befehls, hier 1-3. Bei CWMODE handelt es sich übrigens um den Befehl, mit dem Sie den WLAN-Modus festlegen können.
Esgibt also drei Betriebsarten, die ich nun nacheinander erläutere.
1 AT+CWMODE=2 — Das Modul als Access Point (AP-Modus)
Im Auslieferzustand ist das Modul ein Access Point. Das bedeutet, dass Sie mit einem WLAN-fähigen Gerät, wie einem Smartphone oder einem PC, eine direkte Verbindung mit dem Modul aufnehmen können. Dazu suchen Sie einfach das offene WLAN mit dem Namen NanoESP und verbinden sich damit. Im Werkszustand ist kein Passwort angegeben, sodass das Verbinden kein Problem darstellt. Wenn Sie mit dem Modul verbunden sind, haben Sie keine Verbindung zum Internet, denn das Modul ist kein Router mit einer eigenen Verbindung zum Telefonnetz. Dieser WLAN-Modus ist aber dennoch sinnvoll, wenn Sie beispielsweise ein sicheres, abgeschlossenes Netzwerk benötigen. Apropos Sicherheit: Es gibt auch die Möglichkeit, dem Netzwerk ein Passwort zuzuteilen, und zwar über den folgenden Befehl:
AT+CWSAP
Es müssen noch Parameter angegeben werden, und zwar der Reihenfolge nach und mit Komma getrennt:
Der Name des Netzwerks in Anführungszeichen,
das Passwort in Anführungszeichen,
1
die Channel ID (beliebiger Wert zwischen 1 und 13),
und den Verschlüsselungsmodus [Wert von 0-4].
Eine mögliche Einstellung wäre:
AT+CWSAP="MyNanoESP", "MyPassword", 5,3
Nach einer kurzen Zeit erscheint OK als Bestätigung. Sollte ERROR erscheinen, prüfen Sie noch einmal Ihre Eingaben, vor allem die Anführungszeichen. Sollte dennoch ERROR erscheinen, prüfen Sie, ob der CWMODE wirklich 2 ist.
Wenn alles funktioniert hat, können Sie sich mit einem WLAN-fähigen Gerät mit dem Board verbinden. Alle mit dem Modul verbundenen Geräte können Sie mit IP- und MAC-Adresse über den Befehl
AT+CWLIF
anzeigen lassen.

text_image
COM3 OK OK AT OK AT+CWMODE? +CWMODE:1 OK AT+CWMODE=2 OK AT+CWSAP ERROR AT+CWSAP="MyNanoESP", "MyPassword", 5, 3 OK AT+CNLIF ERROR AT+CNLIF 192.160.4.2.48:5d:60:4e:b4:65 OK Autoscroll CR und NL 19200 BoudBild 1.3: Das Modul im Stationsmodus. Die IP des verbundenen Rechners ist markiert.
2 AT+CWMODE=1 — Das Modul im Stations modus
Mit dem Befehl
AT+CWMODE=1
setzen Sie das Modul in den Stationsmodus. Dieser Modus ermöglicht es Ihnen, eine Verbindung zu Ihrem WLAN-Router aufzubauen. Dadurch ist das Modul auch mit dem Internet verbunden und hat viel mehr Möglichkeiten.
Zu vor können Sie aber mit dem Befehl
AT+CW LAP
alle Netzwerke in Reichweite aufl isten lassen und somit überprüfen, ob Ihr Netzwerk im Empfang sradius ist. Um eine Verbindung zu Ihrem Router aufbauen zu können, benötigen Sie den Befehl
AT+CWJAF
Dieser hat, ähnlich wie der CWSAP-Befehl, wichtige Parameter, nämlich den Namen des WLAN-Netzwerks (auch SSIDg enannt) und das Passwort, beides wieder in Anführung szeichen und durch ein Kommagetrennt. Ein Verbindungsaufbau zu einem zweiten Modul, das mit den im vorherigen Abschnitt erläuterten Daten eingestellt ist, sähe also so aus
Der Verbindungsaufbau kann ein paar Sekunden dauern und sollte dann OK zurückgeben. Sie können übrigens die vom Router vergebene IP des Moduls mit dem Befehl
AT+CIFSR
abrufen. Dies wird später wichtig sein, wenn Sie eine Verbindung zu dem TCP-Server des Moduls herstellen wollen. Mit dem Befehl
AT+CWQAP
können Sie die Verbindung zu Ihrem Router auch wieder trennen
1
Bild 1.4: Das Board baut eine Verbindung zu einem zweiten Pretzel Board auf.

text_image
COM3 AT+CWMODE-1 OK AT+CWLAP +CNLAP: (3, "MyNanoESP", -20, "la:fe:34:a5:ac:78", 5) +CNLAP: (4, "MyNanoESP", -68, "la:fe:34:a5:ac:78", 5) +CNLAP: (4, "MyNanoESP", -91, "la:fe:34:a5:ac:78", 5) +CNLAP: (4, "MyNanoESP", -10, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -20, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -68, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -91, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -10, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -20, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -68, "la:fe:34:a5:ac:78", 5) + CNLAP: (3, "MyNanoESP", -91, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -10, "la:fe:34:a5:ac:78", 5) +CNLAP: (3, "MyNanoESP", -20, "la:fe:34:a5:ac:78)", 5) +CNLAP: (3, "MyNanoESP", -68, "la:fe:34:a5:ac:78", 5) OK AT+CWJAP="MyNanoESP", "MyPassword" OK AT+CIFSR +CIFSR:STAIP, "192.168.4.2" +CIFSR:STAMAC, "18:fe:34:a4:67:07" OK Autoscroll CR und NL 19200 Baud3 AT+CWMODE=3 — Der Duale Modus
Der dritte mögliche Modus der WLAN-Einstellung ist der duale Modus. Er ermöglicht, wie der Name bereits vermuten lässt, das Betreiben des Moduls sowohl im Stations- als auch im AP-Modus. Das bedeutet es können Geräte eine direkte WLAN-Verbindung mit dem Modul aufbauen oder das Modul über den Router als Zwischenstation erreichen. Ein praktischer Modus, z. B. wenn man ein internes Netz mit mehreren Modulen plant und dennoch ein Modul als Server dienen soll, der die Daten ins Netz liefert. Aber dazu später mehr.

Webseite:
http://www.iot.fkainka.de
Befehlsübersicht im Anhang und auf der Webseite
Alle wichtigen Befehle finden Sie übrigens auch im Anhang und auf der bereits erwähnten Webseite. Manche Befehle wie das Einstellen der Baudrate, wurden bewusst nicht aufgelistet, da Sie damit das Modul unbrauchbar machen könnten
1.2 | Automatische Konfiguration
Die grundlegenden Befehle konnten Sie bereits manuell testen. In diesem Kapitel soll nun die Frage geklärt werden, wie diese Befehle automatisch ü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 Google-Server angepingt. In dem Beispielprogramm P2_GooglePing werden die Vorgänge, die Sie im ersten Beispiel manuell eingetippt haben, größtenteils automatisiert. Der Controller schickt nacheina der Befehle an das ESP-Modul und stellt so u. a. die Verbindung zum WLAN her. Die verschieden langen Timeout-Zeitengeben dem Modul genügend Zeit zum Antworten.
Bevor das Programm aber richtig funktionieren kann, müssen Sie Ihre WLAN-Daten hinter #defi ne SSF und #defi ne PASSWORD gleich zu Beginn des Programm-Quellcodes eintragen. Das Modul benötigt nämlich Zugang zum Internet, um seinen letzten Befehl ausführen zu können. Mit dem Befehl
AT+PING
können andere Geräte im Netzwerk angepingt werden. Pingen bedeutet, dass man anfragt, ob ein Rechner grundsätzlich erreichbar ist. Hier wird der Google-Server mit AT+PING="www.google.de" angepingt. Wenn eine Antwort zurückkommt, erscheint eine Erfolgsmeldung im Serial Monitor und die mit DB beschriftete LED, die am Pin D13 des Boards angeschlossen ist, wird aktiviert. Die erste Kommunikation mit dem Internet wäre danngeg lückt
Das Programm
Im Folg enden werden wir die Funktionen des Programms schrittweise analysieren. Zu Beginn wird die Kommunikation mit dem Modul besprochen
1 Serielle Kommunikation
Das Ganze funktioniert über die serielle Software-Schnittstelle, die mit der SoftwareSerial-Library bereitgestellt wird. Beim Initialisieren müssen außerdem die verwendeten Pins angegeben werden, in diesem Fall die Pins 11 und 12.
011 #include <SoftwareSerial.h>
013 SoftwareSerial esp8266(11, 12);

Programm-datei:
P02_GooglePing.ino
1
Genau wie bei der normalen seriellen Schnittstelle können Bytes oder auch ganze Zeilen mit dem Befehl esp8266.print oder esp8266.println übertragen werden. Besonders praktisch sind auch die Befehle esp8266.fi n und esp8266.findUnti, mit der ein ankommender Stream auf bestimmte Zeichenketten überprüft werden kann. Dadurch ist es recht einfach, die passende Antwort des Moduls abzufargen. Wenn allerdings eine erwartete Zeichenkette nicht auftaucht, kann es eine ganze Weile dauern, bis das Programm weitergeht. Die Wartezeit (Timeout) wird durch esp8266.setTimeout defi niert. Mi fi ndUnti] kann aber auch eine zweite Zeichenkette defi niert werden, bei der die Suchfunktion aussteigt und false als Rückg abewert liefert. Dies machen wir uns in der Funktionsend-Com() zunutze:
Überprüfung, ob in der Antwort ERROR enthalten ist
09C boolean sendCom(String command, char respond[])
091 {
092 esp8266.println(command);
093 if (esp8266.findUntil(respond, "ERROR"))
094 {
095 return true;
096 }
097 else
098 {
099 debug("ESP SEND ERROR: " + command);
100 return false;
101 }
102 }
Wenn Sie die Funktion aufrufen, müssen Sie den Befehl und den erwarteten Rückgabe an die Funktion übergeben, z. B. AT und den erwarteten Rückgabewert OK. Über println() wird das Kommando übertragen und schließlich gewartet, bis der erwartete Rückgabewert oder ERROR empfangen wird. Ist die Erwartung erfüllt, gibt die Funktion den Wert true zurück. Falls nicht, sendet das Modul über die debug[] -Funktion ESP SEND ERROR und das gesendete Kommando zurück, sodass man leicht überprüfen kann, welcher Befehl die Probleme verursacht.
Nicht alle AT-Befehle haben einen eindeutigen oder einzeiligen Rückgabewert. Wird z. B. die IP-Adresse abgefragt, gibt es in der Regel keinen vorher bekannten Wert. Deswegen gibt es eine zweite sendCom[]-Funktion, die nur den Parameter command benötigt und dann den gesamten
empfangenen String zurückgibt. Der String sollte aber nicht zu lang sein, denn der Buffer der SoftwareSerial kann überlaufen.
104 String sendCom(String command)
105 {
106 esp8266.println(command);
107 return esp8266.readString();
108 }
2 Fehlersuche
Beim Entwickeln von Programmen kommt es oft zu Fehlern und Komplikationen. Damit man überhaupt eine Chance hat, gibt es hier zwei debug-Funktionen, die über einen Parameter ganz zu Beginn des Programms aktiviert oder deaktiviert werden.
009 #define DEBUG true
Die erste Funktion bewirkt nichts weiter als eine vereinfachte Ausgabe von Text über die als Standard definierte serielle Schnittstelle. Wenn die Kons tante DEBUG wahr ist, wird der Inhalt der Zeichenkette Mäg gesendet.
123 void debug(String Msg)
124 {
125 if (DEBUG.
126 {
127 Serial.println(Msg);
128 }
129 }
Die zweite Funktion ist ebenfalls schnell erklärt. Wird die Funktion serialDebug aufgerufen, geht das Programm in eine Dauerschleife über und verhält sich von da an wie das erste getestete SoftwareSerial-Programm. Das heißt, dass alle Daten, die über den seriellen Monitor an den Controller gesendet werden, direkt an das Modul weitgereicht werden und andersherum. In einem Fehlerfall kann man also die Funktion aufrufen und manuell Befehle senden, um zu testen, wo der Fehler ist.
113 void serialDebug() {
114 while (true)
115 {
116 if (esp8266.available())
1
117 Serial.write(esp8266.read())
118 if (Serial.available())
119 esp8266.write(Serial.read())
120 }
121 }
3 Konfiguration
Um die Programme allgemein übersichtlicher zu gestalten, wurden die meisten Einstellungen in eigene Funktionen ausgelagert, allen voran die Funktion espConfig, in der die wichtigsten Parameter für das jeweilige Programm gesetzt werden
044 boolean espConfig()
045 {
046 boolean success = true;
047 esp8266.setTimeout(5000);
048 success &= sendCom("AT+RST", "ready");
049 esp8266Chronout(1000);
050 if (configStation(SSID, PASSWORD)) {
051 success &= true;
052 debug("WLAN Connected");
053 debug("My IP is:");
054 debug(sendCom("AT+CIFSR"))
055 }
056 else
057 {
058 success &= false
059 }
060 success &= sendCom("AT+CIPMODE=0", "OK");
061 success &= sendCom("AT+CIPMUX=0", "OK");
062 return success
063 }
Zu Beginn der Funktion wird zunächst die Variable success auf true gesetzt, denn diese Variable wird nun mit verschiedenen Funktionen Und-verknüpft. Das bedeutet, wenn auch nur eine der Funktionen den Ne r t false zurückliefert, wird success ebenfalls sofort false und die gesamte Konfiguration ist gescheitert. Der erste AT-Befehl, der so auf Erfolg überprüft wird, ist der Reset-Befehl, der fast immer zu Beginn des Programms ausgeführt wird, um sicherzugehen, dass vorherige Versu-
che nicht noch das Modul beanspruchen. Es kann allerdings bis zu fünf Sekunden dauern, bis das Modul die Meldung ready zurücksendet. Deswegen wird kurz vor der sendCom[]-Furktion der Timeout für esp8266.find hochgesetzt. Nach dem Reset wird der Timeout wieder auf den Standardwert von einer Sekunde gestellt.
Was danach folgt, ist der Aufruf einer selbst definierten Funktion mit dem Namen configStation(), die im nächsten Abschnitt besprochen wird. Sie dient dazu, das Modul mit Ihrem Heimnetzwerk zu verbinden. Dazu werdend ie Parame ter SSID und PASSWORT übergeben, die Sie zu Beginn des Programms eingetragen haben. War der Verbindung saufbau erfolgreich, werden erst die Erfolgsmeldung und schließlich auch die aktuelle IP des Moduls an den seriellen Monitor übertragen. Zum Schluss der Funktion werden noch Parameter gesetzt, auf die ich erst später eingehen werde. Zuletzt wird noch die Variable success zurückgegeben, die hoffentlich den Wert true behalten hat.
050 boolean configStation(String vSSID, String vPASSWORT)
051 (
052 boolean success = true;
053 success &= (sendCom("AT+CWMODE=1", "OK"));
054 esp8266.setTimeout(20000);
055 success &= (sendCom("AT+CWJAP=\"\" + String(vSSID) + "\","\\" + String(vPASSWORT) + "\"", "OK"));
056 esp8266.setTimeout(1000);
057 return success;
058 )
Die Funktion configStation() wurde in der espConfig()-Funktion aufge-rufen. Hier wird das Einstellen des WLAN-Modus auf Stationsmodus mit dem Befehl CWMODE und schließlich das Verbinden mit dem Netzwerk über den CWJAP-Befehl vorgenommen. Es kann recht lange dauern, bis die Verbindung aufgebaut wird, weswegen der Timeout kurzzeitig auf 20 Sekunden angehoben wird. Sollten Sie übrigens den dualen WLAN-Modus bevorzug en, können Sie für CWMODE eine 3 eintragen.
078 boolean configAP()
079 {
080 boolean success = true;
081
082 success &= (sendCom("AT+CWMODE=2", "OK"));
1
083 success &= (sendCom("AT+CWSAP=\"NanoESP\",\"",5,0", "OK"))
084
085 return success;
086 }
Die Funktion configAP[] wird in diesem Beispiel nicht aufgerufen, soll aber dennoch kurz behandelt werden. Sie stellt sozusagen das Gegenstück zu der configStation[]-Funktion dar, denn hier wird das Modul als Access Point eingestellt. Ein langer Timeout ist nicht nötig, da das Modul den CWSAP-Befehl deutlich schneller verarbeiten kann. In späteren Versuchen wird in der espConfig[]-Funktion statt configStation[] die configAp[]-Funktion aufgerufen.
015 void setup()
016 {
017 // Open serial communications and wait for port to open:
018 Serial.begin(19200);
019 // set the data rate for the SoftwareSerial port
020 esp8266.begin(19200);
021
022 if (!espConfig()) serialDebug();
023 else debug("Config OK");
024
025 if (sendCom("AT+PING=\"www.google.de\"", "OK"))
026 {
027 Serial.println("Ping OK");
028 digitalWrite(13, HIGH);
029 }
030 else
031 {
032 Serial.println("Ping Error");
033 }
034 }
035
036 void loop() // run over and over
037 {
038 //Start serial Debug Mode - Type Commandos over serial Monitor
039 serialDebug();
040 }
Die wichtigsten Funktionen, die Sie in fastjedem Programm fi nden werden, sind damit behandelt. In den bekannten Arduino-Funktionen setup
und loop[] werden diese Funktionen nun verwendet. Zunächst werden allerdings die beiden seriellen Schnittstellen mit 19200 Baud initialisiert. Erst dann wird die Funktion espConfig[] aufgerufen. Im Fehlerfall wird sofort die serialDebug[]-Funktion gestartet. War alles in Ordnung, wird eine Erfolgsmeldung gesendet. In späteren Programmen wird die LED an Pin 13, die auf dem Board mit D3 markiert ist, bei einer erfolgreichen Konfiguration zusätzlich leuchten. Damit haben Sie auch ein Feedback, wenn das Modul nicht an einem PC mit seriellem Monitor angeschlossen ist. In diesem Versuch wird die LED allerdings für die Rückmeldung des Ping-Status benötigt. Die Abfrage erfolgt auch gleich in der nächsten Zeile nach der Konfiguration. Es wird das AT-PING-Kommando mit der Google-Adresse als Parameter gesendet. Sie könnten anstelle der Adresse auch eine IP-Adresse in Ihrem lokalen Netzwerkabfragen. Im Erfolgsfall erscheint eine Meldung und die besagte LED D3 wird aktiviert. Als letzte Aktion springt das Programm in die loop-funktion, die ihrerseits die serialDebug[]-Funktion aufruft. Sie können also nach dem Programm weitere Befehle testen und so beispielsweise weitere Adressen anping en.
1.3 | Erkennung eines Netzwerks
In diesem Abschnitt geht es unter anderem zum ersten Mal um einen kleineren Hardwareaufbau. Ziel des Projekts ist eine Art Alarmanlange, die reagiert, wenn ein bestimmtes Netzwerk in Reichweite kommt oder angeschaltet wird.
Es werden nur zwei Bauteile und etwas Draht verwendet. Deng enauen Aufbau können Sie den Aufbaubildern entnehmen
Benötigte Bauteile
1 x Steckplatine, 1 x Pretzel Board, 1 x Piezo, Schaltdraht

1
Bild 1.5: Anschluss des Piezo-Lautsprechers

Script-Download:
P03_SSIDalarm.ino

text_image
X 1 5 10 15 A B C D E F G H I J 1 5 10 15 fritzinoDer Quelltext zu diesem Projekt unterscheidet sich vom vorherigen Versuch hauptsächlich in folgenden Funktionen:
039 void findSSID()
040 {
041 esp8266.println("AT+CWLAP");
042 if (esp8266.findUntil(ToFindSSID, "OK")) alarm();
043 else debug("SSID not found!");
044 }
045
046 void alarm;
047 {
048 debug("alarm!");
049
050 digitalWrite(LED_ALARM, HIGH);
051
052 for (int i; i <= 30; i++)
053 {
054 tone(PIEZO, 400, 500);
055 delay(500);
056 tone(PIEZO, 800, 500);
057 delay(500);
058 }
059
060 digitalWrite(LED_ALARM, LOW);
061 }
Die Funktion findSSID[] wird ca. alle 30 Sekunden in der loop-Routine aufgerufen und sucht dann nach allen Netzwerken in der Umgebung. Wennd as gesuchte Netzwerk gefunden wurde, wird die Funktion alarm[1], ausgelöst, die die LED D3 einschaltet und einen Signalton am Piezo ausgibt. In dem Beispielprogramm wird nach einem Netzwerk mit der SSID NanoESP gesucht, also im Grunde nach anderen Pretzel Boards in Reichweite. Sie können aber einfach bei #defi ne ToFindSSID zu Beginn des Programms eine andere SSID eintragen. Dadurch können Sie beispielsweise überprüfen, wie weit Ihr WLAN-Netzwerk reicht.
6
ANHANG
6.1 | At-Kommandos
| Befehl | Schreibweise |
| Grundlegendes | |
| Testbefehl | AI |
| Reset AT+R | ST |
| Firmware-Int os | AT+GMR |
| Echo An/Aus ATE<1 | /0> |
WLAN-Befehle
| WLAN-Modus | AT+CWMD DE=<mode> |
| [1 = Client, 2 = AP, 3 = Dual] | |
| WLAN-Netzwerke suchen AT+ | CWLAP |
| WLAN verbinden | AT+CWJAP="<ssid>", "<pass>" |
| WLAN trennen AT+ | CWQAP |
| WLAN-Access-Point-Einstellungen | AT+CWSAP="<ssid>", "<pass>[,<chan>,<enc>] |
| IP-Adresse ausgeben | AT+CIFSR |
| DHCP aktivieren/deaktivieren AT+CWDHCP=<1 | /0> |
| Automatisch mit WLAN verbinden AT+CWAUTOCONN=<1/0> | |
| MAC-Adresse der Station ändem | AT+CIPSTAMAC=<MAC> |
| IP-Adresse einstellen(Station) | AT+CIPSTA=<IP> |
| IP-Adresse einstellen(Access Point) | AT+CIPAP=<IP> |
| Starte SmartConfig | AT+CWSTARTSMART=<typ> |
| Stoppe SmartContig | AT+CWSTUPSMART |
Kommunikation
| Funktion Ping | AT+PING= |
| Mehrere Verbindungen zul assen AT+ | CIPMU X= |
| Datenmodus | AT+CIPMU DE= |
| [0=Transparent, 1=Datenmodus] | |
| Struktur empfangener Daten | +IPD, |
| Verbindung aufbauen AT+CIPSTART=" | type>," |
| Daten sender | AT+CIPSEND= |
| Verbindung trennen | AT+CIPCLOSE= |
Sever r-Befehle
| Server starten | AT+CIPSERVER=1, |
| Serverbeenden AT+CIPSERVER=0 | |
| Server-Status & verbundene Clients AT+CIPSTATU | S |
| Server-Timeout festlagen AT+ | CIPSTO=<timeout> |
| Verbundene Clients anzeigen | AT+CWLIF |
TURN ON YOUR CREATIVITY
FRANZIS
MAKER KIT
INTERNET OF THINGS
Das Internet der Dinge verbindet die reale Welt mit der digitalen Welt. Mit diesem Lernpaket können Sie selbst Projekte für das Internet der Dinge umsetzen. Mit dem beiliegenden IOT-Board legen Sie direkt los und steuern die Hardware über das Internet. Sie lernen alles, was Sie für den Einstieg benötigen: Schaltungs-aufbau sowie Netzwerk- und HTML-Programmierung.
Alle Bauteile der nachbausicheren Schaltungen sind enthalten.
All required components for the definitely feasible circuits included
PROJEKTE
PROJECTS:
Datenkommunikation mit UDP Data communication via UDP
LED mit UDP schalten Switching LEDs via UDP
Netzwerkschalter Network switch
Analoger Sensor Analog sensor
Netzwerk-Pager Network pager
Internetuhr Internet clock
Mediacenter-Steuerung Media center control
Webserver Web server
RGB-LED über TCP steuern Controlling an RGB LED via TCP
Lichtsensor Photosensor
GPIO über Webseite steuern
Webseitentext auf Display darstellen
Alarmanlage mit Twitter
Pretzel-Board mit ThingSpeak steuern
RGB-LED über Twitter steuern Controlling the RGB LED via Twitter
... und viele mehr
Controlling GPIO using a web page
Rendering web page text on a display
1 LC-Display (2-zeilig)
1 Piezo
2 Taster
1 LED rot
1 RGB-LED
1 Fototransistor
1 NTC
1 Potenziometer
19-V-Clip
1 Schaltdraht (1 m)
Widerstände
1 × 100 Ω
1 x 470 Ω
5 x 1 kΩ
1 x 10 kΩ
22 COMPONENTS
1 IOT-Wi-Fi-Board
2 breadboards
1 LC-Display (2 rows)
1 Piezo
2 push-buttons
1 LED red
1 RGB-LED
1 phototransistor
1 NTC
1 potentiometer
19V clip
1 single wire (1 m)
restistors
1 x 100 Ω
1 x 470 Ω
5 x 1 kΩ
1 x 10 kΩ

text_image
Confluence Algeometrien Image Viewers Fermbetierung Zinsart ArtPlay Gestellungsstrasse Standard Se-Este - Einklassungen Seistellung für das Internet für Internet Page 3 Bilanzschulden Passiviert Antiservatische Deutsche Einzelungen auf Grundbesondere zur Kreditzeit Verlag vor allem die Betriebs kredit aus Lieferungen vor allem zu durchsichtDie Nutzung unterschiedlicher Dienste zeigt die Vielfältigkeit des IOT-Boards.
The usage of different services demonstrates the versatility of the IOT board
Zusätzlich erforderlich:
1 x 9-V-Blockbatterie
Für Kinder unter 14 Jahren nicht geeignet!