Einleitung

Hier ist eine kurze Erklärung unseres Mikrocontroller Codes. Unseren kompletten Fortschritt kann man ebenfalls in der Git-Repo nachgucken.

Konstanten und globale Variablen

Der erste Teil des Codes besteht aus einer Ansammlung von Variablen, die zur Speicherung von Konstanten oder anderen temporären Werten benutzt wird. Darunter gehören die Mqtt-Serverinformationen, die WiFi-Manager Daten, die Serverinformationen der Uni, auf dem unsere Daten verarbeitet und gespeichert werden, den Pins für den Ultraschallsensor und die Buttons. Außerdem werden hier Konstanten für die Schallgeschwindigkeit und die Mülleimerdaten gespeichert. Zusätzlich werden verschiedene Messdaten von dem Ultraschallsensor und den beiden Tastern gespeichert.

Konstanten und globale Variablen

Die Setup Methode

Darunter befindet sich die Setup Methode, die am Start des Programms einmal ausgeführt wird. Sie beinhaltet das Einrichten der Pins am Mikrocontroller, das Einrichten der Internetverbindung und der Verbindung zum Uni-Server.

Setup Methode

Die Loop Methode

Der Hauptteil des Programms befindet sich in der Loop Methode, diese wird, solange der Mikrocontroller Strom hat, ausgeführt. Zuerst wird der Zustand der Buttons ausgelesen und dann überprüft, ob der Deckel geschlossen oder geöffnet ist. Wenn der Deckel im letzten Loop Durchlauf noch geöffnet war und jetzt geschlossen wurde, dann berechnet das Programm im Folgenden den Füllstand. Jedoch wartet das Programm vorher noch eine Sekunde, um sicherzustellen, dass der Deckel wirklich geschlossen wurden und nicht aus Versehen der Button betätigt wurde.

Loop Methode

Falls die Buttons weiterhin gedrückt werden, weiß das Programm, dass die Tonne geschlossen wurde. Daraufhin werden in einem kurzen Zeitintervall 10 Messungen durchgeführt. Die Entfernung des Mülls kann mithilfe der Schallgeschwindigkeit berechnet werden, da gemessen wird, wie lange die Schallwellen für die Entfernung von dem Transmitter zu dem Müll bis hin zum Receiver benötigen.

Messung der Entfernung

Die gemessenen Daten werden zuerst mit der C-Library „qSort“ sortiert, damit der Median bestimmt werden kann. Das ist sinnvoll, um mögliche Fehlmessungen auszusortieren und ein möglichst gutes Messergebnis zu erzielen. Der Median wird gespeichert und die Füllhöhe in Prozent wird in Abhängigkeit von der Mülltonnengröße und der Deckelgröße bestimmt.

Analyse der Daten

Abschließend wird gewartet, bis eine Verbindung mit dem Mqtt-Server hergestellt werden kann, sodass der Mikrocontroller dem Topic subscriben kann, an den er die Daten senden soll. Sobald der Mikrocontroller eine Verbindung hat, sendet er den Füllstand in Prozent an den Server und die Loop Methode beginnt von vorne.

Reconnect Methode

No Responses

Leave a Reply

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