{"id":526,"date":"2017-08-11T18:01:49","date_gmt":"2017-08-11T16:01:49","guid":{"rendered":"https:\/\/www.anginf.de\/?p=526"},"modified":"2018-06-20T15:57:03","modified_gmt":"2018-06-20T13:57:03","slug":"batteriegestuetzte-internet-of-things-device-esp8266-wemos-d1-mini-temperatursensor-mit-wlan-und-mqtt","status":"publish","type":"post","link":"https:\/\/www.anginf.de\/?p=526","title":{"rendered":"Batteriegest\u00fctztes Internet-of-Things-Device: ESP8266 Wemos D1-mini Temperatursensor mit WLAN und MQTT"},"content":{"rendered":"<p>Ich habe f\u00fcr das <a href=\"https:\/\/events.ccc.de\/2017\/06\/26\/chaos-bbq-geekend-2017\/\">ChaosBBQ<\/a> einen kleinen Workshop vorbereitet, bei dem man sich ein kleines IoT-Device selbst zusammenl\u00f6ten kann. Die Idee war, dass es m\u00f6glichst lange mit einfachen Batterien l\u00e4uft. Daher habe ich ein paar Aspekte darin verarbeitet, die im Umgang mit Internet-of-Things (&#8222;Internet der Dinge&#8220;) h\u00e4ufig verwendet werden:<\/p>\n<ul>\n<li>Wemos D1.mini, ein Breakout-Board mit dem ESP8266-Chip<\/li>\n<li>Programmierung mit der <a href=\"https:\/\/www.arduino.cc\/\">Arduino IDE<\/a><\/li>\n<li>Kommunikation mit WLAN<\/li>\n<li>Protokoll MQTT zur Kommunikation mit einem MQTT-Broker, um die gemessenen Temperatur-Werte zu \u00fcbermitteln<\/li>\n<\/ul>\n<p>Hier der kurze \u00dcberblick \u00fcber die ben\u00f6tigten Utensilien:<br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174342.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-527 size-large\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174342-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174342-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174342-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174342-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<ul>\n<li>Wemos D1.mini<\/li>\n<li>Stiftleisten (sind meistens mitgliefert<\/li>\n<li>4.7 kOhm Widerstand<\/li>\n<li>Temperatursensor DS18B20<\/li>\n<li>Batteriebox (alternativ auch eine 3er-Box aus Conrad\/V\u00f6lkner\/Reichelt\/&#8230;.<\/li>\n<li>Nicht abgebildet: L\u00f6tkolben, L\u00f6tzinn, etwas kleine Kabel<\/li>\n<\/ul>\n<p>Hier der Wemos D1.mini im Detail:<br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-528 size-large\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551-e1502393215592-1024x920.jpg\" alt=\"\" width=\"604\" height=\"543\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551-e1502393215592-1024x920.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551-e1502393215592-300x269.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551-e1502393215592-768x690.jpg 768w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174551-e1502393215592.jpg 1874w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Als Trick zum einfach festl\u00f6ten der Stiftleisten steckt man am besten die reinen Leisten mit den reinen Stiften umgedreht in ein Breadboard:<br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174830.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-531 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174830-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174830-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174830-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174830-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174820.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-531 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174820-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" \/><\/a><\/p>\n<p>Hier noch Kabel, Temperatursensor und der Widerstand:<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174910.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-533 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174910-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174910-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174910-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_174910-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Okay ein wenig Standard-L\u00f6tzinn braucht man zum L\u00f6ten doch noch:<br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175014.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-534 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175014-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175014-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175014-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175014-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Die Stiftleisten auf den Wemos D1.mini anl\u00f6ten:<br \/>\n<a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-535 size-large aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222-e1502393243243-876x1024.jpg\" alt=\"\" width=\"604\" height=\"706\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222-e1502393243243-876x1024.jpg 876w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222-e1502393243243-257x300.jpg 257w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222-e1502393243243-768x898.jpg 768w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175222-e1502393243243.jpg 1491w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Die zweite Seite ist eigentlich optional, da nur eine Seite f\u00fcr den Sensor verwendet wird. Aber da wir schon mal dabei sind&#8230;<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175600.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-536 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_175600-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" \/><\/a><\/p>\n<p>Von der Batteriebox aus muss noch die Stromversorgung angel\u00f6tet werden. Dazu den nun mit den Stiftbuchsen best\u00fcckten Wemos D1.mini im Breadboard belassen und bei &#8222;3V3&#8220; den Pluspol und bei &#8222;G&#8220; den Minuspol anl\u00f6ten.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180306.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-538 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180306-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180306-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180306-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180306-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Sofern nicht-aufladbare Batterien verwendet werden (wie in diesem Beispiel), so sollte man die Gesamtspannung bei 3 Volt belassen. Daher den dritten Batteriehalter mit einem St\u00fcck Draht \u00fcberbr\u00fccken (hier in wei\u00df). Verwendet man stattdessen Akkus, so liefern diese jeweils nur 1.2 Volt je Zelle und daher werden insgesamt 3.6 Volt ben\u00f6tigt. Mit 2.4 Volt wollte der ESP8266 partout nicht starten&#8230;<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180505.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-540 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180505-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180505-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180505-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180505-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Damit der ESP8266 aus dem DeepSleep, in den wir ihn sp\u00e4ter schicken wollen, sich auch selbst wieder aufwecken kann, ben\u00f6tigt dieser noch eine Drahtbr\u00fccke zwischen D0 und RST (hier in blau). WICHTIG: Zur Programmierung muss diese Drahtbr\u00fccke wieder entfernt werden, daher diese daf\u00fcr entfernen und &#8211; ganz wichtig &#8211; die Verbindung NICHT L\u00d6TEN.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180608.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-543 size-large\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180608-e1502393949996-964x1024.jpg\" alt=\"\" width=\"604\" height=\"642\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180608-e1502393949996-964x1024.jpg 964w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180608-e1502393949996-282x300.jpg 282w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180608-e1502393949996-768x816.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Fehlt noch der Temperatursensor selbst und ein Widerstand. Der Temperatursensor sollte mit der flachen Seite zum Chip liegen. Dann geh\u00f6rt das linke Bein in D5, die Mitte in D6 und das rechte Bein in D7. Nachdem man den Sensor eingesteckt hat, wird noch ein Widerstand zwischen 3V3 und dem <em>mittleren<\/em> Bein, also D6 ben\u00f6tigt. Dieser fungiert als &#8222;Pull-Up&#8220; und stellt damit die Protokollf\u00e4higkeit sicher. Sollte der Sensor \u00f6fter sehr merkw\u00fcrdige Werte (z.B. -127 \u00b0C) liefern, ist wahrscheinlich der Widerstand etwas herausgerutscht.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180739.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-545 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180739-1024x768.jpg\" alt=\"\" width=\"604\" height=\"453\" srcset=\"https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180739-1024x768.jpg 1024w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180739-300x225.jpg 300w, https:\/\/www.anginf.de\/wp-content\/uploads\/20170810_180739-768x576.jpg 768w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<p>Damit der Sensor seine Daten auch verschickt, brauchen wir noch ein Programm, welches wir mit der Arduino IDE auf den ESP8266 aufspielen. Hierzu beachten, dass unter &#8222;Boards&#8220; auch der Wemos D1.mini ausgew\u00e4hlt ist.<\/p>\n<p>Voraussetzungen f\u00fcr die Arduino Umgebung:<\/p>\n<p>Neueste Arduino Umgebung herunterladen und installieren (Stand Dezember 2017 ist das 1.8.5)<\/p>\n<p>In den Voreinstellungen diese Boardverwalter-URL einf\u00fcgen. Falls schon eine dort steht, kann man mit dem Knopf rechts daneben noch mehr hinzuf\u00fcgen.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/Voreinstellungen.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-545 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/Voreinstellungen.png\" alt=\"\" width=\"604\" height=\"457\" class=\"alignleft size-large wp-image-588\" \/><\/a><\/p>\n<p>Unter Werkzeuge -> Board -> Boardverwalter (erster Eintrag) sollte man dann nach &#8222;esp&#8220; suchen und den Eintrag ESP8266 installieren.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/Boardverwalter-ESP8266.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-545 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/Boardverwalter-ESP8266.png\" alt=\"\" width=\"801\" height=\"455\" class=\"alignleft size-full wp-image-587\" \/><\/a><\/p>\n<p>Die OneWire-Bibliothek, die wir im Programm verwenden, muss unter Sketch -> Bibliothek einbinden -> Bibliotheken verwalten hinzugef\u00fcgt werden.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/OneWireLibrary.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-545 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/OneWireLibrary.png\" alt=\"\" width=\"801\" height=\"451\" class=\"alignleft size-full wp-image-592\" \/><\/a><\/p>\n<p>Dasselbe muss auch f\u00fcr die DallasTemperature-Library geschehen.<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/DallasTemperature.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-545 aligncenter\" src=\"https:\/\/www.anginf.de\/wp-content\/uploads\/DallasTemperature.png\" alt=\"\" width=\"801\" height=\"457\" class=\"alignleft size-full wp-image-593\" \/><\/a><\/p>\n<p>Die verwendete AsyncMQTTClient-Bibliothek gibt es leider nicht fertig in Arduino hinterlegt, hier muss die Bibliothek als ZIP-Datei hinzugef\u00fcgt werden. Sketch -> Bibliothek einbinden -> .ZIP-Bibliothek einbinden.<\/p>\n<p>Diese URL hinzuf\u00fcgen (oder alternativ jede neueres Release vom async-mqtt-client, welches auf github von marvinroger liegt).<\/p>\n<p><a href=\"https:\/\/github.com\/marvinroger\/async-mqtt-client\/archive\/v0.8.1.zip\">https:\/\/github.com\/marvinroger\/async-mqtt-client\/archive\/v0.8.1.zip<\/a><\/p>\n<p>Dasselbe mit der Library ESPAsyncTCP, auf welche die async-mqtt-client basiert:<\/p>\n<p><a href=\"https:\/\/github.com\/me-no-dev\/ESPAsyncTCP\/archive\/master.zip\">https:\/\/github.com\/me-no-dev\/ESPAsyncTCP\/archive\/master.zip<\/a><\/p>\n<p>Im nachfolgenden Programm m\u00fcssen noch die WLAN-SSID, das WLAN-Passwort, die IP des MQTT-Servers und der Topic-&#8222;Pfad&#8220; und ggf. der Topic-&#8222;Name&#8220; ge\u00e4ndert werden.<\/p>\n<pre lang=\"c\">\r\n\/\/ Wemos D1 board, connected to a battery box and a DS18B20 temperature sensor\r\n\/\/\r\n\r\n\/\/ For temperature reading\r\n\/\/ Libraries needed:\r\n\/\/ * OneWire\r\n\/\/ * DallasTemperature\r\n\/\/\r\n\/\/ Pinout: https:\/\/wiki.wemos.cc\/products:d1:d1_mini\r\n\/\/ D0 = GPIO16 --> Connect D0 to RST for Deep Sleep-Wakeup\r\n\r\n#include <OneWire.h> \r\n#include <DallasTemperature.h>\r\n\r\nconst char* ssid = \"ENTER_YOUR_SSID_HERE\";\r\nconst char* password = \"ENTER_YOUR_WLAN_PASS_HERE\";\r\n\r\n#define DEVICENAME \"maintopic\/devicename\"\r\n#define TOPIC DEVICENAME\"\/temperature\"\r\n#define ONLINETOPIC DEVICENAME\"\/online\"\r\n#define MQTTSERVER IPAddress(37, 187, 106, 16) \/\/ test.mosquitto.org = 37.187.106.16\r\nconst int sleepTimeS = 300; \/\/ Reduce this value for debugging. Increase if you want more battery life\r\n\r\n#define VCCPIN D7\r\n#define ONE_WIRE_BUS D6\r\n#define GNDPIN D5\r\n\r\nOneWire oneWire(ONE_WIRE_BUS); \r\nDallasTemperature sensors(&oneWire);\r\n\r\nfloat tempC;\r\n\r\n\/\/ For WLAN & MQTT\r\n#include <ESP8266WiFi.h>\r\n#include <AsyncMqttClient.h>\r\nAsyncMqttClient mqttClient;\r\nuint16_t packetId1Pub;\r\nbool packet1Ack = false;\r\n\r\nbool ready = false;\r\n\r\nchar *ftoa( double f, char *a, int precision)\r\n{\r\n long p[] = {0,10,100,1000,10000,100000,1000000,10000000,100000000};\r\n \r\n char *ret = a;\r\n long heiltal = (long)f;\r\n itoa(heiltal, a, 10);\r\n while (*a != '\\0') a++;\r\n *a++ = '.';\r\n long desimal = abs((long)((f - heiltal) * p[precision]));\r\n itoa(desimal, a, 10);\r\n return ret;\r\n}\r\n\r\nvoid onMqttPublish(uint16_t packetId) {\r\n  Serial.println(\"** Publish acknowledged **\");\r\n  Serial.print(\"  packetId: \");\r\n  Serial.println(packetId);\r\n  if (packetId == packetId1Pub) {\r\n    packet1Ack = true;\r\n  }\r\n  if (packet1Ack) {\r\n    ready = true;\r\n  }\r\n}\r\n\r\nvoid onMqttConnect(bool sessionPresent) {\r\n  char buf[7];\r\n  packetId1Pub = mqttClient.publish(TOPIC, 1, true, ftoa(tempC, buf, 2));\r\n}\r\n\r\nvoid setup() {\r\n  pinMode(GNDPIN, OUTPUT);\r\n  pinMode(VCCPIN, OUTPUT);\r\n  digitalWrite(GNDPIN, LOW);\r\n  digitalWrite(VCCPIN, HIGH);\r\n  Serial.begin(115200); \r\n  Serial.println(\"ESP-Temperature-Reader-and-MQTT-Poster-via-WiFi\"); \r\n  \/\/ Start up the sensors library \r\n  sensors.begin(); \r\n}\r\n\r\nvoid loop() {\r\n  \/\/ Send the command to get temperature readings \r\n  Serial.println(\"Requesting Temperature\"); \r\n  sensors.requestTemperatures();\r\n\r\n  \/\/ You can have more than one DS18B20 on the same bus.  \r\n  \/\/ 0 refers to the first IC on the wire \r\n  Serial.println(\"Requesting Temperature from Device 0\"); \r\n  tempC = sensors.getTempCByIndex(0);\r\n\r\n  Serial.println(\"Connecting to WIFI\"); \r\n  \/\/ Connect to WiFi\r\n  WiFi.begin(ssid, password);\r\n  int timeout = 0;\r\n  while (WiFi.status() != WL_CONNECTED) {\r\n    timeout++;\r\n    if (timeout>20) {\r\n        \/\/ WIFI isn't available after 10 seconds -> abort mission, mission's a failure\r\n        initiateDeepSleep();\r\n      }\r\n    delay(500);\r\n    Serial.print(\".\");\r\n  }\r\n  Serial.println(\"\");\r\n  Serial.println(\"WiFi connected\");\r\n\r\n  \/\/ Print the IP address\r\n  Serial.println(WiFi.localIP());\r\n\r\n  \/\/ Publish result to MQTT\r\n  mqttClient.onConnect(onMqttConnect);\r\n  mqttClient.onPublish(onMqttPublish);\r\n  mqttClient.setServer(MQTTSERVER, 1883);\r\n  mqttClient.setKeepAlive(5).setCleanSession(false).setWill(ONLINETOPIC, 2, true, \"no\"); \/\/ .setCredentials(\"user\", \"pass\").setClientId(DEVICENAME);\r\n  Serial.println(\"Connecting to MQTT...\");\r\n  mqttClient.connect();\r\n\r\n  timeout = 0;\r\n  while (!ready) {\r\n    delay(250);\r\n    timeout++;\r\n    if (timeout > 40)\r\n    {\r\n        \/\/ MQTT isn't available after 10 seconds -> abort mission, mission's a failure\r\n        initiateDeepSleep();\r\n    }\r\n    Serial.print(\".\");\r\n  }\r\n  Serial.println(\"\");\r\n  initiateDeepSleep();\r\n}\r\n\r\nvoid initiateDeepSleep()\r\n{\r\n  ESP.deepSleep(sleepTimeS * 1000000);\r\n  delay(100); \r\n}\r\n\r\n<\/pre>\n<p>Die Gesamtpr\u00e4sentation mit allen Informationen von dieser Webseite k\u00f6nnt ihr hier auch noch herunterladen:<\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/IoT-Temperatursensor-20170812_1800.odp\">IoT Temperatursensor Pr\u00e4sentation ODP<\/a><\/p>\n<p><a href=\"https:\/\/www.anginf.de\/wp-content\/uploads\/IoT-Temperatursensor-20170812_1800.pdf\">IoT Temperatursensor Pr\u00e4sentation PDF<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe f\u00fcr das ChaosBBQ einen kleinen Workshop vorbereitet, bei dem man sich ein kleines IoT-Device selbst zusammenl\u00f6ten kann. Die Idee war, dass es m\u00f6glichst lange mit einfachen Batterien l\u00e4uft. Daher habe ich ein paar Aspekte darin verarbeitet, die im Umgang mit Internet-of-Things (&#8222;Internet der Dinge&#8220;) h\u00e4ufig verwendet werden: Wemos D1.mini, ein Breakout-Board mit dem &hellip; <a href=\"https:\/\/www.anginf.de\/?p=526\" class=\"more-link\"><span class=\"screen-reader-text\">Batteriegest\u00fctztes Internet-of-Things-Device: ESP8266 Wemos D1-mini Temperatursensor mit WLAN und MQTT<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-526","post","type-post","status-publish","format-standard","hentry","category-esp8266"],"_links":{"self":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=526"}],"version-history":[{"count":24,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":624,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/526\/revisions\/624"}],"wp:attachment":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}