Raspi auf Sendung

Raspberry Pi als Sensor-Hub für Meshtastic

Mit einem Raspberry Pi und einem LoRa HAT lassen sich Sensordaten direkt in einen Meshtastic-Kanal senden. Dafür kann das Meshtastic-CLI (Command Line Interface) auf dem Raspberry Pi genutzt werden. Dies hat den Vorteil, dass die Übertragung der Daten automatisiert per Skript erfolgen kann. So lassen sich beispielsweise Messwerte von angeschlossenen Sensoren in Echtzeit übermitteln.

Typische Anwendungsfälle sind Wetterdaten wie Temperatur, Windgeschwindigkeit oder Bewölkung. Besonders interessant wird es bei Sensoren, die normalerweise nicht direkt in Meshtastic integriert werden können – etwa für CO₂-Konzentration, UV-Strahlung oder radioaktive Strahlung. Auch spezielle Anwendungen sind denkbar, wie das Messen des Gewichts eines Bienenstocks, um Rückschlüsse auf die Honigproduktion zu ziehen.

Die Daten können entweder im Klartext oder in einem für Node-RED leicht auswertbaren Format gesendet werden. Darüber hinaus lassen sie sich über einen MQTT-Server weiterverarbeiten, beispielsweise zur Visualisierung in Grafana. All diese Aufgaben kann ein Raspberry Pi übernehmen und so als zentraler Knoten für Datenerfassung und -übertragung in einem Meshtastic-Netzwerk dienen.

Nachricht versenden

Zum Nachrichten senden, muss das Meshtastic CLI Interface installiert werden.

mit Putty auf den Raspi verbinden

In das Terminal nacheinander eingeben (ggf. muss Python3 und pip vorher installiert werden. In aktuellen Raspberry 64 Bit Betriebssystemen sollte es bereits installiert sein).

Es sollte nun eine Liste mit den Optiopnen vom CLI Interface ausgegeben werden

Nun senden wir einen Text in den default Channel LongFast 0

Prüfen ob Nachricht in Meshtastic empfangen wurde

Nachrichten per Script senden

Um nun eine Nachricht mittels Script zu senden, folgendes im Terminalfenster eingeben:

Folgenden Text ins Script einfügen

mit STRG+x y Enter speichern

Das Script ausführbar machen und testen

Im Channel 0 nachsehen ob Nachricht angekommen ist

Sensor auslesen und Werte als Nachricht senden

Ein Bespiel mit den günstigen Sensoren DHT11 oder DHT22.
Die Sensoren DHT11 und DHT22 werden von Meshtastic nicht unterstützt. Vom Raspberry aus können die Sensoren jedoch ausgelesen werden. Die Werte können per Script in einen Channel gesendet werden.

Dazu den DHT11 oder den DHT22 an den Raspberry anschließen.
Beide Sensoren funktionieren mit 3,3V oder 5V.
Die Pinbelegungist bei beiden Sensoren identisch.

Sensor PIN 1 = VCC -> Raspi +3,3V = PIN1
Sensor PIN2 = DATA -> Raspi GPIO4 = PIN7
Sensor PIN3 = nicht verwendet
Sensor PIN4 = GND -> Raspi GND = PIN6

ACHTUNG: Am Sensor von PIN1 auf PIN2 wird ein 4,7k Widerstand benötigt!



Nun folgendes ins Terminal eingeben

Ins Terminal eingeben

Den Text einfügen

mit STRG+x y Enter speichern

Nun ins Terminal eingeben

Im Channel 0 nachsehen ob Nachricht angekommen ist

Automatisch jede volle Stunde senden

Es gibt verschiedene Möglichkeiten in Zeitintervallen am Raspi Scripte aufzurufen, „cron“ ist eine davon. Es gibt zwar zuverlässigere Methoden, aber hier soll eine für Laien einfache Möglichkeit gezeigt werden, um es auch wieder rückgängig machen zu können.

Im Terminal eingeben

Falls man crontab das erste Mal aufruft wird gefragt welchen Editor man verwenden möchte, Option nano auswählen.
In der Datei nun mit dem Cursor ganz nach unten scrollen eine leere Zeile erstellen (Enter) und folgendes einfügen:

mit Strg+x y Enter, speichern

Um den Eintrag zu prüfen und checken ob crontab läuft

Falls crontab nicht läuft, mit folgender Anweisung starten

Nun wird jede volle Stunde das Script ausgeführt und in den „channel 0“ wird Temp und Feuchte geschickt.

Hier ein modifiziertes Script:
Dazu in der Datei send_DHT.py am einfachsten mit STRG+k alle Zeilen löschen und folgendes Script einfügen
ACHTUNG! Längere Nachrichten können sehr verzögert von anderen Clients empfangen werden!

Viel Erfolg