{"id":198,"date":"2018-05-14T09:36:11","date_gmt":"2018-05-14T09:36:11","guid":{"rendered":"https:\/\/www.wpvs.de\/iot-2018\/?p=198"},"modified":"2021-05-14T10:07:06","modified_gmt":"2021-05-14T08:07:06","slug":"raspberrybuy-1-idee-und-architektur","status":"publish","type":"post","link":"https:\/\/www.iot-embedded.de\/iot-2018\/projekt-raspberrybuy\/raspberrybuy-1-idee-und-architektur\/","title":{"rendered":"RaspberryBuy (1): Idee und Architektur"},"content":{"rendered":"<p><em>Woran haben wir diese Woche gearbeitet:<\/em><\/p>\n<p>Diese Woche haben wir die Grundlagen bzw. das Fundament des Projektes gelegt. Hierf\u00fcr haben wir gekl\u00e4rt, welche Technologien zum Einsatz kommen, welchen Ablauf unsere Software besitzt und wie unsere Datenbank aufgebaut werden soll. Um dabei nicht den \u00dcberblick zu verlieren haben wir f\u00fcr jeden dieser Punkte entsprechende Diagramme erstellt, die weiter unten vorgestellt werden.<\/p>\n<p><em>Welche Fortschritte konnten wir dabei erziele:<\/em><\/p>\n<p>Wie bereits beschrieben haben wir direkt angefangen die Struktur des Projektes aufzubauen und festgelegt, welche grundlegenden Funktionen unterst\u00fctzt werden sollen. Die Anwendung konzentriert sich auf die Funktionen Lebensmittel scannen, bearbeiten und l\u00f6schen, Nutzer anlegen sowie zu bearbeiten und entsprechend zu alarmieren, sobald ein falsches Produkt aus dem K\u00fchlschrank entnommen wird. Die Nutzer der Anwendung haben die M\u00f6glichkeit alle eingespeicherten Produkte \u00fcber einen Webbrowser anzeigen zu lassen. Dabei erfolgt die Gestaltung der Oberfl\u00e4che mithilfe von Bootstrap und soll responsive auf unterschiedlichen Ger\u00e4ten funktionieren. Die Bedienung des Raspberry Pi bzw. die Oberfl\u00e4che soll dabei ebenfalls mit Bootstrap gestaltet werden. Die Kommunikation der Clients mit dem Server funktioniert \u00fcber HTTPS. Der Aufbau des Servers erfolgt mithilfe von NodeJs, Typescript und nginx als reverse Proxy, um die HTTPS-Konfiguration zu erleichtern.<\/p>\n<p>F\u00fcr die Firmware des Raspberry Pi wurden mithilfe von Buildroot die ersten Einstellungen vorgenommen. Der Busybox-HTTP Server wurde aktiviert sowie die notwendigen Einstellungen f\u00fcr die Verwendung des QT-Webkit-Kiosk Browser vorgenommen. Des Weiteren wurde der NTP-Client installiert und die 3D-Grafikbeschleunigung aktiviert.<\/p>\n<p>Folgende Modellierungen wurden vorgenommen:<\/p>\n<ul>\n<li>ER-Diagramm der Daten auf dem Server<\/li>\n<li>Use Case Diagramm der Anwendung<\/li>\n<li>Programmablaufplan der Anwendung auf dem Raspberry Pi<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/1a26995b-c5f4-4386-9a0b-91104719d5bd.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-201\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/1a26995b-c5f4-4386-9a0b-91104719d5bd.jpg\" alt=\"\" width=\"646\" height=\"213\" \/><\/a><\/p>\n<p><em>Welche Probleme mussten wir l\u00f6sen bzw. haben wir noch?<\/em><\/p>\n<p>Momentan m\u00fcssen wir erstmal herausfinden, wie Bootstrap am besten funktioniert und f\u00fcr unsere Anspr\u00fcche gut umgesetzt werden kann. Eine Bedienung des Touchscreens ist zum jetzigem Zeitpunkt ebenfalls noch schwer umzusetzen. Die Anbindung des Raspberry Pi\u00b4s mit der Kamera und dem installierten Barcode-Scanner ist zum jetzigen Zeitpunkt nur mit dem Standard-OS Raspian getestet. Probleme gibt es dabei mit der Qualit\u00e4t der Bilder. Diese ist stark von den Lichtverh\u00e4ltnissen abh\u00e4ngig. Aus diesem Grund wird \u00fcberlegt, die jetzige Kamera durch ein anderes Modell mit Blitz zu ersetzen.<\/p>\n<p>Die Anbindung der API zur Erkennung bzw. Interpretierung des erstellten Barcodes wurde zum jetzigem Zeitpunkt zwar getestet, jedoch noch nicht vollst\u00e4ndig implementiert. Dazu wird die Python-Bibliothek ZBar verwendet:<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/zbar_test.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-202\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/zbar_test.png\" alt=\"\" width=\"462\" height=\"299\" \/><\/a><\/p>\n<p><em>Wie weit ist unser Projekt insgesamt? Was fehlt noch?<\/em><\/p>\n<p>Zwar wissen wir was wir insgesamt machen wollen, dennoch muss die Umsetzung der einzelnen Bestandteile erfolgen. Als Orientierung zur Entwicklung der grafischen Oberfl\u00e4che dienen uns die unten angezeigten Mockups. Diese m\u00fcssen in den n\u00e4chsten Wochen programmatisch umgesetzt werden. Des Weiteren muss der Server implementiert und die Erstellung der Pi-Firmware fortgef\u00fchrt werden.<\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/Oberflaeche-2.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-205\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/Oberflaeche-2.jpg\" alt=\"\" width=\"404\" height=\"231\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/Oberflaeche-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-207\" src=\"http:\/\/www.iot-embedded.de\/iot-2018\/wp-content\/uploads\/sites\/3\/2018\/05\/Oberflaeche-1.jpg\" alt=\"\" width=\"409\" height=\"227\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Woran haben wir diese Woche gearbeitet: Diese Woche haben wir die Grundlagen bzw. das Fundament des Projektes gelegt. Hierf\u00fcr haben wir gekl\u00e4rt, welche Technologien zum Einsatz kommen, welchen Ablauf unsere Software besitzt und wie unsere Datenbank aufgebaut werden soll. Um<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/198"}],"collection":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/comments?post=198"}],"version-history":[{"count":1,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/198\/revisions"}],"predecessor-version":[{"id":651,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/posts\/198\/revisions\/651"}],"wp:attachment":[{"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/media?parent=198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/categories?post=198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iot-embedded.de\/iot-2018\/wp-json\/wp\/v2\/tags?post=198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}