Einbindung der Webserver-Bibliotheken

Vor der ersten Nutzung des Sensors ist die Einbindung von zwei Bibliotheken erforderlich, damit der asynchrone Webserver problemlos funktioniert. Da die Bibliotheken standardmäßig nicht in der Bibliotheken-Sammlung der Arduino-Entwicklungsumgebung enthalten sind, müssen die Bibliotheken aus dem Internet heruntergeladen und in die Entwicklungsumgebung eingebunden werden.


Einrichtung des Sensors

Nachdem die erforderlichen Bibliotheken eingebunden wurden, müssen das Leer- und Maximalgewicht der Flasche festgelegt werden. Dazu werden die Werte der entsprechenden Variablen in der main-Datei angepasst.

Variablen für Leer- und Maximalgewicht


Netzwerkverbindung

Damit die Benachrichtigungen via Discord und die Webseite funktionieren, ist die Verbindung mit einem WLAN-Netzwerk erforderlich. Für den Netzwerknamen und das entsprechende Passwort wurden zwei Variablen in der Datei “WiFiConnection.h” angelegt.

Variablen für Netzwerkname und Netzwerkpasswort

Die Datei ist an entsprechender Stelle in die main-Datei des Sensors eingebunden und erleichtert dem/der Benutzer*in die Suche nach den beiden Variablen. Bei einem Netzwerkwechsel müssen die Werte der zwei Variablen an das aktuelle Netzwerk angepasst werden.


Änderungen an der main-Datei und Dateien der Webseite hochladen

Nachdem die Änderungen an der main-Datei gespeichert wurden, müssen diese noch auf den Mikrocontroller des Sensors übertragen werden. Dazu wird der Quellcode über den entsprechenden Button (alternativ: Strg + U) in der Arduino-Entwicklungsumgebung auf den Mikrocontroller hochgeladen.

Vor der ersten Nutzung des Sensors müssen auch die Dateien der Webseite auf den Mikrocontroller hochgeladen werden, da dieser während der Nutzung des Sensors als Webserver für die Webseite dient.

Um die Dateien der Webseite auf den Mikrocontroller zu übertragen, wird das Dateisystem “SPIFFS” verwendet. Das Dateisystem ist standardmäßig nicht in der Arduino-Entwicklungsumgebung vorinstalliert und muss somit von dem/der Benutzer*in heruntergeladen werden (https://github.com/esp8266/arduino-esp8266fs-plugin/releases). Nachdem der entsprechende Zip-Ordner aus dem GitHub-Repository heruntergeladen wurde, muss der Ordner in dem Verzeichnis “C:\Program Files\Arduino\tools” (unter Windows) extrahiert und die Arduino-Entwicklungsumgebung neu gestartet werden.

Für den Upload der Dateien wird in der Menüleiste der Punkt “Werkzeuge” ausgewählt. In der angezeigten Liste wird dann der Punkt “ESP8266 Sketch Data Upload” ausgewählt. Danach startet der Upload der Dateien auf den Mikrocontroller.

Menüpunkt für den Upload der Dateien der Webseite

Hinweis: Der Upload der Dateien für die Webseite sollte immer nach dem Upload der Dateien für den Sensor erfolgen, um Probleme bei der Speicherung der Dateien zu vermeiden.


Aufruf der Webseite

Nachdem der Upload abgeschlossen wurde und sich der Sensor mit dem WLAN-Netzwerk verbunden hat, muss die Webseite im Browser aufgerufen werden. Die Webseite lässt sich über die DNS “esp8266.local/” aufrufen. Auf der Startseite werden das aktuelle Gewicht und das Maximalgewicht der Flasche, die zuletzt getrunkene Menge in Gramm, die Uhrzeit des letzten Wasserkonsums sowie die in der letzten Woche getrunkene Menge in Gramm angezeigt. Die angezeigten Werte werden alle 500 Millisekunden (0,5 Sekunden) aktualisiert.


Discord-Benachrichtigung

Die Benachrichtigungen über den täglichen Wasserbedarf werden dem/der Benutzer*in über einen Discord-Bot gesendet. Um die Benachrichtigungen zu erhalten, muss der/die Benutzer*in dem Discord-Server “Softskills” beitreten. Nachdem der/die Benutzer*in dem Server beigetreten ist, wird je nach Tageszeit und Wassermenge eine Nachricht vom Discord-Bot gesendet, die den/die Nutzer*in zum Wasserkonsum auffordert.

Benachrichtigungen vom Discord-Bot

Hinweis: Bei der Nutzung des Sensors sollte beachtet werden, dass dieser nur für eine bestimmte Flaschengröße skaliert wurde.


Nachfolgend eine kurze Demonstration des Sensors:

Categories:

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *

*