LoRaWAN UDP Packet Forwarder 1
17.12.2024
Elektronik | Funk | Software
Der Technik-Blog
Die bekannte Funk-Technologie LoRa eignet sich perfekt für IoT-Anwendungen und bietet eine gute Reichweite. Nachdem die Hardware bzw. die Chips anfangs nur schwer erhältlich waren, gibt es mittlerweile eine Vielzahl an Geräten. Ein besonders nützliches Board ist dabei das ESP32 Board mit integrierten LoRa. Durch eine Kombination von LoRa, ESP32 und einem OLED-Display auf einem Board ergeben sich viele neue Einsatzmöglichkeiten. So kann man mit diesem Board beispielsweise sehr einfach ein LoRa Gateway bauen, eine Wetterstation oder über das integrierte Display Textnachrichten anzeigen. Hinzu kommt auch, dass dieses Board sehr energiesparend arbeitet und daher auch mit Batterien oder Akkus und der entsprechenden Software sehr lange betrieben werden kann. Einige weitere Details über LoRa gibt es auch im Artikel zu LoRa Grundlagen. In diesem Bericht zeigen wir, wie das ESP32 LoRa Board im Arduino IDE installiert wird und wie der Beispielcode funktioniert.
Im Arduino IDE werden die Boards programmiert. Bevor man hier Loslegen kann, muss jedoch zuerst der ESP32 selbst installiert werden und anschließend noch die Bibliotheken für LoRa und das OLED Display. Da die Software für das ESP32 Board standardmäßig nicht im Arduino IDE vorhanden ist, muss dies manuell nachinstalliert werden. Dazu wird unter "Preferences" eine zusätzliche URL für den Boardmanager hinzugefügt. Die einzufügenden URL lautet:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
Als Nächstes wird der Boardmanager geöffnet und nach dem "esp32" gesucht. Der Boardmanager sucht jetzt auch am Server der hinterlegten URL und sollte dabei das ESP32 Paket von "Espressif Systems" finden. Dazu wählt man einfach die neueste Version aus und installiert dieses Board im IDE. Dieser Vorgang dauert einige Minuten. Wenn alles installiert wurde, kann dieses Fenster geschlossen werden.
Wurde das ESP32 Board installiert, so folgt nun die Installation der benötigten Bibliotheken. Gibt man in der Suche vom Library-Manager "LoRa" ein, kommt eine Vielzahl an Bibliotheken. Wichtig ist dabei, dass die Bibliothek den CHIP unterstützt. Bei unserem Board ist ein SX1276 verbaut, der mit der LoRa Bibliothek von "Sandeep Mistry" kompatibel ist. Daher wird auch diese Library für unser Projekt verwendet.
Die OLED-Library ist grundsätzlich optional, aber für die meisten Projekte doch sinnvoll. So kann man über das Display z. B. die Signalstärke vom WLAN oder LoRa anzeigen lassen. Auch hier gibt es mehrere Bibliotheken. Man kann die originalen Bibliotheken von Adafruit installieren oder so wie hier aufgrund der einfacheren Handhabung die U8g2-Bibliothek installieren.
Damit sowohl der LoRa Chip als auch das Display richtig angesteuert wird, müssen dafür die richtigen Pins definiert werden. Leider geben einige Board-Hersteller dem Kunden nur wenig Information über die Pinbelegung mit. Die LoRa Bibliothek nimmt dafür die Pins der SPI-Schnittstelle wie beim Arduino (10,11,12,13). Am ESP32 liegt diese Schnittstelle jedoch auf anderen Pins. Damit hier eine Kommunikation zustande kommt, muss im Programm die SPI-Schnittstelle angepasst werden. Auch bei den I2C-Pins vom OLED-Display gibt es zwischen dem Arduino und den ESP-Board Abweichungen. Folgende Pins sind mit den jeweiligen Komponenten am ESP32-Board verbunden:
Bezeichnung | Pin am ESP32 |
---|---|
SCK | 5 |
MISO | 19 |
MOSI | 27 |
CS | 18 |
RST | 14 |
DIO0 | 26 |
Bezeichnung | Pin am ESP32 |
---|---|
SCL | 15 |
SDA | 4 |
RST | 16 |
Der originale Beispielcode von der LoRa Bibliothek kann auch für dieses Board verwendet werden, jedoch müssen einige Änderungen am Code vorgenommen werden:
Im Header
#define ss 18 #define rst 14 #define dio0 26
Im "void setup()"
SPI.begin(5, 19, 27, 18); LoRa.setPins(ss, rst, dio0);
Im ZIP-Ordner befindet sich der angepasste Beispielcode für das Senden und Empfangen von einem einfachen String zwischen zwei Boards über die LoRa Technologie. In einem weiteren Beispielcode wird auch das OLED-Display angesteuert und der empfangene String darauf angezeigt.
Einstieg in das LoRaWAN (TTN) mit dem Heltec LoRa32 V3 und Einrichtung vom Board in der Arduino IDE
WeiterlesenStarthilfe LoRaWAN - Diese Seite richtet sich an alle Einsteiger, die mit LoRaWAN starten wollen und ihre Sensoren in das IoT-Netzwerkt TTN integrieren wollen
WeiterlesenAEQ-WEB © 2015-2024 All Right Reserved