{"id":472,"date":"2025-08-30T15:27:19","date_gmt":"2025-08-30T15:27:19","guid":{"rendered":"https:\/\/oberle-it-beratung.de\/?p=472"},"modified":"2025-08-30T15:27:19","modified_gmt":"2025-08-30T15:27:19","slug":"physical-computing-2","status":"publish","type":"post","link":"https:\/\/www.elrebo.de\/index.php\/2025\/08\/30\/physical-computing-2\/","title":{"rendered":"Physical Computing"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5158-1024x754.jpeg\" alt=\"\" class=\"wp-image-473\" \/><\/figure>\n\n\n\n<p>Links sehen wir einen Ultraschallsensor und rechts einen kleinen Computer, einen M5 Atom Lite. Diese Hardware, zusammen mit einer Stromversorgung \u00fcber das USB-C-Kabel, ist alles was wir brauchen, um Abst\u00e4nde zu messen und die Messwerte zu verarbeiten.<\/p>\n\n\n\n<p>Der M5 Atom Lite ist ein ESP32-Mikroprozessor mit WiFi, einem Button, einer RGB-LED, einem IR-Sender, mehreren IO-Ports und einer Reset-Taste. Man kann ihn z.B. mit der Arduino-IDE von einem Windows-, Linux- oder MacOS-Computer \u00fcber das USB-C-Kabel programmieren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wasserstand im Kanister messen<\/h3>\n\n\n\n<p>Das war die erste Aufgabe, die ich mit dieser Hardware erledigt habe.<\/p>\n\n\n\n<p>Der Ultraschallsensor wird im Deckel des Kanisters befestigt und schaut auf die Wasseroberfl\u00e4che. Er misst den Abstand in festgelegten Intervallen (in Minuten):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"84\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.55.41.png\" alt=\"\" class=\"wp-image-476\" style=\"width:310px\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.55.41.png 472w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.55.41-300x53.png 300w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<p>Es gibt zwei Parameter, um den gemessenen Abstand in den Wasserstand im Kanister umzurechnen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"116\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.42.53.png\" alt=\"\" class=\"wp-image-475\" style=\"width:350px\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.42.53.png 530w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-15.42.53-300x66.png 300w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Anzeige des Wasserstands mit der RGB-LED<\/h4>\n\n\n\n<p>Ich lasse die LED in einer von drei Farben leuchten, je nachdem, wie voll der Kanister ist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Abstand kleiner als distanceFull: <br>=&gt; LED leuchtet blau<\/li>\n\n\n\n<li>Abstand zwischen distanceFull und distanceEmpty:<br>=&gt; LED leuchtet gr\u00fcn<\/li>\n\n\n\n<li>Abstand gr\u00f6\u00dfer als distanceEmpty:<br>=&gt; LED leuchtet rot<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Anzeige des Wasserstands im Webbrowser<\/h4>\n\n\n\n<p>Um den Wassertand im Webbrowser anzuzeigen, erweitert man das Programm um einen Webserver, der immer den letzten Messwert anzeigt. Auf diesen Webserver kann man dann vom PC oder vom Handy aus zugreifen, wenn diese im gleichen WLAN sind.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"1024\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5105-576x1024.png\" alt=\"\" class=\"wp-image-477\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5105-576x1024.png 576w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5105-169x300.png 169w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5105.png 750w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><figcaption class=\"wp-element-caption\">Hier ein Beispiel mit der vorherigen Version der Hardware<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Speichern der Wasserstands-Messwerte in einer Datenbank<\/h4>\n\n\n\n<p>Um den Wasserstand in einer Datenbank zu protokollieren, ben\u00f6tigt man eine Datenbank, auf die der M5 Atom Lite zum Schreiben des Wasserstands zugreifen kann. Daf\u00fcr habe ich eine InfluxDB verwendet. Die InfluxDB besitzt ein HTTP-Interface, \u00fcber das der Prozessor die Daten in die InfluxDB schreiben kann.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55-1024x714.png\" alt=\"\" class=\"wp-image-479\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55-1024x714.png 1024w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55-300x209.png 300w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55-768x535.png 768w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55-1536x1071.png 1536w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.17.55.png 1882w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Hier wird der Kanister gerade gef\u00fcllt und die Messwerte werden jede Sekunde in die Datenbank geschrieben.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Vom Sensor zum Aktor<\/h3>\n\n\n\n<p>Wir k\u00f6nnen den Wasserstand im Kanister messen, aber wir k\u00f6nnen bisher nichts tun, wenn der Kanister leer l\u00e4uft. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"984\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.45.48-1024x984.png\" alt=\"\" class=\"wp-image-480\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.45.48-1024x984.png 1024w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.45.48-300x288.png 300w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.45.48-768x738.png 768w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2025\/08\/Bildschirmfoto-2025-08-30-um-16.45.48.png 1174w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In diesem Szenario steht der Kanister auf dem Balkon auf einem Regal und versorgt die automatische Bew\u00e4sserungsanlage mit Wasser. Der Wasserstand im Kanister wird mit dem Wasserstandssensor gemessen.<\/p>\n\n\n\n<p>Wenn der Kanister leer ist, dann soll die Tauchpumpe im Vorratsbeh\u00e4lter aktiviert werden, die den Kanister im Regal wieder auff\u00fcllt. Sobald der Kanister voll ist, soll die Pumpe wieder deaktiviert werden.<\/p>\n\n\n\n<p>Wir ben\u00f6tigen also noch einen Aktor, der die Tauchpumpe mit Strom versorgt, wenn die richtige Bedingung eingetreten ist (Kanister ist leer) und der die Pumpe wieder abschaltet, wenn daf\u00fcr die richtige Bedingung eingetreten ist (Kanister ist wieder voll).<\/p>\n\n\n\n<p>Die einfachste L\u00f6sung daf\u00fcr ist eine schaltbare Steckdose, die \u00fcber das WLAN ein- und ausgeschaltet werden kann. Z.B. so ein Shelly Plug S Gen3:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/23025F69-8EC4-4AC4-89B7-7AEC5A67A160-576x1024.jpeg\" alt=\"\" class=\"wp-image-481\" \/><\/figure>\n\n\n\n<p>Diese Steckdose schaltet dann ein Netzteil an und aus, das eine 12V-Tauchpumpe mit Strom versorgt.<\/p>\n\n\n\n<p>Diese einfachste L\u00f6sung ist aber nicht die billigste. Man kann auch ein Relais direkt an den M5 Atom Lite anschlie\u00dfen und die Tauchpumpe dar\u00fcber ansteuern. Das habe ich hier in einer Plastikschachtel aufgebaut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5173-768x1024.jpeg\" alt=\"\" class=\"wp-image-482\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5174-768x1024.jpeg\" alt=\"\" class=\"wp-image-483\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2025\/08\/IMG_5171-768x1024.jpeg\" alt=\"\" class=\"wp-image-484\" \/><\/figure>\n\n\n\n<p>Weitere Infos zu diesem Projekt gibt es direkt bei mir. Zum Beispiel &#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>wie man die RGB-LED vom M5 Atom Lite ansteuert<\/li>\n\n\n\n<li>wie man den Webserver im M5 Atom Lite programmiert<\/li>\n\n\n\n<li>wie man einen einfachen Dispatcher in die loop-Funktion einbaut<\/li>\n\n\n\n<li>wie man die Deep Sleep Funktion des M5 Atom Lite verwendet<\/li>\n\n\n\n<li>wie man eine InfluxDB3 auf einer DiskStation zum Laufen bekommt<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Links sehen wir einen Ultraschallsensor und rechts einen kleinen Computer, einen M5 Atom Lite. Diese Hardware, zusammen mit einer Stromversorgung \u00fcber das USB-C-Kabel, ist alles was wir brauchen, um Abst\u00e4nde zu messen und die Messwerte zu verarbeiten. Der M5 Atom Lite ist ein ESP32-Mikroprozessor mit WiFi, einem Button, einer RGB-LED, einem IR-Sender, mehreren IO-Ports und [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":473,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[21,11,38,41,46,57,58],"class_list":["post-472","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-werkzeuge","tag-arduino","tag-esp32","tag-home-automation","tag-influxdb","tag-physical-computing","tag-ultraschallsensor","tag-wasserstand"],"_links":{"self":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/comments?post=472"}],"version-history":[{"count":0,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/472\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media\/473"}],"wp:attachment":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media?parent=472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/categories?post=472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/tags?post=472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}