Es wird ein verteiltes System mit verschiedenen Komponenten wie Services, einem Frontend sowie einer Datenbank erstellt, welches über zu entwickelnde Schnittstellen miteinander kommuniziert.
Kursbeschreibung
ESP-Module sind WIFI-fähige, kleine und günstige Mikrocontroller, mit denen man zahlreiche Projekte im Bereich Internet der Dinge umsetzen kann. Mit mehreren ESP-Modulen erfassen wir Daten von angeschlossenen Sensoren und übertragen diese an einen selbst programmierten Server, der mit Hilfe von nodeJS implementiert wird. Dieser Server speichert die empfangenen Daten in einer Datenbank, für die zunächst entsprechende Datenmodelle erstellt werden. Um den Zugriff auf diese Daten zu ermöglichen, entwickeln wir eine Schnittstelle, auch API genannt. Durch diese API können andere Dienste, und insbesondere das Frontend (der für den Benutzer sichtbare Teil der Anwendung), Daten abrufen und darstellen. Die beiden Kurse “Technische Grundlagen 2” und “Datenbanken” wurden als zusammenhängendes Modul durchgeführt.
Zielsetzung
Das Hauptziel dieses Kurses ist es, den Studierenden Kenntnisse moderner Softwarearchitekturen zu vermitteln und ihnen die notwendigen Tools bereitzustellen, um diese Architekturen praktisch umzusetzen. Das Endergebnis ist ein Fullstack-Entwicklungsprojekt, das skalierbar, erweiterbar und professionell realisiert werden kann.
Aufgabenstellung
Die Aufgabe der Studierenden ist es, ein verteiltes System zu erstellen, das prototypisch und funktional ist, eine Datenbankanbindung hat und voll funktionsfähig sowie testbar ist. Dieses System soll Sensordaten über ESP-Module erfassen, speichern und für den Benutzer visuell darstellen.
Das Projektthema durfte von uns Studenten selbst gewählt werden.
Vorgaben :
Sensormodul, das Daten erhebt und in ein System einspeist
Backend mit eigener dokumentierter API für HTTP-Requests
Anzeige der gespeicherten Sensorwerte in einem Frontend (freie Auswahl des Frameworks)
Nutzung von .env oder Ähnlichem, um Credentials auf GitHub zu verbergen.
Produktorierntiertes Entwickeln
Themenfindung:
Als Projektidee wurde von uns das Fach mit Entwurf Grundlagen 2 und Visual Prototyping kombiniert.
Software Ideen UX und UI wurden also darin entwickelt während die Technische Umsetzung
in Technische Grundlagen 2 stattfand.
Das Thema “Pflanzenprojekt” war in Entwurfgrundlagen 2 Vorgabe.
Aufbau:
Das Projekt besteht aus
Hardware
Backend
Frontend
OpenAI
Hardware
ESP32
ESp32 Cam
Erdfeuchtesensor
Luftfeuchtesensor
Lufttemperatursensor
Lichtsensor
3d gedrucktes Gehäuse
LiPo
Die Hauptkomponente unseres Systems bildet der ESP32 Feather. Direkt an diesen sind die Sensoren angebracht, die wichtige Daten zur Pflanze erfassen. Zusätzlich haben wir eine ESP32 Cam integriert, die Bilder der Pflanze aufnimmt. Diese Bilder werden über eine API an einen Server gesendet, wo sie sowohl dem Frontend als auch der OpenAI API zur Verfügung gestellt werden. Um sicherzustellen, dass die beiden ESP-Geräte nahtlos zusammenarbeiten, greift die Kamera über Websockets auf die Netzwerkinformationen des Feathers zu. Auf diese Weise muss man nur ein Gerät mit dem Netzwerk verbinden, und beide funktionieren als eine Einheit.
Backend
MongoDB ERD
Unser Backend dient zur Speicherung und Abrufung der Daten, Profil-credentiales und Bilddateien in Base64 Format. In MongoDB. Zur Erstellung der Datenbank nutzten wir teilweise Mongoose mit Modells und teilweise Plain MongoDB in deren.
Frontend
Als Frontend Framework wird Svelte benutzt. Hierbei wird sich stark an dem App Entwurf aus Entwurfgrundlagen Entwurfgrundlagen 2
orientiert um ein möglichst durchdachtes UX und UI zu haben. Mit mehr Zeit wäre die App so umsetzbar.
Das haben wir gelernt:
Das Projekt klingt zunächst nicht wie etwas neues. Die einzelnen komponenten davon gibt es bereits in verschiednen Systemen. Es gibt Handy Apps die dazu in der Lage sind, mit AI eine Pflanze und Krankheiten zu erkennen, und Sensorstäbe die stupide Feuchtigkeitswerte sammeln.
Dieses Projekt diente aber nicht nur dazu diese Fähigkeiten sinnvoll zu verbinden und ein Gerät zu entwickeln welches dauerhaft die Gesamte Pflanze überwachen kann. Sondern damit zu erlernen wie in der Realtität die Kommunikation zwischen Geräten und Frontend umgesetzt werden. Wie funktionieren verschiedene Datenbanken, was ist ein Broker, eine Rest API, wie erstellt man ein EDR und wie bindet man auf völlig neue weise eine KI ein ohne sie selbst trainieren zu müssen.
Hinterlasse einen Kommentar