LoRa ESP32 Library Setup Arduino IDE and Test

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.

Arduino IDE Vorbereiten

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

Arduino IDE ESP32 LoRa Setup - Add Url

ESP32 Board installieren

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.

Arduino IDE ESP32 LoRa Setup - Install ESP Board

LoRa Library

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.

Arduino IDE ESP32 LoRa Setup - Install LoRa Library

OLED Display Bibliothek

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.

Arduino IDE ESP32 LoRa Setup - Install OLED Display Library

Pins & Schnittstellen

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:

Pinbelegung LoRa Chip > ESP32 (SPI)
Bezeichnung Pin am ESP32
SCK 5
MISO 19
MOSI 27
CS 18
RST 14
DIO0 26
Pinbelegung OLED Display > ESP32 (I2C)
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);

ESP32 LoRa Beispiel Code

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.

Oft gelesen

Anzeige:

Social Media

Newsletter