{"id":285,"date":"2022-09-01T17:35:22","date_gmt":"2022-09-01T15:35:22","guid":{"rendered":"https:\/\/dj1jay.de\/?p=285"},"modified":"2022-09-01T17:40:42","modified_gmt":"2022-09-01T15:40:42","slug":"ferntemperatursensor-mit-permanenter-anzeige-in-ihrem-haus","status":"publish","type":"post","link":"https:\/\/dj1jay.de\/?p=285","title":{"rendered":"Ferntemperatursensor mit permanenter Anzeige in Ihrem Haus"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"> Mit Wemo D1 ESP8266<\/h1>\n\n\n\n<p>Die meisten von uns verwenden eine Telefon-App, um die Au\u00dfentemperatur zu sehen &#8211; was in Ordnung ist, wenn es Ihnen nichts ausmacht, einen Messwert von einem Sensor zu erhalten, der sich irgendwo in der N\u00e4he einer meteorologischen Station befindet.<\/p>\n\n\n\n<p>Und wenn wir schlie\u00dflich&nbsp;<em>unsere<\/em>&nbsp;eigenen IoT-Sensoren einrichten, m\u00fcssen wir eine App \u00f6ffnen oder uns auf einer Webseite anmelden, um sie zu sehen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"nodeviceneeded\">Kein Ger\u00e4t erforderlich<\/h3>\n\n\n\n<p>Aber was, wenn Sie die Temperatur au\u00dferhalb Ihres eigenen Hauses wissen m\u00f6chten, ohne ein Ger\u00e4t zu \u00f6ffnen?&nbsp;Sie m\u00f6chten, dass Ihre Au\u00dfentemperatur dauerhaft in Ihrem Haus angezeigt&nbsp;<em>wird<\/em>&nbsp;, damit Sie sie sehen k\u00f6nnen, wann immer Sie wollen und wo immer Sie sie sehen wollen.&nbsp;(Auch in mehreren R\u00e4umen&#8230;)<\/p>\n\n\n\n<p>Dieser Beitrag erkl\u00e4rt, wie es geht.&nbsp;Ein Au\u00dfentemperatursensor sendet seinen Messwert an einen Bildschirm im Haus.&nbsp;Es ist alles mit preiswerten Komponenten und ein paar Dr\u00e4hten und Anschl\u00fcssen erledigt.&nbsp;Wenn Sie bereits einen Raspberry Pi haben, sind Sie schon fast am Ziel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"components\">Komponenten<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/amzn.to\/3wLLe64\" target=\"_blank\">3 Wemos D1 Minis &#8211; jeweils etwa 5\u20ac<\/a>.<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/amzn.to\/3q26elr\" target=\"_blank\">Ein SSD1306 0,96-Zoll-Bildschirm \u2013 etwa 5\u20ac<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/amzn.to\/3R4iD4a\" target=\"_blank\">DS18B20 wasserdichter Temperatursensor &#8211; 2 \u20ac.<\/a><\/li><li>4,7k Widerstand<\/li><li>Raspberry Pi mit Node Red und MQTT (Jedes RasPi-Modell ist geeignet, aber wenn Sie ein vollst\u00e4ndiges Heimautomatisierungssystem betreiben, ist ein Pi 3+ oder 4 besser).<\/li><li>Stromversorgung f\u00fcr beide Wemos-Chips.&nbsp;(<a rel=\"noreferrer noopener\" href=\"https:\/\/amzn.to\/3AHeiwJ\" target=\"_blank\">Ich verwende eine 18650-Batterie<\/a> und ein <a rel=\"noreferrer noopener\" href=\"https:\/\/amzn.to\/3q285qp\" target=\"_blank\">Solarpanel<\/a> f\u00fcr den Au\u00dfensensor). <\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"theprinciple\">Das Prinzip<\/h3>\n\n\n\n<p>Jede halbe Stunde (oder ein anderer benutzerdefinierter Zeitraum) erwacht der externe Wemos D1 aus dem Tiefschlaf, liest die Temperatur vom DS18B20 und \u00fcbertr\u00e4gt dann die Daten per MQTT-Protokoll an den MQTT Server (Raspberry&nbsp;<em>Pi)<\/em>&nbsp;.<\/p>\n\n\n\n<p>Der MQTT-Server empf\u00e4ngt die Daten und sendet sie dann an die MQTT-&nbsp;abonnierten&nbsp;Ger\u00e4te \u2013 in diesem Fall die anderen Wemos D1 mini(s).&nbsp;Letztere zeigt dann die Temperatur auf dem SSD1306-OLED Bildschirm an.<\/p>\n\n\n\n<p>Da das Wemos \/ Screen-Setup nur etwa 10\u20ac kostet, kann eine beliebige Anzahl dieser Ger\u00e4te im Haus aufgestellt werden und sie werden alle gleichzeitig aktualisiert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"settinguptheraspi\">RasPi als MQTT Server einrichten<\/h3>\n\n\n\n<p>Vorrausetzung ist ein MQTT Server welcher auf einen Raspberry oder vServer laufen kann. Es gibt unz\u00e4hlige Anleitungen im Internet wie ein MQTT Server installiert wird, deshalb gehe ich hierauf nicht ein. <a href=\"https:\/\/randomnerdtutorials.com\/how-to-install-mosquitto-broker-on-raspberry-pi\/\">Schau doch einfach mal hier.<\/a><\/p>\n\n\n\n<p>Zwei Dinge m\u00f6chte ich hervorheben:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Verstehen Sie die Konzepte des&nbsp;<em>Abonnierens<\/em>&nbsp;und&nbsp;<em>Ver\u00f6ffentlichens<\/em>&nbsp;in MQTT, da wir sie beim Programmieren unserer Wemos D1-Minis benutzen werden.<\/li><li>Wenn auf dem MQTT-Server einen Benutzernamen und ein Passwort gesetzt ist, dann muss dieses im Wemos-Sketch eingetragen werden.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"settingupthewemosd1miniwiththeds18b20tempsensor\">Einrichten des Wemos D1 mini mit dem DS18B20 Temperatursensor<\/h3>\n\n\n\n<p>Der DS18B20 ist ein wirklich einfach zu handhabender Sensor.&nbsp;Achten Sie beim Kauf darauf, dass Sie die wasserdichte Version erhalten, da die Indoor-Version den Elementen nicht lange standh\u00e4lt.&nbsp;Schlie\u00dfen Sie den Sensor wie folgt an den Wemos an:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=612%2C303&#038;ssl=1\" alt=\"\" class=\"wp-image-289\" width=\"612\" height=\"303\" srcset=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?w=788&amp;ssl=1 788w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=300%2C149&amp;ssl=1 300w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=768%2C381&amp;ssl=1 768w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=600%2C298&amp;ssl=1 600w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=121%2C60&amp;ssl=1 121w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_ds18b20.png?resize=181%2C90&amp;ssl=1 181w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><figcaption>DS18B20 Anschaltung Wemo D1 ESP8266<br><br>Dies ist eine NodeMCU, aber es ist das gleiche Prinzip wie der Wemos. Schlie\u00dfen Sie den 4,7k-Widerstand als Pull-up f\u00fcr den Data des Sensors an. <\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"settingupthewemosd1miniwiththessd1306screen\">Einrichten des Wemos D1 mini mit dem OLED SSD1306-Bildschirm<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"840\" height=\"473\" src=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=840%2C473&#038;ssl=1\" alt=\"\" class=\"wp-image-288\" srcset=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=1200%2C675&amp;ssl=1 1200w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=600%2C338&amp;ssl=1 600w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=107%2C60&amp;ssl=1 107w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?resize=160%2C90&amp;ssl=1 160w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?w=1920&amp;ssl=1 1920w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/Wemo_Oled.jpeg?w=1680&amp;ssl=1 1680w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption>In meinem Setup habe ich die SSD1306 an den Wemos 3,3-V-Ausgang angeschlossen. Einige OLED vertragen keine 5V<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"theoutsidesensorscript\">Das Skript f\u00fcr die Ausseneinheit<\/h3>\n\n\n\n<p>Dieses Skript wacht alle 30 Minuten aus dem Tiefschlaf auf, liest die Temperatur des DS18B20 aus, stellt eine Verbindung zum WLAN her und&nbsp;sendet&nbsp;die MQTT-Daten in einem&nbsp;<em>Topic<\/em> zum&nbsp;MQTT-Server.<\/p>\n\n\n\n<p>Sie m\u00fcssen Ihre WLAN-Anmeldeinformationen sowie Ihren Benutzernamen und Ihr Passwort f\u00fcr Ihren MQTT-Server und das von&nbsp;Ihnen gew\u00e4hlte&nbsp;TOPIC im Skript  anpassen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Michael Diamond and Allan Shwartz\n\n#include &lt;OneWire.h&gt;            \/\/ to connect to the OneWire temp. sensor\n#include &lt;DallasTemperature.h&gt;  \/\/ temperature sensor driver\n#include &lt;ESP8266WiFi.h&gt;        \/\/ for WiFi Client class\n#include &lt;PubSubClient.h&gt;       \/\/ for MQTT PubSubClient class\n\n\/\/ Update these with values suitable for your network.\n\nconst char *ssid = \"Your_WiFi_Name_Here\";       \/\/ your WiFi name goes here  \nconst char *password = \"Your_WiFi_Password_Here\";    \/\/ your WiFi password goes here  \nconst char *mqtt_server = \"192.168.x.x\"; \/\/ IP address of the MQTT server\/Raspberry PI  \n\/\/ Declaration of (instantiation of) a WiFiClient called espClient\nWiFiClient espClient;\n\n\/\/ Declaration of (instantiation of) a PubSubClient called client\nPubSubClient client(espClient);\n\n\/\/ GPIO where the DS18B20 temperature sensor is connected to\nconst int oneWireBus = 4;\n\n\/\/ Setup a OneWire instance to communicate with any OneWire devices\nOneWire oneWire(oneWireBus);\n\n\/\/ Pass our OneWire reference to Dallas Temperature sensor\nDallasTemperature sensors(&amp;oneWire);\n\n\/\/ constants needed for millisecond timing\nconst unsigned long SECOND = 1000;  \nconst unsigned long MINUTE = (60 * SECOND);  \n\/\/ Push data at this interval\nconst unsigned long deepSleep_ms = 30 * MINUTE;\n\n\n\/\/----------------------------------------------------------------------\n\/\/  setup() function\n\/\/\n\/\/  ... setup the Serial class, the Wifi, and the Publish-Subscribe Client\n\/\/----------------------------------------------------------------------\nvoid setup()  \n{\n    \/\/ start the Serial Monitor\n    Serial.begin(115200);\n    \/\/ setup the temperature probe\n    pinMode(2, OUTPUT);\n    \/\/ setup the networking functions\n    setup_wifi();\n    client.setServer(mqtt_server, 1883);\n    \/\/ Start the DS18B20 temperature sensor\n    sensors.begin();\n}\n\n\n\/\/ ----------------------------------------------------------------------\n\/\/  setup_wifi() function\n\/\/\n\/\/  ... connect this ESP node to the House WiFi network\n\/\/      we only call this once at \"setup-time\"\n\/\/----------------------------------------------------------------------\nvoid setup_wifi() {\n\n    delay(10);\n    \/\/ We start by connecting to a WiFi network\n    Serial.println();\n    Serial.print(\"Connecting to \");\n    Serial.println(ssid);\n\n    WiFi.mode(WIFI_STA);\n    WiFi.begin(ssid, password);\n\n    while (WiFi.status() != WL_CONNECTED)\n    {\n        delay(500);\n        Serial.print(\".\");\n    }\n\n    randomSeed(micros());\n\n    \/\/ networking is successfully up\n    Serial.println(\"\");\n    Serial.println(\"WiFi connected\");\n    Serial.println(\"IP address: \");\n    Serial.println(WiFi.localIP());\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  reconnect() function\n\/\/\n\/\/  ... The connection to the MQTT server must constantly be checked\n\/\/      if it is down, reconnect\n\/\/----------------------------------------------------------------------\nvoid reconnect()  \n{\n    \/\/ Loop until we're reconnected\n    while (!client.connected())\n    {\n        Serial.print(\"Attempting MQTT connection...\");\n        \/\/ Give each ESP its own client name. If they are all the same, it'll repeatedly connect.\n        String clientId = \"RemoteTempSensor\";\n\n        \/\/ Attempt to connect\n        if (client.connect(\"Your_topic\", \"your_MQTT_user\", \"you_MQTT_PW\"))\n        {\n            Serial.println(\"connected\");\n            \/\/ Once connected, publish an announcement...\n            \/\/     client.publish(\"Your_topic\", tempString, \"\u00baC\");\n        }\n        else\n        {\n            \/\/ if our connection attempt fails, print some debugging to the Arduino console\n            Serial.print(\"failed, rc=\");\n            Serial.print(client.state());\n            Serial.println(\" try again in 5 seconds\");\n            \/\/ Wait 5 seconds before retrying\n            delay(5 * SECOND);\n        }\n    }\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  loop() function\n\/\/\n\/\/  ... actually the most important function here.\n\/\/----------------------------------------------------------------------\nvoid loop()  \n{\n    \/\/ we must be vigilant in keeping our MQTT connection up\n    if (!client.connected())\n    {\n        reconnect();\n    }\n\n    \/\/ call the loop function of the Publish-Subscribe client\n    client.loop();\n\n    \/\/ now read the temperatures\n    sensors.requestTemperatures();\n    float temperatureC = sensors.getTempCByIndex(0);\n\n    \/\/ display on the Arduio console ... just as a debugging tool\n    Serial.print(temperatureC);\n    Serial.println(\"\u00baC\");\n\n    \/\/ we need to convert this into a text string to transmit\n    char text&#91;8];\n    dtostrf(temperatureC, 1, 1, text);\n\n    \/\/ publish this text to our MQTT server\n    client.publish(\"Your_topic\", text, \"\u00baC\");\n    delay(SECOND);   \/\/ to insure the packet gets out\n\n    \/\/ now go into a power-saving deep sleep for 30 minutes\n    ESP.deepSleep(deepSleep_ms);\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"theinsidesensorscript\">Skript f\u00fcr die Innenstation<\/h3>\n\n\n\n<p>Dieses Skript abonniert auf dem MQTT-Server&nbsp;das Topic f\u00fcr den Au\u00dfensensors<em>.&nbsp;<\/em>Wenn der Au\u00dfensensor seine Daten sendet, so empf\u00e4ngt der MQTT Server die Daten und sendet diese an die Ger\u00e4te welche den TOPIC abonniert haben.<br>Sobald die Daten empfangen wurden, so werden die Daten auf dem Display angezeigt.<\/p>\n\n\n\n<p>Auch hier m\u00fcssen Sie Ihre WLAN-Zugangsdaten in das Skript schreiben, sowie Ihren Benutzernamen und Ihr Passwort f\u00fcr Ihren MQTT-Server und das von&nbsp;Ihnen gew\u00e4hlte&nbsp;Topic .<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Michael Diamond and Allan Shwartz\n\n#include &lt;Wire.h&gt;             \/\/ to connect to I2C screen\n#include &lt;Adafruit_GFX.h&gt;     \/\/ for screen graphics\n#include &lt;Adafruit_SSD1306.h&gt; \/\/ for Adafruit_SSD2306 class\n#include &lt;ESP8266WiFi.h&gt;      \/\/ for WiFiClient class\n#include &lt;PubSubClient.h&gt;     \/\/ for MQTT PubSubClient class\n#define SCREEN_WIDTH 128      \/\/ OLED display width, in pixels\n#define SCREEN_HEIGHT 64      \/\/ OLED display height, in pixels\n\n\/\/ Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, -1);\n\n\/\/ Update these with values suitable for your network.\n\nconst char *ssid = \"Your_WiFi_Name_Here\";       \/\/ your WiFi name goes here  \nconst char *password = \"Your_WiFi_Password_Here\";    \/\/ your WiFi password goes here  \nconst char *mqtt_server = \"192.168.x.x\"; \/\/ IP address of the MQTT server\/Raspberry PI\n\n\/\/ Declaration of (instantiation of) a WiFiClient called espClient\nWiFiClient espClient;\n\n\/\/ Declaration of (instantiation of) a PubSubClient called client\nPubSubClient client(espClient);\n\n\/\/ constants needed for millisecond timing\nconst unsigned long SECOND = 1000;  \nconst unsigned long MINUTE = (60 * SECOND);\n\n\/\/----------------------------------------------------------------------\n\/\/  setup() function\n\/\/\n\/\/  ... setup the Serial class, the Wifi, and the Publish-Subscribe Client\n\/\/----------------------------------------------------------------------\nvoid setup()  \n{\n    \/\/ start the Serial Monitor\n    Serial.begin(115200);\n    \/\/ setup the networking functions\n    setup_wifi();\n    client.setServer(mqtt_server, 1883);\n    \/\/ set the callback function ... to be called when we get a message\n    client.setCallback(callback);\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  setup_wifi() function\n\/\/\n\/\/  ... connect this ESP node to the House WiFi network\n\/\/      we only call this once at \"setup-time\"\n\/\/----------------------------------------------------------------------\nvoid setup_wifi()  \n{\n    delay(10);\n    \/\/ We start by connecting to a WiFi network\n    Serial.println();\n    Serial.print(\"Connecting to \");\n    Serial.println(ssid);\n\n    WiFi.mode(WIFI_STA);\n    WiFi.begin(ssid, password);\n\n    \/\/ continue to try to connect to the WiFi, showing connection attempts\n    while (WiFi.status() != WL_CONNECTED)\n    {\n        delay(500);\n        Serial.print(\".\");\n    }\n\n    \/\/ networking is successfully up\n    Serial.println(\"\");\n    Serial.println(\"WiFi connected\");\n    Serial.println(\"IP address: \");\n    Serial.println(WiFi.localIP());\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  callback() function\n\/\/\n\/\/  ... we have received a message from the MQTT server\n\/\/      display it.  repaint the SSD1306 screen\n\/\/----------------------------------------------------------------------\nvoid callback(String topic, byte *payload, unsigned int length)  \n{\n\n    Serial.print(\"Message arrived on topic: \");\n    Serial.print(topic);\n    Serial.print(\". Message: \");\n\n    \/\/ the payload is a \"byte-stream\".  Convert this to a printable String object\n    String message;\n    for (int i = 0; i &lt; length; i++)\n    {\n        message += (char)payload&#91;i];\n    }\n    Serial.println(message); \/\/ debug print on our Arduino console\n\n    \/\/ We have our RemoteTemp MQTT message, we want to display\n\n    if (topic == \"Your_topic\")\n    {\n\n        \/\/ restart the SSD1306 screen with a call to .begin()\n        if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))\n        {   \/\/ Address 0x3D for 128x64\n            Serial.println(F(\"SSD1306 allocation failed\"));\n            for (;;)\n                ; \/\/ infinite loop on failure\n        }\n\n        \/\/ repaint the SSD1306 OLED screen using various Adafruit_SSD1306 functions\n        delay(50000); \/\/ delay 50 seconds (otherwise is blinks too much)\n        display.clearDisplay();\n        display.setTextColor(WHITE);\n        display.setTextSize(1);\n        display.setCursor(2, 0);\n        display.println(\"Temperature Celcius\");\n        display.setTextSize(4);\n        display.setCursor(10, 20);\n        \/\/ Display static text\n        display.println(message); \/\/ This is the content to display\n        display.display();\n    }\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  reconnect() function\n\/\/\n\/\/  ... The connection to the MQTT server must constantly be checked\n\/\/      if it is down, reconnect\n\/\/----------------------------------------------------------------------\nvoid reconnect()  \n{\n\n    \/\/ Loop until we're reconnected\n    while (!client.connected())\n    {\n        Serial.print(\"Attempting MQTT connection...\");\n        \/\/ Give each ESP its own client name. If they are all the same, it'll repeatedly connect.\n        String clientId = \"Your_topic\";\n\n        \/\/ Attempt to connect\n        if (client.connect(\"TopicName\", \"Your_MQTT_User\", \"Your_MQTT_Password\"))\n        {\n            Serial.println(\"connected\");\n            client.subscribe(\"Your_topic\");\n        }\n        else\n        {\n            \/\/ if our connection attempt fails, print some debugging to the Arduino console\n            Serial.print(\"failed, rc=\");\n            Serial.print(client.state());\n            Serial.println(\" try again in 5 seconds\");\n            \/\/ Wait 5 seconds before retrying\n            delay(5 * SECOND);\n        }\n    }\n}\n\n\n\/\/----------------------------------------------------------------------\n\/\/  loop() function\n\/\/\n\/\/  ... actually the most important function here.\n\/\/----------------------------------------------------------------------\nvoid loop()  \n{\n    unsigned long loopTime_ms = millis();\n\n    \/\/ we must be vigilant in keeping our MQTT connection up\n    if (!client.connected())\n    {\n        reconnect();\n    }\n\n    \/\/ call the loop function of the Publish-Subscribe client\n    client.loop();\n\n    \/\/ we want to do this \"loop\" function once a minute\n    while ((unsigned long)(millis() - loopTime_ms) &lt; (1 * SECOND))\n        ;   \/\/ wait for the minute to be over\n}\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"poweringtheoutsidewemoswithsolarpanel\">Stromversorgung der Au\u00dfenstation mit Solarpanel<\/h3>\n\n\n\n<p>Aufgrund seiner relativ hohen Stromentnahme w\u00e4hrend der WLAN-Aktivierung ist der ESP8266 notorisch schwierig aus der Ferne mit Strom zu versorgen.&nbsp;Ich habe das relativ leicht umgangen.<\/p>\n\n\n\n<p>Erstens kann das Board durch \u00dcberbr\u00fccken der Pins RST und D0 auf dem Wemos in den vollst\u00e4ndigen Tiefschlaf wechseln.&nbsp;Dies bedeutet, dass zwischen jedem Wakeup ein vernachl\u00e4ssigbarer Stromverbrauch besteht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"359\" height=\"323\" src=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/wemos-d1-mini-activate-deep-sleep-mode-esp8266.jpeg?resize=359%2C323&#038;ssl=1\" alt=\"\" class=\"wp-image-287\" srcset=\"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/wemos-d1-mini-activate-deep-sleep-mode-esp8266.jpeg?w=359&amp;ssl=1 359w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/wemos-d1-mini-activate-deep-sleep-mode-esp8266.jpeg?resize=300%2C270&amp;ssl=1 300w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/wemos-d1-mini-activate-deep-sleep-mode-esp8266.jpeg?resize=67%2C60&amp;ssl=1 67w, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2022\/09\/wemos-d1-mini-activate-deep-sleep-mode-esp8266.jpeg?resize=100%2C90&amp;ssl=1 100w\" sizes=\"(max-width: 359px) 85vw, 359px\" \/><\/figure>\n\n\n\n<p>Als Stromversorgung kommt ein 18650-Akku Board zum Einsatz, das den Wemo \u00fcber den USB-Ausgang mit Strom versorgt &#8211; und auch das Laden und Entladen des Akkus steuert, um alles Autark zu Betreiben kommt ein 5V Solarpanel zum Einsatz welches Akku zus\u00e4tzlich nachl\u00e4dt.<\/p>\n\n\n\n<p>Ich habe die Anleitung <a rel=\"noreferrer noopener\" href=\"http:\/\/www.whatimade.today\/make-a-remote-temp-sensor-with-permanent-display-inside-your-house\/\" target=\"_blank\">hier<\/a> gefunden und ins Deutsche \u00fcbersetzt und einige Sachen angepasst.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Viel Spass beim Nachbauen.<\/p>\n\n\n\n<p>vy 73 Jens<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Wemo D1 ESP8266 Die meisten von uns verwenden eine Telefon-App, um die Au\u00dfentemperatur zu sehen &#8211; was in Ordnung ist, wenn es Ihnen nichts ausmacht, einen Messwert von einem Sensor zu erhalten, der sich irgendwo in der N\u00e4he einer meteorologischen Station befindet. Und wenn wir schlie\u00dflich&nbsp;unsere&nbsp;eigenen IoT-Sensoren einrichten, m\u00fcssen wir eine App \u00f6ffnen oder &hellip; <a href=\"https:\/\/dj1jay.de\/?p=285\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eFerntemperatursensor mit permanenter Anzeige in Ihrem Haus\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[39],"tags":[],"class_list":["post-285","post","type-post","status-publish","format-standard","hentry","category-bastelprojekte"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paMxRj-4B","jetpack-related-posts":[{"id":63,"url":"https:\/\/dj1jay.de\/?p=63","url_meta":{"origin":285,"position":0},"title":"DB0FTS Digital on Air","author":"dj1jay","date":"5. Juni 2019","format":false,"excerpt":"Nach vielen Problemen bei DB0FTS ist es nun geschafft, es ist endlich der Digitale Teil von DB0FTS wieder QRV in DMR und C4FM. Am Tag der Installation hatte das 20 Jahre Netzteil endlich seinen Geist aufgegeben und musste unbedingt den LTE Router Schrotten :-( Ein Ersatznetzteil war zum Gl\u00fcck im\u2026","rel":"","context":"In &quot;DB0FTS&quot;","block_context":{"text":"DB0FTS","link":"https:\/\/dj1jay.de\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/06\/2019-05-31-13.19.10-e1559769053650.jpg?fit=675%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/06\/2019-05-31-13.19.10-e1559769053650.jpg?fit=675%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/06\/2019-05-31-13.19.10-e1559769053650.jpg?fit=675%2C1200&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":381,"url":"https:\/\/dj1jay.de\/?p=381","url_meta":{"origin":285,"position":1},"title":"Einf\u00fchrung von CTCSS bei DB0MGN &amp; DB0FTS","author":"dj1jay","date":"4. Juni 2023","format":false,"excerpt":"Seit vielen Jahren ist der Einsatz von CTCSS bei Relaisfunkstellen gew\u00fcnscht. DB0MGN 70cm:F\u00fcr einen St\u00f6rungsfreien Betrieb ist es bei DB0MGN UHF nun notwendig ein CTCSS Pilottone von 71.9Hz mit auszusenden. Der Sender \u00fcbertr\u00e4gt ebenfalls den Pilottone, so verschwindet l\u00e4stiges Rauschen. Bei DB0FTS VHF ist ebenfalls ein CTCSS von 71.9Hz notwendig\u2026","rel":"","context":"In &quot;DB0FTS&quot;","block_context":{"text":"DB0FTS","link":"https:\/\/dj1jay.de\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":47,"url":"https:\/\/dj1jay.de\/?p=47","url_meta":{"origin":285,"position":2},"title":"18.4 Weltamateurfunk Tag","author":"dj1jay","date":"18. April 2019","format":false,"excerpt":"Also Leute ran an die Ger\u00e4te. ich bin QRV im Th\u00fcringen.Link und DMR TG8 Th\u00fcringen sowie lokal on tour 145.500Mhz.","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/dj1jay.de\/?cat=1"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/04\/20190418_084704.jpg?fit=1200%2C534&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/04\/20190418_084704.jpg?fit=1200%2C534&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/04\/20190418_084704.jpg?fit=1200%2C534&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/04\/20190418_084704.jpg?fit=1200%2C534&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/04\/20190418_084704.jpg?fit=1200%2C534&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":232,"url":"https:\/\/dj1jay.de\/?p=232","url_meta":{"origin":285,"position":3},"title":"Kein APRS DB0FTS","author":"dj1jay","date":"28. August 2020","format":false,"excerpt":"Wegen Umbauarbeiten ist zurzeit der APRS Digi bei DB0FTS nicht QRV. Es soll auf ein neues System umgebaut werden dieses nimmt natr\u00fcrlich wie immer FreiZeit in Kauf. Der geplante Wiederaufbau wird erst 2Q 2021 sein. vy 73 Jens, dj1jay","rel":"","context":"In &quot;APRS&quot;","block_context":{"text":"APRS","link":"https:\/\/dj1jay.de\/?cat=8"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":74,"url":"https:\/\/dj1jay.de\/?p=74","url_meta":{"origin":285,"position":4},"title":"Wochenend Ausflug zum Diezh\u00e4uschen","author":"dj1jay","date":"14. Juli 2019","format":false,"excerpt":"Nachdem mehrere DNF im Log standen musste ich doch mal nachschauen was los ist. Nun ist der Petling zu 3mal verschwunden, ich finde das voll Assi naja. F\u00fcr manche scheint der Petling ein toller Dildo zu sein ;-). Nichts desto Trotz der Cache ist im Archiv, Diezh\u00e4uschen v2.0 wurde geboren.....\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/dj1jay.de\/?cat=1"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/dj1jay.de\/wp-content\/uploads\/2019\/07\/2019-07-14-09.39.18.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/posts\/285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dj1jay.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=285"}],"version-history":[{"count":4,"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":294,"href":"https:\/\/dj1jay.de\/index.php?rest_route=\/wp\/v2\/posts\/285\/revisions\/294"}],"wp:attachment":[{"href":"https:\/\/dj1jay.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dj1jay.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dj1jay.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}