LoRaDomo supports the following ESP32 LoRa boards out of the box — all pins are pre-configured, no wiring needed:
| Board | MCU | Radio | UI name |
|---|---|---|---|
| Heltec WiFi LoRa 32 V2 | ESP32 | SX1276 | "Heltec V2" |
| Heltec WiFi LoRa 32 V3 | ESP32-S3 | SX1262 | "Heltec V3" |
| Heltec WiFi LoRa 32 V4 | ESP32-S3 | SX1262 | "Heltec V4" |
| TTGO LoRa32 V1 | ESP32 | SX1276 | "TTGO V1" |
You need at least two supported boards: one acting as the gateway, the others as nodes. Boards can be mixed freely on the same network.
The board is auto-detected from your IDE or PlatformIO board selection. If auto-detection fails, add one of these defines in your sketch before any #include:
#define LORADOMO_HELTEC_V2
#define LORADOMO_HELTEC_V3 // or LORADOMO_HELTEC_V4
#define LORADOMO_TTGO_V1
esp32 by Espressif)LoRaDomoLoRaDomo_v1.1.0.zipAdd to your platformio.ini:
lib_deps =
https://github.com/Mizar03110/LoRaDomo
Or by the the Arduino registry:
lib_deps =
LoRaDomo
The following libraries must be installed separately:
| Library | Install name | Purpose |
|---|---|---|
| RadioHead | RadioHead |
SX1262 LoRa driver |
| PubSubClient | PubSubClient by Nick O'Leary |
MQTT client |
| WebSockets | WebSockets by Markus Sattler |
WebSocket server |
| ArduinoJson | ArduinoJson by Benoit Blanchon |
JSON for WebSocket UI |
In Arduino IDE, install each via Tools → Manage Libraries.
In PlatformIO:
lib_deps =
https://github.com/YOUR_USERNAME/LoRaDomo
mikem/RadioHead
knolleary/PubSubClient
links2004/WebSockets
bblanchon/ArduinoJson
The gateway requires a running MQTT broker on your local network. MQTT is a lightweight publish/subscribe messaging protocol widely used in home automation.
A popular choice is Mosquitto:
# Raspberry Pi / Debian
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto
Minimal /etc/mosquitto/mosquitto.conf:
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
Create a user:
sudo mosquitto_passwd -c /etc/mosquitto/passwd myuser
The gateway connects to the broker and publishes sensor values on structured topics. Your home automation controller (Home Assistant, Jeedom, Domoticz, Node-RED, etc.) subscribes to those topics to receive data.
Upload the Gateway example to one board and the Node example to another. Open the Serial Monitor (115200 baud) with debug enabled.
You should see on the node:
[Node] begin() - radio OK freq=868.0MHz tx=13dBm
[Node] begin() - name='living_room' id=0x... key=0x...
[Node] addSensor() - id=1 type=2 name='temperature' interval=30s act=no read=no
[Node] sendNodePresent() - id=0x... name='living_room'
And on the gateway:
[GW] begin() - name='home' mqtt=192.168.1.10 ssid=MyWifi
[WiFi] Connecting...
[MQTT] Connecting... OK
[GW] handleNodePresent() - node accepted: id=0x... name='living_room' rssi=-24
[GW] sendAckNode() - ACK_NODE -> 0x...
Open a browser and navigate to the gateway's IP address to see the web dashboard.