{"id":3298,"date":"2023-09-07T18:19:13","date_gmt":"2023-09-07T16:19:13","guid":{"rendered":"https:\/\/generationwomo.de\/?page_id=3298"},"modified":"2023-09-07T21:20:08","modified_gmt":"2023-09-07T19:20:08","slug":"fuellstandsanzeige-fuer-frischwasser-im-wohnmobil","status":"publish","type":"page","link":"https:\/\/generationwomo.de\/?page_id=3298","title":{"rendered":"F\u00fcllstandsanzeige f\u00fcr Frischwasser im Wohnmobil"},"content":{"rendered":"<style>.wp-block-kadence-advancedbtn.kb-btns_bc474a-1e{gap:var(--global-kb-gap-xs, 0.5rem );justify-content:flex-start;align-items:center;}.kt-btns_bc474a-1e .kt-button{font-weight:normal;font-style:normal;}.kt-btns_bc474a-1e .kt-btn-wrap-0{margin-right:5px;}.wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button{color:#000000;background:#00d084;border-color:#00d084;}.wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button:hover, .wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button:focus{color:#ffffff;border-color:#00d084;}.wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button::before{display:none;}.wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button:hover, .wp-block-kadence-advancedbtn.kt-btns_bc474a-1e .kt-btn-wrap-0 .kt-button:focus{background:#00d084;box-shadow:inset 2px 2px 3px 0px rgba(0, 0, 0, 0.4);}<\/style>\n<div class=\"wp-block-kadence-advancedbtn kt-btn-align-left kt-btn-tablet-align-inherit kt-btn-mobile-align-inherit kt-btns-wrap kt-btns_bc474a-1e\"><div class=\"kt-btn-wrap kt-btn-wrap-0\"><a class=\"kt-button button kt-btn-0-action kt-btn-size-small kt-btn-style-basic kt-btn-svg-show-always kt-btn-has-text-true kt-btn-has-svg-false\" href=\"https:\/\/generationwomo.de\/?page_id=107\"><span class=\"kt-btn-inner-text\">Zur\u00fcck zur \u00dcbersicht<\/span><\/a><\/div><\/div>\n\n\n\n<hr \/>\n\n\n\n<p><span style=\"font-size: inherit;\">Hymer-Fahrer kennen vermutlich das Problem: Die Anzeige f\u00fcr den Frischwassertank ist so ungenau, dass sie nicht wirklich etwas nutzt. Der Sensor im Tank hat ohnehin nur 4 Stufen, aber die k\u00f6nnen den Wasserstand nicht mal ann\u00e4hernd erfassen. Ein weiteres Problem ist, dass beim Wasser tanken keine M\u00f6glichkeit besteht, den F\u00fcllstand zu beobachten und das zuflie\u00dfende Wasser rechtzeitig abzustellen, wenn der Tank gef\u00fcllt ist. Nat\u00fcrlich kann eine zweite Person entweder auf die F\u00fcllstandsanzeige oder direkt auf den Tank schauen und rufen, wenn es soweit ist. Aber wir leben in modernen Zeiten und deshalb scheint es sinnvoll, ein elektronisches Helferlein zu installieren, welches beide Probleme l\u00f6st. Etwa so k\u00f6nnte das aussehen:<\/span><\/p>\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" width=\"80%\">\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3301 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-233x300.jpeg\" alt=\"\" width=\"233\" height=\"300\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-233x300.jpeg 233w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-796x1024.jpeg 796w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-768x987.jpeg 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-1195x1536.jpeg 1195w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-1593x2048.jpeg 1593w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-210x270.jpeg 210w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-777x999.jpeg 777w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0890_1-scaled.jpeg 1991w\" sizes=\"auto, (max-width: 233px) 100vw, 233px\" \/><\/a><\/td>\n<td align=\"center\" data-wp-editing=\"1\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3304 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-201x300.jpg\" alt=\"\" width=\"201\" height=\"300\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-201x300.jpg 201w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-685x1024.jpg 685w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-768x1148.jpg 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-1028x1536.jpg 1028w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-1371x2048.jpg 1371w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-181x270.jpg 181w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP-669x999.jpg 669w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_2375_DISP.jpg 1471w\" sizes=\"auto, (max-width: 201px) 100vw, 201px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\" align=\"center\"><span style=\"font-size: small;\">F\u00fcllstandskontrolle beim Wassereinf\u00fcllen<\/span><\/td>\n<td style=\"text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Alle wichtigen Informationen auf dem Display<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Gesagt, getan\u2026 Ok, so einfach ist es dann doch nicht. Zun\u00e4chst einmal ist zu kl\u00e4ren, wie der Wasserstand gemessen werden kann. Es stehen hierf\u00fcr verschiedene Methoden zur Wahl, wobei die von Hymer verwendete aus oben genannten Gr\u00fcnden nicht betrachtet werden soll.<\/p>\n<p>Welche M\u00f6glichkeiten stehen ansonsten zur Verf\u00fcgung?<\/p>\n<ol>\n<li>Masse des Tanks messen.<\/li>\n<li>Wasserdruck am Boden des Tanks messen.<\/li>\n<li>Mittels Ultraschall den Abstand zwischen Tankoberseite und Wasserspiegel messen.<\/li>\n<li>Die Wasserh\u00f6he mit einem Schwimmk\u00f6rper erfassen.<\/li>\n<li>Die Wasserh\u00f6he kapazitiv erfassen.<br \/><br \/><\/li>\n<\/ol>\n<h3 id=\"toc_1\">Masse des Tanks messen<\/h3>\n<p>Diese Methode f\u00e4llt aus verschiedenen Gr\u00fcnden aus. Zuerst einmal muss ein Gewichtssensor unter dem Tank platziert werden. Das ist eventuell bei einigen Konstrukionen m\u00f6glich aber dann haben wir einen kaum zug\u00e4nglichen Sensor und die Geometrie der Anordnung ist kaum sicher zu gestalten. Au\u00dferdem biegt sich der Plastiktank nat\u00fcrlich durch und damit wird eine Massebestimmung schwierig bis unm\u00f6glich.<\/p>\n<h3 id=\"toc_2\">Wasserdruck am Boden des Tanks messen<\/h3>\n<p>Das scheint eine ganz gute Sache zu sein. Problematisch ist hier nur die wasserdichte Verkapselung des Drucksensors. Das ist aber sicher l\u00f6sbar.<\/p>\n<h3 id=\"toc_3\">Mittels Ultraschall den Abstand zwischen Tankoberseite und Wasserspiegel messen<\/h3>\n<p>Eigentlich eine sehr elegante Methode. Es wird die Laufzeit eines Ultraschallimpulses zwischen einem Geber, welcher an der Tankoberseite angebracht ist, zur Wasseroberf\u00e4che und zur\u00fcck zu einem Empf\u00e4nger, welcher ebenfalls an der Tankoberseite angebracht ist, gemessen. Hierbei treten zwei Probleme auf. Erstens ist die Schallgeschwindigkeit und damit auch die Laufzeit stark temperaturabh\u00e4ngig. Das kann man mit einem Temperatursensor jedoch kompensieren. Zweitens wird die Methode immer ungenauer, je k\u00fcrzer der Abstand des Wasserspiegels von der Tankoberkante ist. Bei einem Abstand von 1 cm betr\u00e4gt die Zeit nur noch etwa 60 ms. Das ist nat\u00fcrlich problemlos messbar, wenn man einen gen\u00fcgenden Aufwand betreibt. Einfache, stromsparende (und billige) MCUs (Microcontroller Units) mit einem ESP8266 kommen dabei jedoch schon ziemlich an ihre Grenzen.<\/p>\n<h3 id=\"toc_4\">Die Wasserh\u00f6he mit einem Schwimmk\u00f6rper erfassen.<\/h3>\n<p>Eine ziemlich mechanische L\u00f6sung, die ich nicht n\u00e4her betrachtet habe, denn meine handwerklichen F\u00e4higkeiten sind nur rudiment\u00e4r vorhanden und w\u00fcrden eine solche Bastelei kaum stemmen \ud83d\ude09<\/p>\n<h3 id=\"toc_5\">Die Wasserh\u00f6he kapazitiv erfassen<\/h3>\n<p>Hier werden zwei sehr einfache Elektroden in den Tank gegeben und die elektrische Kapazit\u00e4t zwischen den beiden Elektroden gemessen. Wegen der unterschiedlichen Dielektrizit\u00e4tskonstanten von Luft und Wasser \u00e4ndert sich die Kapazit\u00e4t der Anordnung mit dem Wasserstand ziemlich linear. Ein Selbstbau dieser Elektrodenanordnung ist dennoch nicht ganz einfach. Vor allem die Kalibrierung ist recht schwierig. Allerdings bietet die Firma Votronic bereits fertig konfektionierte L\u00f6sungen an, die sich einfach einbauen lassen. <a href=\"https:\/\/www.votronic.de\/tankgeber\/\">Hier findet man den Tankgeber<\/a> . Ein h\u00fcbsches <a href=\"https:\/\/www.votronic.de\/tankanzeigen\/\">Display f\u00fcr den Wasserstand<\/a>, welches im Wohnmobil fest angebracht werden kann, ist ebenfalls im Angebot.<\/p>\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" width=\"80%\">\n<tbody>\n<tr>\n<td align=\"center\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3305 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-300x192.png\" alt=\"\" width=\"300\" height=\"192\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-300x192.png 300w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-1024x654.png 1024w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-768x490.png 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-423x270.png 423w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545-850x543.png 850w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Tankelektrode_15-50_k_5545.png 1400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<td align=\"center\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Frischwasser-Tankanzeige-S.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3300 aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Frischwasser-Tankanzeige-S-184x300.jpg\" alt=\"\" width=\"153\" height=\"249\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Frischwasser-Tankanzeige-S-184x300.jpg 184w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Frischwasser-Tankanzeige-S-166x270.jpg 166w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Frischwasser-Tankanzeige-S.jpg 445w\" sizes=\"auto, (max-width: 153px) 100vw, 153px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Tankelektrode von Votronic<\/span><\/td>\n<td style=\"text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Frischwasser-Tankanzeige von Votronic<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><br \/><br \/><\/p>\n<h3 id=\"toc_6\">Realisierung<\/h3>\n<p>Letztlich ist meine Wahl (auch wegen der k\u00e4uflichen Komponenten) auf die kapazitive Methode gefallen, wobei die Tanksonde und das Display von Votronic zur Anwendung kommen. Der Vorteil dieser L\u00f6sung ist, dass der Sensor am Tank eine einfach auszuwertende, kontinuierliche Gleichspannung von 0 bis ca. 2,3 V als Messgr\u00f6\u00dfe ausgibt. Diese Spannung wird einmal an der Votronic-Tankanzeige ausgegeben und andererseits mit dem Analogeingang eines Microcontrollers <a href=\"https:\/\/www.wemos.cc\/en\/latest\/d1\/d1_mini_pro.html\"> <strong>WeMos D1 mini Pro<\/strong> <\/a> erfasst. Der Microcontroller sendet den Wert der Sensorspannung dann \u00fcber WLAN an einen Empf\u00e4nger, der als Handger\u00e4t mit nach drau\u00dfen genommen werden kann und den Tankvorgang in Echtzeit anzeigt. Der Empf\u00e4nger ist ebenfalls ein Microcontroller \u00e4hnlicher Bauart (ich habe hier ein etwas <a href=\"https:\/\/www.az-delivery.de\/products\/d1-mini\">abweichendes Modell<\/a> genommen, das ist aber ohne Belang). Die Kalibration der Anordnung geschieht in drei Stufen:<\/p>\n<ol>\n<li>Mit einer gen\u00fcgend genauen Spannungsquelle werden die Tankanzeige und das Handger\u00e4t aufeinander abgeglichen. Im Empf\u00e4nger-Programm wird dazu ein Korrekturfaktor so eingegeben, dass die Tankanzeige und das Display am Handger\u00e4t gleiche Werte ausgeben.<\/li>\n<li>Die Tankelektrode wird auf die in der Bedienungsanleitung angegebene L\u00e4nge gek\u00fcrzt und auf dem Messkopf wird die Tankh\u00f6he grob eingestellt.<\/li>\n<li>Das Feintuning geht dann nur mit Wasser im Tank. Ist der Tank gef\u00fcllt, kann auf dem Messkopf eine Feinjustierung vorgenommen werden, so dass Anzeige und Display auf dem Handger\u00e4t jeweils 100% anzeigen.<\/li>\n<\/ol>\n<p>Mein erster Prototyp sieht so aus:<\/p>\n<table style=\"margin-left: auto; margin-right: auto; width: 100%;\" border=\"0\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"width: 34.933333%;\" align=\"center\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3303 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-220x300.jpeg\" alt=\"\" width=\"220\" height=\"300\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-220x300.jpeg 220w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-752x1024.jpeg 752w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-768x1046.jpeg 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-1128x1536.jpeg 1128w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-1503x2048.jpeg 1503w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-198x270.jpeg 198w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-733x999.jpeg 733w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1042-scaled.jpeg 1879w\" sizes=\"auto, (max-width: 220px) 100vw, 220px\" \/><\/a><\/td>\n<td style=\"width: 35.6%;\" align=\"center\"><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3302 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-224x300.jpeg\" alt=\"\" width=\"224\" height=\"300\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-224x300.jpeg 224w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-766x1024.jpeg 766w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-768x1027.jpeg 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-1149x1536.jpeg 1149w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-1531x2048.jpeg 1531w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-202x270.jpeg 202w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-747x999.jpeg 747w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_1039-scaled.jpeg 1914w\" sizes=\"auto, (max-width: 224px) 100vw, 224px\" \/><\/a><\/td>\n<td style=\"width: 28.266667%;\" align=\"center\">\u00a0<a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-scaled.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3307 size-medium aligncenter\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-177x300.jpeg\" alt=\"\" width=\"177\" height=\"300\" srcset=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-177x300.jpeg 177w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-604x1024.jpeg 604w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-768x1302.jpeg 768w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-906x1536.jpeg 906w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-1208x2048.jpeg 1208w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-159x270.jpeg 159w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-589x999.jpeg 589w, https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/IMG_0889_1-scaled.jpeg 1510w\" sizes=\"auto, (max-width: 177px) 100vw, 177px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 34.933333%; text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Eingebaute Tankelektrode<\/span><\/td>\n<td style=\"width: 35.6%; text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Eingebaute Tankanzeige<\/span><\/td>\n<td style=\"width: 28.266667%; text-align: center;\" align=\"center\"><span style=\"font-size: small;\">Handger\u00e4t<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Der Prototyp ist seit dem Anfang des Jahres 2023 im Einsatz und hat sich bew\u00e4hrt. Nur in einer Situation gab es dann doch einen Wasser\u00fcberlauf. Beim Wassertanken habe ich mit dem Campingplatzbetreiber geplaudert und dabei vergessen, auf das Display zu schauen\u2026 Nachdem der Schaden beseitigt war, sollte das nat\u00fcrlich nicht noch einmal passieren. Also habe ich noch einen kleinen Alarm-Buzzer in das Handger\u00e4t eingebaut, der mich bei k\u00fcnftigen Ablenkungen hoffentlich an das Abstellen des Wassers erinnern wird. <br \/><br \/><br \/><\/p>\n<hr \/>\n<p><em>F\u00fcr alle, die einen Nachbau ins Auge fassen, gibt es hier die Schaltpl\u00e4ne und die Sketche f\u00fcr die Microcontroller.<\/em><\/p>\n<p>F\u00fcr die Programmierung des Displays (<a href=\"https:\/\/arduino-projekte.info\/produkt\/nextion-3-5-discovery-touch-display-480x320-hmi-nx4832f035\/\">Nextion 3.5\u2033 Discovery Touch Display 480\u00d7320 HMI \u2013 NX4832F035<\/a>) ben\u00f6tigt man einen <a href=\"https:\/\/nextion.tech\/nextion-editor\/\">Nextioneditor<\/a> . Mit diesem Editor kann man aus der Datei <q>tankanzeige.HMI<\/q> die Datei <q>tankanzeige.tft<\/q> generieren, die dann mittels einer MikroSD Karte auf des Display geladen werden kann. Etwas umst\u00e4ndlich, deshalb habe ich <a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/nextion.zip\">beide Dateien zum Download hier bereitgestellt<\/a>.<\/p>\n<p>Die Links f\u00fcr die wichtigsten Komponenten:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.votronic.de\/tankanzeigen\/\">Tankanzeige Votronic<\/a><\/li>\n<li><a href=\"https:\/\/www.votronic.de\/tankgeber\/\">Tankgeber Votronic<\/a><\/li>\n<li><a href=\"https:\/\/www.wemos.cc\/en\/latest\/d1\/d1_mini_pro.html\">WeMos D1 mini pro<\/a><\/li>\n<li><a href=\"https:\/\/www.wemos.cc\/en\/latest\/d1_mini_shield\/battery.html\">D1 Battery Shield<\/a><\/li>\n<li><a href=\"https:\/\/www.az-delivery.de\/products\/d1-mini\">D1 mini<\/a><\/li>\n<li><a href=\"https:\/\/arduino-projekte.info\/produkt\/nextion-3-5-discovery-touch-display-480x320-hmi-nx4832f035\/\">Nextion LCD Display<\/a><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<h4>Die Schaltpl\u00e4ne f\u00fcr Sender und Empf\u00e4nger<\/h4>\n<p><a href=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Schaltplan.pdf\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3309\" src=\"https:\/\/generationwomo.de\/wp-content\/uploads\/2023\/09\/Schaltplan.pdf\" alt=\"\" width=\"398\" height=\"563\" \/><\/a><\/p>\n<h4>Sketch &#8222;Sender.ino&#8220; f\u00fcr den Sender der Daten<\/h4>\n<div>\n<pre>#include &lt;ESP8266WiFi.h&gt;<br \/>#include &lt;WiFiUdp.h&gt;<br \/>#include &lt;EEPROM.h&gt;<br \/><br \/>#ifndef STASSID<br \/>#define STASSID \"WIFI_TANK_EM\"<br \/>#define STAPSK  \"123456789+\"<br \/>#endif<br \/><br \/>IPAddress ip(192, 168, 10, 10);<br \/>IPAddress gateway(192, 168, 10, 1);<br \/>IPAddress subnet(255, 255, 255, 0);\n<br \/>unsigned int sendPort = 9500;\nunsigned int sensor = 0;\nbool wifi_ok = false;\nWiFiUDP Udp;\n<br \/>void setup() {\n  pinMode(LED_BUILTIN, OUTPUT);\n  int count_wifi = 0;\n  pinMode(A0, INPUT);\n  Serial.begin(115200);\n  wifi_ok = false;\n  while (wifi_ok == false) {\n    count_wifi = 0;\n    WiFi.mode(WIFI_STA);\n    WiFi.config(ip, gateway, subnet);\n    WiFi.begin(STASSID, STAPSK);\n    Serial.println(\"\");\n    while (WiFi.status() != WL_CONNECTED) {\n      count_wifi++;\n      digitalWrite(LED_BUILTIN, (count_wifi % 2) ? LOW : HIGH);\n      Serial.print('.');\n      delay(500);\n      if (count_wifi &gt; 50) {\n        Serial.println(\"WiFi not connected! Restart!\");<br \/>        break;<br \/>      }<br \/>    }<br \/>    wifi_ok = (WiFi.status() != WL_CONNECTED) ? false : true;\n  }\n  Serial.print(\"Connected! IP address: \");\n  Serial.println(WiFi.localIP());\n  Serial.printf(\"UDP server on port %d\\n\", sendPort);\n  Udp.begin(sendPort);\n}<br \/>void sensor_status() {\n  \/\/ Wir lesen hier nur die Rohdaten,\n  \/\/ alles andere geschieht im Empf\u00e4nger\n  sensor = analogRead(A0);\n}<br \/><br \/>void loop() {\n  sensor_status();\n  \/\/ Daten senden\n  if (wifi_ok) {<br \/>     Udp.beginPacket(gateway, sendPort);<br \/>     Udp.write(\"sensor:\");<br \/>     Udp.print(sensor);<br \/>     Udp.write(\";count:\");<br \/>     Udp.print(0);<br \/>     Udp.write(\";wasser:\");<br \/>     Udp.print(sensor);<br \/>     Udp.endPacket();<br \/><br \/>     digitalWrite(LED_BUILTIN, LOW); <br \/>     delay(100);<br \/>     digitalWrite(LED_BUILTIN, HIGH);<br \/>     delay(900);<br \/>   }<br \/>}<br \/><br \/><span style=\"font-size: 1.25em; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\"><br \/><\/span><\/pre>\n<h4>Sketch &#8222;Empfaenger.ino&#8220; f\u00fcr das Handger\u00e4t<\/h4>\n<\/div>\n<pre>#include &lt;ESP8266WiFi.h&gt;<br \/>#include &lt;WiFiUdp.h&gt;<br \/>#include &lt;SoftwareSerial.h&gt;<br \/><br \/>#ifndef APSSID<br \/>#define APSSID \"WIFI_TANK_EM\"<br \/>#define APPSK \u00a0\"123456789+\"<br \/>#endif<br \/><br \/>SoftwareSerial nextion(12, 13); \/\/ RX, TX<br \/><br \/>IPAddress ip(192, 168, 10, 1);<br \/>IPAddress gateway(192, 168, 10, 10);<br \/>IPAddress subnet(255, 255, 255, 0);<br \/><br \/>unsigned int receivePort = 9500;<br \/><br \/>\/\/ Puffer f\u00fcr Empfangene Daten<br \/>char packetBuffer[UDP_TX_PACKET_MAX_SIZE + 1];<br \/>char * values[4];<br \/>char * buf[4];<br \/>char cmEinheit[11];<br \/>char fuellstand[21];<br \/>char relFuellstand[21];<br \/>char num[21];<br \/>unsigned int sensor = 0.0;<br \/>float batt = 0.0;<br \/>unsigned int w_stand;<br \/>int led_status = HIGH;<br \/>int delay_count = 0;<br \/>int delay_limit = 10;<br \/><br \/>\/\/ Max. F\u00fcllh\u00f6he des Tanks in cm:<br \/>int maxFuellhoehe = 30;<br \/>int fuellhoehe;<br \/>bool data_ok = false;<br \/><br \/>\/\/ Alarmsound<br \/>int alarmStufe = 0;<br \/>int pitch[] = {0, 523, 659, 784};<br \/>int duration = 100; \u00a0\/\/ 100 miliseconds<br \/><br \/>WiFiUDP Udp;<br \/><br \/>void setup() {<br \/>  pinMode(LED_BUILTIN, OUTPUT);<br \/>  pinMode(A0, INPUT);<br \/>  pinMode(BUZZER_PIN, OUTPUT);<br \/>  nextion.begin(9600);<br \/>  WiFi.softAPConfig(ip, gateway, subnet);<br \/>  WiFi.softAP(APSSID, APPSK);<br \/>  delay(500);<br \/>  Udp.begin(receivePort);<br \/><br \/>  nextion.print(\"p0.pic=\");<br \/>  nextion.print(0);<br \/>  sendToDisplay();<br \/>}<br \/><br \/>void sendToDisplay() {<br \/>  nextion.write(0xFF);<br \/>  nextion.write(0xFF);<br \/>  nextion.write(0xFF);<br \/>}<br \/><br \/>float batt_status() {<br \/>  return analogRead(A0) \/ 1024.0 * 4.5;<br \/>}<br \/><br \/>void displayBattSymb(float battV) {<br \/>  nextion.print(\"p0.pic=\");<br \/>  nextion.print(((battV &gt;= 3.42) ? 4 :\u00a0<br \/>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ((battV &gt;= 3.10) ? 3 :\u00a0<br \/>  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ((battV &gt;= 2.80) ? 2 : 1))));<br \/>  sendToDisplay();<br \/>}<br \/><br \/>void setAlarmLevel(int fuellstand) {<br \/>  if (fuellstand &lt; 90) {<br \/>  \u00a0 alarmStufe = 0;<br \/>  \u00a0 return;<br \/>  }<br \/><br \/>\u00a0 \/\/ \u00a090 &lt;= fuellstand &lt;= 100<br \/>  alarmStufe =\u00a0 <br \/>     (fuellstand &lt; 94) ? 1 :<br \/>     (fuellstand &lt; 97) ? 2 : 3;<br \/>}<br \/><br \/>void loop() {<br \/>  String cmd = \"\\\"\";<br \/>  \/\/ sind Daten vorhanden, lies ein Paket<br \/>  int packetSize = Udp.parsePacket();<br \/>\u00a0 if (packetSize) {<br \/>  \u00a0 \/\/ lies das Paket in packetBuffer<br \/>  \u00a0 int n = Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);<br \/>  \u00a0 packetBuffer[n] = 0;<br \/><br \/>  \u00a0 \/\/ Empfangene Daten zerlegen<br \/>\u00a0 \u00a0 char * ptr = strtok(packetBuffer, \";\");<br \/>  \u00a0 for (byte i = 0; i &lt; sizeof(values) \/ sizeof(values[0]); i++) {<br \/>  \u00a0 \u00a0 values[i] = ptr;<br \/>  \u00a0 \u00a0 ptr = strtok(NULL, \";\");<br \/>  \u00a0 } \u00a0 \u00a0<br \/>  \u00a0 buf[0] = strtok(values[0], \":\");<br \/>  \u00a0 \/\/ Sensor Rohwert (zwischen 0 und 1024)<br \/>  \u00a0 sensor = atoi(strtok(NULL, \":\"));\u00a0<br \/>  \u00a0 data_ok = true;<br \/>  \u00a0 sprintf(cmEinheit, \" cm. \");<br \/>  \u00a0 \/\/ Kalibration Sensorwert - Votronic-Display<br \/>  \u00a0 sensor = sensor * 3 \/ 2;\u00a0<br \/>  \u00a0 w_stand = sensor * 100 \/ 1024;<br \/>  \u00a0 w_stand = min((uint)100, w_stand);<br \/>  \u00a0 sprintf(relFuellstand, \"%i %%\", w_stand);<br \/>  \u00a0 setAlarmLevel(w_stand);<br \/>  }<br \/>  else {<br \/>  \u00a0 data_ok = false;<br \/>  \u00a0 sprintf(cmEinheit, \" cm \u00a0\");<br \/>  }<br \/><br \/>\u00a0 fuellhoehe = min(sensor * maxFuellhoehe \/ 1024, (uint)maxFuellhoehe);<br \/>  sprintf(fuellstand, \"%i%s\", fuellhoehe, cmEinheit);<br \/><br \/>  \/\/Daten an das Display senden<br \/>  batt = batt_status();<br \/>  sprintf(num, \"%.1f\", batt);<br \/>  nextion.print(\"batterie.txt=\" + cmd + num);<br \/>  nextion.print(\" V\" + cmd);<br \/>  sendToDisplay();<br \/><br \/>  \/\/ rel. F\u00fcllstand in %<br \/>  nextion.print(\"rel_fs.txt=\" + cmd + relFuellstand + cmd); \u00a0\u00a0<br \/>  sendToDisplay();<br \/><br \/>  \/\/ F\u00fcllh\u00f6he in cm<br \/>  nextion.print(\"w_stand.txt=\" + cmd + fuellstand + cmd);\u00a0<br \/>  sendToDisplay();<br \/><br \/>  \/\/ Wert f\u00fcr S\u00e4ule Wasserstand (0 ... 100)<br \/>  nextion.print(\"wstand.val=\");<br \/>  nextion.print(w_stand); \u00a0 \u00a0\u00a0<br \/>  sendToDisplay();<br \/><br \/>  displayBattSymb(batt);<br \/><br \/>  if(alarmStufe == 0) {<br \/>  \u00a0 delay(100);<br \/>  }<br \/>  else {<br \/>  \u00a0 tone(BUZZER_PIN, pitch[alarmStufe], duration);<br \/>  }<br \/><br \/>  delay_limit = (led_status == HIGH) ? 1 : 20;<br \/>  if((delay_count % delay_limit) == 0) {<br \/>  \u00a0 digitalWrite(LED_BUILTIN, led_status);<br \/>  \u00a0 led_status = (led_status == HIGH) ? LOW : HIGH;<br \/>  }<br \/>  delay_count++;<br \/>  if(delay_count &gt; 200) {<br \/>  \u00a0 delay_count = 1;<br \/>  }<br \/>}<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hymer-Fahrer kennen vermutlich das Problem: Die Anzeige f\u00fcr den Frischwassertank ist so ungenau, dass sie nicht wirklich etwas nutzt. Der Sensor im Tank hat ohnehin nur 4 Stufen, aber die&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/generationwomo.de\/?page_id=3298\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":107,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"template-page-FeaturedImgHead.php","meta":{"footnotes":""},"class_list":["post-3298","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/pages\/3298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/generationwomo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3298"}],"version-history":[{"count":41,"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/pages\/3298\/revisions"}],"predecessor-version":[{"id":3356,"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/pages\/3298\/revisions\/3356"}],"up":[{"embeddable":true,"href":"https:\/\/generationwomo.de\/index.php?rest_route=\/wp\/v2\/pages\/107"}],"wp:attachment":[{"href":"https:\/\/generationwomo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}