<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Beiträge on Internet of Things mit dem NanoESP</title><link>https://neu-iot.fkainka.de/posts/</link><description>Recent content in Beiträge on Internet of Things mit dem NanoESP</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Tue, 10 Jan 2023 11:33:25 +0100</lastBuildDate><atom:link href="https://neu-iot.fkainka.de/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Alles über NanoESP &amp; Pretzel Board</title><link>https://neu-iot.fkainka.de/board/</link><pubDate>Wed, 21 Aug 2019 11:06:12 +0200</pubDate><guid>https://neu-iot.fkainka.de/board/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2015/09/Purple.jpg"&gt;&lt;/p&gt;
&lt;h3 id="das-board"&gt;Das Board&lt;/h3&gt;
&lt;p&gt;Der NanoESP-Board hat viele Namen. In Franzis Produkten wird das Board oft Pretzel Board genannt. Bei Conrad findet man den NanoESP unter dem Namen C-Control IoT WiFi Board. Doch innen ist immer das gleiche: ein einfach zu bedienendes und Arduino kompatibles Entwicklungsboard für Ihre Internet of Things Projekte.&lt;/p&gt;
&lt;p&gt;Über einfache AT-Kommandos können Sie z.B. einen Webserver starten, das Modul als Acces Point einstellen oder die Verbindung zu Ihrem Heimnetzwerk herstellen.&lt;/p&gt;</description></item><item><title>Das NodeESP Board</title><link>https://neu-iot.fkainka.de/das-nodeesp-board/</link><pubDate>Sat, 10 Nov 2018 13:50:13 +0100</pubDate><guid>https://neu-iot.fkainka.de/das-nodeesp-board/</guid><description>&lt;h3 id="das-nodeesp-board"&gt;Das NodeESP Board&lt;/h3&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2018/10/board1.jpg"&gt;&lt;/p&gt;
&lt;h3 id="das-nodeesp-board-1"&gt;Das NodeESP Board&lt;/h3&gt;
&lt;p&gt;Der NodeESP ist ein Experimentier- und Entwicklungsboard für den Bereich IoT und Hausautomatisierung. Die vorprogrammierte Firmware mit integrierter Webseite erlaubt es Ihnen, einfache Konfigurationen vorzunehmen und Programme und Anwendungen kinderleicht in einem Menü auszuwählen. So können Sie durch wenige Mausklicks das Board als smarten Schalter, buntes Licht oder Raumklimasensor konfigurieren und mit anderen Geräten in Ihrem Heimnetz verbinden. Für eigene individuelle Projekte lässt sich das Board außerdem über die Arduino IDE programmieren.&lt;/p&gt;</description></item><item><title>Der Conrad Adventskalender IoT - 2018 [Smarthome Edition]</title><link>https://neu-iot.fkainka.de/der-conrad-adventskalender-iot-2018-smarthome-edition/</link><pubDate>Wed, 07 Nov 2018 14:11:10 +0100</pubDate><guid>https://neu-iot.fkainka.de/der-conrad-adventskalender-iot-2018-smarthome-edition/</guid><description>&lt;h3 id="adventskalender-internet-of-things-2018-experimente-für-smart-home"&gt;Adventskalender Internet of Things 2018: Experimente für Smart Home&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.conrad.de/de/adventskalender-conrad-adventskalender-internet-of-things-1662787.html"&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2018/10/bg-2018.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dank des Adventskalenders Internet of Things (IoT) muss die Wartezeit bis Weihnachten nicht langweilig werden. Der bereits vorprogrammierte Mikrocontroller in Verbindung mit dem Node-RED Programmier-Tool bietet eine Menge Spielraum für 24 vielfältige und spannende Experimente rund um das Thema Smart Home und Hausautomatisierung.&lt;/p&gt;
&lt;p&gt;Internet of Things und Smarthome beinhalten die automatisierte Erfassung und Steuerung von Sensoren und Aktoren in einem großen Netzwerk. Vom automatisierten Ein- und Ausschalten von LEDs über das Steuern Ihres TVs&lt;br&gt;
von irgendwo in der Welt bis hin zur Langzeitüberwachung Ihres Raumklimas, mit einfachen Beispielen werden die verschiedenen Aspekte der Hausautomatisierung praktisch ergründet.&lt;/p&gt;</description></item><item><title>Die IoT Lernpakete</title><link>https://neu-iot.fkainka.de/das-lernpaket-iot/</link><pubDate>Wed, 20 Sep 2017 12:42:23 +0200</pubDate><guid>https://neu-iot.fkainka.de/das-lernpaket-iot/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2016/01/IoT-LP3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Sie können das Lernpaket unter anderem hier erwerben:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.franzis.de/elektronik/lernpakete-mikrocontroller/franzis-maker-kit-internet-of-things"&gt;Direkt bei Franzis&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.amazon.de/dp/3645653163"&gt;Bei Amazon.de&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.elektor.de/franzis-maker-kit-internet-of-things"&gt;Bei Elektor&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.conrad.de/de/lernpaket-conrad-components-profi-lernpaket-internet-of-things-10215-ab-14-jahre-1421380.html"&gt;Bei Conrad&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das Lernpaket Internet of Things gibt es in mehreren Ausführungen. Es gibt eine Franzis und eine Conrad Version. Beide Lernpakete bringt Ihnen das brandaktuelle Thema IoT anhand von praktischen Beispielen mit ausführlichen Erklärungen näher. Teil des Pakets ist das neue Pretzel Board (NanoESP) mit dem der Einstieg in das komplexe wie spannende Thema spielerisch gelingt.&lt;/p&gt;</description></item><item><title>Der Conrad Adventskalender Internet of Things</title><link>https://neu-iot.fkainka.de/der-conrad-iot-adventskalender/</link><pubDate>Wed, 20 Sep 2017 12:16:48 +0200</pubDate><guid>https://neu-iot.fkainka.de/der-conrad-iot-adventskalender/</guid><description>&lt;p&gt;&lt;a href="http://www.conrad.de/ce/de/product/1365865/Adventskalender-Conrad-Internet-of-Things-2015-10180"&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2015/09/prev2.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.conrad.de/ce/de/product/1365865/Adventskalender-Conrad-Internet-of-Things-2015-10180"&gt;Conrad Shop&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mit dem Adventskalenders Internet of Things (IoT) muss die Wartezeit bis Weihnachten nicht angweilig werden. Das neue Arduino kompatible Pretzelboard (NanoESP) mit integriertem WLAN-Modul und die enthaltenden Bauteile sind ideal für 24 vielfältige und spannende Experimente rund um dieses Thema.&lt;/p&gt;
&lt;p&gt;Internet of Things beinhaltet die Kommunikation und Steuerung von Sensoren und Aktoren in einem großen Netzwerk. Vom einfachen Ein- und Ausschalten einer LED mit dem Smartphone über das Erstellen eines Webservers bis hin zur Langzeitüberwachung mittels Sensoren, mit einfachen Beispielen werden die verschiedenen Aspekte des Themas IoT praktisch ergründet.&lt;/p&gt;</description></item><item><title>Der Conrad Adventskalender IoT - 2016</title><link>https://neu-iot.fkainka.de/der-conrad-adventskalender-iot-2016/</link><pubDate>Fri, 08 Sep 2017 14:45:58 +0200</pubDate><guid>https://neu-iot.fkainka.de/der-conrad-adventskalender-iot-2016/</guid><description>&lt;p&gt;&lt;a href="https://www.conrad.de/de/conrad-components-internet-of-things-ab-14-jahre-1435475.html"&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2016/10/bg-2016.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Verkürzen Sie die Wartezeit auf Weihnachten mit spannenden und unterhaltsamen Experimenten zum Internet der Dinge. Schicken Sie dabei Push-Nachrichten auf Ihr Smartphone oder bauen Sie eine Alarmanlage mit Bewegungsmelder und lassen Sie sich bei verdächtigen Bewegungen benachrichtigen. Lernen Sie, wie Sie unterschiedliche Webdienste wie z.B. Twitter ansteuern, und nutzen Sie das Protokoll für das Internet der Dinge: MQTT.&lt;/p&gt;
&lt;p&gt;Der Internet-of-Things-Adventskalender enthält alle Bauteile für 24 Experimente, darunter eine eigens entwickelte Hardware-Platine mit integriertem WLAN-Modul, die sich über die kostenfreie Arduino IDE programmieren lässt.&lt;/p&gt;</description></item><item><title>User Projekte</title><link>https://neu-iot.fkainka.de/user-projekte/</link><pubDate>Mon, 25 Jan 2016 18:44:05 +0100</pubDate><guid>https://neu-iot.fkainka.de/user-projekte/</guid><description>&lt;p&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2015/12/IMG_3481.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jetzt bist du gefragt!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In diesem Bereich hast du nun die Möglichkeit, deine Projekte, Ideen und Experimente vorzustellen.&lt;/p&gt;
&lt;p&gt;Dabei ist es egal, ob du einem bestehenden Projekt eine neue Verpackung gibst, z.B. eine schöne &lt;a href="https://neu-iot.fkainka.de/day-23"&gt;Cheerlights Lampe&lt;/a&gt;, oder eine völlig neue Idee hast. Auf dieser Seite kannst du alle deine Projekte eigenständig präsentieren.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Besonders praktisch:&lt;/strong&gt; Über diese Funktion kannst du außerdem auch Beitrage zu dem &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;aktuellen Wettbewerb&lt;/a&gt; einreichen. Und wer weiß, ob nicht in Zukunft noch mehr Wettbewerbe stattfinden.&lt;/p&gt;</description></item><item><title>Treiber- NanoESP &amp; Pretzelboard</title><link>https://neu-iot.fkainka.de/driver/</link><pubDate>Sun, 23 Aug 2015 10:02:42 +0200</pubDate><guid>https://neu-iot.fkainka.de/driver/</guid><description>&lt;p&gt;Damit das Board an Ihrem PC funktionieren kann, benötigen Sie einen Treiber für den USB-to-Serial Wandler CH340G. Diesen können Sie die hier&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/CH341SER.zip"&gt;Windows (ab Windows 98 bis Windows 10, 32-Bit/64-Bit)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/CH341SER_LINUX.zip"&gt;Linux Version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/CH341SER_ANDROID.zip"&gt;Android Version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/08/CH34x_Install.zip"&gt;Mac Version&lt;/a&gt; **(**&lt;strong&gt;Hinweis für MAC-Nutzer:&lt;/strong&gt; Seit Mac OS Sierra scheint es vermehrt Probleme mit dem Treiber zu geben. Es gibt noch keinen offiziellen Treiber vom USB-Chip Hersteller. Allerdings finden Sie hier zwei Links mit alternativen Versionen:&lt;br&gt;
&lt;a href="https://github.com/jimaobian/CH34x_Install_V1.3/blob/master/CH34x_Install_V1.3.zip"&gt;https://github.com/jimaobian/CH34x_Install_V1.3/blob/master/CH34x_Install_V1.3.zip&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver"&gt;https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver&lt;/a&gt; )&lt;/p&gt;</description></item><item><title>Download Beispielprogramme</title><link>https://neu-iot.fkainka.de/download-beispielprogramme/</link><pubDate>Fri, 10 Jan 2020 12:18:27 +0100</pubDate><guid>https://neu-iot.fkainka.de/download-beispielprogramme/</guid><description>&lt;p&gt;Auf dieser Seite finden Sie alle im Lernpaket vorgestellten Programme.&lt;/p&gt;
&lt;h3 id="download-neuauflage-alle-programme"&gt;Download Neuauflage: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/Lernpaket_IoT_Neuauflage.zip"&gt;Alle Programme&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="github-repository"&gt;GitHub Repository: &lt;a href="https://github.com/FKainka/Lernpaket-IoT"&gt;https://github.com/FKainka/Lernpaket-IoT&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="download-franzis-version-alle-proramme"&gt;Download Franzis Version: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/IoT-LP.zip"&gt;Alle Proramme&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="download-conradversion-alle-programme---conrad-version"&gt;Download Conrad Version: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/IoT_-LP_-C_Programme.zip"&gt;Alle Programme - Conrad Version&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="achtung"&gt;Achtung:&lt;/h4&gt;
&lt;p&gt;Es gab eine Änderung im Programm P12_TCPWeather. Der Webservice, den ich in diesem Programm verwendet habe, hat seinen Dienst eingestellt. Ich habe nun einen eigenen Service gestartet, der seine Daten von der Webseite &lt;a href="http://www.openweathermap.com/"&gt;http://www.openweathermap.com/&lt;/a&gt; bezieht. Der Link zu dem neuen und auch in der neuen Version des Programms verwendeten Dienst lautet:&lt;/p&gt;</description></item><item><title>Maker Kit für Smart Home</title><link>https://neu-iot.fkainka.de/maker-kit-fuer-smart-home/</link><pubDate>Sat, 02 Nov 2019 14:51:52 +0100</pubDate><guid>https://neu-iot.fkainka.de/maker-kit-fuer-smart-home/</guid><description>&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2019/10/smarthome.png"&gt;&lt;img class="wp-image-2925 size-medium" src="https://neu-iot.fkainka.de/images/2019/10/smarthome.png" alt="Smarthome Lernpaket" width="300" height="295" data-id="2925" /&gt;&lt;/a&gt;&lt;figcaption&gt;Smarthome Lernpaket&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Licht, Heizung, Alarm oder Pflanzenbewässerung: Im vernetzten Heim lassen sich diese und viele weitere Systeme fernsteuern und automatisieren. Steigen Sie mit diesem Maker Kit ein in die Welt des Smart Homes und lernen Sie grundlegende Prozesse und Techniken kennen und selbst anzuwenden. Als Basis für alle Experimente dient Ihnen ein speziell dafür entwickeltes NodeESP-Board, das in diesem Maker Kit enthalten ist.&lt;/p&gt;
&lt;p&gt;Hausautomatisierung leicht gemacht&lt;br&gt;
Vom automatisierten Ein- und Ausschalten von LEDs über das Steuern Ihres TVs von irgendwo in der Welt bis hin zur Langzeitüberwachung Ihres Raumklimas ergründen Sie die verschiedenen Aspekte der Hausautomatisierung. Alle benötigten Bauteile, darunter ein speziell entwickeltes NodeESP-Board, sind in diesem Maker Kit enthalten es kann sofort losgehen!&lt;/p&gt;</description></item><item><title>NanoESP Updaten</title><link>https://neu-iot.fkainka.de/nanoesp-updaten/</link><pubDate>Wed, 21 Aug 2019 11:01:57 +0200</pubDate><guid>https://neu-iot.fkainka.de/nanoesp-updaten/</guid><description>&lt;p&gt;Das NanoESP-Board, auch als Pretzelboard bekannt, ist nun schon vor einer ganzen Weile erschienen. Dennoch bekomme ich immer noch Mails von Leuten, die Hilfe benötigen oder Fragen haben. Zuletzt erreicht mich eine Mail mit der Frage, ob man die Firmware des ESP8266 Chips auf einen neueren Stand bringen könnte. Der für das WLAN zuständige Mikrocontroller hat eine AT-Firmware aus dem Jahre 2015 und mittlerweile gibt es verbesserte Versionen der AT-Firmware.  Das Problem ist allerdings, dass der Flash-Speicher Chip, auf dem sich die Firmware zum ESP-Controller befindet, nur eine Kapazität von 4 Mbit (also 512 kB) hat und deswegen nicht mit allen neueren Firmware Versionen kompatibel ist. Dennoch habe ich nach einigem Recherchieren eine Firmwareversion gefunden, die kompatibel ist und zudem neue Möglichkeiten bereitstellt. Deswegen finden Sie hier eine Anleitung, wie Sie das Board updaten können.&lt;/p&gt;</description></item><item><title>Check out Blynk_Tag5 app I've made.</title><link>https://neu-iot.fkainka.de/check-out-blynk_tag5-app-ive-made/</link><pubDate>Fri, 28 Jun 2019 11:18:48 +0200</pubDate><guid>https://neu-iot.fkainka.de/check-out-blynk_tag5-app-ive-made/</guid><description>&lt;p&gt;Hey,&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve made Blynk_Tag5 app. You are welcome to try it out!&lt;/p&gt;
&lt;p&gt;To start using it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Download Blynk App: &lt;a href="http://j.mp/blynk_Android"&gt;http://j.mp/blynk_Android&lt;/a&gt; or &lt;a href="http://j.mp/blynk_iOS"&gt;http://j.mp/blynk_iOS&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Touch the QR icon and point the camera to the code below or open the link below - &lt;a href="http://tinyurl.com/hpo76l3"&gt;http://tinyurl.com/hpo76l3&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enjoy my app!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Tag 24: Tannenbaumbeleuchtung</title><link>https://neu-iot.fkainka.de/day24-2018/</link><pubDate>Mon, 24 Dec 2018 00:00:55 +0100</pubDate><guid>https://neu-iot.fkainka.de/day24-2018/</guid><description>&lt;p&gt;Hinter dem letzten Türchen des Adventskalenders befindet sich eine weitere programmierbare RGB-LED. Damit haben Sie jetzt zwei LEDs, die Sie zu einer kleinen Weihnachtsbaumbeleuchtung verbinden können. Dazu benötigen Sie den folgenden Aufbau.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day24_2RGB_Steckplatine.png"&gt;&lt;img class=" wp-image-2596" src="https://neu-iot.fkainka.de/images/2018/11/Day24_2RGB_Steckplatine.png" alt="Der Aufbau des Weihnachtsbaumlichts. Die langen Beinchen der LEDs befinden sich rechts" width="348" height="476" data-id="2596" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau des Weihnachtsbaumlichts. Die langen Beinchen der LEDs befinden sich rechts&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Aktivieren Sie dann das Programm und importieren Sie den Flow des heutigen Tages. Deaktivieren Sie alle vorangegangenen Flows und ändern Sie gegebenenfalls die Broadcast-IP des UDP-Nodes.&lt;/p&gt;</description></item><item><title>Tag 23: Alarmanlage</title><link>https://neu-iot.fkainka.de/day23-2018/</link><pubDate>Sun, 23 Dec 2018 00:00:28 +0100</pubDate><guid>https://neu-iot.fkainka.de/day23-2018/</guid><description>&lt;p&gt;Hinter dem vorletzten Türchen des Adventskalenders befindet sich ein sogenannter Tilt-Sensor (Neigungssensor). Der Sensor erkennt, wenn er gekippt wird. Wir setzen ihn heute als Sensor für eine Alarmanlage ein. Der Lautsprecher von vor zwei Tagen dient uns dabei als Signalgeber. Dazu wird der folgende Aufbau benötigt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day23_Speaker_Tilt_Steckplatine.png"&gt;&lt;img class=" wp-image-2590" src="https://neu-iot.fkainka.de/images/2018/11/Day23_Speaker_Tilt_Steckplatine.png" alt="Der Aufbau" width="371" height="566" data-id="2590" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Aktivieren Sie zunächst wie gewohnt das Programm des heutigen Tages und fügen Sie anschließend den Node-RED-Flow in die Umgebung ein. Passen Sie außerdem das MQTT-Topic an und deaktivieren Sie alle vorangegangenen Flows.&lt;/p&gt;</description></item><item><title>Tag 22: Klimawächter</title><link>https://neu-iot.fkainka.de/day22-2018/</link><pubDate>Sat, 22 Dec 2018 00:00:26 +0100</pubDate><guid>https://neu-iot.fkainka.de/day22-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des 22. Tages befindet sich ein neuer Sensor, der die aktuelle Luftfeuchtigkeit messen kann. Wir benutzen ihn, um einen vollständigen Raumklimawächter zu realisieren. Dazu benötigen wir die folgende Schaltung.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day22_Clima_Steckplatine.png"&gt;&lt;img class=" wp-image-2584" src="https://neu-iot.fkainka.de/images/2018/11/Day22_Clima_Steckplatine.png" alt="Die Schaltung des Raumklimawächters" width="432" height="554" data-id="2584" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die Schaltung des Raumklimawächters&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Der Versuch des heutigen Tages vereint drei Sensoren: den Temperatursensor (NTC), den Lichtsensor (Fototransistor) und den Luftfeuchtesensor. Zusammen können sie einen recht guten Eindruck der aktuellen Klimalage in einem Zimmer abgeben. Dazu müssen Sie aber zunächst das Programm des heutigen Tages starten.&lt;/p&gt;</description></item><item><title>Tag 21: Piano-Player</title><link>https://neu-iot.fkainka.de/tag-21-piano-player/</link><pubDate>Fri, 21 Dec 2018 00:00:26 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-21-piano-player/</guid><description>&lt;p&gt;Hinter dem Türchen des 21. Tages finden Sie einen Lautsprecher. In dem heutigen Versuch werden wir damit etwas Musik abspielen. Dazu benötigen wir den folgenden einfachen Aufbau.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day21_Speaker_Steckplatine.png"&gt;&lt;img class=" wp-image-2580" src="https://neu-iot.fkainka.de/images/2018/11/Day21_Speaker_Steckplatine.png" alt="Versuchsaufbau" width="418" height="638" data-id="2580" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;In diesem Versuch ist der Lautsprecher an einem der beiden DAC-Ausgänge des Boards angeschlossen. DAC bedeutet &lt;strong&gt;Digital/Analog-Converter&lt;/strong&gt; und ermöglicht es, durch digitale Befehle ein analoges Signal zu erzeugen. In dem heutigen Versuch werden wir damit Töne erzeugen, genauer gesagt Töne wie von einem Piano. Die Noten, Pausen und Tonarten werden dabei per UDP übertragen, und zwar als Array von Zahlen.&lt;/p&gt;</description></item><item><title>Tag 20: Pflanzenwächter</title><link>https://neu-iot.fkainka.de/day20-2018/</link><pubDate>Thu, 20 Dec 2018 00:00:58 +0100</pubDate><guid>https://neu-iot.fkainka.de/day20-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich ein NTC-Widerstand (&lt;strong&gt;Negative Temperature Coefficient&lt;/strong&gt;) zur Messung der Temperatur. Zusammen mit dem Fototransistor und ein paar Drähten bauen wir damit einen Pflanzenwächter, der uns vor schlechten Bedingungen für eine zu überwachende Pflanze warnt. Dazu benötigen wir den folgenden Aufbau und das Programm des aktuellen Tages.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day20_Plant_Steckplatine.png"&gt;&lt;img class=" wp-image-2574" src="https://neu-iot.fkainka.de/images/2018/11/Day20_Plant_Steckplatine.png" alt="Der Pflanzenwächter" width="389" height="460" data-id="2574" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Pflanzenwächter&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Die beiden gelben Drähte sind dabei einfache Drähte, die in die Pflanzenerde gesteckt werden können. Sie sollen überwachen, wie feucht die Erde ist. Für erste Tests reicht es aber aus, beide Drähte mit einem Finger zu berühren.&lt;/p&gt;</description></item><item><title>Tag 19: Cheerlights</title><link>https://neu-iot.fkainka.de/day19-2018/</link><pubDate>Wed, 19 Dec 2018 00:00:35 +0100</pubDate><guid>https://neu-iot.fkainka.de/day19-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich eine ganz besondere LED. Es handelt sich um eine RGB-LED mit integriertem Controller (Typenbezeichnung PL9823, vergleichbar mit WS2812). Sie ermöglicht es, mehrere LEDs hintereinanderzuschalten und über ein Protokoll einzeln anzusteuern. Heute werden wir allerdings zunächst eine LED ansteuern. Dafür kommt ein Versuch gerade recht, der schon eine gewisse Tradition in meinen Adventskalendern hat: das Cheerlights-Projekt von Hans Schaaler. Für alle diejenigen, die das Projekt nicht kennen: Es geht um weltweit vernetzte bunte Lichter, die sich simultan über Twitter-Kommandos steuern lassen. Und dazu passt Node-RED sehr gut. Für den Versuch des heutigen Tages benötigen Sie den folgenden Aufbau und das Programm des heutigen Tages.&lt;/p&gt;</description></item><item><title>Tag 18: Kerzenalarm</title><link>https://neu-iot.fkainka.de/day18-2018/</link><pubDate>Tue, 18 Dec 2018 00:00:47 +0100</pubDate><guid>https://neu-iot.fkainka.de/day18-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich eine kleine Diode. Wir werden diese Diode als Temperatursensor für besonders hohe Temperaturen nutzen. Damit ist es uns möglich, einen kleinen Kerzenwächter zu bauen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day18_Diode_Steckplatine.png"&gt;&lt;img class=" wp-image-2562" src="https://neu-iot.fkainka.de/images/2018/11/Day18_Diode_Steckplatine.png" alt="Versuchsaufbau" width="458" height="567" data-id="2562" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Der Aufbau des heutigen Tages besteht, neben der Diode, aus einem Poti, das einfach als 10-kOhm-Widerstand herhält. Dieser Widerstand ist fix und kann auch nicht eingestellt werden. Das Board misst nun die Spannung an der Diode und überträgt die Werte über MQTT an Node-RED.&lt;/p&gt;</description></item><item><title>Tag 17: Zeitgesteuerte Lichter</title><link>https://neu-iot.fkainka.de/day17-2018/</link><pubDate>Mon, 17 Dec 2018 00:00:17 +0100</pubDate><guid>https://neu-iot.fkainka.de/day17-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des 17. Tages befindet sich ein weiteres Poti. Das bedeutet, dass nun für jede LED genau ein Poti zur Verfügung steht. Damit können wir das Programm von Tag 13, die smarten Lichter, um eine etwas praktischere und intuitivere Dimm-Funktion erweitern. Außerdem werden wir heute sehen, wie man mit Node-RED zeitgesteuerte Ereignisse startet.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day17_Poti2_Button2_LED2_Steckplatine.png"&gt;&lt;img class=" wp-image-2556" src="https://neu-iot.fkainka.de/images/2018/11/Day17_Poti2_Button2_LED2_Steckplatine.png" alt="Versuchsaufbau" width="335" height="414" data-id="2556" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Sie müssen das Programm des heutigen Tages in der Weboberfläche aktivieren. Anschließend können Sie den heutigen Flow in die Node-RED-Umgebung einfügen, natürlich nicht, ohne die vorherigen Flows zu deaktivieren und das MQTT-Topic an Ihre persönliche ID anzupassen.&lt;/p&gt;</description></item><item><title>Firmware Neuigkeiten und Bug Report</title><link>https://neu-iot.fkainka.de/firmware-neuigkeiten-und-bug-report/</link><pubDate>Sun, 16 Dec 2018 13:58:05 +0100</pubDate><guid>https://neu-iot.fkainka.de/firmware-neuigkeiten-und-bug-report/</guid><description>&lt;p&gt;Auf dieser Seite sollen Neuigkeiten zur Firmware veröffentlicht werden. Bugs können über die Kommentarfunktion gemeldet werden.&lt;/p&gt;
&lt;h2 id="neusete-version-download-link"&gt;Neusete Version: &lt;a href="https://github.com/FKainka/NodeESP_Firmware/raw/master/bin/ESP32_FW.bin"&gt;Download Link&lt;/a&gt;&lt;/h2&gt;
&lt;h4 id="git-repository"&gt;Git Repository: &lt;a href="https://github.com/FKainka/NodeESP_Firmware"&gt;https://github.com/FKainka/NodeESP_Firmware&lt;/a&gt;&lt;/h4&gt;
&lt;h2 id="firmware-update-05122019"&gt;Firmware Update 05.12.2019&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Bug Hotfix: Neue SD-Library störte PULLUP-Funktion von Pin 18, Keine SD-Karte an Versuchen mit Pin 18 verwenden!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="firnware-update-04122019-stabilitäts-update"&gt;Firnware Update 04.12.2019 (Stabilitäts Update)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESP32 Arduino Core updated (v1.11.1)&lt;/li&gt;
&lt;li&gt;Verschiedene Libraries geupdatet&lt;/li&gt;
&lt;li&gt;Update Vorgang verbessert (md5-Hash)&lt;/li&gt;
&lt;li&gt;Config-Verbesert&lt;/li&gt;
&lt;li&gt;Diverse Bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="firnware-update-17102019-smarthome-update"&gt;Firnware Update 17.10.2019 (Smarthome Update)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Apps für das Smarthome Lernpaket hinzugefügt&lt;/li&gt;
&lt;li&gt;Onboard HTML-Editor zum Verändern der integrierten Webseite und Uploaden von Dateien hinzugefügt (&lt;a href="http://nodeesp.local/editor"&gt;http://nodeesp.local/editor&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Automatische SD-Karten Unterstützung hinzugefügt (SD-Karten werden automatisch unter &lt;a href="http://nodeesp.local/sd"&gt;http://nodeesp.local/sd&lt;/a&gt; eingebunden)&lt;/li&gt;
&lt;li&gt;Bessere Vorabinformationen beim Auswählen von Apps über die Config-Seite&lt;/li&gt;
&lt;li&gt;Neues Update-Verfahren direkt vom GitHub-Repository aus (&lt;a href="https://github.com/FKainka/NodeESP"&gt;https://github.com/FKainka/NodeESP&lt;/a&gt;_Firmware)&lt;/li&gt;
&lt;li&gt;Bug Fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="firmware-update-16122018-version-2---mit-mqtt-fix"&gt;Firmware Update 16.12.2018 (Version 2 - Mit MQTT Fix)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Es gibt nun eine neue Version dieser Firmware, in der der MQTT-Bug behoben ist. Dieses Update kann auch über die Update-Funktion auf der Config-Seite geladen werden.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://ota.fkainka.de/ESP32_FW_1v3_161218.bin"&gt;Download Link&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Tag 16: Universalfernbedienung</title><link>https://neu-iot.fkainka.de/day16-2018/</link><pubDate>Sun, 16 Dec 2018 00:00:40 +0100</pubDate><guid>https://neu-iot.fkainka.de/day16-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich das Gegenstück zum gestrigen Bauteil, nämlich eine IR-Diode. Jetzt können Sie eine komplette Fernbedienung für den Fernseher nachbauen, die Sie per Smartphone und Webseite bequem steuern. Dazu benötigen Sie den folgenden Aufbau.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day16_IRremotefzz_Steckplatine.png"&gt;&lt;img class=" wp-image-2548" src="https://neu-iot.fkainka.de/images/2018/11/Day16_IRremotefzz_Steckplatine.png" alt="Der Aufbau der Fernbedienungen mit IR-Empfänger und Sendediode" width="498" height="616" data-id="2548" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau der Fernbedienungen mit IR-Empfänger und Sendediode&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Wählen Sie das Programm des heutigen Tages aus. Das Board startet anschließend wieder im HeadlessModus, in dem die Webseite des Boards nicht erreichbar ist. Stattdessen ist lediglich die MQTT-Funktion des Boards verfügbar. Um in den Standardmodus zu gelangen, müssen Sie die Drahtbrücke an Pin 23 entfernen und das Board neu starten.&lt;/p&gt;</description></item><item><title>Tag 15: Fernbedienungsempfänger</title><link>https://neu-iot.fkainka.de/day15-2018/</link><pubDate>Sat, 15 Dec 2018 00:00:41 +0100</pubDate><guid>https://neu-iot.fkainka.de/day15-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein ganz besonderes Bauteil, nämlich ein Infrarotempfangsmodul. Damit ist es möglich, handelsübliche Infrarotfernbedienungssignale zu empfangen. Dazu benötigen wir den folgenden Aufbau.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day15_IRrecv_Steckplatine.png"&gt;&lt;img class=" wp-image-2542" src="https://neu-iot.fkainka.de/images/2018/11/Day15_IRrecv_Steckplatine.png" alt="Versuchsaufbau" width="439" height="544" data-id="2542" /&gt;&lt;/a&gt;&lt;figcaption&gt;So schließen Sie das IR-Modul richtig am Board an&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Nachdem Sie die Schaltung aufgebaut haben, können Sie das Programm des heutigen Tages auswählen. Die Boardwebseite können Sie dann nicht mehr erreichen, denn sie musste für den Versuch deaktiviert werden. Das Board arbeitet nun im Headless-Modus, also ohne sichtbare Oberfläche. Um wieder die Webseite starten und zum Beispiel andere Programme aktivieren zu können, müssen Sie lediglich die Drahtbrücke an Pin 23 herausziehen und das Board neu starten. Dann läuft wieder alles wie gewohnt.&lt;/p&gt;</description></item><item><title>Tag 14: Smarte Lichter</title><link>https://neu-iot.fkainka.de/day14-2018/</link><pubDate>Fri, 14 Dec 2018 00:00:12 +0100</pubDate><guid>https://neu-iot.fkainka.de/day14-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des 14. Tages befindet sich eine weitere LED. Nun haben wir zwei LEDs mit Vorwiderständen und zwei Taster sowie genug Kabel, um ein komplexes Lampensystem zu bauen. Dazu benötigen Sie den folgenden Aufbau:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day14_2LED_2Btn_4tch_Steckplatine.png"&gt;&lt;img class=" wp-image-2536" src="https://neu-iot.fkainka.de/images/2018/11/Day14_2LED_2Btn_4tch_Steckplatine.png" alt="Der Aufbau mit vier losen Kabeln (gelb) als Touch-Buttons" width="509" height="660" data-id="2536" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau mit vier losen Kabeln (gelb) als Touch-Buttons&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Nun können Sie das Programm des heutigen Tages aktivieren und den heutigen Flow einfügen. Vergessen Sie nicht, die &lt;strong&gt;[PID]&lt;/strong&gt; durch Ihre persönliche ID zu ersetzen, am einfachsten mit dem Editortrick.&lt;/p&gt;</description></item><item><title>Tag 13: Smarter Schalter für ein Soundboard</title><link>https://neu-iot.fkainka.de/day13-2018/</link><pubDate>Thu, 13 Dec 2018 00:00:41 +0100</pubDate><guid>https://neu-iot.fkainka.de/day13-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich ein weiterer Widerstand mit 1 kOhm, der heute noch keine Rolle spielt. Stattdessen möchte ich Ihnen zeigen, wie man einen smarten Touch-Schalter baut. Dazu ist folgender Aufbau nötig, der nur aus vier lose hängenden Drähten als Touch-Buttons und einer Drahtbrücke an Pin 23 besteht.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day13_5tch_Steckplatine.png"&gt;&lt;img class=" wp-image-2529" src="https://neu-iot.fkainka.de/images/2018/11/Day13_5tch_Steckplatine.png" alt="Vier gelbe Drähte als Touch-Buttons" width="467" height="611" data-id="2529" /&gt;&lt;/a&gt;&lt;figcaption&gt;Vier gelbe Drähte als Touch-Buttons&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Die Besonderheit des heutigen Versuchs besteht vor allem im Programm selbst, das Sie an dieser Stelle über die Konfigurationsseite aktivieren können. Nach dem Aktivieren werden Sie feststellen, dass die Status-LED kurz blinkt und dann erlischt. Das liegt daran, dass das Board wieder im stromsparenden Deep-Sleep-Modus betrieben wird. Aufgeweckt wird es aber nicht nach einer gewissen Zeit, sondern erst, wenn Sie einen der Touch-Buttons berühren. Das Board sendet dann Infos über den Touch-Button zum Broker, der das Aufwecken ausgelöst hat. Das sieht dann z. B. so aus:&lt;/p&gt;</description></item><item><title>Tag 12: MQTT-Button</title><link>https://neu-iot.fkainka.de/day12-2018/</link><pubDate>Wed, 12 Dec 2018 00:00:34 +0100</pubDate><guid>https://neu-iot.fkainka.de/day12-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen des Adventskalenders finden Sie einen weiteren Button. In dem Versuch des heutigen Tages werden wir uns weiter mit dem MQTT-Protokoll beschäftigen, diesmal in Verbindung mit Node-RED. Außerdem sehen wir, wie zwei Buttons gleichzeitig ausgewertet werden können. Der Versuch des heutigen Tages hat folgenden Aufbau:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day12_2Button_Steckplatine.png"&gt;&lt;img class=" wp-image-2519" src="https://neu-iot.fkainka.de/images/2018/11/Day12_2Button_Steckplatine.png" alt="Der Aufbau mit zwei Buttons" width="469" height="580" data-id="2519" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau mit zwei Buttons&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Es gibt also zwei Buttons, die wir nutzen können. Aktivieren Sie nun das Programm des heutigen Tages. Anschließend können Sie den Node-RED-Flow importieren. Diesen müssen Sie zunächst aber leicht anpassen. Sie müssen nämlich &lt;strong&gt;[PID]&lt;/strong&gt; im Topic durch Ihre persönliche MQTT-ID ersetzen. Das geht aber ganz einfach mit dem folgenden Trick:&lt;/p&gt;</description></item><item><title>Tag 11: MQTT</title><link>https://neu-iot.fkainka.de/day11-2018/</link><pubDate>Tue, 11 Dec 2018 00:00:22 +0100</pubDate><guid>https://neu-iot.fkainka.de/day11-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen finden Sie wieder einen Satz Kabel, die wir für die nächsten Tage und die komplexer werdenden Aufbauten benötigen werden.&lt;/p&gt;
&lt;p&gt;In den letzten Tagen haben wir die meisten unserer Daten mittels UDP übertragen. Dieses Protokoll ist sehr praktisch, da es einerseits einen kleinen Overhead (Daten, die neben den eigentlichen Nutzdaten übermittelt werden) hat und andererseits Broadcast-fähig ist und somit gleich an mehrere Geräte gleichzeitig Daten senden kann. Heute wollen wir aber noch ein zweites Protokoll näher kennenlernen, das im Bereich IoT eine große Rolle spielt. Es geht um das Nachrichtenprotokoll MQTT (&lt;strong&gt;Message Queue&lt;/strong&gt; &lt;strong&gt;Telemetry Transport&lt;/strong&gt;), das speziell für die Kommunikation von Maschine zu Maschine (M2M) entwickelt wurde. Der Grund dafür, dass dieses Protokoll so genial ist, liegt in der Kompaktheit und Einfachheit, mit der Daten wie Steuerdaten, Messdaten oder Texte zwischen Geräten ausgetauscht werden können. Im Vergleich zu HTTP ist der Overhead sehr klein. Deswegen können auch Embeded Devices, also Mikrocontroller wie unser NodeESP, die Daten gut verarbeiten.&lt;/p&gt;</description></item><item><title>Tag 10: Deep Sleep</title><link>https://neu-iot.fkainka.de/day10-2018/</link><pubDate>Mon, 10 Dec 2018 00:00:59 +0100</pubDate><guid>https://neu-iot.fkainka.de/day10-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen finden Sie ein Batteriefach für drei A-Batterien (4,5 V), um das Board unabhängig von einer Steckdose betreiben zu können. Für einen sparsamen Batteriebetrieb gibt es den DeepSleep-Modus. Dieser erlaubt es dem Board, in einen Tiefschlafmodus zu wechseln und so gut wie gar keinen Strom zu verbrauchen. Nach einer gewissen Zeit weckt sich das Board selbst auf und erfüllt eine kleine Aufgabe, um kurz danach wieder schlafen zu gehen. Durch die langen Schlaf- und kurzen Wachzeiten spart dieser Modus viel Energie und kann das Board so über Monate über die Batterien versorgen. Der Aufbau von heute verwendet wieder den Lichtsensor und bekommt zusätzlich eine Drahtbrücke von Pin 23 nach GND.&lt;/p&gt;</description></item><item><title>Tag 9: Ein Stimmungslicht</title><link>https://neu-iot.fkainka.de/day9-2018/</link><pubDate>Sun, 09 Dec 2018 00:00:33 +0100</pubDate><guid>https://neu-iot.fkainka.de/day9-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen finden Sie einen Fototransistor. Er wird verwendet, um die Umgebungshelligkeit zu messen. In dieser Schaltung liegt das Poti in Reihe zum Fototransistor. So kann man mit dem Poti die Sensibilität des Sensors verändern. Die Schaltung bewirkt, dass das Abdunkeln des Sensors den Messwert erhöht.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day9_LDR_Steckplatine.png"&gt;&lt;img class=" wp-image-2498" src="https://neu-iot.fkainka.de/images/2018/11/Day9_LDR_Steckplatine.png" alt="Versuchsaufbau" width="441" height="546" data-id="2498" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Dies können Sie im Gauge-Element auf dem Nutzerinterface zum heutigen Tag sehen. Dazu müssen Sie aber zunächst den Flow des heutigen Tages in Ihre Node-RED-Umgebung importieren und starten, natürlich nicht, ohne den gestrigen zu deaktivieren. Vergessen Sie auch nicht, das heutige Programm auf der Konfigurationsseite zu aktvieren und die IP des UDP-Sende-Nodes anzupassen.&lt;/p&gt;</description></item><item><title>Tag 8: Ein Regler</title><link>https://neu-iot.fkainka.de/day8-2018/</link><pubDate>Sat, 08 Dec 2018 00:00:21 +0100</pubDate><guid>https://neu-iot.fkainka.de/day8-2018/</guid><description>&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day8_Button_LED_ADC_Steckplatine.png"&gt;&lt;img class=" wp-image-2490" src="https://neu-iot.fkainka.de/images/2018/11/Day8_Button_LED_ADC_Steckplatine.png" alt="Versuchsaufbau" width="512" height="633" data-id="2490" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Hinter dem achten Türchen des Adventskalenders befindet sich ein Potenziometer, das hier als Spannungsteiler verwendet wird. Sie können eine Spannung zwischen 0 V und 3,3 V einstellen, die vom Board gemessen und an Node-RED übertragen wird. Zusätzlich zu dem Treppenhauslicht von gestern können Sie so auch Messwerte übertragen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/T8Flow.png"&gt;&lt;img class="size-large wp-image-2491" src="https://neu-iot.fkainka.de/images/2018/11/T8Flow.png" alt="Der Flow des heutigen Tages" width="616" height="154" data-id="2491" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Flow des heutigen Tages&lt;/figcaption&gt;&lt;/figure&gt;
&lt;div class="ext-embed" data-src="https://pastebin.com/embed_iframe/FNtPZnht" data-height="400px" data-title="pastebin.com"&gt;
&lt;div&gt;&lt;strong&gt;Externer Inhalt von pastebin.com&lt;/strong&gt;&lt;br&gt;Beim Laden werden Daten wie Ihre IP-Adresse an pastebin.com übertragen.
&lt;a href="https://neu-iot.fkainka.de/datenschutzerklaerung/#eingebettete-inhalte-anderer-anbieter"&gt;Datenschutz&lt;/a&gt;&lt;/div&gt;
&lt;div class="ext-embed-actions"&gt;&lt;button type="button"&gt;Inhalt laden&lt;/button&gt;
&lt;a href="https://pastebin.com/embed_iframe/FNtPZnht" target="_blank" rel="noopener noreferrer"&gt;direkt öffnen ↗&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
document.addEventListener("click", function (e) {
var b = e.target.closest(".ext-embed button"); if (!b) return;
var box = b.closest(".ext-embed"), f = document.createElement("iframe");
f.src = box.dataset.src; f.style.height = box.dataset.height; f.title = box.dataset.title;
f.setAttribute("allowfullscreen", ""); f.loading = "lazy";
box.replaceChildren(f); box.classList.add("loaded");
});
&lt;/script&gt;
&lt;p&gt;Den Flow von heute bekommen Sie wie gewohnt in dem Pastebin Frame. Vergessen Sie nicht, den gestrigen zu deaktivieren und eventuell die Sende-IP anzupassen. In dem heutigen Flow wird außerdem ein neuer Node für das Dashboard verwendet, nämlich ein Gauge (Messgerät), über das der gemessene Wert visuell dargestellt wird.&lt;/p&gt;</description></item><item><title>Tag 7: Treppenhauslicht</title><link>https://neu-iot.fkainka.de/day7-2018/</link><pubDate>Fri, 07 Dec 2018 00:00:03 +0100</pubDate><guid>https://neu-iot.fkainka.de/day7-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich eine rote LED. Damit wollen wir nun ein einfaches Treppenhauslicht mit Webinterface realisieren. Dazu müssen Sie die folgende Schaltung aufbauen und das heutige Programm aktivieren.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day7_Button_LED_Steckplatine.png"&gt;&lt;img class=" wp-image-2483" src="https://neu-iot.fkainka.de/images/2018/11/Day7_Button_LED_Steckplatine.png" alt="Versuchsaufbau" width="534" height="661" data-id="2483" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau (Kurzes Beinchen der LED ist oben)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Den Node-RED-Flow zum Importieren finden Sie in dem unteren Pastebin Frame. Deaktivieren Sie nach dem Importieren den Flow von gestern, damit sich die UDP-Empfangs-Nodes nicht in die Quere kommen. Im Flow selbst finden Sie diesmal neben dem Empfangsnode einen Sende-Node. Diesen müssen Sie wahrscheinlich an Ihre Broadcast-IP anpassen. Wenn am UDP-Note eine Nachricht ankommt, wird sie wieder von einem JSON-String, also reinem Text, in ein JSON-Objekt konvertiert. Der Unterschied ist, dass man nun direkt auf einzelne Attribute zugreifen kann.&lt;/p&gt;</description></item><item><title>Tag 6: Touch to Speach</title><link>https://neu-iot.fkainka.de/day6-2018/</link><pubDate>Thu, 06 Dec 2018 00:00:26 +0100</pubDate><guid>https://neu-iot.fkainka.de/day6-2018/</guid><description>&lt;p&gt;Hinter dem sechsten Türchen des Adventskalenders finden Sie einen Widerstand mit 1 kOhm, der erst morgen zum Einsatz kommt. Heute wollen wir uns weiter mit Node-RED beschäftigen und die Touch-Funktion des Boards ausprobieren. Dazu müssen Sie wie gewohnt das Programm des heutigen Tages auswählen und außerdem die folgende Schaltung aufbauen. Die gelben Drähte sind die Verbindungsdrähte mit einem freien Ende und fungieren als Touch-Sensoren.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day6_Touch_Steckplatine.png"&gt;&lt;img class=" wp-image-2472" src="https://neu-iot.fkainka.de/images/2018/11/Day6_Touch_Steckplatine.png" alt="Versuchsaufbau" width="414" height="548" data-id="2472" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau: Drei Drähte hängen an einem Ende in der Luft&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Nach dem Aufbau können Sie Node-RED wieder über das Terminal und den Befehl &lt;strong&gt;node-red&lt;/strong&gt; starten. Öffnen Sie dann über die Adresse &lt;strong&gt;http://127.0.0.1:1880/&lt;/strong&gt; den Node-RED-Editor. Als Erstes werden wir heute ein paar Nodes nachinstallieren. Dazu klicken Sie am rechten oberen Rand auf die drei Striche. Sie finden dann den Punkt &lt;strong&gt;manage palette.&lt;/strong&gt; Hier sind alle installierten Nodes aufgelistet. Wenn Sie nun das &lt;strong&gt;Install&lt;/strong&gt;-Register auswählen, sehen Sie eine riesige Anzahl unterschiedlicher Module, die Sie installieren können. Für heute suchen wir nach dem Modul &lt;strong&gt;node-red-dashboard.&lt;/strong&gt; Klicken Sie auf den &lt;strong&gt;Install&lt;/strong&gt;-Button. Eine Nachricht erscheint, die Sie vor den teilweise schwierigen Installationen warnt. Klicken Sie einfach auf &lt;strong&gt;Ok&lt;/strong&gt;, denn mit diesem Modul verhält es sich einfach. Nach kurzer Wartezeit erscheint eine Erfolgsmeldung, und Sie haben die neuen Nodes in Ihrer Node-Zeile.&lt;/p&gt;</description></item><item><title>Tag 5: Node-RED</title><link>https://neu-iot.fkainka.de/day5-2018/</link><pubDate>Wed, 05 Dec 2018 00:00:49 +0100</pubDate><guid>https://neu-iot.fkainka.de/day5-2018/</guid><description>&lt;p&gt;Hinter dem fünften Türchen des Adventskalenders finden Sie einen Taster, der in dem heutigen Versuch anstelle des Boot-Buttons eingesetzt werden soll. Der Button wird so an Pin 18 und GND angeschlossen, dass er beim Drücken den Pin auf Masse, also LOW, zieht. Wenn Sie nun das Programm des Tages auswählen und den Button drücken, wird wieder eine Nachricht über UDP übermittelt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/Day5_Button1_Steckplatine.png"&gt;&lt;img class=" wp-image-2464" src="https://neu-iot.fkainka.de/images/2018/11/Day5_Button1_Steckplatine.png" alt="Versuchsaufbau" width="464" height="574" data-id="2464" /&gt;&lt;/a&gt;&lt;figcaption&gt;Versuchsaufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Heute werden Sie das Programm &lt;strong&gt;Node-RED&lt;/strong&gt; kennenlernen, mit dem Sie Ihre eigenen kleinen Programmabläufe erstellen und Vorgänge automatisieren können. Node-RED ist eine kostenlose Software, die es uns ermöglicht, verschiedene Geräte, Onlinedienste und APIs (Programmierschnittstellen) über eine einfache grafische Oberfläche zu verbinden. Die Verbindungen, Flows genannt, werden dabei einfach per Mausklick gezogen.&lt;/p&gt;</description></item><item><title>Tag 4: UDP und JSON</title><link>https://neu-iot.fkainka.de/day4-2018/</link><pubDate>Tue, 04 Dec 2018 00:00:42 +0100</pubDate><guid>https://neu-iot.fkainka.de/day4-2018/</guid><description>&lt;p&gt;Hinter dem vierten Türchen des Adventskalenders finden Sie einen Satz Kabel, die für die kommenden Hardwareaufbauten nützlich sind. Im heutigen Projekt wollen wir uns aber anschauen, was das JSONFormat ist und wie es uns hilft, mit dem Board zu kommunizieren.&lt;/p&gt;
&lt;p&gt;Zuerst aktivieren Sie wie gewohnt das Programm des heutigen Tages. Außerdem werden Sie das PacketSender-Programm mit den gleichen Einstellungen wie gestern benötigen. Heute erscheint erst dann eine Nachricht, wenn Sie kurz auf den Boot-Button auf dem Board gedrückt haben. Diese Nachricht sieht so aus:&lt;/p&gt;</description></item><item><title>Tag 3: UDP und Packet Sender</title><link>https://neu-iot.fkainka.de/day3-2018/</link><pubDate>Mon, 03 Dec 2018 00:00:52 +0100</pubDate><guid>https://neu-iot.fkainka.de/day3-2018/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein weiteres Steckboard. Es lässt sich mit dem gestrigen Steckboard zusammenstecken. Das NodeESP-Board kann dann auf beiden Steckboards gleichzeitig platziert werden. Allerdings hat sich herausgestellt, dass diese Konstellation nicht bei jedem funktioniert. Die einfachste Lösung ist, die Seitenteile der Steckboards abzubrechen. Dazu habe ich die Boards ineinander gesteckt und einfach solange gebogen, bis ein Seitenteil abgebrochen ist. Mit dem anderen Board bin ich genauso verfahren. Mit einer Zange funktioniert das aber genauso gut. Ohne Seitenteile lassen sich die Steckboards näher beieinander platzieren, und es gibt keine Probleme mit dem Raster. Das NodeESPBoard stecken Sie dann einfach auf beide Boards, wie auf dem Bild zu sehen. So bleibt genügend Platz für weitere Bauteile. Im heutigen Projekt werden wir sehen, wie Sie vom PC aus eine Verbindung zum Board aufbauen können, und zwar ohne den Webbrowser zu verwenden.&lt;/p&gt;</description></item><item><title>Tag 2: OnBoard-LED und Update</title><link>https://neu-iot.fkainka.de/day2-2018/</link><pubDate>Sun, 02 Dec 2018 00:00:45 +0100</pubDate><guid>https://neu-iot.fkainka.de/day2-2018/</guid><description>&lt;p&gt;Hinter dem Türchen des zweiten Tages finden Sie ein Steckboard für die kommenden Versuchsaufbauten. Ich empfehle aber, Ihren NodeESP noch nicht auf das Steckboard zu stecken. Stattdessen schauen wir uns heute an, wie Sie die vorinstallierten Programme auf dem Board starten können, und bringen das Board außerdem auf den neuesten Stand.&lt;/p&gt;
&lt;p&gt;Verbinden Sie Ihr Board zunächst wieder mit einer Stromquelle. Die WLAN-Daten, die Sie gestern eingegeben haben, sind weiterhin gespeichert, und somit sollte sich das Board automatisch mit Ihrem WLAN verbinden. Rufen Sie dann die Boardseite über die IP oder den mDNS-Namen (&lt;strong&gt;&lt;a href="http://nodeesp.local/"&gt;http://nodeesp.&lt;/a&gt; &lt;a href="http://nodeesp.local/"&gt;local/&lt;/a&gt;)&lt;/strong&gt; auf. Als Erstes soll nach möglichen Software-Updates gesucht werden. Dazu öffnen Sie die Konfigurationsseite, klicken ganz unten auf den Punkt &lt;strong&gt;Advanced Settings&lt;/strong&gt; und dort auf &lt;strong&gt;Check for Firmware Updates.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Tag 1: Das NodeESP-Board</title><link>https://neu-iot.fkainka.de/day1-2018/</link><pubDate>Sat, 01 Dec 2018 00:00:32 +0100</pubDate><guid>https://neu-iot.fkainka.de/day1-2018/</guid><description>&lt;p&gt;Es ist der erste Tag des Adventskalenderprojekts 2018 und somit Zeit, das erste Türchen zu öffnen. Hinter dem Türchen finden Sie das Mikrocontrollerboard dieses Kalenders. Heute soll es vor allem darum gehen, eine Verbindung zum Heimnetzwerk herzustellen und das Board etwas besser kennenzulernen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/T1_NodeES_WPS.jpg"&gt;&lt;img class="size-large wp-image-2432" src="https://neu-iot.fkainka.de/images/2018/11/T1_NodeES_WPS.jpg" alt="Das NodeESP-Board mit markierter WPS-Taste." width="616" height="251" data-id="2432" /&gt;&lt;/a&gt;&lt;figcaption&gt;Das NodeESP-Board mit markierter WPS-Taste&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Der erste Schritt ist, das Board mit Strom zu versorgen. Sie können das Board einfach per MicroUSB-Kabel mit dem PC oder einem gängigen Smartphone-Ladegerät verbinden. Sie brauchen mindestens 300 mA, um das Board zu starten, ältere Laptops und USB-Hubs ohne externe Stromversorgung könnten problematisch sein. Die RGB-LED auf dem Board beginnt nach kurzer Zeit, gelb zu leuchten. Damit ist die Initialisierung abgeschlossen. Sie müssen nur noch Ihre WLAN-Daten eingeben. Dazu gibt es zwei Möglichkeiten:&lt;/p&gt;</description></item><item><title>NodeESP Kommandoreferenz</title><link>https://neu-iot.fkainka.de/nodeesp-command-reference/</link><pubDate>Thu, 29 Nov 2018 18:00:44 +0100</pubDate><guid>https://neu-iot.fkainka.de/nodeesp-command-reference/</guid><description>&lt;p&gt;Auf dieser Seite finden Sie alle Befehle der vorprogrammierten Firmware aufgelistet. Viele Befehle funktionieren nur in dem entsprechenden Unterprogramm. Befehle zu den Board Einstellungen lassen sich meistens nur über UDP oder die Webseite nutzen.&lt;/p&gt;
&lt;h1 id="buttons"&gt;Buttons&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Sendet automatisch eine Nachricht mit allen Zuständen bei Änderung eines Button-Zustands.&lt;/li&gt;
&lt;li&gt;Sendet Button State beim Starten&lt;/li&gt;
&lt;li&gt;Buttons haben Pullup aktiviert
&lt;ul&gt;
&lt;li&gt;Buttons werden gegen Masse geschaltet&lt;/li&gt;
&lt;li&gt;Buttons sind dann HIGH, wenn nicht gedrückt und LOW wenn gedrückt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Default Pins im Beispiel: Pin 16 und Pin 18&lt;/li&gt;
&lt;li&gt;Pin_value hat keine Bedeutung&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MQTT Topic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Beispiel Anfrage (JSON)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;get_button_config&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Gibt verwendete Pins und Namen zurück | NodeESP/[PID]/button/config/get | {&amp;ldquo;cmd&amp;rdquo;:&amp;ldquo;get_button_config&amp;rdquo;} || get_button_state | Gibt den aktuellen Zustand der Buttons zurück | NodeESP/[PID]/button/state/get | {&amp;ldquo;cmd&amp;rdquo;:&amp;ldquo;get_button_state&amp;rdquo;} |&lt;/p&gt;</description></item><item><title>NodeESP Technische Daten</title><link>https://neu-iot.fkainka.de/nodeesp-technical-specs/</link><pubDate>Sat, 10 Nov 2018 13:42:28 +0100</pubDate><guid>https://neu-iot.fkainka.de/nodeesp-technical-specs/</guid><description>&lt;p&gt;Der NodeESP ist ein Experimentier- und Entwicklungsboard für den Bereich IoT und Hausautomatisierung. Die vorprogrammierte Firmware mit integrierter Webseite erlaubt es Ihnen, einfache Konfigurationen vorzunehmen und Programme und Anwendungen kinderleicht in einem Menü auszuwählen. So können Sie durch wenige Mausklicks das Board als smarten Schalter, buntes Licht oder Raumklimasensor konfigurieren und mit anderen Geräten in Ihrem Heimnetz verbinden. Für eigene individuelle Projekte lässt sich das Board außerdem über die Arduino IDE programmieren.&lt;/p&gt;</description></item><item><title>NodeESP Firmware Reinstallieren</title><link>https://neu-iot.fkainka.de/nodeesp-firmware-reinstallieren/</link><pubDate>Sat, 10 Nov 2018 12:51:29 +0100</pubDate><guid>https://neu-iot.fkainka.de/nodeesp-firmware-reinstallieren/</guid><description>&lt;p&gt;Das NodeESP wird mit einer Firmware ausgeliefert, die bereits einige Beispielprogramme beinhaltet. Diese Firmware lässt sich über die Update Funktion auf der Config-Seite updaten. Die Firmware kann aber auch mit eigenen Programmen überspielt werden.&lt;/p&gt;
&lt;p&gt;Doch egal ob man selbst ein paar eigene Programme auf das Board programmiert hat oder die Update Funktion mal nicht so funktioniert hat wie geplant, irgendwann kommt man eventuell an den Punkt, an dem man die Firmware neu installieren möchte. Diese Anleitung beschreibt die Schritte, die nötig sind, um die aktuelle Firmware manuell auf dem Board zu installieren.&lt;/p&gt;</description></item><item><title>Tag 0: Alle Flows des Kalenders</title><link>https://neu-iot.fkainka.de/tag-0-alle-flows-des-kalenders/</link><pubDate>Wed, 07 Nov 2018 14:10:05 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-0-alle-flows-des-kalenders/</guid><description>&lt;p&gt;Wie in jedem Jahr finden Sie an dieser Stelle alle Programme (dieses Jahr wohl eher Flows) des IoT Adventskalenders 2018.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2018/11/AllFlows.png"&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2018/11/AllFlows.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ich verwende dieses Jahr Pastebin um alle Flows an einer Stelle zu speichern und leichter nachträglich bearbeiten zu können. Außerdem hat Wordpress dann keine Chance die Formatierung oder Sonderzeichen zu verändern. Der einfachste Weg zum Kopieren der Flows ist, auf den &amp;ldquo;Download Raw&amp;rdquo; Button zu klicken und die sich öffnende Seite komplett zu kopieren. Wenn Sie dann den Text in Node-Red einfügen (Menü-&amp;gt;Import-&amp;gt;Clipboard) haben Sie automatisch alle Flows in Tabs strukturiert hinzugefügt. Zusätzliche Nodes müssen eventuell noch nachinstalliert werden (z.B. das UI-Node)&lt;/p&gt;</description></item><item><title>WiFi UDP Y-Netzwerk aus drei Pretzelboards und einem Laptop</title><link>https://neu-iot.fkainka.de/wifi-udp-y-netzwerk-aus-drei-pretzelboards-und-einem-laptop/</link><pubDate>Mon, 08 Oct 2018 09:50:22 +0200</pubDate><guid>https://neu-iot.fkainka.de/wifi-udp-y-netzwerk-aus-drei-pretzelboards-und-einem-laptop/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Anmerkungen von Fabian Kainka:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Im Sommer dieses Jahres erreichte mich eine Mail von  Dr. Christian Rempel, mit einer Frage zum NanoESP. Im Rahmen eines Jugend forscht-Projektes sollte ein Pflückroboter realisiert werden. Mehrere NanoESP-Boards wurden dafür vernetzt um untereinander und mit einem Laptop Sensordaten auszutauschen. Ganz nebenbei hat das Projekt auch an anderen Stellen Wellen geschlagen, wie &lt;a href="https://www.tec-it.com/de/start/news/Default.aspx#110219"&gt;hier auf der TEC-IT Homepage&lt;/a&gt;. Außerdem ist aus diesem aufregenden Projekt ein Artikel entstanden, der die Problematik sehr gut beschreibt und eine Lösung bietet, die für viele Nutzer sehr nützlich sein sollte. An dieser Stelle möchte ich deswegen den überaus informativen und gut dokumentierten Artikel (sogar in englischer Version) von &lt;strong&gt;Dr. Christian Rempel&lt;/strong&gt; und &lt;strong&gt;Laurin Kettner&lt;/strong&gt; vorstellen. Viel Spaß beim Lesen.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 24: Geschenkbox</title><link>https://neu-iot.fkainka.de/day-24-gift-box/</link><pubDate>Sat, 24 Dec 2016 00:01:53 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-24-gift-box/</guid><description>&lt;p&gt;Bei dem letzten Versuch in diesem Advent geht es wieder etwas weihnachtlicher zu. Wir basteln eine wiederverwendbare Geschenkbox, mit der Sie Ihre Verwandten beglücken können. Jedes Mal wenn jemand das Geschenk öffnet, wird der Inhalt in einer individuellen Farbe beleuchtet und ein Weihnachtssound ertönt.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich eine Reflexlichtschranke. Es handelt sich dabei eigentlich um zwei Bauteile, einer IR-Sendediode und einem Phototransitor. Wie genau Sie die Elemente gepolt werden müssen ist nicht ganz einfach zu erkennen. Deswegen stecken Sie am besten die Lichtschranke nach dem unteren Vorbild mit dem Verbindungskabeln zusammen. Dann können Sie die Polung nicht so leicht vertauschen.&lt;/p&gt;</description></item><item><title>Tag 23: MQTT Climate</title><link>https://neu-iot.fkainka.de/day23-2016/</link><pubDate>Fri, 23 Dec 2016 00:01:49 +0100</pubDate><guid>https://neu-iot.fkainka.de/day23-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein Batterie-Clip für einen 9-V-Block, mit dem Sie das gesamte System mobil machen können. Eine Alternative zu einer Batterie ist eine Power-Bank (ein Akku-Pack, normalerweise für Handys). Wie Sie eine  9-V-Batterie richtig anschließen, können Sie dem heutigen Aufbaubild entnehmen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day23_Climate_Steckplatine.jpg"&gt;&lt;img class="size-large wp-image-1410" src="https://neu-iot.fkainka.de/images/2016/09/Day23_Climate_Steckplatine.jpg" alt="So können Sie eine 9V-Batterie am heutigen Aufbau anschließen" width="616" height="337" /&gt;&lt;/a&gt;&lt;figcaption&gt;So können Sie eine 9V-Batterie am heutigen Aufbau anschließen&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Heute sollen erneut Klimadaten erfasst werden. Diesmal werden sie aber über den MQTT-Broker veröffentlicht, und sind deshalb auch weltweit abrufbar. Über ein Plugin könnten so die Daten abgerufen und in einer Datenbank gespeichert werden.&lt;/p&gt;</description></item><item><title>Tag 22: MQTT Cheerlights</title><link>https://neu-iot.fkainka.de/day22-2016/</link><pubDate>Thu, 22 Dec 2016 00:01:31 +0100</pubDate><guid>https://neu-iot.fkainka.de/day22-2016/</guid><description>&lt;p&gt;In dem heutigen Versuch geht es um MQTT und um ein globales Projekt, das auch letztes Jahr vorgestellt wurde: nämlich das Cheerlights Projekt von Hans Schaaler. Für alle diejenigen, die das Projekt nicht kennen: Es geht um weltweit vernetzte bunte Lichter,  die sich simultan über Twitter-Kommandos steuern lassen. Eine andere Version dieses Projekts war Teil des letztjährigen Adventskalenders. Dieses Jahr gibt es die Version mit MQTT und erweiterten Funktionen.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein Widerstand mit 1 kOhm. Der Aufbau besteht aus der RGB-LED mit Vorwiderständen und einem Taster.&lt;/p&gt;</description></item><item><title>Tag 21: Hausautomation</title><link>https://neu-iot.fkainka.de/day21-2016/</link><pubDate>Wed, 21 Dec 2016 00:01:34 +0100</pubDate><guid>https://neu-iot.fkainka.de/day21-2016/</guid><description>&lt;p&gt;In dem  Versuch des heutigen Tages werden wir die Eigenschaften und Möglichkeiten von MQTT genauer beleuchten, in dem wir ein praktisches Szenario kreieren. In dem Beispiel gibt es ein Gebäude mit zwei Räumen mit jeweils einem Lichtschalter, einem Licht und einem Alarmsensor. Die Lichtschalter schalten das Licht des jeweiligen Raums an oder aus. Die Alarmsensoren aktivieren einen gebäudeweiten Alarm.&lt;/p&gt;
&lt;p&gt;Normalerweise würden hier sieben verschiedene Geräte zum Einsatz kommen, die alle über einen MQTT-Broker miteinander verbunden sind. Da Sie aber wahrscheinlich nur einen NanoESP haben, simuliert dieser alle Geräte auf einmal. Deswegen sieht der Aufbau des heutigen Tages etwas kompliziert aus. Als zweites Licht wird übriges heute die LED D3 genutzt. Deswegen wird diese heute nicht anzeigen, ob Sie mit dem WLAN-Verbunden sind. Als Alarmsensoren werden die Tiltsensoren an den Verlängerungskabeln genutzt. Man könnte sie beispielsweise an Türen oder Fensterrahmen befestigen, sodass sie einen Alarm triggern wenn sich der Eingang öffnet. Hinter dem heutigen Türchen befindet sich auch der zweite Sensor.&lt;/p&gt;</description></item><item><title>Tag 20: MQTT (Message Queue Telemetry Transport)</title><link>https://neu-iot.fkainka.de/day-20-mqtt-message-queue-telemetry-transport/</link><pubDate>Tue, 20 Dec 2016 00:01:05 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-20-mqtt-message-queue-telemetry-transport/</guid><description>&lt;p&gt;Für die letzten Tage in diesem Advent werden Sie nun ein Thema kennenlernen, welches eine große Rolle im Bereich IoT spielt. Es geht um das Nachrichten-Protokoll MQTT (Message Queue Telemetry Transport) welches speziell für die Kommunikation von Machschienen zu Maschinen (M2M) entwickelt wurde. Der Grund warum dieses Protokoll so genial ist, liegt in der Kompaktheit und Einfachheit, mit der Daten wie Steuerdaten, Messdaten oder Texte, ausgetauscht werden können. Im Vergleich zum HTTP ist der Overhead (Daten die neben den eigentlichen Nutzdaten übermittelt werden) sehr kurz und können gerade von Embeded Devices, also Mikrocontrollern wie unserem NanoESP, gut verarbeitet werden. Gleichzeitig muss der Controller nicht selbst immer wieder eine Verbindung aufbauen und erfragen, ob es eine Veränderung gab, sondern die Verbindung wird dauerhaft gehalten und der Client automatisch über Veränderungen Informiert.&lt;/p&gt;</description></item><item><title>Tag 19: Konfigurationsseite für den NanoESP</title><link>https://neu-iot.fkainka.de/day19-2016/</link><pubDate>Mon, 19 Dec 2016 00:01:07 +0100</pubDate><guid>https://neu-iot.fkainka.de/day19-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein weiteres Kabel. Mit den beiden Kabeln ist es nun möglich z.B. die RGB LED auch abseits des Boards zu platzieren. Die RGB-LED werden wir heute auch benötigen, denn es geht um eine Webseite, über die die Farbe der LED eingestellt werden kann. Doch das ist nicht der Hauptaspekt: Um das Konfigurieren des NanoESP nicht nur für Programmierer besonders einfach zu gestalten, gibt es eine Konfigurationsseite, über die die WLAN-Daten des Moduls eingestellt werden können. Doch zunächst zum Aufbau:&lt;/p&gt;</description></item><item><title>Tag 18: Klimaüberwachung</title><link>https://neu-iot.fkainka.de/day18-2016/</link><pubDate>Sun, 18 Dec 2016 00:01:35 +0100</pubDate><guid>https://neu-iot.fkainka.de/day18-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein ganz besonderes Bauteil, nämlich ein Luftfeuchtesensor. Zusammen mit dem Phototransistor und dem NTC bauen Sie heute eine Klimastation für den Heimgebrauch. Dazu ist folgender Aufbau nötig:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day18_Climate_Steckplatine.jpg"&gt;&lt;img class="size-large wp-image-1391" src="https://neu-iot.fkainka.de/images/2016/09/Day18_Climate_Steckplatine.jpg" alt="Der Aufbau mit allen Sensoren" width="616" height="301" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau mit allen Sensoren&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Der heutige Aufbau ist etwas kniffelig. Vor allem an der Stelle, an der das rechte Poti auf dem Bild sitzt, kommt es zu einer Berührung mit dem NanoESP. Dies ist aber nicht weiter schlimm, solange der auf dem Bild linke Kontakt fest im Board steckt.&lt;/p&gt;</description></item><item><title>Tag 17: Wake Up Light</title><link>https://neu-iot.fkainka.de/day17-2016/</link><pubDate>Sat, 17 Dec 2016 00:01:56 +0100</pubDate><guid>https://neu-iot.fkainka.de/day17-2016/</guid><description>&lt;p&gt;Das Projekt des heutigen Tages orientiert sich an einer bekannten Lampe von Phillips, dem Wake Up Light. Es handelt sich dabei um einen sanften Wecker, denn anstelle laut zu tönen wird langsam die Helligkeit erhöht. So entsteht eine Art Sonnenaufgang und der Körper wird auf  natürliche Weise wach.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein weites Poti, welches für den morgigen Versuch wichtig ist. Heute wird folgender Aufbau benötigt:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day10_1_RGB-2.jpg"&gt;&lt;img class="size-large wp-image-1386" src="https://neu-iot.fkainka.de/images/2016/09/Day10_1_RGB-2.jpg" alt="Die RGB LED mit Vorwiderständen" width="616" height="362" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die RGB LED mit Vorwiderständen&lt;/figcaption&gt;&lt;/figure&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm: A16_P17_WakeUpLight.ino&lt;/summary&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; TCP-Server: Wakeup light
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; Change SSID and PASSWORD.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; RGB-Led (common cathode) on Pins 3,5,6
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;NanoESP.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;NanoESP_HTTP.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SoftwareSerial.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;#34;Websites.h&amp;#34;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;Time.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define SSID &amp;#34;YourSSID&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define PASSWORD &amp;#34;YourPassword&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define LED_WLAN 13
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define RED 3
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define GREEN 5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BLUE 6
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define GND 4
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BUTTON 7
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;NanoESP&lt;/span&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;NanoESP&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;NanoESP_HTTP&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;NanoESP_HTTP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;//String timeServerIP = ; // time.nist.gov NTP server address
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;ntpServerName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;195.145.119.188&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="c1"&gt;//&amp;#34;time.nist.gov&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// NTP time stamp is in the first 48 bytes of the message
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;//buffer to hold incoming and outgoing packets
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;alarmHour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;alarmMinute&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;cRed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cBlue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cGreen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;previousMillis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// will store last time a msg was send
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RED&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GREEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BLUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GND&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GND&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BUTTON&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Only Station Mode for TimeSync
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;configWifiMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;STATION&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//delay(1000);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Wait till Connected to WiFi
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wifiConnected&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LED_WLAN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Error WLAN Connect&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Start TCP Server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;startTcpServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;TCP Server Activ&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;TCP Server Error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Print IP in Terminal
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getIp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;setSyncProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;getNtpTime&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Show_Time&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;time_t&lt;/span&gt; &lt;span class="nf"&gt;getNtpTime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//convert to time_t , Paramter: connectionId, ServerAdress, Timezone
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time_t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;getNTPpacket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ntpServerName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recvRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;New Request from id :&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;, method: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;, ressource: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34; parameter: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendFromFlash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;/settimer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameter&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//timer=02%3A03&amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;sHour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;sMin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;sDuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;sDuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sDuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sDuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;=&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sDuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;indexOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;&amp;#39;&amp;amp;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alarmHour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sHour&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toInt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alarmMinute&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sMin&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toInt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;iDuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sDuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toInt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;interval&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;iDuration&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Timer: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarmHour&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;:&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarmMinute&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34; Duartion: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;iDuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Show_Time&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;/turnoff&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cRed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;cBlue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;cGreen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RED&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cRed&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BLUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cBlue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GREEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;cGreen&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendFromFlash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;error404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;error404&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;alarmHour&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;alarmMinute&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;alarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;wakeUp&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;MorningAlarm&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Alarm: - turn lights off&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;wakeUp&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;previousMillis&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;previousMillis&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;millis&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cRed&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;Show_Time&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cRed&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cRed&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RED&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cRed&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cGreen&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cGreen&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;GREEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cGreen&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cBlue&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cBlue&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;BLUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cBlue&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cBlue&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;Show_Time&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// prepare an NTP request to the time server and send to the given
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="nf"&gt;sendNTPpacket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// set all bytes in the buffer to 0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;memset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Initialize values needed to form NTP request
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// (see URL above for details on the packets)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mb"&gt;0b11100011&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// LI, Version, Mode
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Stratum, or type of clock
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Polling Interval
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0xEC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Peer Clock Precision
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// 8 bytes of zero for Root Delay &amp;amp; Root Dispersion
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x4E&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;52&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// if we need a cr/lf
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0D&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mh"&gt;0x0A&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// all NTP fields have been given values, now
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// you can send a packet requesting a timestamp:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendRaw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;packetBuffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;NTP_PACKET_SIZE&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="nf"&gt;getNTPpacket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;timeZone&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;newConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;UDP&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;no connection ntp server&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//NTP requests are to port 123
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;sendNTPpacket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;No time request send&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;+IPD,&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;vid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseInt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;,&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;len&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseInt&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Serial.println(String(len));
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;len&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;readBytes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// for (int i = 0; i &amp;lt;= NTP_PACKET_SIZE; i++) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Serial.print(buffer[i], HEX);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// convert four bytes starting at location 40 to a long integer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt; &lt;span class="o"&gt;|=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt; &lt;span class="o"&gt;|=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt; &lt;span class="o"&gt;|=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;offset&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;OK&lt;/span&gt;&lt;span class="se"&gt;\r\n&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// return secsSince1900 + timeZone * SECS_PER_HOUR; // NTP Date
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;secsSince1900&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;2208988800UL&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;timeZone&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;SECS_PER_HOUR&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// UNIX Date
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;no time recieved&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Show_Time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;shour&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sminute&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ssecond&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Date: &amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;shour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;shour&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// adjust for 0-9
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;sminute&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;sminute&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;ssecond&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;ssecond&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Time: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;shour&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;:&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;sminute&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;:&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ssecond&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 16: Ein Webserver Piano</title><link>https://neu-iot.fkainka.de/day16-2016/</link><pubDate>Fri, 16 Dec 2016 00:01:54 +0100</pubDate><guid>https://neu-iot.fkainka.de/day16-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein Piezzo Schallwandler. Mit ihm ist es möglich, Töne zu generieren, wie im heutigen Versuch deutlich wird. Sie basteln heute eine Art Klavier, das über eine Webseite bedient werden kann. Doch zunächst der Aufbau:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day16_Piezzo_Steckplatine.jpg"&gt;&lt;img class="size-large wp-image-1382" src="https://neu-iot.fkainka.de/images/2016/09/Day16_Piezzo_Steckplatine.jpg" alt="Der Piezzo richtig angeschlossen" width="616" height="401" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Piezzo richtig angeschlossen&lt;/figcaption&gt;&lt;/figure&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm: A16_P16_WebserverPiano.ino&lt;/summary&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; TCP-Server Piano
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; Change SSID and PASSWORD.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;NanoESP.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;NanoESP_HTTP.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt; &lt;/span&gt;&lt;span class="c1"&gt;//special library for http-connection
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SoftwareSerial.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;#34;Websites.h&amp;#34;&lt;/span&gt;&lt;span class="cp"&gt; &lt;/span&gt;&lt;span class="c1"&gt;//websites in a special file as progmem
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define SSID &amp;#34;YourSSID&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define PASSWORD &amp;#34;YourPassword&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define LED_WLAN 13
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;NanoESP&lt;/span&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;NanoESP&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;NanoESP_HTTP&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;NanoESP_HTTP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//! Only if you want to change the ACCESPOINT configuration
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//nanoesp.configWifi(ACCESSPOINT, &amp;#34;NanoESP&amp;#34;, &amp;#34;&amp;#34;);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//! Only if you use a new Network
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// nanoesp.configWifi(DUAL, SSID, PASSWORD);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Dual Mode
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;configWifiMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DUAL&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//delay(1000);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Wait till Connected to WiFi
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;wifiConnected&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LED_WLAN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Error WLAN Connect&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Start TCP Server
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;startTcpServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;TCP Server Activ&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;TCP Server Error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Print IP in Terminal
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getIp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recvRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;//Incoming request, parameters by reference
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;New Request from id :&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;, method: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;, ressource: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;#34; parameter: &amp;#34;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendFromFlash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ressource&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;/dataonly&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;//only data is recieved on this url, no need to send a website
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sendFromFlash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;error404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;error404&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nanoesp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;closeConnection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;parameter&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//the request included parameters
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;strTone&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;GET&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;strTone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;strTone&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;parameter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//get note values
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;noTone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;strTone&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toInt&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//play note for 200ms
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 15: Ein Webserver</title><link>https://neu-iot.fkainka.de/day15-2016/</link><pubDate>Thu, 15 Dec 2016 00:01:28 +0100</pubDate><guid>https://neu-iot.fkainka.de/day15-2016/</guid><description>&lt;p&gt;Nachdem in den letzten Tagen vor allem die Blynk-Plattform zentraler Punkt unserer Projekte war, kommt nun ein ganz neues Thema, und zwar der NanoESP als Webserver. Bei dem Versuch des ersten Tages haben Sie bereits einen ersten Eindruck bekommen. In den folgenden Tagen werden Sie sehen, was noch alles möglich ist.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein spezielles doppeladriges Kabel, mit dem sich z.B. auch LEDs oder Sensoren außerhalb des Boards einsetzen lassen. Für den heutigen Versuch ist allerdings gar kein Hardwareaufbau nötig. Alles was Sie benötigen ist das Programm und einen Browser.&lt;/p&gt;</description></item><item><title>Tag 14: Langzeit Temperatur Messung</title><link>https://neu-iot.fkainka.de/day14-2016/</link><pubDate>Wed, 14 Dec 2016 00:01:14 +0100</pubDate><guid>https://neu-iot.fkainka.de/day14-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein NTC-Sensor (Heißleiter, Negative Temperature Coefﬁcient). Dieser verändert seinen Widerstand in Abhängigkeit von der Temperatur. Sie nutzen den Sensor heute, um eine Langzeitmessung der Temperatur vorzunehmen. Als kleinen Bonus können Sie einen Zeitpunkt auswählen, an dem Sie eine Zusammenfassung per Mail geschickt bekommen.&lt;/p&gt;
&lt;p&gt;Für den Aufbau des heutigen Tages benötigen Sie neben dem NTC auch das Poti und einen 1 kOhm Widerstand. Mit dem Poti können Sie einen Feinabgleich der Temperatur vornehmen.&lt;/p&gt;</description></item><item><title>Tag 13: Alarmanlage mit Push Nachrichten</title><link>https://neu-iot.fkainka.de/day13-2016/</link><pubDate>Tue, 13 Dec 2016 00:01:56 +0100</pubDate><guid>https://neu-iot.fkainka.de/day13-2016/</guid><description>&lt;p&gt;Bei dem Projekt des heutigen Tages handelt es sich um eine einfache, stille Alarmanlage mit Passwort-Eingabe zum Resetten des Alarms. Damit man von dem stillen Alarm überhaupt etwas mitbekommt, sendet das Board eine Push-Nachricht zum Smartphone. Der sich hinter dem heutigen Türchen befindenden Tiltsensor setzen wir hier als Bewegungssensor ein. Er kann über Erschütterungen informieren und somit Bescheid geben, wenn jemand das NanoESP-Board kippt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day13_Tilt_Steckplatine.jpg"&gt;&lt;img class="size-large wp-image-1366" src="https://neu-iot.fkainka.de/images/2016/09/Day13_Tilt_Steckplatine.jpg" alt="Aufbau mit Tiltsensor" width="616" height="301" /&gt;&lt;/a&gt;&lt;figcaption&gt;Aufbau mit Tiltsensor&lt;/figcaption&gt;&lt;/figure&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm: A16_P13_Blynk9_PushAlarm.ino&lt;/summary&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; Blnky9: PushAlarm
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; Change ssid, password and token
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourSSID&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourPassword&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourToken&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;passwordAlarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;alarmMsg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Alarm! Someone touched the NanoESP!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BLYNK_DEBUG
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BLYNK_PRINT Serial &lt;/span&gt;&lt;span class="c1"&gt;// Comment this out to disable prints and save space
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;ESP8266_SoftSer.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;BlynkSimpleShieldEsp8266_SoftSer.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SimpleTimer.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Set ESP8266 Serial object
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SoftwareSerial.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;SoftwareSerial&lt;/span&gt; &lt;span class="nf"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// RX, TX
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ESP8266&lt;/span&gt; &lt;span class="nf"&gt;wifi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;SimpleTimer&lt;/span&gt; &lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;WidgetTerminal&lt;/span&gt; &lt;span class="nf"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;boolean&lt;/span&gt; &lt;span class="n"&gt;alarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Set console baud rate
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wifi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//push msg
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Alarm active&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT_PULLUP&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//timer for blinking led on alarm
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000L&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;blinkAlarm&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;timer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//blink if alarm active
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;//read tilt sensor
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;notify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarmMsg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;//push msg on alarm
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Alarm! Type in Password:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_CONNECTED&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncAll&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Blynk v&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;BLYNK_VERSION&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;: Device started&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;-------------&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//Terminal
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//type in password on alarm
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alarm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;passInput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asStr&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;passwordAlarm&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;passInput&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;alarm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Alarm deaktivated&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Wrong password!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;terminal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;//timer function for blinking led on alarm
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;blinkAlarm&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;digitalRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 12: Lichtwächter</title><link>https://neu-iot.fkainka.de/day12-2016/</link><pubDate>Mon, 12 Dec 2016 00:01:46 +0100</pubDate><guid>https://neu-iot.fkainka.de/day12-2016/</guid><description>&lt;p&gt;Hinter dem Türchen des heutigen Tages finden Sie einen Phototransistor. Dabei handelt es sich um einen Sensor, mit dem Helligkeit gemessen werden kann. Dies werden Sie heute auch tun, aber neben dem einfachen Messen gibt das heutige Projekt auch über verschiedene Kanäle Alarm, sobald per App einstellbare Grenzwerte überschritten werden. Damit dies alles auch funktioniert, müssen Sie den Sensor mit einer Spannungsteilerschaltung an den Pin A0 anschließen, wie auf dem unteren Bild zu sehen ist. Beachten Sie die richtige Polung des Phototransistors (kurzes Beinchen an VCC).  Andersherum funktioniert er zwar auch, aber lange nicht so empfindlich.&lt;/p&gt;</description></item><item><title>Tag 11: Tag/Nacht Licht</title><link>https://neu-iot.fkainka.de/day11-2016/</link><pubDate>Sun, 11 Dec 2016 00:01:57 +0100</pubDate><guid>https://neu-iot.fkainka.de/day11-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein 10 kOhm Widerstand den wir heute aber noch nicht benötigen werden. Stattdessen funktioniert der Aufbau des gestrigen Versuchs auch heute. In diesem Projekt werden Sie eine Tag/Nacht Lampe basteln, die zu bestimmten Uhrzeiten die Farbe wechselt. So können Sie Tagsüber ein helles Licht leuchten lassen, während in der Nacht nur ein dunkles Rot als Notbeleuchtung für etwas Orientierung sorgt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day10_1_RGB-1.jpg"&gt;&lt;img class="size-large wp-image-1352" src="https://neu-iot.fkainka.de/images/2016/09/Day10_1_RGB-1.jpg" alt="Der Aufbau von Tag 10" width="616" height="362" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau von Tag 10&lt;/figcaption&gt;&lt;/figure&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm: A16_P11_Blynk7_DayNight.ino&lt;/summary&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/*
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;Blynk 7: DayNight
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;Change ssid, password and token
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourSSID&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourPassword&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;YourToken&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BLYNK_DEBUG
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#define BLYNK_PRINT Serial &lt;/span&gt;&lt;span class="c1"&gt;// Comment this out to disable prints and save space
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;ESP8266_SoftSer.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;BlynkSimpleShieldEsp8266_SoftSer.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Set ESP8266 Serial object
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;SoftwareSerial.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;SoftwareSerial&lt;/span&gt; &lt;span class="nf"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// RX, TX
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;ESP8266&lt;/span&gt; &lt;span class="nf"&gt;wifi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;boolean&lt;/span&gt; &lt;span class="n"&gt;isDay&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Set console baud rate
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;EspSerial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;19200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;wifi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ssid&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//all events are handled by functions below
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_CONNECTED&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;//Sync all states when reconnected
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncAll&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//DayTimer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;isDay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncVirtual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//NightTimer
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;isDay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncVirtual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//Day
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;isDay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncVirtual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V7&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt; &lt;span class="c1"&gt;//Night
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;virtualWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;isDay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Blynk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;syncVirtual&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V8&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// change color Day
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;isDay&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting first value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting second value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting N value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BLYNK_WRITE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;V8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// change color Night
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;isDay&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting first value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting second value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;analogWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;param&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;asInt&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt; &lt;span class="c1"&gt;// getting N value
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 10: RGB-LED</title><link>https://neu-iot.fkainka.de/day10-2016/</link><pubDate>Sat, 10 Dec 2016 00:01:27 +0100</pubDate><guid>https://neu-iot.fkainka.de/day10-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich der Grund für die vielen 1 kOhm Widerstände. Sie finden dort nämlich eine sogenannte RGB-LED. RGB steht für Rot Grün Blau, denn bei dieser LED handelt es sich eigentlich um drei LEDs, die über eine gemeinsame Kathode angeschlossen werden können. Durch Variation der Helligkeit der einzelnen LEDs mittels PWM lassen sich so nahezu alle denkbaren Farben generieren.&lt;/p&gt;
&lt;p&gt;Der Aufbau der heutigen Schaltung können Sie auf dem unteren Bild sehen. Beachten Sie dass das etwas längere Beinchen (die Kathode) in die GND Kontaktleiste gesteckt werden muss.&lt;/p&gt;</description></item><item><title>Tag 9: Helligkeit der realen LED</title><link>https://neu-iot.fkainka.de/day9-2016/</link><pubDate>Fri, 09 Dec 2016 00:01:46 +0100</pubDate><guid>https://neu-iot.fkainka.de/day9-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein weiterer 1 kOhm Widerstand. Allerdings muss heute nichts am Hardwareaufbau vom gestrigen Tag verändert werden. Es wird lediglich eine Kleinigkeit an der Oberfläche variiert.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day8_AnalogButtonLED_Steckplatine-1.jpg"&gt;&lt;img class="size-large wp-image-1340" src="https://neu-iot.fkainka.de/images/2016/09/Day8_AnalogButtonLED_Steckplatine-1.jpg" alt="Der Aufbau von gestern" width="616" height="301" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der gestrige Aufbau&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Auch das Programm müssen Sie nicht  erneut hochladen, wenn Sie einfach die Oberfläche von gestern manuell anpassen. Falls Sie die Oberfläche sicherheitshalber dennoch in die App laden möchten, finden Sie hier wie immer den QR-Code. Allerdings müssen Sie dann auch den Token neu in Ihr Programm eintragen.&lt;/p&gt;</description></item><item><title>Tag 8: Virtuelle LEDs</title><link>https://neu-iot.fkainka.de/day8-2016/</link><pubDate>Thu, 08 Dec 2016 00:01:15 +0100</pubDate><guid>https://neu-iot.fkainka.de/day8-2016/</guid><description>&lt;p&gt;In dem Versuch des sechsten Tages haben Sie gesehen, wie Sie einen Tastschalter auf der Hardwareseite auf einen Button in der App abbilden können. Ein anderes Widget, nämlich das LED Widget ist für diesen Fall allerdings viel eindeutiger. Wie man dieses Widget richtig einsetzt und welche Möglichkeiten das bietet sehen Sie in dem heutigen Versuch.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich wieder ein 1 kOhm Widerstand, der für spätere Versuche wichtig wird. Heute wird allerdings die Schaltung von gestern mit einem zusätzlichen Taster verwendet.&lt;/p&gt;</description></item><item><title>Tag 7: Analog Write</title><link>https://neu-iot.fkainka.de/day7-2016/</link><pubDate>Wed, 07 Dec 2016 00:01:18 +0100</pubDate><guid>https://neu-iot.fkainka.de/day7-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein Potentiometer (kurz Poti). Mit diesem Poti können Sie analoge Messungen an die Blynk App übertragen. Dazu müssen Sie die Schaltung auf dem unteren Bild nachbauen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day7_1_AnalogIn_Steckplatine.jpg"&gt;&lt;img class="size-large wp-image-1325" src="https://neu-iot.fkainka.de/images/2016/09/Day7_1_AnalogIn_Steckplatine.jpg" alt="Das Poti benutzt heute die untere Leitung für die Verbindung mit A0" width="616" height="301" /&gt;&lt;/a&gt;&lt;figcaption&gt;Das Poti benutzt heute die untere Leitung für die Verbindung mit A0&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Es kann beim Aufbauen etwas eng mit dem MicroUSB-Kabel werden. Damit alles klappt müssen Sie das Board zunächst vom Kabel trennen und die Drahtbrücken möglichst flach platzieren. Zu beachten ist außerdem, dass diesmal nicht VCC auf die im Bild untere Bahn gelegt wurde, sondern die Bahn für den Anschluss an Pin A0 gedacht ist.&lt;/p&gt;</description></item><item><title>Tag 6: Der Hardware Button</title><link>https://neu-iot.fkainka.de/day6-2016/</link><pubDate>Tue, 06 Dec 2016 00:01:21 +0100</pubDate><guid>https://neu-iot.fkainka.de/day6-2016/</guid><description>&lt;p&gt;In dem gestrigen Versuchen haben Sie eine einfache Steuerung einer LED über die Blynk-App realisiert. Heute werden Sie sehen, dass die Steuerung in beide Richtungen funktioniert. Dafür kommt der Tastschalter hinter dem heutigen Türchen gerade recht. Mit ihm lässt sich die gestrige Schaltung zur folgenden erweitern:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/09/Day6_1.jpg"&gt;&lt;img class="size-large wp-image-1321" src="https://neu-iot.fkainka.de/images/2016/09/Day6_1.jpg" alt="Der neue Aufbau mit Tastschalter an D7" width="616" height="301" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der neue Aufbau mit Tastschalter an D7&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Die Oberfläche des heutigen Tages können Sie hier scannen:&lt;/p&gt;</description></item><item><title>Tag 5: Blynk</title><link>https://neu-iot.fkainka.de/day5-2016/</link><pubDate>Mon, 05 Dec 2016 00:01:46 +0100</pubDate><guid>https://neu-iot.fkainka.de/day5-2016/</guid><description>&lt;p&gt;Eine erste Verbindung vom Board zum Internet haben Sie gestern bereits hergestellt. In den nächsten Tagen soll diese Verbindung nun auch effektiv genutzt werden. Dabei beschäftigen wir uns mit der Online-Plattform Blynk, über die kurze Kommandos, Messdaten oder Nachrichten zwischen den NanoESP-Board und Ihrem Smartphone ausgetauscht werden können.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/08/Day5_1.jpg"&gt;&lt;img class="size-large wp-image-1299" src="https://neu-iot.fkainka.de/images/2016/08/Day5_1.jpg" alt="Kommunikationswege mit Blynk" width="616" height="375" /&gt;&lt;/a&gt;&lt;figcaption&gt;Kommunikationswege mit Blynk&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Blynk ermöglicht die einfache Ansteuerung von verschiedenen IoT-Boards, wie z.B. dem Rapsberry Pi oder unserem NanoESP, über eine App. Die grafische Oberfläche kann man sich völlig selbständig zusammenstellen, und auch die Programmierung ist denkbar einfach. Als wäre dies noch nicht genug, lässt sich die Steuerung des Boards auch noch von überall auf der Welt vornehmen. Ganz im Sinne des Internet of Things also.&lt;/p&gt;</description></item><item><title>Tag 4: Verbindung mit dem Internet aufbauen</title><link>https://neu-iot.fkainka.de/day4-2016/</link><pubDate>Sun, 04 Dec 2016 00:01:49 +0100</pubDate><guid>https://neu-iot.fkainka.de/day4-2016/</guid><description>&lt;p&gt;Hinter dem heutigen Türchen verbirgt sich ein 1 kOhm Widerstand. Heute ist noch nicht viel damit anzufangen aber morgen wird er wichtig. In dem heutigen Versuch wollen wir eine erste Verbindung zu Ihrem Heim WLAN Netzwerk einrichten. Dazu müssen Sie, wie an vielen folgenden Tagen, Ihre WLAN-Daten in das Programm eintragen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/08/Day4_1.jpg"&gt;&lt;img class="size-large wp-image-1295" src="https://neu-iot.fkainka.de/images/2016/08/Day4_1.jpg" alt="Das Board pingt den Google Server an" width="616" height="359" /&gt;&lt;/a&gt;&lt;figcaption&gt;Das Board pingt den Google Server an&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Doch zunächst müssen Sie das heutige Programm herunterladen. Dies können Sie tun, indem Sie in dem unteren Fenster auf das rechte Symbol klicken. Bei diesem Fenster handelt es sich um ein Iframe der &lt;a href="https://create.arduino.cc/"&gt;Arduino Create Webseite.&lt;/a&gt; &lt;a href="https://create.arduino.cc/"&gt;Arduino Create&lt;/a&gt; ist ein von den Machern von Arduino bereitgestellter online Compiler. Mit Ihm können können Sie direkt im Browser Arduino Programme schreiben und auf ein Board hochladen. Ebenso können Sie die hier vorgestellten Programme in Ihren online Programmordner importieren und vor dem Hochladen anpassen. Dazu benötigen Sie allerdings einen kostenlosen Account und ein passendes Plugin. Ich benutze diese Funktion vor allem, da Sie vor dem Programmdownload einen Blick in den Code werfen können und es für mich einfacher ist, den Code nachträglich zu verändern und einzubinden.&lt;/p&gt;</description></item><item><title>Tag 3: Der NanoESP im AccesPoint-Modus</title><link>https://neu-iot.fkainka.de/day3-2016/</link><pubDate>Sat, 03 Dec 2016 00:01:18 +0100</pubDate><guid>https://neu-iot.fkainka.de/day3-2016/</guid><description>&lt;p&gt;Hinter dem dritten Türchen befindet sich der für viele Versuche wichtige Schaltdraht. Als Vorbereitung für spätere Versuche können Sie die Versorgungsleitungen GND und VCC auf die äußeren Bahnen legen. Dadurch haben Sie später einen besseren Zugriff auf diese wichtigen Leitungen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/08/Day3_0.jpg"&gt;&lt;img class="size-large wp-image-1290" src="https://neu-iot.fkainka.de/images/2016/08/Day3_0.jpg" alt="Die Drahtbrücken an GND und VCC" width="616" height="306" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die Drahtbrücken an GND und VCC&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;In dem Projekt des heutigen Tages kommen Sie nun dazu, auch selbst etwas in dem Programm zu verändern. Als Grundlage dient uns dabei das Beispielprogramm:&lt;/p&gt;</description></item><item><title>Tag 2: Die Arduino IDE</title><link>https://neu-iot.fkainka.de/day2-2016/</link><pubDate>Fri, 02 Dec 2016 00:01:47 +0100</pubDate><guid>https://neu-iot.fkainka.de/day2-2016/</guid><description>&lt;p&gt;Diesmal beﬁndet sich hinter dem Türchen ein Steckbrett. Darauf lassen sich schnell und einfach die Hardwareaufbauten des Adventskalenders zusammenstecken. Da bis jetzt nur der NanoESP zur Verfügung steht, fangen wir mit diesem an.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/08/Day2_1.jpg"&gt;&lt;img class="size-large wp-image-1286" src="https://neu-iot.fkainka.de/images/2016/08/Day2_1.jpg" alt="NanoESP auf dem Steckboard" width="616" height="309" /&gt;&lt;/a&gt;&lt;figcaption&gt;NanoESP auf dem Steckboard&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Am besten ist es, wenn Sie den Controller wie auf dem Bild gezeigt auf das Steckboard stecken. Dadurch bleibt der meiste Platz für Experimente, das WLAN-Modul ragt hinten über das Steckboard hinaus. Das Micro-USB-Kabel hängt dann zwischen den Kontaktseiten und stört nur minimal. Das Board muss mit sanfter Gewalt und bis zum Anschlag in die Kontakte gepresst werden.&lt;br&gt;
Am heutigen Tag wollen wir uns außerdem mit der Software beschäftigen, mit der das Board programmiert werden kann. Es handelt sich um die Arduino-Entwicklungsumgebung (kurz Arduino-IDE). Sie können die neuste Version unter &lt;a href="http://www.arduino.cc/en/Main/software"&gt;http://www.arduino.cc/en/Main/software&lt;/a&gt; für Ihr individuelles System herunterladen und anschließend installieren. Beachten Sie, dass Sie mindestens mit Arduino-Version 1.6.5 arbeiten sollten.&lt;/p&gt;</description></item><item><title>Tag 1: Das NanoESP-Board</title><link>https://neu-iot.fkainka.de/day1-2016/</link><pubDate>Thu, 01 Dec 2016 00:01:19 +0100</pubDate><guid>https://neu-iot.fkainka.de/day1-2016/</guid><description>&lt;p&gt;Es ist der erste Dezember und damit Zeit, das erste Türchen zu öffnen. Dahinter beﬁ ndet sich das wohl wichtigste Element des Kalenders: Das NanoESP-Board. Dieser Arduino-kompatible Controller mit WLANFunktion steht im Mittelpunkt der 24 Versuche.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/08/Day1_1.jpg"&gt;&lt;img class="size-large wp-image-1280" src="https://neu-iot.fkainka.de/images/2016/08/Day1_1.jpg" alt="Das NanoESP Board" width="616" height="186" /&gt;&lt;/a&gt;&lt;figcaption&gt;Das NanoESP Board&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Kurz zusammengefasst lässt sich sagen, dass das Board am ehesten eine Kreuzung aus einem Arduino-Nano-ähnlichen Board und einem WLAN-Modul mit dem Namen ESP8266 ist. Die Kommunikation zwischen beiden Elementen läuft über eine per Software generierte serielle Schnittstelle, die an den Pins D11 und D12 angeschlossen ist. Diese Pins sollten Sie also bei eigenen Projekten meiden.&lt;/p&gt;</description></item><item><title>Tag 0: Alle Programm von Kalender 2016</title><link>https://neu-iot.fkainka.de/tag-0-alle-programm-von-kalender-2016/</link><pubDate>Sat, 08 Oct 2016 14:34:57 +0200</pubDate><guid>https://neu-iot.fkainka.de/tag-0-alle-programm-von-kalender-2016/</guid><description>&lt;p&gt;Auch dieses Jahr gibt es wieder die Vorabversion aller Programme zum Ausprobieren.&lt;/p&gt;
&lt;p&gt;Wie bereits in dem Handbuch erwähnt wurde speziell für den letzten Teil des Adventskalenders ein eigener Server gemietet und konfiguriert. Dieser ist nun soweit eingestellt, dass auch die letzten Versuche funktionieren. Es kann allerdings immer noch sein, dass es bis zum offiziellen Start im Dezember zu kurzen Downzeiten kommt.&lt;/p&gt;
&lt;p&gt;Ein Problem gibt es derzeit noch mit dem Cheerlights Projekt am Tag 23. Ich hoffe, dass ich dieses Problem in den nächsten Tagen lösen kann.&lt;/p&gt;</description></item><item><title>Die neue NanoESP-Library mit MQTT, HTTP und Blynk-Support</title><link>https://neu-iot.fkainka.de/library/</link><pubDate>Mon, 19 Sep 2016 12:25:19 +0200</pubDate><guid>https://neu-iot.fkainka.de/library/</guid><description>&lt;p&gt;Im Kontext des neues IoT Adventskalenders 2016 wurde die Library zum NanoESP um einige Funktionen erweitert. Neben den klassischen Befehlen zum Steuern des Moduls, gibt es in dieser Version auch zwei Sub-Libraries, die das Übermitteln von Webseiten erleichtern oder die Verwendung des beliebten MQTT(&lt;a href="http://mqtt.org/"&gt;http://mqtt.org/&lt;/a&gt;) IoT-Protokolls ermöglichen.&lt;/p&gt;
&lt;h1 id="download-151556_"&gt;&lt;a href="https://github.com/FKainka/NanoESP/archive/v1.1.zip"&gt;download-151556_640&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="download"&gt;&lt;a href="https://github.com/FKainka/NanoESP/archive/v1.1.zip"&gt;Download&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Link auf Github: &lt;a href="https://github.com/FKainka/NanoESP"&gt;https://github.com/FKainka/NanoESP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unter den Beispielen befindet sich außerdem ein Programm, welches Blynk-Projekte (&lt;a href="http://www.blynk.cc/"&gt;http://www.blynk.cc/&lt;/a&gt;) ermöglicht. Damit Sie das Programm verwenden können, benötigen Sie eine zusätzliche Library:&lt;/p&gt;</description></item><item><title>Infos zum neuen Adventskalender</title><link>https://neu-iot.fkainka.de/die-library-zum-neuen-adventskalenders/</link><pubDate>Thu, 08 Sep 2016 14:45:15 +0200</pubDate><guid>https://neu-iot.fkainka.de/die-library-zum-neuen-adventskalenders/</guid><description>&lt;p&gt;Das Adventskalender Projekt vom letzten Jahr hat anscheinend viel Anklang gefunden. Anhand der Nutzerzahlen konnte ich ablesen, dass viele Interessierte täglich den neuen Versuch auf der Webseite aufgerufen haben und auch in den Kommentarbereichen war ordentlich was los. Es war einfach schön zu sehen, wie Sich viele verschiedene Bastelbegeisterte gegenseitig helfen.&lt;/p&gt;
&lt;p&gt;Aus diesem Grund soll auch in diesem Jahr das Adventskalender Projekt durch diese Webseite begleitet werden. In dem letzten Jahr war der die online Unterstützung ein erster Versuch, der anscheinend recht erfolgreich war. Dennoch gab es einige Kritikpunkte, die teilweise auch Ihre Berechtigung hatten. Deswegen habe ich versucht in diesem Jahr einige Dinge besser zu machen.&lt;/p&gt;</description></item><item><title>Ausgelagerte Webseiten für den NanoESP</title><link>https://neu-iot.fkainka.de/ausgelagerte-webseiten-fuer-den-nanoesp/</link><pubDate>Sun, 17 Apr 2016 11:33:10 +0200</pubDate><guid>https://neu-iot.fkainka.de/ausgelagerte-webseiten-fuer-den-nanoesp/</guid><description>&lt;p&gt;Gerade im Kontext des Adventskalenders oder den anderen Lernpaketen habe ich einige HTML-Seiten für den NanoESP entworfen. Allerdings hat mich dabei immer gestört, dass zum einen der Speicherplatz ziemlich gering ist zum anderen die Übertragung etwas langsam sein kann, vor allem, wenn die Seite oft neu geladen werden muss. Deswegen habe ich mir eine neue Methode überlegt, bei der die dazustellenden Webseite auf einem anderen Webserver liegt und beim Verbinden mit dem TCP-Server des Boards einfach nachgeladen wird. Der Nachteil ist hier vor allem, dass der Client mit dem Internet verbunden sein muss. Das bedeutet auch, das ein privates Netzwerk mit dem NanoESP als AccesPoint nicht möglich ist. Die Vorteile sind aber komplexere Seiten und schnellere Ladezeiten sowie eine insgesamt Entlastung des Boards. Im Folgenden Stelle ich das System anhand des &lt;a href="https://neu-iot.fkainka.de/day-14"&gt;RGB-LED-Beispiels&lt;/a&gt; vor.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Neigungssensor – auslesen per IoT- Board, übertragen per WLAN</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</link><pubDate>Tue, 09 Feb 2016 12:57:00 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonholger-fritzsch"&gt;Beitrag zum &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Holger Fritzsch&lt;/h2&gt;
&lt;p&gt;Mit einer einfachen Zusatzschaltung läßt sich mit dem IoT- Board eine Erschütterung oder Lageänderung von Gegenständen oder Türen detektieren.&lt;br&gt;
Zur Anwendung kommt hier ein RS- Flip Flop bestehend aus 2 Transistoren vom Typ BC547.&lt;/p&gt;
&lt;p&gt;Ob man nun eine Tür , Fenster oder Fahrrad überwachen oder Teile vor unbefugter Entnahme sichern will,der kompakte Aufbau des Moduls machts möglich.&lt;br&gt;
Die Schaltung kennt zwei stabile Zustände, nämlich Bereitschaft- und Alarmzustand.&lt;br&gt;
Technisch gesehen entsprechend dem Set- und Reset- Zustand.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Quadrocopter Landing Pad</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</link><pubDate>Tue, 09 Feb 2016 12:57:00 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-paul-kaczmarczyk"&gt;Beitrag zum &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Paul Kaczmarczyk&lt;/h2&gt;
&lt;h3 id="auszug-ausdem-pdf"&gt;&lt;em&gt;&lt;strong&gt;Auszug aus&lt;/strong&gt;&lt;/em&gt;&lt;em&gt;&lt;strong&gt;dem PDF:&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;h2 id="projektbeschreibung"&gt;Projektbeschreibung:&lt;/h2&gt;
&lt;p&gt;An Weihnachten erhielt ich einen Quadrocopter als Geschenk von meinem Opa. Ich hatte so viel Freude damit, dass ich mir gleich ein zweites Modell vom Typ Blade Inductrix zulegte. Das Fliegen mit dem Quadrocopter macht allerdings besonders viel Spaß, wenn man Aufgaben zu erfüllen hat.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;img alt="Quadro2" loading="lazy" src="https://neu-iot.fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="spielidee"&gt;Spielidee&lt;/h2&gt;
&lt;p&gt;Für die zu bewältigenden Aufgaben kam mir der Gedanke das Landing Pad zu bauen, bei dem die Aufgabe darin besteht durch einen Ring zu fliegen, ohne hängen zu bleiben und dann zu landen, sofern man eine Landefreigabe erhält. Wird die Landefreigabe vom Tower nicht gegeben, so muss man schweben, bis die Landefreigabe erteilt wird. Wird ohne Landefreigabe gelandet, erhält man als Strafe für die Landung einen Punktabzug. Landet man mit Freigabe erhält man Punkte auf sein Konto. Ein Hängenbleiben am Ring soll auch einen Punktabzug zur Folge haben. Um sich mit anderen zu messen, sollen die erreichten Punkte auch in einer Internet-weiten Highscore-Liste namentlich geführt werden. Dieses Geschicklichkeitsspiel soll rundenbasiert ablaufen, wobei die Rundenzeit 60 s beträgt. Läuft die Runde ab, werden die addierten Punkte in die Highscore-Liste eingetragen. Der Start einer neuen Runde soll durch Druck auf einen Taster ermöglicht werden. […]&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Polarfuchs</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-polarfuchs/</link><pubDate>Tue, 09 Feb 2016 12:56:00 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-polarfuchs/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-nicolaus-cüppers"&gt;Beitrag zum &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Nicolaus Cüppers&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Der Conrad-Adventskalender „Internet of Things“ war für mich der Einstieg, mich einmal mit dem Thema Arduino zu befassen. Herausgekommen ist das Projekt „Polarfuchs“. Der Name ist angelehnt an das kleinste mir bekannte deutsche Forschungsschiff. Es handelt sich um einen Versuchsaufbau, der ein unbemanntes „Schiff“ nachbildet, was einige Umgebungsdaten erfasst und weiterleitet und parallel dazu seinen eigenen Zustand überwacht.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Es wurde nur der Kalender und zusätzlich eine Stromquelle verwendet. Daher sind die Messmethoden auch nicht unbedingt praxisnahe. Normalerweise würde man für die einzelnen Werte passende Sensoren einsetzen.  Das war allerdings nicht die Aufgabe. Vielmehr ging es ja darum, aus einer Hand voll vorhandener Bauelemente das Maximale herauszuholen. Als Schiffsrumpf wird daher der Kalender selbst verwendet. Er bildet durch seinen Plastikkörper mit zahlreichen Einsenkungen eine ideale Schwimmplattform. Es wurden jedoch die üblichen konfektionierten Steckkabel verwendet. Das dem Kalender beiliegende Kabel hätte aber auch gereicht, um die Schaltung aufzubauen. Dann hätte man nur alles etwas enger am Board platzieren müssen.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Blumenwächter</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-blumenwaechter/</link><pubDate>Tue, 09 Feb 2016 12:51:00 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-blumenwaechter/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-leander-hackmann"&gt;Beitrag zum &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Leander Hackmann:&lt;/h2&gt;
&lt;p&gt;Jeder hat Topfpflanzen. Sie verschönern unseren Alltag, benötigen jedoch auch häufig unsere Aufmerksamkeit in Form von Pflege. Um den besten Standort herauszufinden und das regelmäßige Giessen nicht zu vergessen, habe ich folgende Anwendung mit dem Iot-Board entworfen und umgesetzt: ein Datenlogger für Licht und Feuchtigkeit.&lt;/p&gt;
&lt;h3 id="download-des-programms"&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/blumenwaechter-final-160125a.zip"&gt;Download des Programms&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Das Programm&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;//Blumenwaechter für das NanoESP-Board
//2016 von Leander H.
//Misst alle 30min. Feuchtigkeit und Helligkeit
//Mit Druck auf Taster kann ein Nullpunkt in der Messung als markanter Punkt gesetzt werden#
//Es werden zwei Channels auf Thingspeak.com verwendet (API-Keys in &amp;#34;LightKEY und &amp;#34;MoistureKEY&amp;#34;)
//Über &amp;#34;threshold&amp;#34; kann der Pegel zur Warnung eingestellt werden
//Code und Idee von Leander H. -- Funktionen von Fabian Kainka
#include SoftwareSerial.h&amp;gt;
#include Time.h&amp;gt;
//Setup-Bereich
#define SSID &amp;#34;[SSID]&amp;#34;
#define PASSWORD &amp;#34;[Passwort]&amp;#34;
#define LightKEY &amp;#34;[API-KEY]&amp;#34;
#define MoistureKEY &amp;#34;[API-KEY]&amp;#34;
#define threshold 400 //
#define DEBUG true
#define LED_WLAN 13
SoftwareSerial esp8266(11, 12); // RX, TX
int ledGreen = 5;
int ledYellow = 4;
int ledRed = 3;
int sensorPower = 2;
int moistSensor = 2;
String lastminute;
 
const byte thingPost[] PROGMEM = {
 80, 79, 83, 84, 32, 42, 85, 82, 76, 42, 32, 72, 84, 84, 80, 47, 49, 46, 49, 10, 72, 111, 115, 116, 58, 32, 97, 112, 105, 46, 116, 104, 105, 110, 103, 115, 112, 101, 97, 107, 46, 99, 111, 109, 10, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 58, 32, 99, 108, 111, 115, 101, 10, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 120, 45, 119, 119, 119, 45, 102, 111, 114, 109, 45, 117, 114, 108, 101, 110, 99, 111, 100, 101, 100, 10, 67, 111, 110, 116, 101, 110, 116, 45, 76, 101, 110, 103, 116, 104, 58, 32, 42, 76, 69, 78, 42, 10, 10, 42, 65, 80, 80, 69, 78, 68, 42, 10
};
void setup() {
 pinMode(ledGreen, OUTPUT);
 pinMode(ledYellow, OUTPUT);
 pinMode(ledRed, OUTPUT);
 pinMode(sensorPower, OUTPUT);
 
 Serial.begin(19200);
 esp8266.begin(19200);
 while(!espConfig()){ //Failsafe für WLAN
   delay(200);
 }
 digitalWrite(LED_WLAN, HIGH);
 while(!getTime(&amp;#34;chronic.herokuapp.com&amp;#34;, &amp;#34;/utc/in+one+hours&amp;#34;) == false){ //Failsafe für Zeitsynchro
   delay(200);
 }
 
 sendThingPost(LightKEY, analogRead(A0)); //Erste Übermittlung
 digitalWrite(sensorPower, HIGH);
 delay(200);
 int tmp = analogRead(A2);
 sendThingPost(MoistureKEY, tmp);
 digitalWrite(sensorPower, LOW);
 if(tmp threshold){
    digitalWrite(ledRed, HIGH);
    digitalWrite(ledGreen, LOW);
 }else{
    digitalWrite(ledRed, LOW);
    digitalWrite(ledGreen, HIGH);
 }
}
void loop() {
 String shour, sminute, ssecond;
 if (hour() 9) shour = &amp;#34;0&amp;#34; + String(hour()); else shour = String(hour()); // adjust for 0-9
 if (minute() 9) sminute = &amp;#34;0&amp;#34; + String(minute());  else sminute = String(minute());
 if (second() 9) ssecond = &amp;#34;0&amp;#34; + String(second());  else ssecond = String(second());
 //debug(shour + &amp;#34;:&amp;#34; + sminute + &amp;#34;:&amp;#34; + ssecond);
 
 if(sminute == &amp;#34;0&amp;#34; || sminute == &amp;#34;30&amp;#34;){ //Wird zur halben und vollen Stunde ausgeführt
   if(sminute != lastminute){
         digitalWrite(ledYellow, HIGH);
         if(sendThingPost(LightKEY, analogRead(A0) == false)){
           while(sendThingPost(LightKEY, analogRead(A0) == false)){
             sendThingPost(LightKEY, analogRead(A0));
             delay(200);
           }
         }
         digitalWrite(ledYellow, LOW);
         delay(500);
         digitalWrite(ledYellow, HIGH);
         digitalWrite(sensorPower, HIGH);
         delay(100);
         if(sendThingPost(MoistureKEY, analogRead(A2) == false)){
           while(sendThingPost(MoistureKEY, analogRead(A2) == false)){
             sendThingPost(MoistureKEY, analogRead(A2));
             delay(200);
           }
         }
         digitalWrite(sensorPower, LOW);
         digitalWrite(ledYellow, LOW);
         
         digitalWrite(sensorPower, HIGH);
         delay(100);
         int tmp = analogRead(A2);
         digitalWrite(sensorPower, LOW);
         
         if(tmp threshold){
           digitalWrite(ledRed, HIGH);
           digitalWrite(ledGreen, LOW);
         }else{
           digitalWrite(ledRed, LOW);
           digitalWrite(ledGreen, HIGH);
         }
         
         lastminute = sminute;
   }
 }
 
 if(analogRead(A1) &amp;gt; 500){ //Button zum Setzen eines Nullpunktes
   digitalWrite(ledYellow, HIGH);
   sendThingPost(LightKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(500);
   digitalWrite(ledYellow, HIGH);
   sendThingPost(MoistureKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(1000);
 }
}
//Verwendete Funktionen von Fabian Kainka folgen ab hier:
//-----------------------------------------ThingsSpeak Functions------------------------------------
boolean sendThingPost(String key, int value)
{
 boolean succes = true;
 String  Host = &amp;#34;api.thingspeak.com&amp;#34;;
 String msg = &amp;#34;field1=&amp;#34; + String(value);
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=&amp;#34;TCP&amp;#34;,&amp;#34;&amp;#34; + Host + &amp;#34;&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String postRequest = createThingPost(&amp;#34;/update&amp;#34;, key, msg);
 if (sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(postRequest.length()), &amp;#34;&amp;gt;&amp;#34;))
 {
   esp8266.print(postRequest);
   esp8266.find(&amp;#34;SEND OK&amp;#34;);
   if (!esp8266.find(&amp;#34;CLOSED&amp;#34;)) succes &amp;amp;= sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
 }
 else
 {
   succes = false;
 }
 return succes;
}  
String createThingPost(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String getTCP(String Host, String Subpage)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=&amp;#34;TCP&amp;#34;,&amp;#34;&amp;#34; + Host + &amp;#34;&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1rnHost:&amp;#34; + Host + &amp;#34;rnrn&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 return sendCom(getRequest);
}
boolean getTime(String Host, String Subpage)
{
 boolean succes = true;
 int xyear, xmonth, xday, xhour, xminute, xsecond;  //lokal variables
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=&amp;#34;TCP&amp;#34;,&amp;#34;&amp;#34; + Host + &amp;#34;&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1rnHost:&amp;#34; + Host + &amp;#34;rn&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 esp8266.println(getRequest);
 if (esp8266.find(&amp;#34;+IPD&amp;#34;))
 {
   if (esp8266.find(&amp;#34;rnrn&amp;#34;))
   {
     xyear = esp8266.parseInt();
     xmonth = esp8266.parseInt();
     xday = esp8266.parseInt();
     xhour = esp8266.parseInt();
     xminute = esp8266.parseInt();
     xsecond = esp8266.parseInt();
     if (xday 0) xday *= -1;          //Because of date seperator - parseInt detects negativ integer
     if (xmonth 0) xmonth *= -1;    //Because of date seperator - parseInt detects negativ integer
     setTime(xhour, xminute, xsecond, xday, xmonth, xyear);
     sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
     return true;
   }
   else return false;
 }
 else return false;
}
//-----------------------------------------Config ESP8266------------------------------------
boolean espConfig()
{
 boolean succes = true;
 esp8266.setTimeout(5000);
 succes &amp;amp;= sendCom(&amp;#34;AT+RST&amp;#34;, &amp;#34;ready&amp;#34;);
 esp8266.setTimeout(1000);
 if (configStation(SSID, PASSWORD)) {
   succes &amp;amp;= true;
   debug(&amp;#34;WLAN Connected&amp;#34;);
   debug(&amp;#34;My IP is:&amp;#34;);
   debug(sendCom(&amp;#34;AT+CIFSR&amp;#34;));
 }
 else
 {
   succes &amp;amp;= false;
 }
 //shorter Timeout for faster wrong UPD-Comands handling
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;);  //So rum scheit wichtig!
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;);
 return succes;
}
boolean configTCPServer()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=1&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configTCPClient()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 //succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configStation(String vSSID, String vPASSWORT)
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=1&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(20000);
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWJAP=&amp;#34;&amp;#34; + String(vSSID) + &amp;#34;&amp;#34;,&amp;#34;&amp;#34; + String(vPASSWORT) + &amp;#34;&amp;#34;&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(1000);
 return succes;
}
boolean configAP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=2&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWSAP=&amp;#34;NanoESP&amp;#34;,&amp;#34;&amp;#34;,5,0&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configUDP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=&amp;#34;UDP&amp;#34;,&amp;#34;192.168.255.255&amp;#34;,90,91,2&amp;#34;, &amp;#34;OK&amp;#34;); //Importand Boradcast...Reconnect IP
 return succes;
}
//-----------------------------------------------Controll ESP-----------------------------------------------------
boolean sendUDP(String Msg)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(Msg.length() + 2), &amp;#34;&amp;gt;&amp;#34;);    //+&amp;#34;,&amp;#34;192.168.4.2&amp;#34;,90&amp;#34;, &amp;#34;&amp;gt;&amp;#34;);
 if (succes)
 {
   succes &amp;amp;= sendCom(Msg, &amp;#34;OK&amp;#34;);
 }
 return succes;
}
boolean sendCom(String command, char respond[])
{
 esp8266.println(command);
 if (esp8266.findUntil(respond, &amp;#34;ERROR&amp;#34;))
 {
   return true;
 }
 else
 {
   debug(&amp;#34;ESP SEND ERROR: &amp;#34; + command);
   return false;
 }
}
String sendCom(String command)
{
 esp8266.println(command);
 return esp8266.readString();
}
//-------------------------------------------------Debug Functions------------------------------------------------------
void serialDebug() {
 while (true)
 {
   if (esp8266.available())
     Serial.write(esp8266.read());
   if (Serial.available())
     esp8266.write(Serial.read());
 }
}
void debug(String Msg)
{
 if (DEBUG)
 {
   Serial.println(Msg);
 }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;[collapse]&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: IoTeaTimer</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-ioteatimer/</link><pubDate>Sun, 31 Jan 2016 12:48:25 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-ioteatimer/</guid><description>&lt;p&gt;Sie kennen das? Sie sitzen in Ihrem Arbeits- oder Bastelzimmer, ganz vertieft in Ihr neues Pretzelboard, plötzlich schießt es siedendheiss durch den Kopf: &amp;ldquo;Der Tee!&amp;rdquo; - doch der ist längst eiskalt, steht in der Küche und hat sich in eine tiefschwarze Jauche verwandelt, die höchstens noch als Pflanzenschutzmittel taugt.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/IoTeaTimer-Titelbild-3.jpg"&gt;&lt;img alt="IoTeaTimer-Titelbild-3" loading="lazy" src="https://neu-iot.fkainka.de/images/2016/01/IoTeaTimer-Titelbild-3.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das ist der Auftritt für den IoTeaTimer. Eine Eieruhr mit WLAN-Anschluss? Nein, Ihr persönlicher Erinnerungsagent … lesen Sie weiter in der umfassenden &lt;a href="https://neu-iot.fkainka.de/images/2016/01/IoTeaTimer.pdf"&gt;Projektdokumentation&lt;/a&gt;, hier als PDF, zum Download.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Wassermelder mit Twitter-Alarmmeldung</title><link>https://neu-iot.fkainka.de/wettbewerbsbeitrag-wassermelder-mit-twitter-alarmmeldung/</link><pubDate>Fri, 29 Jan 2016 06:57:19 +0100</pubDate><guid>https://neu-iot.fkainka.de/wettbewerbsbeitrag-wassermelder-mit-twitter-alarmmeldung/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonbernhard-kaiser-michael-gaus"&gt;Beitrag zum &lt;a href="http://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Bernhard Kaiser &amp;amp; Michael Gaus&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://neu-iot.fkainka.de/images/2016/01/foto.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Bei diesem Projekt handelt es sich um einen Wassermelder, der optisch, akustisch und per Twitter-Meldung Alarm gibt, sobald an den Sensorkontakten Wasser detektiert wird. Er kann z.B. zur Überwachung auf austretendes Wasser aus Waschmaschine oder Spülmaschine dienen und helfen, rechtzeitig vor größeren Überschwemmungen eingreifen zu können. Als Sensorkontakt können einfach 2 Drähte mit abisolierten Enden genommen werden, so wie es auch auf dem Foto zu sehen ist. Verwendet wurden ausschließlich die Bauteile der beiden Adventskalender.&lt;/p&gt;</description></item><item><title>Fernbedienung über WLAN oder Alt und Neu ergänzen sich</title><link>https://neu-iot.fkainka.de/fernbedienung-ueber-wlan-oder-alt-und-neu-ergaenzen-sich/</link><pubDate>Wed, 27 Jan 2016 14:46:30 +0100</pubDate><guid>https://neu-iot.fkainka.de/fernbedienung-ueber-wlan-oder-alt-und-neu-ergaenzen-sich/</guid><description>&lt;h3 id="ein-beitrag-per-mail-von-holger-fritzsch"&gt;Ein Beitrag per Mail von Holger Fritzsch:&lt;/h3&gt;
&lt;p&gt;Das IoT- Baord regt zum experimentieren an. Auch wenn ich den Kalender vor Weihnachten  nicht bekam, so konnte ich Dank der Veröffentlichung des Handbuches die Sache mitverfolgen. Inzwischen habe ich ein Pretzelboard erworben.&lt;/p&gt;
&lt;p&gt;Es wird per kostenloser Android- App („&lt;a href="https://play.google.com/store/apps/details?id=com.hastarin.android.udpsender&amp;amp;hl=de"&gt;UDP- Sender“&lt;/a&gt;) im Zusammenhang mit dem Experiment vom &lt;a href="https://neu-iot.fkainka.de/day-5"&gt;Tag 5 (Autor F.Kainka)&lt;/a&gt; die Garagenbeleuchtung ein- bzw. ausgeschaltet.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/test10-1.jpg"&gt;&lt;img alt="test10" loading="lazy" src="https://neu-iot.fkainka.de/images/2016/01/test10-1.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So kann man ein altes Handy, dessen Akku schwächelt, einer Zweitverwendung zuführen. Das Handy baut eine Access- Verbindung zum ESP- Modul auf.&lt;/p&gt;</description></item><item><title>Anleitung für dein erstes User Projekt</title><link>https://neu-iot.fkainka.de/anleitung-fuer-dein-erstes-user-projekt/</link><pubDate>Mon, 25 Jan 2016 18:42:04 +0100</pubDate><guid>https://neu-iot.fkainka.de/anleitung-fuer-dein-erstes-user-projekt/</guid><description>&lt;p&gt;Damit du dein Projekt hochladen kannst, musst du dich zunächst auf dieser Seite anmelden und einloggen. Dann erscheint oben eine Leiste, wie die auf dem unteren Bild:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/Neu1.jpg" rel="attachment wp-att-1123"&gt;&lt;img class="size-full wp-image-1123" src="https://neu-iot.fkainka.de/images/2016/01/Neu1.jpg" alt="Neuer Beitrag" width="910" height="370" /&gt;&lt;/a&gt;&lt;figcaption&gt;Neuer Beitrag&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Auf dem Bild ist auch schon der Punkt ausgewählt, unter dem du dein neues Projekt erstellen kannst. Als nächstes erscheint eine Seite die folgendermaßen aussieht:&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/ScreenShot9.jpg" rel="attachment wp-att-1124"&gt;&lt;img class="size-full wp-image-1124" src="https://neu-iot.fkainka.de/images/2016/01/ScreenShot9.jpg" alt="Beitrag bearbeiten" width="937" height="837" /&gt;&lt;/a&gt;&lt;figcaption&gt;Beitrag bearbeiten&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Hier kannst du deine Projektbeschreibung eintippen und deine Bilder einfügen. Ein passender Titel hilft auch anderen, den Beitrag schnell zu finden. Wenn dein Artikel fertig ist, klickst du auf &amp;ldquo;&lt;em&gt;Zur Revision vorlegen&lt;/em&gt;&amp;rdquo;. Dann kann es noch ein wenig dauern, bis der Beitrag schließlich unter User Projekte erscheint, denn ein Administrator schaut noch einmal drüber, ob alles korrekt ist. Übrigens, unter der Texteingabe ist außerdem ein Feld, mit dem du festlegen kannst, ob anderen Nutzer Kommentare zu deinem Projekt abgeben dürfen. Dadurch ist es auch möglich, neue Projektideen zu diskutieren oder gemeinsam das Projekt weiter zu Entwickeln.&lt;/p&gt;</description></item><item><title>Pinout NanoESP &amp; Pretzel Board</title><link>https://neu-iot.fkainka.de/pinout-pretzel-board-nanoesp/</link><pubDate>Tue, 12 Jan 2016 08:24:58 +0100</pubDate><guid>https://neu-iot.fkainka.de/pinout-pretzel-board-nanoesp/</guid><description>&lt;p&gt;&lt;a href="https://neu-iot.fkainka.de/images/2016/01/Pinout-Pretzel-Board.jpg"&gt;&lt;img alt="Pinout Pretzel Board (NanoESP)" loading="lazy" src="https://neu-iot.fkainka.de/images/2016/01/Pinout-Pretzel-Board.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="download-pdfpinout-pretzel-board"&gt;Download PDF: &lt;a href="https://neu-iot.fkainka.de/images/2016/01/Pinout-Pretzel-Board.pdf"&gt;Pinout Pretzel Board&lt;/a&gt;&lt;/h3&gt;</description></item><item><title>Tag 24: Feuermelder für den Weihnachtsbaum</title><link>https://neu-iot.fkainka.de/day-24/</link><pubDate>Thu, 24 Dec 2015 00:01:19 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-24/</guid><description>&lt;p&gt;Das Abschlussprojekt besteht aus mehreren Elementen, die Sie im Laufe der Adventszeit kennengelernt haben. Eine Funktion ist die am vorrangegangenen Tag vorgestellte Cheerlights-Funktion. Sie können weiterhin die aktuelle Farbe des Cheerlights-Projekts empfangen und mit der RGB-LED darstellen. Außerdem wird das Board zur Langzeitüberwachung der Temperatur eingesetzt. Gleichzeitig kann das Board einen Alarmton ausgeben, wenn die Temperatur einen bestimmten Wert überschreitet, z.B. weil ein Feuer entsteht. Und als letzte Funktion kann das Board als Weihnachtsglocke eingesetzt werden, indem es über ein zeitgesteuertes TalkBack-Kommando dazu gebracht wird, den Song Jingle Bells zu spielen. Alles in allem ist das heutige Projekt ein Allrounder für den Weihnachtsbaum.&lt;/p&gt;</description></item><item><title>Tag 23: Cheerlights</title><link>https://neu-iot.fkainka.de/day-23/</link><pubDate>Wed, 23 Dec 2015 00:01:25 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-23/</guid><description>&lt;p&gt;Der heutige Versuch basiert auf einem Projekt von Hans Scharler, das sich Cheerlights nennt. Die Idee: weltweit vernetzte Lichter,  die sich simultan über Twitter Kommandos steuern lassen. Eine gutes Beispiel, dass die Welt mit dem Internet immer enger zusammenwächst.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein viertes Verlängerungskabel mit dem sich nun auch endlich die RGB-Led abseits vom Board platzieren lässt. Das kann besonders praktisch sein, wenn Sie beispielsweise das Board im Weihnachtsbaum verstecken wollen während die RGB-LED die Krone des Baums schmückt.&lt;/p&gt;</description></item><item><title>Tag 22: TalkBack</title><link>https://neu-iot.fkainka.de/day-22/</link><pubDate>Tue, 22 Dec 2015 00:01:22 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-22/</guid><description>&lt;p&gt;In dem heutigen Projekt geht es um eine weitere App der ThingSpeak-Seite, nämlich der TalkBack-App. Mit dieser Funktion ist es möglich, ein Kommando zu erstellen, das vom Controller ausgelesen und ausgeführt wird. Was mit nur einem Controller zunächst sinnlos erscheint, macht Sinn, wenn man zwei oder sogar ein ganzes Netzwerk von Controllern einsetzt. Einige Boards können dann als Sensoren agieren, beispielsweise mit Bewegungsmeldern, und beim Entdecken einer Bewegung ein TalkBack-Kommando senden. Ein weiteres Modul liest das Kommando von der ThingSpeak-Seite und öffnet dann die Tür oder meldet Alarm.&lt;/p&gt;</description></item><item><title>Tag 21: Twitter Alarmanlage</title><link>https://neu-iot.fkainka.de/day-21/</link><pubDate>Mon, 21 Dec 2015 00:01:32 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-21/</guid><description>&lt;p&gt;Bei dem Projekt des heutigen Tages handelt es sich um eine Alarmanlage, mit der Sie beispielsweise überprüfen können, ob jemand ungefragt eine Schublade öffnet. Laufend wird überprüft, ob auf den angeschlossenen Lichtsensor zu viel Licht fällt. Ist dies der Fall ertönt ein Alarmsignal und zusätzlich wird eine Nachricht über Twitter gesendet.&lt;/p&gt;
&lt;p&gt;Hinter dem Türchen des heutigen Tages befindet sich ein Piezo-Lautsprecher, der als Alarmsignalgeber verwendet wird. Der Aufbau des heutigen Tages sieht folgendermaßen aus:&lt;/p&gt;</description></item><item><title>Tag 20: Twitch</title><link>https://neu-iot.fkainka.de/day-20/</link><pubDate>Sun, 20 Dec 2015 00:01:47 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-20/</guid><description>&lt;p&gt;Die Webseite ThingSpeak bietet einiges mehr als nur die Langzeitüberwachung von Sensoren. Das heutige Projekt ist den Projekten von Tag 9 und Tag 10 in der Grundidee ähnlich. Es werden nämlich Informationen von einer Webseite aus dem Internet bezogen. In diesem Fall geht es darum ob ein bestimmter Stream gerade online ist oder nicht.&lt;/p&gt;
&lt;p&gt;Dabei gibt es zwei bedeutende Vorteile der ThingSpeak-Variante gegenüber den ersten Versuchen. Erstens kann über die ThingSpeak Seite auch Webseiten über HTTPS (HyperText Transfer Protocol Secure) angesprochen werden, während das Modul nur das unsicherer HTTP Protokoll unterstützt. Zweites kann die Webseite wichtige Informationen bereits vorfilten und somit die vom Controller zu bearbeitende Datenmenge deutlich verringern.&lt;/p&gt;</description></item><item><title>Tag 19: ThingSpeak</title><link>https://neu-iot.fkainka.de/day-19/</link><pubDate>Sat, 19 Dec 2015 00:01:53 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-19/</guid><description>&lt;p&gt;In den letzten Tagen der Adventszeit beschäftigen wir uns mit einem ganz neuen Thema, nämlich der Internetseite ThingSpeak. Diese Seite wurde speziell für das Thema Internet of Things entwickelt und hält verschiedene praktische Funktionen für Sie bereit.&lt;/p&gt;
&lt;p&gt;Bevor Sie also wie sonst üblich, den Aufbau und das Programm angehen, müssen Sie sich zunächst einen Account auf der Seite&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.ThingSpeak.com"&gt;www.ThingSpeak.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;erstellen. Loggen Sie sich dann mit Ihren Nutzerdaten unter dem Punkt Sign In ein. Sie sehen eine Seite, die Ihre Channels zeigt. Da Sie noch keine Kanäle haben, wird diese Seite ziemlich leer aussehen. Klicken Sie auf New Channel und vergeben einen Namen, z.B. Light, denn Sie werden in diesem Projekt die Helligkeit messen. Unter dem Punkt Field1 können Sie nun noch einen Namen für das Feld vergeben, evtl. Brightness. Alle anderen Felder können vorerst leer bleiben.&lt;/p&gt;</description></item><item><title>Tag 18: Universal Fernbedienung</title><link>https://neu-iot.fkainka.de/day-18/</link><pubDate>Fri, 18 Dec 2015 00:01:00 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-18/</guid><description>&lt;p&gt;Gestern haben Sie einen Empfänger für Infrarotfernbedienungen gebaut. Heute bauen Sie sozusagen die Fernbedienung selbst. Genauer gesagt basteln Sie sich eine per Computer oder Smartphone bedienbare Universalfernbedienung, mit der Sie Ihren Fernseher oder andere Geräte steuern können, auch wenn die originale Fernbedienung mal wieder nicht auffindbar ist.&lt;/p&gt;
&lt;p&gt;Damit Sie das Projekt angehen können, benötigen Sie das Bauteil, das sich hinter dem heutigen Türchen befindet, die IR-Diode. Sie sieht aus wie eine einfache LED, allerdings sendet sie Licht im nicht sichtbaren Infrarotbereich aus. Die IR-Signale sind aber für eine digitale Kamera sichtbar. Der Aufbau des heutigen Tages können Sie dem unteren Bild entnehmen. Wundern Sie sich nicht, dass die IR-LED keinen Vorwiderstand bekommt. Der wirksame Vorwiderstand ist allein der On-Widerstand des Ports von ca. 30 Ohm.  Damit ist der Strom durch die Diode recht groß, die gesendeten Impulse sind aber so kurz, dass die Diode keinen Schaden nimmt.&lt;/p&gt;</description></item><item><title>Tag 17: IR-Modul</title><link>https://neu-iot.fkainka.de/day-17/</link><pubDate>Thu, 17 Dec 2015 00:01:46 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-17/</guid><description>&lt;p&gt;Das Projekt des heutigen Tages ermöglicht die Steuerung des Controllers per Fernbedienung. Mit selbst wählbaren Tasten auf einer Infrarot-Fernbedienung Ihrer Wahl können Sie die Farbe der RGB-LED verändern und die Hintergrundfarbe der Webseite gleich mit.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich das für das heutige Projekt bedeutende Bauteil, nämlich das Infrarot-Empfangsmodul. Sie können das Modul wie auf dem unteren Bild ganz ohne Kabel anschließen. Das Programm setzt die entsprechenden Pins so, dass das Modul mit Strom versorgt wird.&lt;/p&gt;</description></item><item><title>Tag 16: GPIO Control</title><link>https://neu-iot.fkainka.de/tag-16-gpio-control/</link><pubDate>Wed, 16 Dec 2015 00:01:26 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-16-gpio-control/</guid><description>&lt;p&gt;Das Projekt des heutigen Tages ermöglicht die einfache Ansteuerung der digitalen Pins D2-D7 per Webseite. Der Status des jeweiligen Pins wird ebenfalls auf der Webseite dargestellt, sodass man nie den Überblick verliert.&lt;/p&gt;
&lt;p&gt;Damit sich der Zustand der Pins gut überprüfen lässt, empfiehlt sich ein Aufbau wie auf dem unteren Bild. Sowohl die RGB-LED als auch die normale LED kommen zum Einsatz. Die Kathoden der LEDs sind diesmal aber nicht an die lange Masseleitung auf der Außenseite des Boards angeschlossen, sondern liegen ebenfalls an einem digitalen Ausgang. Nur wenn diese Pins low geschaltet sind, können die LEDs also leuchten.&lt;/p&gt;</description></item><item><title>Tag 15: Lichtsensor</title><link>https://neu-iot.fkainka.de/day-15/</link><pubDate>Tue, 15 Dec 2015 00:01:56 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-15/</guid><description>&lt;p&gt;Das Projekt des heutigen Tages benutzt die Webseite des Webservers nicht als Steueroberfläche, sondern als Ausgabeelement. Die über einen Helligkeitssensor gemessene Helligkeit wird als Relativwert übersichtlich dargestellt.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein Fototransistor, der als Lichtsensor dient. Der Fototransistor sieht aus wie ein LED, sollte aber nicht mit einer verwechselt werden. Den Aufbau des heutigen Versuchs zeigt das Bild. Der Kollektor des Fototransistors ist der kürzere Anschluss und liegt an +5 V.&lt;/p&gt;</description></item><item><title>Tag 14: Webserver für die RGB-LED</title><link>https://neu-iot.fkainka.de/day-14/</link><pubDate>Mon, 14 Dec 2015 00:01:19 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-14/</guid><description>&lt;p&gt;In dem Projekt des heutigen Tages geht es um die Ansteuerung der RGB-LED mittels Webserver. Über eine übersichtliche Oberfläche kann die Farbe der LED verändert werden. Die Webseite wurde außerdem angepasst, und sollte auch auf Smartphones gut darstellbar sein.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day14-2.jpeg"&gt;&lt;img class="size-full wp-image-195" src="https://neu-iot.fkainka.de/images/2015/09/Day14-2.jpeg" alt="Die Webseite mit ColorPicker" width="303" height="310" data-id="195" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die Webseite mit ColorPicker&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Hinter dem heutigen Adventskalendertürchen befindet sich erneut ein Widerstand, diesmal aber mit 10 kΩ (Braun, Schwarz, Orange). Diesen werden Sie für den morgigen Versuch benötigen.&lt;/p&gt;</description></item><item><title>Tag 13: Webseite mit Buttons</title><link>https://neu-iot.fkainka.de/day-13/</link><pubDate>Sun, 13 Dec 2015 00:01:54 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-13/</guid><description>&lt;p&gt;In dem heutigen Versuch ist die Darstellung der Webseite noch ausgefeilter. Außerdem gibt es nun auch Steuerelemente, über die eine LED deutlich komfortabler gesteuert werden kann.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day5-1.jpg"&gt;&lt;img class="size-large wp-image-117" src="https://neu-iot.fkainka.de/images/2015/09/Day5-1.jpg" alt="So schließen Sie die LED mit Vorwiderstand am Pin D9 an" width="616" height="301" data-id="117" /&gt;&lt;/a&gt;&lt;figcaption&gt;So schließen Sie die LED mit Vorwiderstand am Pin D9 an&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Der Aufbau des heutigen Versuchs unterscheidet sich nicht vom dem des gestrigen: Eine LED am Pin D9 die sich über das Modul steuern lässt. Als zusätzliches Bauteil finden Sie hinter dem Kalendertürchen erneut einen Widerstand mit 1 kΩ. Bei Bedarf können sie nun die Helligkeit einer LED reduzieren, indem Sie zwei Widerstände in Reihe schalten.&lt;/p&gt;</description></item><item><title>Tag 12: Autonomer Webserver</title><link>https://neu-iot.fkainka.de/day-12/</link><pubDate>Sat, 12 Dec 2015 00:01:02 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-12/</guid><description>&lt;p&gt;Die Ergebnisse des gestrigen Versuches gilt es nun wieder in einem autonomen Programm zu verwenden. Das heutige Programm sendet aber nicht nur eine einfache Webseite an den Browser, sondern es ermöglicht zusätzlich die Ansteuerung einer LED.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich ein 9-V-Batterieclip mit dem Sie das Board mobil machen können. Als Alternative können Sie auch eine Power Bank (ein Akku-Pack, normalerweise für Handys) verwenden. Wenn Sie die 9V-Batterie verwenden wollen, achten Sie darauf, dass der rote Draht mit Vin verbunden werden muss, und der schwarze mit GND. Auf dem unteren Bild sehen Sie den Aufbau des heutigen Versuchs mit externer Stromversorgung.&lt;/p&gt;</description></item><item><title>Tag 11: TCP Webserver</title><link>https://neu-iot.fkainka.de/day-11/</link><pubDate>Fri, 11 Dec 2015 00:01:31 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-11/</guid><description>&lt;p&gt;In den vorangegangenen Versuchen haben wir uns viel mit dem Thema TCP und dem Zugriff auf Webserver beschäftigt. Heute soll das Modul erstmalig selbst als Webserver fungieren.&lt;/p&gt;
&lt;p&gt;Hinter dem Türchen des 11. Tages befindet sich ein besonderes Kabel, das demnächst noch sehr nützlich sein wird. Ein spezieller Aufbau ist heute nicht nötig, da das Programm ähnlich wie das Serial Monitor Programm des ersten Tages funktioniert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Das Programm: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day11_TCPServer.zip"&gt;Day11_TCPServer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ändern Sie wie bisher die WLAN-Daten und laden Sie das Programm auf Ihr Board. Dann starten Sie den Monitor. Es kann wieder ein paar Sekunden dauern, bis die Meldung erscheint, dass das Board verbunden ist. Wenn die Erfolgsmeldung erschienen ist und die IP des Moduls angezeigt wird, können Sie im Serial Monitor mit dem ersten Befehl beginnen:&lt;/p&gt;</description></item><item><title>Tag 10: Temperaturanzeige</title><link>https://neu-iot.fkainka.de/day-10/</link><pubDate>Thu, 10 Dec 2015 00:01:55 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-10/</guid><description>&lt;p&gt;Bei dem heutigen Projekt handelt es sich um eine intuitive Anzeige der aktuellen Temperatur. Mit nur einem Blick kann man abschätzen, ob es sinnvoll ist, eine warme Jacke mitzunehmen.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich eine weitere LED, allerdings keine gewöhnliche. Es handelt sich um eine RGB-LED. RGB steht für Red, Green, Blue oder Rot, Grün, Blau denn die LED besteht eigentlich aus mehreren LEDs mit einem gemeinsamen Kathodenanschluss. Durch eine Kombination der verschiedenen Farben mit unterschiedlichen  Helligkeiten, ist es möglich fast jede Farbe darzustellen. Die LED kann, wie im Bild gezeigt, mit Vorwiderständen an die PWM Ausgänge D3, D5, D6 des Controllers angeschlossen werden.&lt;/p&gt;</description></item><item><title>Tag 9: TCP Uhrzeit</title><link>https://neu-iot.fkainka.de/day-9/</link><pubDate>Wed, 09 Dec 2015 00:01:25 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-9/</guid><description>&lt;p&gt;Das Projekt des heutigen Tages benutzt die Funktionen des vorigen Tests, um selbständig Informationen aus einer Webseite zu beziehen. Konkret lädt das Programm die aktuelle Uhrzeit von einer speziell dafür konzipierten Seite und stellt damit die per Library realisierte interne Uhr des Controllers.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen befindet sich erneut ein Widerstand mit 1 kΩ. Für den morgigen Versuch werden alle drei Widerstände benötigt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Das Programm: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day9_TCPAutoTime.zip"&gt;Day9_TCPAutoTime&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Während das gestrige Programm noch größtenteils per Hand bedient werden musste, arbeitet das heutige Programm weitgehend autonom. Völlig selbständig verbindet sich der Controller mit der Webseite:&lt;/p&gt;</description></item><item><title>Tag 8: Ein Browser</title><link>https://neu-iot.fkainka.de/day-8/</link><pubDate>Tue, 08 Dec 2015 00:01:36 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-8/</guid><description>&lt;p&gt;In den vorangegangen Tagen haben wir uns vor allem mit dem UDP-Protokoll befasst, mit dem sich einfach und direkt Daten verschicken lassen. Die folgenden Tage werden wir uns mit dem TCP-Protokoll (Transmission Control Protocol) beschäftigen. TCP lässt immer nur eine Verbindung zwischen genau zwei Rechnern zu. Es kommt vor allem im Internet zum Einsatz wenn es ums Browsen auf Webseiten geht.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen findet sich erneut ein Widerstand 1 kΩ (Braun, Schwarz, Rot). Wie auch bei allen anderen Bauteilen gilt: gut aufbewahren, auch wenn das Bauteil am heutigen Tag noch nicht zum Einsatz kommen wird.&lt;/p&gt;</description></item><item><title>Tag 7 (special): Hinweis für Arduino Neulinge - Teil 2</title><link>https://neu-iot.fkainka.de/tag-7-special-hinweis-fuer-arduino-neulinge-teil-2/</link><pubDate>Mon, 07 Dec 2015 00:01:26 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-7-special-hinweis-fuer-arduino-neulinge-teil-2/</guid><description>&lt;p&gt;Der erste Teil Arduino Beginner Kurses war scheinbar für viele sehr hilfreich. Deswegen habe ich mich dazu entschlossen, auch den zweiten Teil des Handbuches zu überarbeiten und online zu stellen.&lt;/p&gt;
&lt;p&gt;In diesem zweiten Teil geht es nun darum, Programme selbst zu schreiben und dabei auch etwas von den Grundlagen in der Arbeit mit Mikrocontrollern zu lernen. Diese Anleitung habe ich bewusst erst heute veröffentlicht, da an dem heutigen Tag auch alle nötigen Bauteile aus dem Adventskalender vorhanden sind, um die kleinen Projekte selbst testen zu können.&lt;/p&gt;</description></item><item><title>Tag 7: Analoger Sensor</title><link>https://neu-iot.fkainka.de/day-7/</link><pubDate>Mon, 07 Dec 2015 00:01:23 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-7/</guid><description>&lt;p&gt;Im letzten Projekt wurde mit einem Taster die einfachste Form eines Sensors behandelt. Diesmal soll ein Poti als analoger Sensor zum Einsatz kommen um permanent Messwerte in das Netzwerk zu senden.&lt;/p&gt;
&lt;p&gt;Hinter dem 7. Türchen des Adventskalenders befindet sich ein Poti mit 10 kΩ. Der Aufbau wird auf dem untern Bild gezeigt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day7-1.jpg"&gt;&lt;img class="size-large wp-image-132" src="https://neu-iot.fkainka.de/images/2015/09/Day7-1.jpg" alt="Der Aufbau mit Potentiometer an A0" width="616" height="301" data-id="132" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau mit Potentiometer an A0&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Das Programm: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day7_UDPAnalog.zip"&gt;Day7_UDPAnalog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;! Achtung: Einige MAC-Nutzer berichten von einem Bug in dem PackerSender-Programm, welcher nicht erlaubt, die Ports umzustellen. Es gibt allerings auch die Möglichkeit die Ports in dem Arduino Programm zu verändern. Falls das Problem auftritt, müssen Sie für den heutigen Versuch die Zeile 100 von&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;succes &amp;amp;= sendCom(&amp;ldquo;AT+CIPSTART=&amp;quot;UDP&amp;quot;,&amp;quot;192.168.255.255&amp;quot;,90,91,2&amp;rdquo;, &amp;ldquo;OK&amp;rdquo;);&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;in&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;succes &amp;amp;= sendCom(&amp;ldquo;AT+CIPSTART=&amp;quot;UDP&amp;quot;,&amp;quot;192.168.255.255&amp;quot;,55005,55006,2&amp;rdquo;, &amp;ldquo;OK&amp;rdquo;);&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;umändern.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Tag 6: UDP Button</title><link>https://neu-iot.fkainka.de/day-6/</link><pubDate>Sun, 06 Dec 2015 00:01:27 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-6/</guid><description>&lt;p&gt;In dem gestrigen Programm wurden erste Kommandos vom Controller ausgewertet. Das heutige Programm behält diese Funktion, kann aber nun zusätzlich selbstständig ein Kommando in das Netzwerk senden.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen verbirgt sich ein Tastschalter. Er dient hier als einfacher Sensor. Verbinden Sie ihn mit dem Controller wie auf dem Aufbaubild gezeigt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day6-1.jpg"&gt;&lt;img class="size-large wp-image-127" src="https://neu-iot.fkainka.de/images/2015/09/Day6-1.jpg" alt="Der Schalter platzsparend an D8 angeschlossen" width="616" height="301" data-id="127" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Schalter platzsparend an D8 angeschlossen&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Das Programm: &lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day6_UDPSwitch.zip"&gt;Day6_UDPSwitch&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;! Achtung: Einige MAC-Nutzer berichten von einem Bug in dem PackerSender-Programm, welcher nicht erlaubt, die Ports umzustellen. Es gibt allerings auch die Möglichkeit die Ports in dem Arduino Programm zu verändern. Falls das Problem auftritt, müssen Sie für den heutigen Versuch die Zeile 83 von&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;succes &amp;amp;= sendCom(&amp;ldquo;AT+CIPSTART=&amp;quot;UDP&amp;quot;,&amp;quot;192.168.4.255&amp;quot;,90,91&amp;rdquo;, &amp;ldquo;OK&amp;rdquo;);&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;in&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;succes &amp;amp;= sendCom(&amp;ldquo;AT+CIPSTART=&amp;quot;UDP&amp;quot;,&amp;quot;192.168.4.255&amp;quot;,55005,55006&amp;rdquo;, &amp;ldquo;OK&amp;rdquo;);&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;em&gt;umändern.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Fritzing Bauteil - NanoESP &amp; Pretzel Board</title><link>https://neu-iot.fkainka.de/das-nanoesp-pretzelboard-fritzing-bauteil/</link><pubDate>Sat, 05 Dec 2015 14:35:14 +0100</pubDate><guid>https://neu-iot.fkainka.de/das-nanoesp-pretzelboard-fritzing-bauteil/</guid><description>&lt;p&gt;&lt;a href="http://fritzing.org/home/"&gt;Fritzing&lt;/a&gt; ist eine Software, mit der man leicht und unkompliziert Aufbaupläne vor allem für Steckboard-Projekte erstellen kann. Viele verschiedene Arduino Controller aber auch Raspberry Pi und andere Boards weden schon in der Software unterstütz und erleichern so den Nutzern, einen übersichtlichen Plan zu erstellen. Dadurch fällt es einem selbst und auch anderen Nutzern leicht, das Projekt nachzuvollziehen und nachzubauen.&lt;br&gt;
Für die Bilder des Adventskalender habe ich ebenfalls die Fritzing Software benutzt und mir dafür ein NanoESP-Bauteil erstellt. Für alle, die ebenfalls mit dem Bauteil Schaltungen mit Fritzing erstellen wollen gibt es hier das Bauteil zum Downloaden.&lt;/p&gt;</description></item><item><title>Tag 5: LED Schalten</title><link>https://neu-iot.fkainka.de/day-5/</link><pubDate>Sat, 05 Dec 2015 00:01:37 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-5/</guid><description>&lt;p&gt;In dem heutigen Programm geht es nun endlich darum, Hardware über das UDP-Protokoll zu steuern. In diesem Fall wird eine LED mit einfachen Befehlen ein- und ausgeschaltet.&lt;/p&gt;
&lt;p&gt;Hinter dem fünften Türchen befindet sich eine LED. Der passende Vorwiderstand befand sich schon im gestrigen Fach. Bauen Sie die Schaltung auf, wie es das Bild zeigt.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day5-1.jpg"&gt;&lt;img class="size-large wp-image-117" src="https://neu-iot.fkainka.de/images/2015/09/Day5-1.jpg" alt="So schließen Sie die LED mit Vorwiderstand am Pin D9 an" width="616" height="301" data-id="117" /&gt;&lt;/a&gt;&lt;figcaption&gt;So schließen Sie die LED mit Vorwiderstand am Pin D9 an&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Das Programm:****&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day5_UDPLED.zip"&gt;Day5_UDPLED&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Tag 4: UDP Bidirektional</title><link>https://neu-iot.fkainka.de/day-4/</link><pubDate>Fri, 04 Dec 2015 00:01:21 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-4/</guid><description>&lt;p&gt;In dem gestrigen Projekt wurde die UDP-Kommunikation in eine Richtung, also vom Board zum PC getestet. In diesem Programm wird das Modul so eingestellt, dass eine Kommunikation auch in die andere Richtung möglich ist, fast so wie in einem Chat.&lt;/p&gt;
&lt;p&gt;Hinter dem vierten Türchen des Adventskalenders befindet sich ein Widerstand mit 1 kΩ (Braun, Schwarz, Rot). Das Bauteil wird in dem heutigen Versuch noch nicht verwendet, sollte aber unbedingt für später aufbewahrt werden.&lt;/p&gt;</description></item><item><title>Tag 3: UDP-Send</title><link>https://neu-iot.fkainka.de/day-3/</link><pubDate>Thu, 03 Dec 2015 00:01:45 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-3/</guid><description>&lt;p&gt;In dem heutigen Projekt werden zum ersten Mal Daten zwischen Board und PC über das WLAN ausgetauscht. Voraussetzung dafür ist, dass Ihr Rechner über einen WLAN-Adapter verfügt. Es wird das sogenannte UDP (User Datagram Protocol) verwendet. Ein weiteres Programm auf der PC Seite sorgt für das erfolgreiche Empfangen der Nachrichten.&lt;/p&gt;
&lt;p&gt;Hinter dem dritten Türchen des Kalenders finden Sie ein isoliertes Kabel das für den Aufbau von Schaltungen unerlässlich ist. Als Vorbereitung für spätere Versuche können Sie die Versorgungsleitungen Masse und VCC auf die äußeren Bahnen legen.&lt;/p&gt;</description></item><item><title>Tag 2: Google Ping</title><link>https://neu-iot.fkainka.de/day-2/</link><pubDate>Wed, 02 Dec 2015 00:01:40 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-2/</guid><description>&lt;p&gt;Mit dem heutigen Projekt wird getestet, ob Sie den Google-Server erreichen können. Dies dient Ihnen als Test, ob eine prinzipielle Verbindung zum Internet vorhanden ist oder beispielsweise eine Firewall das NanoESP-Board blockiert.&lt;/p&gt;
&lt;p&gt;Hinter dem heutigen Türchen finden Sie ein Steckboard. Das Steckboard dient später als Experimentierplattform um Sensoren und anderer Elemente anschließen zu können. Am besten ist es, wenn Sie den Controller wie auf dem untern Bild gezeigt auf das Steckboard stecken. Dadurch bleibt der meiste Platz für Experimente während das WLAN-Modul hinten über das Steckboard hinausragt. Das Micro-USB Kabel hängt dann zwischen den Kontaktseiten und stört nur minimal.&lt;/p&gt;</description></item><item><title>Tag 1 - Hinweis für Arduino Neulinge</title><link>https://neu-iot.fkainka.de/tag-1-hinweis-fuer-arduino-neulinge/</link><pubDate>Tue, 01 Dec 2015 11:14:14 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-1-hinweis-fuer-arduino-neulinge/</guid><description>&lt;p&gt;Der erste Tag des Adventskalenders ist bereits rum und ich war überrascht und erfreut über all die Kommentare. Sehr gefreut hat mich vor allem die Bereitschaft der Community sich gegengeseitigt mit diesem zugegebenermaßen nicht völlig einfachen Thema zu helfen.&lt;/p&gt;
&lt;p&gt;Aus den Kommentaren konnte ich außerdem herauslesen, dass der Ein oder Andere noch nie mit Arduino oder Mikrocontrollern im Allgemeinen zu tun hatte. Deswegen habe ich unter dem unten stehen Link einen längeren Artikel veröffentlicht, der ein Auszug aus einem meiner ersten Schnelleinstieg Hefte darstellt. Ich hoffe, dass ich damit einigen Leuten den Einstieg in den Adventskalender erleichtern kann.&lt;/p&gt;</description></item><item><title>Tag 1: Die ersten Schritte</title><link>https://neu-iot.fkainka.de/day-1/</link><pubDate>Tue, 01 Dec 2015 00:01:38 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-1/</guid><description>&lt;p&gt;Es ist der erste Tag im Dezember und damit Zeit, das erste Türchen zu öffnen. Hinter dem Türchen befindet sich das wichtigste Bauteil dieses Kalender, nämlich das Arduino-kompatible NanoESP-Board mit integrierten WLAN-Modul, um das es in diesem Kalender geht.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day1-1.jpg"&gt;&lt;img class="wp-image-84 size-large" src="https://neu-iot.fkainka.de/images/2015/09/Day1-1.jpg" alt="Das NanoESP Board" width="616" height="240" data-id="84" /&gt;&lt;/a&gt;&lt;figcaption&gt;Das NanoESP Board&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;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. Dabei fungiert die Arduino-Seite eher als der Chef, der die Kommandos an das WLAN-Modul leitet. Einige dieser Kommandos werden schon heute am ersten Tag ausprobiert.&lt;/p&gt;</description></item><item><title>Day 0: Alternative zum ausverkauften Adventskalender (Spoiler Alert)</title><link>https://neu-iot.fkainka.de/day-0-alternative-zum-ausverkauften-adventskalender-spoiler-alert/</link><pubDate>Fri, 27 Nov 2015 15:18:35 +0100</pubDate><guid>https://neu-iot.fkainka.de/day-0-alternative-zum-ausverkauften-adventskalender-spoiler-alert/</guid><description>&lt;p&gt;Der Internet of Things Adventskalender ist nun weitestgehendst ausverkauft. Nur in vereinzelten Conrad Filialen sind noch Exemplare zu erhalten. Viele Leute haben mich allerdings gefragt, ob ich eine Bauteileliste veröffentlichen kann, damit man sich einen Kalender selbst zusammenstellen kann.&lt;/p&gt;
&lt;p&gt;Es ist natürlich nicht möglich, die exakt gleichen Bauteile bei jedem Händler zu bekommen, dafür ist die Menge an Herstellern einfach zu groß. Dennoch habe ich mich bemüht, eine Einkaufsliste zusammenzustellen und dabei darauf geachtet, dass möglichst kompatible Elemente verwendet werden (also identisches Pin-Layout, Kenndaten etc.). Es kann dennoch sein, dass bei dem ein oder anderen Versuchen eine Variation der Schaltung verwendet werden muss.&lt;/p&gt;</description></item><item><title>Tag 0: Alle Projekte für Ungeduldige (Spoiler Alert)</title><link>https://neu-iot.fkainka.de/tag-0-alle-projekte-fuer-ungeduldige-spoiler-alert/</link><pubDate>Tue, 10 Nov 2015 18:33:13 +0100</pubDate><guid>https://neu-iot.fkainka.de/tag-0-alle-projekte-fuer-ungeduldige-spoiler-alert/</guid><description>&lt;p&gt;Das Interesse am IoT-Adventskalender scheint recht groß zu sein. Daher kam öfter die Frage auf, wann die Programme veröffentlicht werden.&lt;/p&gt;
&lt;p&gt;Mein eigentlicher Plan war, dass die Programme jeden Dezembertag zusammen mit dem passenden Artikel veröffentlicht werden. Dies wird auch weiter der Fall sein, aber für alle diejenigen, die das Warten nicht mehr ertragen, gibt es hier alle Programme in einem Ordner zum Download:&lt;/p&gt;
&lt;h3 id="downloadcalenderiot"&gt;Download: &lt;a href="https://neu-iot.fkainka.de/images/2015/11/CalenderIoT.zip"&gt;CalenderIoT&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="achtung"&gt;Achtung:&lt;/h4&gt;
&lt;p&gt;Es gab eine Änderung im Programm vom Tag 10. Der Webservice, den ich in diesem Programm verwendet habe, hat vor wenigen Tagen seinen Dienst eingestellt. Ich habe nun einen eigenen Service gestartet, der seine Daten von der Webseite &lt;a href="http://www.openweathermap.com/"&gt;http://www.openweathermap.com/&lt;/a&gt; bezieht. Der Link zu dem neuen und auch in der neuen Versio des Programms verwendeten Dienst lautet:&lt;/p&gt;</description></item><item><title>Beispielprojekt - NanoESP &amp; Pretzelboard</title><link>https://neu-iot.fkainka.de/beispielprojekt/</link><pubDate>Thu, 24 Sep 2015 10:25:30 +0200</pubDate><guid>https://neu-iot.fkainka.de/beispielprojekt/</guid><description>&lt;p&gt;In dem hier vorgestellten Beispielprojekt soll eine einfache Ansteuerung einer bunten RGB-LED realisiert werden. Die Steuerung soll über eine Webseite oder auch über eine Smartphone-App möglich sein. Die Verbindung kann sowohl über einen Router, und damit auch aus der Ferne über das Internet, als auch über den AccesPoint des Moduls hergestellt werden. Es ändert sich jeweils nur die zu adressierende IP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Webserver_RGB_Example.zip"&gt;Sie können das vorgestellte Programm hier herunterladen&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/Day23-1.jpg"&gt;&lt;img class="size-large wp-image-255" src="https://neu-iot.fkainka.de/images/2015/09/Day23-1.jpg" alt="Die RGB-Led auf dem Steckboard an den Pins D3, D5 und D6" width="616" height="363" /&gt;&lt;/a&gt;&lt;figcaption&gt;Der Aufbau der Schaltung auf einem Steckboard&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Die Programmierung erfolgt über die Arduino-Oberfläche, die sich jeder kostenlos auf der Seite &lt;a href="http://www.arduino.cc"&gt;www.arduino.cc&lt;/a&gt; herunterladen kann. Als Board kann einfach das Arduino Nano Board ausgewählt werden (ATmega328p Version). Bevor das Programm hochgeladen wird, müssen die WLAN Daten am Anfang des Programes eingetragen werden.&lt;/p&gt;</description></item><item><title>Diskusionen und Hilfe</title><link>https://neu-iot.fkainka.de/test/</link><pubDate>Wed, 23 Sep 2015 12:29:36 +0200</pubDate><guid>https://neu-iot.fkainka.de/test/</guid><description>&lt;p&gt;Auf dieser Seite können Sie Probleme diskutieren und Hilfe ersuchen rund um das Lernpaket IoT finden.&lt;/p&gt;
&lt;h4 id="achtung"&gt;Achtung:&lt;/h4&gt;
&lt;p&gt;Es gab eine Änderung im Programm P12_TCPWeather. Der Webservice, den ich in diesem Programm verwendet habe, hat seinen Dienst eingestellt. Ich habe nun einen eigenen Service gestartet, der seine Daten von der Webseite &lt;a href="http://www.openweathermap.com/"&gt;http://www.openweathermap.com/&lt;/a&gt; bezieht. Der Link zu dem neuen und auch in der neuen Version des Programms verwendeten Dienst lautet:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.temp.fkainka.de/"&gt;www.temp.fkainka.de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Durch anpassen der URL kann die Temperatur einer Stadt abgefragt werden. Als Beispiel für Essen:&lt;/p&gt;</description></item><item><title>Technische Daten NanoESP &amp; Pretzel Board</title><link>https://neu-iot.fkainka.de/technische-daten/</link><pubDate>Wed, 23 Sep 2015 08:05:57 +0200</pubDate><guid>https://neu-iot.fkainka.de/technische-daten/</guid><description>&lt;p&gt;Auf dieser Seite finden Sie einige Technische Daten rund um das Modul&lt;/p&gt;
&lt;h2 id="technische-daten"&gt;Technische Daten:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mikrocontroller:                                   ATmega328&lt;/li&gt;
&lt;li&gt;Flash Speicher:                                  32 KB (davon 0,5 KB für den Bootloader)&lt;/li&gt;
&lt;li&gt;SRAM:                                              2 KB&lt;/li&gt;
&lt;li&gt;EEPROM:                                         1 KB&lt;/li&gt;
&lt;li&gt;Taktrate:                                            16 MHz&lt;/li&gt;
&lt;li&gt;I/O-Pins:                                            20 (Davon 2 für die Kommunikation mit dem WLAN-Modul
&lt;ul&gt;
&lt;li&gt;davon PWM:                                  6&lt;/li&gt;
&lt;li&gt;davon analoge Eingänge:                6&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;USB-to-Serial Chip:                            CH340G&lt;/li&gt;
&lt;li&gt;Betriebsspannung:                             5 V&lt;/li&gt;
&lt;li&gt;Empfohlene Eingangsspannung:         7-12 V&lt;/li&gt;
&lt;li&gt;Maximaler Strom pro I/O-Pin:             40 mA&lt;/li&gt;
&lt;li&gt;Belastbarkeit des 3.3-V-Ausgangs:     50 mA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;WLAN-Modul:                                      ESP8266&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Schnellstart Anleitung - NanoESP &amp; Pretzelboard</title><link>https://neu-iot.fkainka.de/schnellstart-anleitung/</link><pubDate>Tue, 22 Sep 2015 08:05:40 +0200</pubDate><guid>https://neu-iot.fkainka.de/schnellstart-anleitung/</guid><description>&lt;p&gt;Wenn Sie das erste Mal das Board über den MicroUSB-Anschluss verbinden, wird Ihr PC versuchen, einen Treiber zu installieren. Gelingt dies nicht automatisch, laden Sie &lt;a href="https://neu-iot.fkainka.de/treiber"&gt;den Treiber hier herunter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Die einfachste Art, das Entwicklungsboard zu programmieren, ist über die &lt;strong&gt;Arduino™ IDE&lt;/strong&gt;. Laden Sie diese über die Webseite &lt;a href="https://www.arduino.cc/en/Main/Software"&gt;www.Arduino.cc&lt;/a&gt; herunter. Wenn Sie die Software starten, müssen Sie zunächst den richtigen Port und als Board den &lt;strong&gt;Arduino™ Nano (Prozessor ATmega328)&lt;/strong&gt; auswählen.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://neu-iot.fkainka.de/images/2015/09/K0-1.jpeg"&gt;&lt;img class="size-full wp-image-350" src="https://neu-iot.fkainka.de/images/2015/09/K0-1.jpeg" alt="Die Einstellungen der IDE (unten rechts) und des Seriellen Monitors" width="564" height="603" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die Einstellungen der IDE (unten rechts) und des Seriellen Monitors&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Um das WLAN-Modul zu testen, können Sie den seriellen Monitor öffnen und als&lt;strong&gt;Baudrate 19200&lt;/strong&gt; angeben. Wenn Sie noch kein anderes Programm in den Controller geladen haben, sollten nun einige Meldungen im Monitor erscheinen. Außerdem können Sie ein offenes &lt;strong&gt;WLAN mit der Bezeichnung NanoESP&lt;/strong&gt; finden. Um das Modul selbst steuern zu können, verwenden Sie die &lt;strong&gt;Software Serial-Library über die Pins 11 und 12&lt;/strong&gt; mit einer &lt;strong&gt;Baudrate von 19200&lt;/strong&gt; oder laden Sie einfach das hier verlinkte Programm herunter und übertragen es mit der Arduino-Software auf das Board:&lt;/p&gt;</description></item><item><title>Diskusionen und Hilfe -NanoESP &amp; Pretzelboard</title><link>https://neu-iot.fkainka.de/diskusion-und-hilfe/</link><pubDate>Mon, 21 Sep 2015 10:50:33 +0200</pubDate><guid>https://neu-iot.fkainka.de/diskusion-und-hilfe/</guid><description>&lt;p&gt;Auf dieser Seite können Sie über die Kommentarfunktion Hilfe ersuchen, Fragen stellen und Vorschläge rund um das Board machen.&lt;/p&gt;</description></item><item><title>AT Befehlsliste - NanoESP &amp; Pretzelboard</title><link>https://neu-iot.fkainka.de/at-befehlsliste/</link><pubDate>Sun, 20 Sep 2015 10:11:14 +0200</pubDate><guid>https://neu-iot.fkainka.de/at-befehlsliste/</guid><description>&lt;p&gt;Die folgende kurze Liste enthält die wichtigsten Kommandos für die Nutzung des Boards.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Befehl&lt;/td&gt;
&lt;td&gt;AT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset&lt;/td&gt;
&lt;td&gt;AT+RST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firmware Infos&lt;/td&gt;
&lt;td&gt;AT+GMR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Echo An/Aus&lt;/td&gt;
&lt;td&gt;ATE&amp;lt;1/0&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WLAN Befehle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-Modus (1 = Client, 2 = AP, 3 = Dual)&lt;/td&gt;
&lt;td&gt;AT+CWMODE=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-Netzwerke suchen&lt;/td&gt;
&lt;td&gt;AT+CWLAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN verbinden&lt;/td&gt;
&lt;td&gt;AT+CWJAP=“&lt;ssid&gt;“,“&lt;pass&gt;“&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN trennen&lt;/td&gt;
&lt;td&gt;AT+CWQAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-AccesPoint Einstellungen&lt;/td&gt;
&lt;td&gt;AT+CWSAP=“&lt;ssid&gt;“,“&lt;pass&gt;“[,&lt;chan&gt;,&lt;enc&gt;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP-Adresse ausgeben&lt;/td&gt;
&lt;td&gt;AT+CIFSR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DHCP aktivieren/deaktivieren&lt;/td&gt;
&lt;td&gt;AT+CWDHCP=&amp;lt;1/0&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automatisch mit WLAN verbinden&lt;/td&gt;
&lt;td&gt;AT+CWAUTOCONN=&amp;lt;1/0&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MAC-Adresse der Station ändern&lt;/td&gt;
&lt;td&gt;AT+CIPSTAMAC=&lt;MAC&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP-Adresse einstellen (Station)&lt;/td&gt;
&lt;td&gt;AT+CIPSTA=&lt;IP&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP-Adresse einstellen (AccesPoint)&lt;/td&gt;
&lt;td&gt;AT+CIPAP=&lt;IP&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starte SmartConfig&lt;/td&gt;
&lt;td&gt;AT+CWSTARTSMART=&lt;typ&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stoppe SmartConfig&lt;/td&gt;
&lt;td&gt;AT+CWSTOPSMART&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kommunikation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion Ping&lt;/td&gt;
&lt;td&gt;AT+PING=&lt;HOST&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mehrere Verbindungen zulassen&lt;/td&gt;
&lt;td&gt;AT+CIPMUX=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Datenmodus (0=Transparent, 1=Datenmodus)&lt;/td&gt;
&lt;td&gt;AT+CIPMODE=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Struktur empfangener Daten&lt;/td&gt;
&lt;td&gt;+IPD,&lt;id&gt;,&lt;len&gt;:&lt;data&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbindung aufbauen&lt;/td&gt;
&lt;td&gt;AT+CIPSTART=“&lt;type&gt;“,“&lt;address&gt;“,&lt;port&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daten senden&lt;/td&gt;
&lt;td&gt;AT+CIPSEND=&lt;id&gt;,&lt;len&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbdingung trennen&lt;/td&gt;
&lt;td&gt;AT+CIPCLOSE=&lt;id&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Server Befehle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server starten&lt;/td&gt;
&lt;td&gt;AT+CIPSERVER=1,&lt;port&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server beenden&lt;/td&gt;
&lt;td&gt;AT+CIPSERVER=0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Status &amp;amp; verbundene Clients&lt;/td&gt;
&lt;td&gt;AT+CIPSTATUS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Timeout festlegen&lt;/td&gt;
&lt;td&gt;AT+CIPSTO=&lt;timeout&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbundene Clients anzeigen&lt;/td&gt;
&lt;td&gt;AT+CWLIF&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item></channel></rss>