5007-3 Conrad Adventskalender Internet of Things 2017_02.indd 1 19.07.
Alle Versuche im Überblick Internet of Things Adventskalender 2017 ............... 3 12. Tag ....................................................................27 Quellcodes und zusätzliche Informationen . . . . . . . . . . . . . . . . . . . . . . . 3 Hintergrundwissen zu den Bauteilen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Widerstände und ihre Farbcodes . . . . . . . . . . . .
Internet of Things Adventskalender 2017 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äte1. Jedes dieser Geräte – auch „Ding“ genannt – besitzt eine eindeutige Adresse und kommuniziert über das Internet oder auch über eine andere Schnittstelle, wie z. B.
LED in welcher Richtung anschließen? Die 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 Minuszeichen und macht damit den Draht etwas länger. Außerdem sind die meisten LEDs auf der Minusseite abgeflacht, wie ein Minuszeichen. Leicht zu merken: Kathode = kurz = Kante.
1. Tag Heute im Adventskalender 1. Tag • 1 x IoT Bluething Board2 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 auf dem Board.
Laden Sie sich den Windows Installer für die aktuelle Version der Arduino IDE bei www.arduino.cc/en/Main/Software herunter oder verwenden Sie einfach die Datei arduino-windows.exe aus den Downloads zum Adventskalender. Unter Windows 10 können Sie die Arduino IDE auch aus dem Windows Store herunterladen und installieren. Achten Sie dabei darauf, dass im Dialogfeld Installation Options alle Häkchen gesetzt sind. Je nach Windows-Konfiguration ist eine Bestätigung der Benutzerkontensteuerung erforderlich.
Nach kurzer Zeit sollte in der Statuszeile des Editors die Meldung Hochladen abgeschlossen stehen. Nun ist das IoT-Board aktualisiert. IoT-Board testen 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 Monitor. Stellen Sie die Datenübertragung auf 57600 Baud ein. Nun sollte lesbarer Text im Ausgabefenster erscheinen.
Unterhalb des Quellcodefensters sehen Sie die Ausgaben der Arduino IDE beim Kompilieren und beim Hochladen. 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 Werkzeuge/Portt behoben werden. IoT-Board immer im AT-Modus nutzen Auf dem IoT-Board ist ein Jumper. Dieser Jumper muss für alle Projekte in diesem Kalender auf AT stehen.
2. Tag 2. Tag Heute im Adventskalender • 1 x Steckbrett (SYB 46) • 1 x Jumperkabel Analoge Werte messen Heute programmieren Sie einen Sketch in der Arduino IDE, um Werte eines analogen Eingangs auszulesen. Die Werte werden per Textausgabe und grafisch dargestellt. Bauteile: 1 x Steckbrett, 1 x Jumperkabel (männlich – männlich) Das Programm Das Programm für diesen Tag trägt den Namen Tag02.ino und liegt im Verzeichnis Tag02 innerhalb des Downloadarchivs.
3. Tag 3. Tag Heute im Adventskalender • 1 x LED rot mit Vorwiderstand • 1 x Schaltdraht Blinklicht Heute lassen Sie eine LED mit einer Frequenz von 2 Hz blinken. Bauteile: 1 x Steckbrett, 1 x LED rot mit Vorwiderstand Das Programm Das Programm für diesen Tag trägt den Namen Tag03.ino und liegt im Verzeichnis Tag03. const int ledPin = 2; int ledState = LOW; Sie benötigen keinen separaten Widerstand, denn die LED hat diesen bereits integriert.
4. Tag Heute im Adventskalender 4. Tag • 1 x LED gelb mit Vorwiderstand Wechselblinker Zwei LEDs blinken abwechselnd. Bauteile: 1 x Steckbrett, 1 x LED gelb mit Vorwiderstand, 1 x LED rot mit Vorwiderstand Das Programm Das Programm für diesen Tag trägt den Namen Tag04.ino und liegt im Verzeichnis Tag04.
5. Tag 5. Tag Heute im Adventskalender • 1 x LED grün mit Vorwiderstand Ampel Das heutige Projekt ist eine Ampel, die mit der grafischen Entwicklungsumgebung Snap! erstellt wird. Bauteile: 1 x Steckbrett, 1 x LED grün mit Vorwiderstand, 1 x LED gelb mit Vorwiderstand, 1 x LED rot mit Vorwiderstand, 1 x Drahtbrücke Snap! installieren und IoT-Board vorbereiten Ab drei LEDs wird es etwas enger, deswegen wird GND extra an die obere Leiste geführt. LEDs von links nach rechts: grün, gelb und rot.
6. Tag Heute im Adventskalender 6. Tagg • 1 x LED blau mit Vorwiderstand Verbindung mit dem IoT-Board Heute bauen Sie mit Ihrem Smartphone eine Verbindung zum IoT-Board auf und schalten die blaue LED über das Smartphone an und wieder aus. Bauteile: 1 x Steckbrett, 1 x LED blau mit Vorwiderstand App zur Steuerung installieren Heute nutzen Sie noch keine eigene App, sondern steuern das Board über die kostenlose App Serial Bluetooth Terminal aus dem App-Store Google Play.
Fügen Sie nun vor der letzten Zeile einen Aufruf der noch zu programmierenden Funktion hookRec(Text) ein: while(HC05.available() > 0){ … hookRec(Text); Text=""; } In dieser Funktion geben Sie nun den empfangenen Text über die Funkschnittstelle aus: Der Name des Netzwerkes lautet Bluething103, und das Passwort ist 1234. void hookRec(String text) { if (text.startsWith("echo") || text. startsWith("Echo")) { HC05.print(">> " + text); } } Nun können Sie das Programm auf das IoT-Board aufspielen.
7. Tag Heute im Adventskalender 7. Tag • 1 x Potenziometer, 15 kOhm Steuerbares Lauflicht Das heutige Projekt ist ein Lauflicht, dessen Geschwindigkeit über ein Potenziometer gesteuert werden kann. Bauteile: 1 x Steckbrett, 1 x LED grün mit Vorwiderstand, 1 x LED gelb mit Vorwiderstand, 1 x LED rot mit Vorwiderstand, 1 x 15-kOhm-Potenziometer, 4 x Drahtbrücke (unterschiedliche Längen) Das Programm Das Programm für diesen Tag trägt den Namen Tag07.ino und liegt im Verzeichnis Tag07.
8. Tag 8. Tag Heute im Adventskalender • 1 x Piezo Töne über App ausgeben Über eine App geben Sie Töne auf einem Piezo aus. Bauteile: 1 x Steckbrett, 1 x Piezo Die zwei Drähte des Piezos werden mit D2 und GND verbunden. Der Rest wird über Software gelöst. Entwicklungsumgebung für die Apps Die Steuerung des IoT-Boards erfolgt in diesem Adventskalender mit der bereits genutzten App Serial Bluetooth Terminal und mit selbst entwickelten Smartphone-Apps für das Betriebssystem Android6.
Die Oberfläche steht derzeit noch nicht in Deutsch zur Verfügung. Um Ihre selbst entwickelte App auch schon während der Entwicklung schnell testen zu können, müssen Sie die kostenlose App MIT AI2 Companion aus dem Google Play Store auf Ihrem Smartphone installieren. Nach dem Start müssen Sie den Code Ihrer App eingeben, hierfür müssen Sie zunächst eine App erstellen.
Das Fenster ist in mehrere Bereiche aufgeteilt. Links sehen Sie im Bereich Palette die Oberflächenelemente, die für Ihre App zur Verfügung stehen. Daneben sehen Sie in Viewer die Oberfläche der App. In Components sehen Sie die in Ihrer App verwendeten Komponenten und in Properties die Eigenschaften der aktuell selektierten Komponente. Ziehen Sie nun eine Beschriftung in Form von einem Label in das Fenster.
das Element set 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 Duplicate kopieren Sie die selektierte Komponente. Die beiden Komponenten fügen Sie nun innerhalb der beiden zuvor eingefügten Elemente (when Button1.TouchDown und when Button1.TouchUp) ein. Jetzt fehlt noch der Textinhalt.
Piezo mit App steuern Um 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 Tag08.ino im Verzeichnis Tag08. Laden Sie diesen Sketch auf das IoT-Board. Der Sketch basiert auf der bereits verwendeten Datei Vorlage.ino.
dung wird das Element Clock (im oberen Bild Timer) aus Sensors genutzt. Das TimerInterval wird im Fenster Properties auf 200 gesetzt. Die Programmierung erfolgt innerhalb des Reiters Blocks. Über den Timer wird der Verbindungsstatus gesetzt. Über die Eigenschaft isConnected können Sie prüfen, ob die App mit einem Bluetooth-Gerät verbunden ist. Regelmäßig wird geprüft, ob die Funkverbindung besteht oder nicht.
App testen Starten Sie die App nun über Connect / AI Companion und rufen Sie die App MIT AI2 Companion auf Ihrem Android-Smartphone auf. Scannen Sie den QR-Code oder geben Sie den Code ein und starten Sie die App über connect with code. Nun startet die App. Berühren Sie nun Verbindung herstellen. Nun können Sie sich mit dem IoT-Board verbinden. Anfangs ist die Verbindung noch nicht aktiv. Die App ist nun mit dem IoT-Board verbunden.
9. Tag Heute im Adventskalender 9. Tag • 1 x RGB-LED mit Vorwiderstand RGB-LEDs Eine normale LED leuchtet immer nur in einer Farbe. Die im Adventskalender verwendeten 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 Anode, über die sie mit einem GPIO-Pin verbunden wird. Die Kathode, die mit der Masseleitung verbunden wird, ist nur einmal vorhanden.
Jeder Farbe hat eine eigene Funktion innerhalb des Sketches. Nachfolgend wird die Funktion rot() vorgestellt: void rot() { Serial.println("Rot"); analogWrite(redPin, HIGH); analogWrite(greenPin, LOW); analogWrite(bluePin, LOW); } Die App Die dazugehörige App befindet sich in der Datei RGB.aia. Importieren Sie die Datei in AI2.
10. Tag Heute im Adventskalender 10. Tag • 1 x Taster Tastendruck anzeigen Heute reagiert Ihr IoT-Board auf einen mechanischen Tastendruck und gibt eine Meldung an die Funkschnittstelle weiter. Bauteile: 1 x Steckbrett, 1 x Taster, 1 x Potenziometer, 5 x Drahtbrücken (unterschiedliche Längen) Digitale Pins können nicht nur Daten ausgeben, zum Beispiel über LEDs, sondern auch zur Dateneingabe verwendet werden.
11. Tag 11. Tag Heute im Adventskalender • 1 x Schaltdraht LED-Echo per App 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. Bauteile: 1 x Steckbrett, 1 x LED rot mit Vorwiderstand, 1 x LED grün mit Vorwiderstand, 1 x Drahtbrücke Der Sketch Das Programm für diesen Tag ist Tag11.ino und liegt im Verzeichnis Tag11. Von der App wird die Echosequenz ermittelt.
12. Tag Heute im Adventskalender 12. Tag • 1 x LED orange mit Vorwiderstand Lauflichtgeschwindigkeit per App einstellen Im heutigen Projekt steuern Sie über Bluetooth die Geschwindigkeit eines Lauflichts. Bauteile: 1 x Steckbrett, 1 x LED rot mit Vorwiderstand, 1 x LED orange mit Vorwiderstand, 1 x LED grün mit Vorwiderstand, 1 x Drahtbrücke Der Sketch Das Programm für diesen Tag ist Tag12.ino und liegt im Verzeichnis Tag12.
13. Tag 13. Tag Heute im Adventskalender • 1 x LED pink mit Vorwiderstand RGB über Slider in App anpassen Eine RGB-LED kann nicht nur eine der drei Grundfarben anzeigen, sondern auch Übergänge. Mittels einer App können Sie die Farbe der RGB-LED genau einstellen. Bauteile: 1 x Steckbrett, 1 x RGB-LED mit Vorwiderstand, 1 x LED pink mit Vorwiderstand, 1 x Drahtbrücke Der Sketch Die pinke LED wird genutzt, um die aufgebaute Verbindung zu signalisieren. Das Programm für diesen Tag ist Tag13.
Die App Als Entwicklungsumgebung für die heutige App dient AI2. Importieren Sie dafür die Datei RGB_Slider.aia. Über drei Slider wird der Wert der jeweiligen Farbe eingestellt. Durch 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 farbe zusammengesetzt. Über Bluetooth.SendText wird der Text über die Funkschnittstelle gesendet.
14. Tag 14. Tag Heute im Adventskalender • 1 x Knete rot • 1 x Widerstand 20 MOhm Knetekontakt Heute nutzen Sie die beiliegende Knete als Eingabe und ändern bei Berührung der Knete die Hintergrundfarbe einer Fläche in der App. Bauteile: 1 x Steckbrett, 2 x Knetestück, 1 x Widerstand 20 MOhm, 3 x Drahtbrücke (unterschiedliche Längen) So funktionieren Sensorkontakte Das Ende der beiden herausragenden Drahtbrücken geht jeweils in ein Stück Knete. Am besten formen Sie jeweils eine kleine runde Kugel.
Die App Die heutige App Knete_Schalter.aia enthält ein Label, das zu Beginn orange als Hintergrundfarbe 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 konfigurieren Die Elemente im Bereich Blocks im Blockeditor können teilweise konfiguriert werden. Die Konfiguration erfolgt über das blaue Zahnrad an der Komponente. Der if-Block unterstützt auch else und else-if.
15. Tag 15. Tag Heute im Adventskalender • 1 x Widerstand 20 MOhm Unterscheidbare Knetekontakte Nun nutzen Sie zwei Knetekontakte und zeigen in einer App an, welcher Kontakt gedrückt wurde. Bauteile: 1 x Steckbrett, 3 x Knetestück, 2 x Widerstand 20 MOhm, 4 x Drahtbrücke (unterschiedliche Längen) Der Sketch Das Programm für diesen Tag ist Tag15.ino und liegt im Verzeichnis Tag15. Wie schon an Tag 14 wird das Betätigen eines Knetekontakts über analogRead eingelesen.
16. Tag Heute im Adventskalender 16. Tag • 1 x Blink-LED rot mit Vorwiderstand Blink-LED per App steuern Über eine Schaltfläche schalten Sie die Blink-LED ein und über eine andere Schaltfläche wieder aus. Bauteile: 1 x Steckbrett, 1 x Blink-LED rot mit Vorwiderstand Der Sketch Das Programm für diesen Tag ist Tag16.ino und liegt im Verzeichnis Tag16. Der Sketch reagiert auf An und Aus von der Funkschnittstelle: if (Text.startsWith("An") || Text.startsWith("AN") || Text.
17. Tag 17. Tag Heute im Adventskalender • 1 x Potenziometer Anzeige des Widerstandswertes Heute messen Sie den Wert eines Potenziometers über einen analogen Eingang und geben den Wert in einer App aus. Bauteile: 1 x Steckbrett, 1 x Potenziometer 15 kOhm, 4 x Drahtbrücke (unterschiedliche Längen) Der Sketch Das Programm für diesen Tag ist Tag17.ino und liegt im Verzeichnis Tag17. Zunächst werden die zwei Variablen sensorPin und sensorValue definiert.
18. Tag Heute im Adventskalender 18. Tag • 1 x Jumperkabel RGB-Lauflicht Über eine App steuern Sie die Blinkdauer einer RGB-LED. Dabei blinkt die LED in abwechselnden Farben. Das Blinken können Sie dabei auch wieder abschalten. Bauteile: 1 x Steckbrett, 1 x RGB-LED mit Vorwiderstand, 1 x Jumperkabel Der Sketch Das Programm für diesen Tag ist Tag18.ino und liegt im Verzeichnis Tag18. Der Sketch reagiert auf den Text stop und auf eine gesendete Zahl. Im Falle von stop wird die RGB-LED ausgeschaltet.
19. Tag 19. Tag Heute im Adventskalender • 1 x Jumperkabel App zur Auswahl von Hardware-Apps Heute werden zwei Funktionalitäten in einer Schaltung kombiniert: Tonwiedergabe mit Piezo und Blinken einer RGB-LED. Per App wählen Sie die entsprechende Funktionalität aus. Bauteile: 1 x Steckbrett, 1 x RGB-LED mit Vorwiderstand, 1 x Piezo, 1 x Jumperkabel Der Sketch Das Programm für diesen Tag ist Tag19.ino und liegt im Verzeichnis Tag19.
20. Tag Heute im Adventskalender 20. Tag • 1 x NTC Wärmesensor in der App 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. Bauteile: 1 x Steckbrett, 1 x NTC, 1 x Potenziometer 15 kOhm, 6 x Drahtbrücke (unterschiedliche Längen) Der Sketch Das Programm für diesen Tag ist Tag20.ino und liegt im Verzeichnis Tag20. Der Sketch ist sehr einfach aufgebaut.
21. Tag 21. Tag Heute im Adventskalender • 1 x Fototransistor • 1 x Widerstand 1 kOhm Helligkeit und Dunkelheit in der App messen 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.
22. Tag Heute im Adventskalender 22. Tag • 1 x Feuchtesensor • 1 x Widerstand 1 kOhm Feuchtemesser Heute bekommen Sie nochmals einen Sensor, einen Feuchtesensor. Damit können Sie die Feuchtigkeit messen. Bauteile: 1 x Steckbrett, 1 x Feuchtesensor, 1 x Widerstand 1 kOhm, 3 x Drahtbrücke (unterschiedliche Längen) Der Sketch Das Programm für diesen Tag ist Tag22.ino und liegt im Verzeichnis Tag22.
23. Tag 23. Tag Heute im Adventskalender • 1 x Jumperkabel Codebrecher Das heutige Projekt ist ein kleines Spiel: In einer App stellen Sie einen Code ein. Diesen Code übermitteln Sie an das IoTBoard. Nun muss mit dem Taster der Code eingegeben werden. Wenn der Code richtig eingegeben wurde, leuchtet die rote LED, und in der App wird angezeigt, dass der Code richtig eingegeben wurde. Ansonsten leuchtet die rote LED nicht, und in der App wird angezeigt, dass der Code falsch eingegeben wurde.
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 verwendet, 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 41 19.07.
24. Tag 24. Tag Heute im Adventskalender • 1 x Taster Reaktionsspiel Zum Abschluss des Adventskalenders gibt es noch ein kleines Reaktionsspiel. Über eine Schaltfläche in der App starten Sie das 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.
Das Auslesen der Funkschnittstelle sollte immer in einem Timer erfolgen. Denn man weiß nicht genau, wann ein Datenpaket ankommt. Frohe Weihnachten! 15007-3 Conrad Adventskalender Internet of Things 2017_02.indd 43 19.07.
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 beschrieben.