2023
HOME

LoRa und espBASIC - Senden und empfangen ohne Lizenz
LoRa Gateway in BASIC
ESP8266Basic verbindet LoRa über WiFi mit dem Internet.

Ein Gateway verbindet Netzwerke. In diesem Fall werden die Messdaten eines LoRa-Senders bzw. Nodes per WiFi mit dem Internet verbunden. Die Messdaten landen dann bei Thingspeak und lassen sich per App auf dem Smartphone betrachten.

Um etwas weniger umständlich mit LoRa und dem hier vorhandenem SX1278-Baustein zu experimentieren wird zunächst eine ESP8266Basic-Variante mit LoRa-Unterstützung erstellt, die auf dem Originalquelltext von ESP8266Basic beruht. Eingebunden ist die Bibliothek lora.h, die auch mit vielen anderen Bausteinen funktionieren sollte.Bei der Entwicklung dieser Erweiterung kam der RP Pico als Sender zum Einsatz, der Test-Daten der Form #1975 14.97 -96 im 3-Sekunden-Takt aus einiger Entfernung sendete.


LoRa Receiver in 9 Zeilen

Ein LoRa-Empfänger ist schnell programmiert. Die Frequenzfestlegung schaltet den Baustein ein, zwei Textboxen zeigen die Daten, die ereignisgesteuert gelesen werden:

LoRa 433000000
TextBox s
TextBox r
LoRaBranch [rx]
Wait

[rx]
s = LoRaRead()
r = LoRaRSSI()
Return

Das Ergebnis im Browser hat dann das folgende Aussehen:

Logo ESP8266BASIC

Ein ESP8266 mit seinem BASIC ist mit dem Router über die IP 192.168.178.57 zu erreichen und hat damit auch Zugang zum Internet. Ein entfernter LoRa-Sender mit einem RP Pico sendet die angezeigten Daten wie es in diesem Beitrag gezeigt ist. Die 19775. Übertragung lieftert die Pico-Kerntemperatur von 14,97 °C bei einer Empfangsstärke von -103 dB.


Neue ESP8266-Basic Anweisungen zu LoRa

Für erste Tests sind 6 neue Kommandos bzw. Funktionen verfügbar:

LoRa Frequenz

Sendefrequenz in Hertz

LoRa 433000000 (SX1278)

LoRa 0

Schaltet LoRa aus

LoRaPrint

Sendet eine Zeichenkette

LoRaPrint "Hallo"

LoRaRead()

Liefert letzten Empfang

a = LoRaRead()

LoRaRSSI()

Liefert Signalstärke

R = LorRaRSSI

LoRaBranch

EmpfangsRoutine

LoRaBranch [rx]

Die Verschaltung des SX-LoRa-Moduls entspricht dabei denen der ESP8266-Empfängers in C. Um diese Funktionen nutzen zu können, ist es erforderlich einen ESP8266-Baustein neu mit einer bin-Datei zu flashen bzw. die Basic-Firmware hochzuladen. Diese Firmware ist lediglich eine Teilmenge des Branch 3 des Originals. Es werden keine externen Displays unterstützt. Der Flashvorgang ist weiter unten erläutert. Theoretisch könnte die Firmware auch mit einem ESP01 funktionieren.

Sind zwei ESP8266 vorhanden, so kann mit der Anweisung LoRaPrint eine ESP8266 in längeren Intervallen Sensordaten per LoRa versenden und damit die Funktion des hier verwendeten RP Pico übernehmen. Im Zusammenhang mit dem Deep Sleep des ESP lassen sich so Messstationen (Nodes) aufbauen, die extrem wenig Strom benötigen.


ESP8266Basic Lora Gateway: 13 Zeilen


