{"id":655,"date":"2023-05-15T11:46:10","date_gmt":"2023-05-15T09:46:10","guid":{"rendered":"https:\/\/www.iot-embedded.de\/iot-2023\/?p=655"},"modified":"2023-05-15T11:46:11","modified_gmt":"2023-05-15T09:46:11","slug":"architektur-unserer-automatisierten-napfstandmessungssoftware","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2023\/2023\/05\/15\/architektur-unserer-automatisierten-napfstandmessungssoftware\/","title":{"rendered":"Architektur unserer automatisierten Napfstandmessungssoftware"},"content":{"rendered":"\n<p>In diesem Blogeintrag m\u00f6chten wir Ihnen gerne die \u00fcbergeordnete Architektur vorstellen, die unserem smarten Futternapf als Grundlage dienen soll. Zur groben Gliederung l\u00e4sst sich unsere Architektur in die Hardwarekomponenten, das Backend sowie ein Frontend unterteilen. Die im Hardwareteil verwendeten Ger\u00e4te werden noch in einem weiteren Blogeintrag n\u00e4her behandelt werden und sind nicht Fokus dieses Beitrags. Im Folgenden werden die Bestandteile des Backends und Frontends beleuchtet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Backend<\/h2>\n\n\n\n<p>Zur Implementierung unseres Backends haben wir uns f\u00fcr die Programmiersprache Python entschieden. Grund daf\u00fcr war die weite Verbreitung der Sprache, sodass unsere Gruppe schon in der Vergangenheit in verschiedenen Projekten Erfahrungen damit sammeln konnte. Die API, die das Backend zur Verf\u00fcgung stellt, um die zugrundeliegenden Daten abzufragen, wird mithilfe der Python Bibliotheken falcon und uvicorn realisiert. Da die von den Ger\u00e4ten gesammelten Daten bez\u00fcglich der aktuellen und vergangenen F\u00fcllst\u00e4nde der Futtern\u00e4pfe auch gespeichert werden m\u00fcssen, um Aussagen \u00fcber das langfristige Fressverhalten der Vierbeiner treffen zu k\u00f6nnen, wird eine Datenbank ben\u00f6tigt. Dabei setzen wir auf eine PostgreSQL Datenbank, da sich diese durch eine einfache Initialisierung auszeichnet und f\u00fcr die zu erwartenden Datenmenge angemessen erscheint.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frontend<\/h2>\n\n\n\n<p>Unser Frontend werden wir als React Webapp implementieren. Da React sehr verbreitet ist und als eines der Standard Frameworks f\u00fcr Webapps angesehen werden kann, kann auf eine gro\u00dfe Grundlage zur Umsetzung solcher Apps zur\u00fcckgegriffen werden. F\u00fcr die grafische Veranschaulichung der Daten eignet sich die nivo Bibliothekt, da sie die M\u00f6glichkeit bietet, aus einer Vielzahl an Diagrammtypen zu w\u00e4hlen und somit f\u00fcr viele Anwendungsf\u00e4lle genutzt werden kann. Au\u00dferdem lassen sich die Diagramme einfach als React Komponenten in die eigene Website einbetten. Auf diese Weise k\u00f6nnen wir also einen kompletten Datenfluss implementieren, vom Sammeln der Daten durch die Sensoren an unseren IoT-Ger\u00e4ten, \u00fcber die PostgreSQL Datenbank und unser Python Backend und letztendlich die Anzeige mithilfe der React Webapp f\u00fcr den Endanwender.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Blogeintrag m\u00f6chten wir Ihnen gerne die \u00fcbergeordnete Architektur vorstellen, die unserem smarten Futternapf als Grundlage dienen soll.<\/p>\n","protected":false},"author":30,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[11,12,13,14,15],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/655"}],"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\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":4,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/655\/revisions"}],"predecessor-version":[{"id":659,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/posts\/655\/revisions\/659"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/media?parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/categories?post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2023\/wp-json\/wp\/v2\/tags?post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}