In der letzten Woche wurde neben dem E-Ink Display ein Ultraschallsensor zur Abstandsmessung an den Pi angeschlossen.  Hauptsächlich wurde sich auf das Auslesen und Verschicken von Daten über den MQTT Broker konzentriert. Die Ergebnisse und der Ansatz der Umsetzung wird in den nachfolgenden Abschnitten erklärt.

Überarbeitetes MQTT Konzept

Die gesendeten JSON Dateien werden mittels eines Skriptes (Python) an das E-Ink Display weitergeleitet. Das Skript „mqtt_subscriber.py“ ist für die Subscription des Topics „updateData“ zuständig. Innerhalb des Skriptes wird zunächst geprüft ob die MacAdresse die über die JSON mit geliefert wird mit der des Pis übereinstimmt. Ist dies der Fall, werden die restlichen Daten der JSON Datei mithilfe der Python Libary „JSON“ ausgelesen. Die ausgelesenen Parameter werden an eine Funktion übergeben, welche das Display mit den entsprechenden Daten aktualisiert.

Stimmen Mac-Adresse des Pis mit der der JSON Datei nicht überein, wird keine Aktualisierung durchgeführt.

JSON Datei die über den MQTT Broker gepublisht wird
Empfangene JSON Datei am Raspberry Pi (Testweise werden auf der Konsole die vom JSON übermittelten Werte ausgegeben)

Wird eine Nachricht empfangen, aktualisiert sich das gesamte E-Ink Display.

Aktualisierung des E-Ink Displays

Der Ultraschallsensor hat die Aufgabe über das Topic „MotionDetection“, eine Meldung „Kunde steht vor Regal“ an den MQTT Broker zu schicken, wenn der Sensor in einem Abstand zwischen 70-100cm ausgelöst wurde.  Andernfalls gibt er auf der Konsole noch testweise die Hinweise aus, wenn der Sensor einen Abstand als zu nah oder zu weit misst.

Gesendete Nachrichten über das Topic MotionDetection

Wegen der benötigten Widerstände und eines Breadboards wurde auf eine selbstgelötete Lösung umgestiegen, welche kleiner ist. Der gesamte Aufbau ist im folgenden Bild dargestellt.

Kompletter Aufbau
Status Raspberry Pi – Smart Indoor Navigation