Das Wort Gateway bezeichnet in der Informatik eine Komponente (Hard- oder Software), welche zwischen zwei Systemen eine Verbindung herstellt. Dies meint Wikipedia. Ein Gateway verbindet Netzwerke. Das fasst die KI zusammen. Mal sehen wer von wem demnächst abschreibt. Um ein Gateway in ESP8266Basic zu formulieren kann ein Timer in regelmäßigen Abständen das Messdatum an einem Internetserver weiterreichen. Die Erweiterung bleibt extrem übersichtlich (kursiv):

LoRa 433000000
TextBox s
TextBox r
LoRaBranch [rx]
Timer 60000, [ts]
Wait

[rx]
s = LoRaRead()
r = LoRaRSSI()
Return

[ts]
SendTS("53HT...AFR","1",Word(s,2))
wait

Das Programm sendet einmal in der Minute die Temperatur des RP Pico mittels des von Thingspeak erhaltenem WriteToken "53...FR" mit SendTS zu Thingspeak. SendTS ist bereits im Original eingebaut, genauso wie die Funktion Word, die in diesem Fall das zweite Wort einer durch Leerzeichen getrennten Zeichenkette isoliert und liefert. In diesem Fall ist es die Temperatur in der Zeichenkette s.


ThingView Free auf dem Phone zeigt die Temperatur auf Thingspeak


Flash ESP8266Basic


Die LoRa-Variante von ESP8266Basic basiert auf dem Quelltext von mmiscool. Darin enthalten ist ein Flasher für Windows als fertig ausführbare Datei. Damit lassen sich die verschieden großen Firmwares des Originals zum ESP8266 hochladen. Nach dem Entpacken des Archivs findet man im Verzeichnis Build die Original-Binär-Dateien in weitern Verzeichnissen. In ein neu angelegtes Verzeichnis LoRa kann die neue Firmware zum Experimentieren (zip 292 kB) kopiert werden, um sie dann per Flasher.exe über die USB/Seriell-Schnittstelle hochzuladen. Dazu verbindet man zuerst den ESP8266 über USB mit dem PC, startet danach ESP_Basic_Flasher.exe und ignoriert die Windows-Warnung. Ist ein ESP8266 über USB korrekt angeschlossen, so sollte unter Comm eine Zahl auswählbar sein, die der seriellen Verbindung zum ESP entspricht. Mit Connect leuchtet bei richtiger Verbindung rechts eine grüne Anzeige. Bei Flash Size tippt man nun LoRa ein, da die Auswahl so nicht funktioniert. Mit dem Button Firmware Flash startet das Hochladen, die grüne Anzeige wird Rot und die kleine blaue LED am ESP8266 blinkt während des Hochladens des Basic-Sketches vor sich hin. Nach einer Weile sollte die Verbindungsanzeige wieder Grün werden und die folgenden Ausgaben erscheinen. Damit ist das Experimentier-LoRa-Basic bereit.


															

													

Eigener LoRa Gateway in BASIC? YES!


Zu Beginn der Auseinadersetzung mit dem LoRa-SX1278-Baustein tauchte diese Frage auf. Sie ist inzwischen mit Ja beantwortet worden, allerding zunächst nur für den ESP8266 und mit eingeschränkter Teilmenge zum Original. Trotz dieser Einschränkungen ist es nun auf einfachem Weg möglich mit zwei LoRa-Bausteinen über große Anstände zu kommunizieren, einen Gateway ins Internet zu programmieren und das mit einer Hand voll Programmzeilen in einem Browser. Ob espBASIC für den RP2040 auch diese Funktionalität erhält wird die Zeit zeigen.



												
Schon in dem im Herbst 2017 erschienenen Messen Steuern Regeln mit Smartphone und Tablet war ESPBASIC ein Thema. Durch die vertiefende Beschäftigung mit der Referenz zu dieser Sprache entstand ein eigenes Buch zu ESP8266-BASIC, da sich ganz neue Perspektiven bei der Umsetzung von Ideen ergaben und diese in dieser Form weiter gereicht werden sollte.

Mehr Software

.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt