{"id":839,"date":"2023-06-23T12:04:02","date_gmt":"2023-06-23T10:04:02","guid":{"rendered":"https:\/\/www.iot-embedded.de\/iot-2023\/?p=839"},"modified":"2023-06-23T12:04:04","modified_gmt":"2023-06-23T10:04:04","slug":"technische-seite-unseres-iot-devices-futternapf","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2023\/2023\/06\/23\/technische-seite-unseres-iot-devices-futternapf\/","title":{"rendered":"Technische Seite unseres IoT-Devices \u201eFutternapf\u201c"},"content":{"rendered":"\n<p>Wie bisher schon bekannt ist, wird eine W\u00e4gezelle in Kombination mit einem ESP32 verwendet, um den Futternapf an sich, in ein smartes Device zu verwandeln. In diesem Post soll auf die technische Umsetzung seitens des Futternapfes eingegangen werden.<br><strong>Aktueller Zustand:<\/strong><br>Aus Sicht eines Users, wird damit gestartet, den Napf mit Strom zu versorgen. Hierzu reicht es aus, den ESP32 per Kabel (Micro-USB zu USB) und einem entsprechenden Netzteil zu verbinden. Folgend spannt der ESP32 ein WLAN-Netzwerk auf und startet einen Webserver in diesem Netzwerk. Ein User muss sich mit einem geeigneten Ger\u00e4t mit diesem WLAN verbinden und dann die IP-Adresse des ESP32 aufrufen, um auf die Oberfl\u00e4che des Webservers zu gelangen. Hier erfolgt die Eingabe von den WIFI-Credentials (SSID und Passwort) des eigenen Netzwerks, um dem ESP32 eine Internetverbindung zu erm\u00f6glichen. Des Weiteren m\u00fcssen Username und Passwort des Useraccounts in Verbindung mit der entsprechenden Napf-ID eingegeben werden, um den Napf einem User richtig zuordnen zu k\u00f6nnen.<br>Diese Eingabe wird durch Beschreiben des Flash-Speichers des ESP32 auch \u00fcber das Ausschalten des Ger\u00e4tes hinaus gespeichert, damit ein User nicht nach jedem Neustart alle Eingaben erneut t\u00e4tigen muss.<br>Auf die Eingabe oder einen Neustart erfolgt zun\u00e4chst die Verbindung mit dem Internet. Zun\u00e4chst wird der User mithilfe der eingegebenen Accountdaten durch einen API-Call authentifiziert. Nur wenn der User existiert und einen Napf passend zur eingegebenen Napf-ID registriert ist, kann die Anwendung sinnvoll weiterlaufen.<br>Gelingt die Authentifizierung, kann eine Verbindung zum MQTT-Broker aufgebaut werden. Die MQTT-Verbindung wird genutzt, um Messwerte zu sinnvollen Zeitpunkten zu versenden. Die Messwerte wiederum stammen von der W\u00e4gezelle, deren analoger Input durch einen HX711 Analog\/Digital-Wandler umgewandelt und \u00fcber zwei GPIO-Pins am ESP32 ausgelesen wird.<\/p>\n\n\n\n<p><strong>Anstehende Erweiterungen:<\/strong><br>Zun\u00e4chst muss ein Konzept entwickelt werden, wie und wann der User Informationen zur WLAN-Verbindung und seinen Accountdaten \u00e4ndern kann. Zwar kann immer wieder das WLAN und der Webserver des ESP32 gestartet werden, wenn eine WLAN-Verbindung oder die Authentifizierung fehlschl\u00e4gt, jedoch w\u00e4re es deutlich besser, wenn der User selbst kontrollieren k\u00f6nnte, wann er eine neue Eingabe t\u00e4tigen m\u00f6chte.<br>Dar\u00fcber hinaus muss bez\u00fcglich der MQTT-Nutzung \u00fcber ein entsprechendes Sicherheitskonzept nachgedacht werden. Aktuell existiert f\u00fcr alle N\u00e4pfe eine Topic, in die die N\u00e4pfe publishen und auf die das Backend subscribed. Hier muss gepr\u00fcft werden, ob der Betrieb in dieser Form trotzdem sicher gegen\u00fcber Angreifern und Manipulationsversuchen\u00a0ist.<\/p>\n\n\n\n<p>Von Lukas Melcher und Lukas Ortkamp.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie bisher schon bekannt ist, wird eine W\u00e4gezelle in Kombination mit einem ESP32 verwendet, um den Futternapf an sich, in ein smartes Device zu verwandeln. In diesem Post soll auf die technische Umsetzung seitens des Futternapfes eingegangen werden.Aktueller Zustand:Aus Sicht<\/p>\n","protected":false},"author":35,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[33],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/839"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/comments?post=839"}],"version-history":[{"count":1,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/839\/revisions"}],"predecessor-version":[{"id":840,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/839\/revisions\/840"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/media?parent=839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/categories?post=839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/tags?post=839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}