<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NodeMCU &#8211; bubuxblog</title>
	<atom:link href="https://www.bubuxblog.de/tag/nodemcu/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bubuxblog.de</link>
	<description></description>
	<lastBuildDate>Sat, 09 Dec 2023 10:27:17 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Gasverbrauch mit ESP8266 messen</title>
		<link>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen/</link>
					<comments>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Mon, 05 Dec 2022 16:49:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Energieeinsparung]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Gasverbrauch]]></category>
		<category><![CDATA[Gaszähler]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[NodeMCU]]></category>
		<category><![CDATA[WEMOS]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=2070</guid>

					<description><![CDATA[Der Sommer ist vorbei und die Tage werden kürzer und ich sitze mal wieder öfter im Büro und habe Zeit und Lust zum Programmieren. Nachdem mein Odroid die Impulse des Reed am Gaszählers von heute auf morgen aus mir bisher unerfindlichen Gründen nicht mehr ausliest (Gaszähler am Odroid), habe ich den Sensor umgebaut auf einen [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Der Sommer ist vorbei und die Tage werden kürzer und ich sitze mal wieder öfter im Büro und habe Zeit und Lust zum Programmieren. Nachdem mein Odroid die Impulse des Reed am Gaszählers von heute auf morgen aus mir bisher unerfindlichen Gründen nicht mehr ausliest (<a rel="noreferrer noopener" href="http://blog.bubux.de/odroid-c2-update-1-gas-und-wasserzaehler/" data-type="post" data-id="1299" target="_blank">Gaszähler am Odroid</a>), habe ich den Sensor umgebaut auf einen <strong>ESP8266 </strong>(bei mir wieder in Form eines <strong>NodeMCU</strong> oder <strong>WEMOS D1 mini</strong>). Das Grundgerüst der Programmierung hatte ich durch den <a rel="noreferrer noopener" href="http://blog.bubux.de/version-1030-der-zisternenmessung-jetzt-auf-github/" data-type="post" data-id="2045" target="_blank">Zisternensensor</a> ja schon und was den Zisternenfüllstand messen kann, kann auch den Gaszähler auslesen. Es ist ja auch aktuell eine gute Idee zumindest zu wissen was seine Gasheizung so treibt.</p>



<p>Ja, es gibt bereits allerhand Lösungen mit ESP Home, ESP Easy &amp; Co. aber das gefällt mir alles nicht so besonders und bedingt immer eine zentrale Lösung wie FHEM, HA, Grafana etc. in der die Ergebnisse anzeigt und auswertet werden. Meine Lösung stellt die Daten aber, wie auch bei der Zisternenfüllstandsmessung, ohne zentrale Komponente direkt auf einer Webseite dar und bietet eine Anbindung an einen Heimautomatiserungs-Server. Dazu aber gleich mehr.</p>



<span id="more-2070"></span>



<p></p>



<p class="has-drop-cap has-medium-font-size">Installation</p>



<p>Zum flashen der bin-Datei auf den Mikrocontroller kann das Programm &#8222;ESPEasy Flasher&#8220; genutzt werden. Dieses ist auf Github unter <a rel="noreferrer noopener" href="https://github.com/BattloXX/ESPEasyFlasher/releases/tag/1.1" target="_blank">https://github.com/BattloXX/ESPEasyFlasher/releases/tag/1.1</a> zu finden. Nach dem Download einfach die ZIP-Datei entpacken, die bin-Datei des Gaszählers in den gleichen Ordner kopieren, Mikrocontroller anschließen und <em>FlashESP8266.exe</em> starten. Nach Auswahl des richtigen COM-Ports und der Firmware startet der Flash-Prozess mit Klick auf &#8222;Flash&#8220;.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/11/espeasy_screenshot.png"><img fetchpriority="high" decoding="async" width="400" height="241" src="http://blog.bubux.de/wp-content/uploads/2022/11/espeasy_screenshot.png" alt="" class="wp-image-2073" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/11/espeasy_screenshot.png 400w, https://www.bubuxblog.de/wp-content/uploads/2022/11/espeasy_screenshot-300x181.png 300w" sizes="(max-width: 400px) 100vw, 400px" /></a></figure>



<p>Der Reed-Kontakt muss an GND und D4 angeschlossen werden. Ich spare mir für die zwei Litzen eine Fritzing-Zeichnung. Einen Pull-Down Widerstand habe ich aktuell nicht eingebaut. Bisher war die Messung des Schaltimpuls wenn der Magnet seine Runden machte immer erfolgreich. Falls es ohne Widerstand doch Probleme gibt kann ich ggf. noch eine Zeichnung nachreichen. Als Reed verwende ich immer noch das gleiche Bauteil wie in der vorherigen Lösung am Odroid (<strong>mk 471 b</strong> z.B. von <a rel="noreferrer noopener" href="http://www.reichelt.de/index.html?ACTION=3;ARTICLE=27681;SEARCH=MK%20471B" target="_blank">Reichelt</a>).</p>



<hr class="wp-block-separator has-text-color has-vivid-red-color has-alpha-channel-opacity has-vivid-red-background-color has-background is-style-wide"/>



<p><strong>Hier die bin-Datei zum direkten Download:</strong></p>



<p><a href="http://www.bubux.de/heimautomatisierung/ota/gaszaehler_aktuell.bin" data-type="URL" data-id="http://www.bubux.de/heimautomatisierung/ota/gaszaehler_aktuell.bin" target="_blank" rel="noreferrer noopener">http://www.bubux.de/heimautomatisierung/ota/gaszaehler_aktuell.bin</a></p>



<hr class="wp-block-separator has-text-color has-vivid-red-color has-alpha-channel-opacity has-vivid-red-background-color has-background is-style-wide"/>



<p class="has-drop-cap has-medium-font-size">Ersteinrichtung und Anschluss des Reed-Kontaktes</p>



<p>Nach dem flashen startet der Sensor und baut ein eigenes WLAN-Netz mit dem Namen &#8222;WLAN-Gaszaehler&#8220; auf (Access Point &#8211; AP). Mit diesem muss man sich z.B. mit einem Smartphone verbinden. Bis es gefunden wird kann es einen Moment dauern &#8211; nicht ungeduldig werden. Nach dem Verbinden kann das Smartphone meckern weil kein Internet &#8222;hinter&#8220; diesem AP-WLAN verfügbar ist. Manchmal wechselt das Gerät dann wieder schnell zum &#8222;normalen&#8220; WLAN. Ist man aber schließlich im AP-WLAN des NodeMCUs eingebucht, ruft man in einem Webbrower die Adresse <strong>192.168.4.1</strong> auf. Es sollte eine Konfigurationsseite zur Eingabe der SSID und des WLAN-Passwortes erscheinen. Hier dann die Daten des eigenen WLANs eingeben und speichern. Der NodeMCU muss anschließend neu gestartet werden (Reset oder vom Strom trennen) und sollte sich beim neuen Start mit den eingegebenen Zugangsdaten in das WLAN einbuchen. Welche IP der NodeMCU bekommen hat, kann man in seinem Router nachschauen. Ab jetzt jetzt ist der Sensor unter der entsprechenden IP im Heimnetz erreichbar. Ist der Sensor nicht in das eingene WLAN eingebucht muss nochmal geprüft werden ob eventuell wieder ein AP aufgemacht wurde.</p>



<p class="has-drop-cap has-medium-font-size">Startseite und weitere Konfiguration</p>



<p>Auf der Startseite des Sensors werden der bisher gemessene Gesamtverbrauch im Kubikmeter (m³) und Kilowattstunden (kWh) angezeigt und eine Kachel die zu einer Seite mit Auswertungen führt. Die Berechnung des Verbrauchs in kWh erfolgt erst nach mindestens einem Impuls. Zudem werden einige technische Daten angezeigt die mit Klick auf den blauen Balken &#8222;Technische Daten&#8220; ausklappen. Unter &#8222;Sonstiges&#8220; klappt der Link zu der Konfigurationsseite und einem Button zum Restart des Sensors auf. Bei Impuls blinkt die eingebaute LED des NodeMCUs kurz auf.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot1.png"><img decoding="async" width="939" height="784" src="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot1.png" alt="" class="wp-image-2074" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot1.png 939w, https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot1-300x250.png 300w, https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot1-768x641.png 768w" sizes="(max-width: 939px) 100vw, 939px" /></a></figure>



<p>In der Konfiguration unter &#8222;Sensordaten&#8220; kann der auf der Startseite oben angezeigte Name definiert werden. Der Startwert muss vom Gaszähler abgelesen werden wobei hier die Angabe mit zwei Nachkommastellen erforderlich ist. An der dritten Nachkommastelle des Zählers ist in der Regel der Magnet befestigt dessen Impulse mit dem Reed erfasst werden.</p>



<p>Mithilfe der Werte &#8222;Brennwert&#8220; und &#8222;Zustandszahl&#8220; wird der Verbrauch in kWh berechnet. Diese Werte sind abhängig vom Gaslieferanten und in der Regel auf der Gasrechnung zu finden. Auch hier sind jeweils zwei Stellen hinter dem Komma einzugeben. Die Werte für Brennwert und Zustandszahl können sich mit der Zeit ändern und können in der Konfiguration entsprechend angepasst werden.</p>



<p>Der Wert Impulszähler sollte zu Beginn auf &#8222;0&#8220; gesetzt werden. Hier werden alle gemessenen Impulse hochgezählt, so das bei einem Neustart des Mikrocontrollers, nicht wieder der Startwert angepasst werden muss. Bei Bedarf kann dieser Wert aber auch im Betrieb geändert werden.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot2.png"><img decoding="async" width="914" height="205" src="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot2.png" alt="" class="wp-image-2076" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot2.png 914w, https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot2-300x67.png 300w, https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot2-768x172.png 768w" sizes="(max-width: 914px) 100vw, 914px" /></a></figure>



<p>Wie auch bei der Messung des Zisternenfüllstandes sind auch hier die aktuellen Werte auch per JSON abrufbar:</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot3.png"><img loading="lazy" decoding="async" width="471" height="165" src="http://blog.bubux.de/wp-content/uploads/2022/11/gaszaehler_screenshot3.png" alt="" class="wp-image-2078" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot3.png 471w, https://www.bubuxblog.de/wp-content/uploads/2022/11/gaszaehler_screenshot3-300x105.png 300w" sizes="auto, (max-width: 471px) 100vw, 471px" /></a></figure>



<p>Auch können die Daten an einen MQTT-Broker gesendet und/oder an eine eigene API welche die Daten per HTTP-Post entgegen nimmt übermittelt werden.</p>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_mqtt.png"><img loading="lazy" decoding="async" width="732" height="220" src="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_mqtt.png" alt="" class="wp-image-2087" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_mqtt.png 732w, https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_mqtt-300x90.png 300w" sizes="auto, (max-width: 732px) 100vw, 732px" /></a></figure>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_eigenapi.png"><img loading="lazy" decoding="async" width="733" height="175" src="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_eigenapi.png" alt="" class="wp-image-2088" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_eigenapi.png 733w, https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_eigenapi-300x72.png 300w" sizes="auto, (max-width: 733px) 100vw, 733px" /></a></figure>



<p class="has-drop-cap">Auswertung auf bubux.de</p>



<p>Falls eine Datenübermittlung an die bubux-WebAPI aktiviert wurde, erscheint auf der Startseite eine Kachel mit einem Graphensymbol. Bei Klick auf diese Kachel öffnet sich eine weitere Webseite welche die übermittelten Daten darstellt. Eine Kachel für den Tagesverbrauch, eine Kachel für den Monatsverbrauch und eine graphische Darstellung der letzten 7 Wochentage. Diese Seite ist noch im Aufbau. Hier werden mindestens noch ein Graph für den Monatlichen- und den Jahresverbrauch dazu kommen. Die dafür gespeicherten Daten sind die lokale IP-Adresse des Sensors (damit der Klick auf den Link für den Rückweg zur lokalen Sensorseite funktioniert), die MAC-Adresse des Sensors zur Zuordnung der Daten sowie die Impulse. Beim Aufruf der Seite werden Brennwert, Zustandszahl und aktueller Zählerstand übermittelt. Diese Daten werden aber nicht gespeichert.</p>



<figure class="wp-block-image size-large"><a href="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_api.png"><img loading="lazy" decoding="async" width="1024" height="55" src="http://blog.bubux.de/wp-content/uploads/2022/12/gaszaehler_api-1024x55.png" alt="" class="wp-image-2089" srcset="https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_api-1024x55.png 1024w, https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_api-300x16.png 300w, https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_api-768x41.png 768w, https://www.bubuxblog.de/wp-content/uploads/2022/12/gaszaehler_api.png 1444w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-full"><a href="http://blog.bubux.de/wp-content/uploads/2023/01/gas_auswertung.png"><img loading="lazy" decoding="async" width="532" height="705" src="http://blog.bubux.de/wp-content/uploads/2023/01/gas_auswertung.png" alt="" class="wp-image-2097" srcset="https://www.bubuxblog.de/wp-content/uploads/2023/01/gas_auswertung.png 532w, https://www.bubuxblog.de/wp-content/uploads/2023/01/gas_auswertung-226x300.png 226w" sizes="auto, (max-width: 532px) 100vw, 532px" /></a></figure>



<p>So, bleibt mir nur noch viel Spaß zu wünschen mit dem neuen Sensor. Kommentare sind gerne willkommen.</p>



<p>Eine Möglichkeit zum Logging der Daten mittels MariaDB und Darstellung mittels Grafana habe ich in einem <a href="http://blog.bubux.de/gasverbrauch-graphisch-darstellen/" data-type="post" data-id="2162">weiteren Artikel </a>beschrieben.</p>



<p>Gruß Chris</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/gasverbrauch-mit-esp8266-messen/feed/</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
		<item>
		<title>Die Zisterne lernt MQTT</title>
		<link>https://www.bubuxblog.de/die-zisterne-lernt-mqtt/</link>
					<comments>https://www.bubuxblog.de/die-zisterne-lernt-mqtt/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Sun, 06 Oct 2019 10:14:43 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Füllstandsmessung]]></category>
		<category><![CDATA[NodeMCU]]></category>
		<category><![CDATA[Zisterne]]></category>
		<category><![CDATA[Zisternenfüllstand]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1814</guid>

					<description><![CDATA[Update vom 14.06.2020 hier Mit der Version 1.017 bekommt der NodeMCU mit dem Sensor für die Füllstandsmessung der Zisterne (siehe auch die beiden anderen Artikel hier und hier) das MQTT-Protokoll beigebracht. Was MQTT ist, erfahrt ihr ausführlich hier in der Wikipedia oder hier mit weiterführenden Erklärungen wie das ganze z.B. in FHEM genutzt werden kann. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><span class="has-inline-color has-luminous-vivid-orange-color">Update vom 14.06.2020 <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/">hier</a></span></p>



<p>Mit der Version 1.017 bekommt der NodeMCU mit dem Sensor für die Füllstandsmessung der Zisterne (siehe auch die beiden anderen Artikel <a href="http://blog.bubux.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/">hier</a> und <a href="http://blog.bubux.de/fuellstandsmessung-der-zisterne-mittels-eps8266-update/">hier</a>) das MQTT-Protokoll beigebracht. Was MQTT ist, erfahrt ihr ausführlich <a rel="noreferrer noopener" aria-label="hier (öffnet in neuem Tab)" href="https://de.wikipedia.org/wiki/MQTT" target="_blank">hier</a> in der Wikipedia oder <a rel="noreferrer noopener" aria-label="hier   (öffnet in neuem Tab)" href="https://wiki.fhem.de/wiki/MQTT" target="_blank">hier</a> mit weiterführenden Erklärungen wie das ganze z.B. in FHEM genutzt werden kann. Im <a rel="noreferrer noopener" aria-label="Heise-Artikel (öffnet in neuem Tab)" href="https://www.heise.de/developer/artikel/MQTT-Protokoll-fuer-das-Internet-der-Dinge-2168152.html" target="_blank">Heise-Artikel</a> wird MQTT auch sehr anschaulich erklärt.</p>



<p>Benötigt wird ein MQTT-Server (z.B. <a rel="noreferrer noopener" aria-label="Mosquitto (öffnet in neuem Tab)" href="https://mosquitto.org/" target="_blank">Mosquitto</a>) dessen IP in die Konfiguration eingetragen werden muss. Optional kann ein Benutzername und ein Passwort genutzt werden. Dann noch das Topic unter dem der Sensor seinen Wert (Füllstand in %) an den MQTT-Broker veröffentlichen soll. Unter &#8222;Intervall&#8220; dann noch die Zeit in Sekunden zwischen den Veröffentlichungen angeben. </p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="862" height="1130" src="https://i2.wp.com/blog.bubux.de/wp-content/uploads/2019/10/zisterne_konfig.png?fit=768%2C1007" alt="" class="wp-image-1816" srcset="https://www.bubuxblog.de/wp-content/uploads/2019/10/zisterne_konfig.png 862w, https://www.bubuxblog.de/wp-content/uploads/2019/10/zisterne_konfig-229x300.png 229w, https://www.bubuxblog.de/wp-content/uploads/2019/10/zisterne_konfig-768x1007.png 768w, https://www.bubuxblog.de/wp-content/uploads/2019/10/zisterne_konfig-781x1024.png 781w" sizes="auto, (max-width: 862px) 100vw, 862px" /></figure>



<p><strong><a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a></strong></p>



<p>Gruß Chris</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/die-zisterne-lernt-mqtt/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Füllstandsmessung der Zisterne mittels ESP8266 (NodeMCU) und Ultraschallsensor</title>
		<link>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/</link>
					<comments>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/#comments</comments>
		
		<dc:creator><![CDATA[diefenbecker]]></dc:creator>
		<pubDate>Fri, 28 Dec 2018 13:55:13 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Eigenbau]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Haustechnik]]></category>
		<category><![CDATA[Heimautomatisierung]]></category>
		<category><![CDATA[Füllstand]]></category>
		<category><![CDATA[Messung]]></category>
		<category><![CDATA[NodeMCU]]></category>
		<category><![CDATA[SR04]]></category>
		<category><![CDATA[Ultraschall]]></category>
		<category><![CDATA[Zisterne]]></category>
		<guid isPermaLink="false">http://blog.bubux.de/?p=1699</guid>

					<description><![CDATA[Update vom 14.06.2020 hier Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt. Zu den alten Artikeln geht es hier und hier. Im folgenden werden alle notwendigen Schritte beschrieben [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><span class="has-inline-color has-luminous-vivid-orange-color">Update vom 14.06.2020 <a href="http://blog.bubux.de/neue-version-der-fuellstandsanzeige-zisterne/">hier</a></span></p>



<p>Heute nochmal ein Update bzw. eine vollständige Zusammenfassung zur Messung des Füllstands der Zisterne mittels Ultraschall. Ich habe den Sketch für den ESP8266 (den ich immer noch in Form eines NodeMCU betreibe) mal etwas aufgebohrt.</p>



<p>Zu den alten Artikeln geht es <a rel="noreferrer noopener" aria-label="hier  (opens in a new tab)" href="http://blog.bubux.de/homematik-zisterne/" target="_blank">hier </a>und <a rel="noreferrer noopener" aria-label="hier (opens in a new tab)" href="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/" target="_blank">hier</a>.</p>



<p>Im folgenden werden alle notwendigen Schritte beschrieben um die Firmware auf den ESP8266 zu flashen und den Sensor in Betrieb zu nehmen.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Benötigte Hardware</h2>



<p>Die benötigte Hardware besteht aus einem NodeMCU mit ESP8266 und einem HC-SR04 Ultraschallsensor. Die Beschaltung folgt weiter unten.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125117-2-1024x643.jpg" alt="NodeMCU" class="wp-image-1755" width="256" height="161"/></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/20181228_125052-1-1024x733.jpg" alt="HC-SR04 Ultraschallsensor" class="wp-image-1753" width="256" height="183"/></figure>



<p>Dann noch ein mindestens vieradriges Kabel und ein Gehäuse zur Unterbringung des Ultraschallsensors in der Zisterne z.B. eine kleine Aufputzdose aus dem Baumarkt.</p>



<span id="more-1699"></span>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Firmware installieren</h2>



<p>Zur Installation der Firmware auf dem ESP8266 muss zuerst die Arduino Software auf einem PC installiert werden. Diese ist für Linux, Windows und MAC unter <a href="https://www.arduino.cc/en/main/software">https://www.arduino.cc/en/main/software</a> verfügbar.</p>



<hr class="wp-block-separator"/>



<p>Um in der Arduino IDE den ESP8266 nutzen zu können, muss in den Einstellungen (Datei -&gt; Voreinstellungen) in das Feld „Zusätzliche Boardverwalter URLs“ folgende URL eingetragen werden: <em>http://arduino.esp8266.com/stable/package_esp8266com_index.json</em><br></p>



<hr class="wp-block-separator"/>



<p>Dann unter  „Werkzeuge -&gt; Board … -&gt; Boardverwalter&#8230;“ nach „esp8266“ suchen und „esp8266 by ESP8266 Community“ installieren. Hiermit werden u.a. die Tools zum flashen der Firmware auf den ESP8266 installiert.</p>



<hr class="wp-block-separator"/>



<p>Herunterladen der aktuellsten Firmware für die Füllstandmessung der Zisterne <a href="http://www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin">www.bubux.de/heimautomatisierung/ota/zisterne_aktuell.bin</a>.</p>



<hr class="wp-block-separator"/>



<p>Den NodeMCU mit dem Rechner verbinden. In der Arduino IDE unter  „<em>Werkzeuge -&gt; Port&#8220;</em> den COM-Port des NodeMCU ermitteln. Das Flashen der Firmware funktioniert leider nicht direkt aus der Arduino IDE heraus. Hierfür muss die Kommandozeile bemüht werden:</p>



<p><strong>Flashen des ESP8266 unter Windows</strong></p>



<p>Unter Windows dazu die Kommandozeile öffnen (cmd.exe) und dort den folgenden Befehl eingeben:</p>



<p> %USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.8\esptool.exe  -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>COMXY</em> -cf <em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des <em>esptool </em>kann ggf. abweichen, das Device hinter <em>-cp</em> (<em>COMxy</em>) muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend angepasst werden.</p>



<p><strong>Flashen des ESP8266 unter Linux</strong></p>



<p>Auf der Kommandozeile folgenden Befehl ausführen:</p>



<p>~/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp <em>/dev/ttyxxxx</em> -cf&nbsp;<em>Pfad_zur_Firmwaredatei</em></p>



<p>Wichtig: Die Versionsnummer des esptool kann ggf. abweichen, das Device hinter <em>-cp</em> muss entsprechend angepasst werden sowie der Pfad zur Firmwaredatei muss entsprechend  angepasst  werden.</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Anschluss des Sensors</h2>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg" alt="" class="wp-image-1659" width="241" height="186" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu.jpg 963w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-300x232.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/zisterne_nodemcu-768x593.jpg 768w" sizes="auto, (max-width: 241px) 100vw, 241px" /></figure></div>



<p>Von HC-SR04 an NodeMCU:</p>



<p>Vcc an VU<br>Gnd an GND<br>Trig an D2<br>Echo an D1</p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Inbetriebnahme</h2>



<p>Ist die Firmware auf den NodeMCU geflasht und der SR04-Ultraschallsensor angeschlossen, kann die Inbetriebnahme erfolgen. Dazu den Sensor mit Strom versorgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor versucht sich mit einem konfigurierten WLAN zu verbinden. Funktioniert dies nicht (was bei der ersten Inbetriebnahme der Fall ist), erstellt der Sensor einen WLAN Accesspoint mit dem Namen  „<em>WLAN-Zisterne</em>&#8220; der z.B. im Smartphone gefunden werden sollte. Mit diesem WLAN verbinden.</p>



<hr class="wp-block-separator"/>



<p>Nun im Browser des verbundenen Gerätes die Adresse <em>http://192.168.4.1</em> aufrufen. Diese Adresse wird in der Regel auch in den Verbindungseinstellungen des verbundenen WLAN angezeigt und verlinkt. Es öffnet sich nun die Konfigurationsseite des Sensors.</p>



<hr class="wp-block-separator"/>



<p>Dort die SSID und das Passwort des Heim-WLAN eingeben und auf &#8222;Konfiguration speichern&#8220; klicken. Die weiteren Einstellungen können später erfolgen.</p>



<hr class="wp-block-separator"/>



<p>Der Sensor startet daraufhin neu und versucht sich mit dem Heim-WLAN zu verbinden. War dies erfolgreich ist der Accesspoint nicht mehr erreichbar und des Sensor sollte eine IP-Adresse im Netzwerk zugewiesen bekommen haben. Diese kann im Router nachgeschaut werden )in der Friztbox z.B. unter &#8222;<em>Heimnetz -&gt; Netzwerk</em>&#8222;).</p>



<hr class="wp-block-separator"/>



<p>Ist der Accespoint „<em>WLAN-Zisterne</em>&#8220; weiterhin sichbar, war die Verbindung mit den Heim-WLAN nicht erfolgreich. Dann die obigen Schritte erneut ausführen.<br></p>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Betrieb</h2>



<p>Die Oberfläche des Sensor ist nun im Browser nach Eingabe der IP-Adresse verfügbar. Für den weiteren Betrieb müssen zuerst weitere Einstellungen vorgenommen werden. Dazu den Bereich &#8222;<em>Sonstiges</em>&#8220; aufklappen und auf &#8222;<em>Konfiguration&#8220;&nbsp;</em>klicken.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png" alt="" class="wp-image-1703" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor_all-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure></div>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/konfig_sensor.png" alt="" class="wp-image-1705" width="260" height="443" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor.png 519w, https://www.bubuxblog.de/wp-content/uploads/2018/12/konfig_sensor-176x300.png 176w" sizes="auto, (max-width: 260px) 100vw, 260px" /></figure>



<p><strong>Einstellungen des Sensors</strong></p>



<p>Unter <em>&#8222;Abstand Sensor/Boden&#8220;</em> muss der Abstand in Zentimeter zwischen Sensor und Boden der Zisterne angegeben werden. Unter <em>&#8222;Abstand Sensor/Max. Höhe&#8220;</em> muss der Abstand zwischen Sensor und Wasseroberfläche bei maximalen Wasserstand angebenen werden. Ist die Zisterne nicht voll, kann der Wert auch jederzeit korrigiert werden</p>



<hr class="wp-block-separator"/>



<p><strong>Daten an eigene API übergeben</strong></p>



<p>Die Daten des Sensors können an eine eigene Schnittstelle übergeben werden. Hierzu kann ein Server, Port und der Pfad angegeben werden. Die Sensordaten werden als Argumente in der URL angehangen. So kann z.B. ein PHP-Script auf dem Server aufgerufen werden welches die angehangenen Argumente empfängt und weiter verarbeitet (z.B. an FHEM übergibt oder in eine Datenbank schreibt.</p>



<p>Update 20.07.2019</p>



<p>Die URL für die eigene API kann mit zwei Variablen frei definiert werden. Dazu die Variablen &#8222;_abstand&#8220; und &#8222;_fuellstand&#8220; in einer beliebigen URL nutzen. Im NodeMCU werden die beiden Platzhalter durch die echten Werte ersetzt.</p>



<p>Zum Beispiel wird aus der konfigurierten URL:<br><em>/umwelt/zisterne_neu.php?abstand=_abstand&amp;fuellstand=_fuellstand</em><br>beim Aufruf der eigenen API dann:<br><em>/umwelt/zisterne_neu.php?abstand=29&amp;fuellstand=100.00&amp;vcc=2.75 </em></p>



<p>Hier ein Beispielscript welches das Schreiben der Werte in eine Textdatei und in eine MySQL-Datenbank vornimmt sowie die Übergabe der Werte an eine FHEM-Installation:</p>



<pre class="wp-block-code"><code>&lt;?php

$fuellstand=$_GET&#91;"fuellstand"];
$abstand=$_GET&#91;"abstand"];
$vcc=$_GET&#91;"vcc"];

//*************************
// Werte in Datei schreiben
//*************************
$datum = date("d.m.Y H:i");
$handle = fopen ('zisterne.txt', 'a');
fwrite ($handle, $datum.",".$fuellstand.",".$abstand."\n");
fclose ($handle);

//****************************
//Werte in Datenbank schreiben
//****************************
$servername = "localhost";
$username = "benutzer";
$password = "passwort";
$dbname = "dbname";

$connection = new mysqli($servername, $username, $password, $dbname);
if ($connection->connect_error) {
        die("Connection failed: " . $connection->connect_error);
}
$sql = "INSERT INTO zisterne (timestamp,fuellstand,spannung) VALUES (CURRENT_TIMESTAMP,$fuellstand,$vcc)";
if ($connection->query($sql) === TRUE) {
        //echo "INSERT war erfolgreich";
} else {
        echo "Error: " . $sql . "&lt;br>" . $connection->error;
}

//***********************
//Werte an FHEM übergeben
//***********************
$fhemhost = "192.168.178.1";
$fhemport = 7072;
$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneFuellstand ".$fuellstand."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);

$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
$fhemcmd = "set ZisterneSpannung ".$vcc."\r\nquit\r\n";
fwrite($fhemsock, $fhemcmd);
fclose($fhemsock);
?></code></pre>



<hr class="wp-block-separator"/>



<p><strong>Daten an bubux.de übergeben</strong></p>



<p>Steht kein eigener Server zur Historisierung der Daten zur Verfügung, können die gemessenen Werte an bubux.de gesendet werden. Dort ist (aktuell) eine Auswertung des letzten 30 Tage verfügbar und wird graphisch dargestellt. Nach der Aktivierung mittels der Checkbox ist ein entsprechender Link auf der Startseite des Sensors verfügbar.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png" alt="" class="wp-image-1704" width="389" height="422" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_web-e1546004129378-277x300.png 277w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<p>Es werden der prozentuale Füllstand, die MAC-Adresse zur Zuordnung der Daten, die lokale IP des Sensors zur Verlinkung von der Webseite auf bubux.de zur Webseite des Sensors und die Version der Firmware übergeben.</p>



<hr class="wp-block-separator"/>



<p><strong>Startseite des Sensors</strong></p>



<p>Sind alle Einstellungen vorgenommen kann der Sensor genutzt werden. Auf der Startseite werden der prozentuale Füllstand und der aktuelle Abstand zwischen Sensor und Wasseroberfläche angezeigt.</p>



<figure class="wp-block-image is-resized"><img loading="lazy" decoding="async" src="http://blog.bubux.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png" alt="" class="wp-image-1702" width="389" height="463" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286.png 518w, https://www.bubuxblog.de/wp-content/uploads/2018/12/fuellstand_sensor-e1546004197286-252x300.png 252w" sizes="auto, (max-width: 389px) 100vw, 389px" /></figure>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Einbau</h2>



<p>Da der Einbau je nach Zisterne individuell ist, will ich nicht viel Worte darüber verlieren. Nur soviel, das ich den Sensor in ein Baumarkt-Aufputzdose gepackt habe und mit Heißkleber &#8222;vergossen&#8220; haben. Harz wäre wahrscheinlich besser gewesen, aber der Sensor funktioniert bisher einwandfrei. Der Sensor hängt nach unten an einem Brett in der Zisterne. Der NodeMCU ist an ein etwa 6m langes Kabel angeschlossen und ist in einem Lagerräumchen untergebracht.</p>



<figure class="wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg" alt="" data-id="1653" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103325/" class="wp-image-1653" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103325-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg" alt="" data-id="1652" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103233/" class="wp-image-1652" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103233-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="http://blog.bubux.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg" alt="" data-id="1651" data-link="http://blog.bubux.de/fuellstandmessung-der-zisterne-2ter-ansatz/20180811_103143/" class="wp-image-1651" srcset="https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-1024x768.jpg 1024w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-300x225.jpg 300w, https://www.bubuxblog.de/wp-content/uploads/2018/08/20180811_103143-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul></figure>



<p>Ich würde mich über Rückmeldungen (Fehler, Verbesserungswünsche, &#8230;) bzgl. der neuen Firmwareversion freuen. Todo wäre noch die Daten per JSON abrufbar zu machen und z.B. ein Plugin für FHEM zu bauen.</p>



<p>Viel Spaß beim basteln!</p>



<p>Chris<br></p>



<p><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bubuxblog.de/fuellstandmessung-der-zisterne-mittels-esp8266-nodemcu-und-ultraschallsensor/feed/</wfw:commentRss>
			<slash:comments>118</slash:comments>
		
		
			</item>
	</channel>
</rss>
