Uncategorized

ESP32 + LoRa: Sensorknoten mit bis zu 8 km Reichweite

Das Problem

WLAN funktioniert großartig — bis Sie einen Sensor 200 Meter entfernt in den Garten stellen müssen. Oder auf einen Bauernhof jenseits des Tals. Oder in ein Metalllagerhaus. WLAN stirbt bei 50 Metern. Bluetooth bei 10.

LoRa ändert alles. Mit dem E32-LoRa-Modul (915MHz, 1W) können Sie Sensordaten über 8 Kilometer senden — ohne Mobilfunkmast, ohne WLAN, ohne Monatsgebühren.

Was Sie bauen werden

Ein batteriebetriebener LoRa-Sensorknoten, der:

  • Temperatur und Luftfeuchtigkeit liest
  • Daten per LoRa an einen Empfänger überträgt
  • Zwischen den Messungen 10 Minuten im Deep Sleep geht (die Batterie hält monatelang)

Schwierigkeit: Einsteiger  |  Zeit: 45 Minuten  |  Kosten: ~$40 an Teilen

Benötigte Hardware (Stückliste)

Teil Modell Anzahl Preis Kaufen
Mikrocontroller (Sender) ESP32 DevKitC V4 1 $13.49 Produkt ansehen
Mikrocontroller (Empfänger) ESP32-C3 SuperMini 1 $7.49 Produkt ansehen
LoRa-Modul E32-915T30D (915MHz) 2 $11.99 / Stück Produkt ansehen
Temperatur-/Feuchtesensor DHT22 1 $5.24 Produkt ansehen
Batteriestrom 18650 Battery Shield 1 $11.99 Produkt ansehen
Breadboard 830-point 1 $4.49 Produkt ansehen
Jumper-Kabel M-M 40pcs 1 $2.99 Produkt ansehen

Frequenz-Warnung: E32-Module gibt es in den Versionen 433MHz, 868MHz und 915MHz. Sie können NICHT miteinander kommunizieren. Stellen Sie sicher, dass beide Module dieselbe Frequenz haben. In den USA wird 915MHz verwendet.

Schritt 1: Verkabelung (Sender-Knoten)

Das E32-LoRa-Modul nutzt UART-Serial — viel einfacher als SPI-basierte LoRa-Module. Keine komplexen Bibliotheken nötig!

E32-LoRa-Pin ESP32-Pin Hinweis
VCC 5V Strom (prüfen Sie die Modulspezifikation)
GND GND Masse
RXD GPIO 17 (TX2) E32 RX ← ESP32 TX
TXD GPIO 16 (RX2) E32 TX → ESP32 RX
M0 GND Auf Sendemodus stellen
M1 GND Auf Sendemodus stellen
DHT22 DATA GPIO 13 Sensordaten

TX↔RX kreuzen: UART ist wie ein Telefonat — Ihr Mund (TX) verbindet sich mit dem Ohr des anderen (RX). Kreuzen Sie immer: Modul-TXD → ESP32-RX2, Modul-RXD → ESP32-TX2.

Schritt 2: Sender-Code

Laden Sie das auf den Sender-ESP32 hoch (den mit dem DHT22-Sensor):

#include <HardwareSerial.h>
#include "DHT.h"

HardwareSerial LoRaSerial(2); // ESP32 Serial2 (GPIO 16, 17)

#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Deep sleep: 10 minutes between readings
#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP  600

void setup() {
  Serial.begin(115200);
  Serial.println("sensbench LoRa Sensor Node");

  LoRaSerial.begin(9600);
  dht.begin();
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Sensor read failed!");
  } else {
    String data = "T:" + String(t, 1) + "C H:" + String(h, 1) + "%";
    Serial.println("Sending: " + data);
    LoRaSerial.println(data);
  }

  Serial.println("Deep sleeping for 10 minutes...");
  Serial.flush();

  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_deep_sleep_start();
}

void loop() {
  // Not reached after deep sleep
}

Schritt 3: Empfänger-Code

Laden Sie das auf den Empfänger-ESP32 hoch (den, der am Computer hängt):

#include <HardwareSerial.h>

HardwareSerial LoRaSerial(2);

void setup() {
  Serial.begin(115200);
  Serial.println("sensbench LoRa Receiver");
  LoRaSerial.begin(9600);
}

void loop() {
  if (LoRaSerial.available()) {
    String data = LoRaSerial.readString();
    Serial.print("Received: ");
    Serial.println(data);
  }
}

Schritt 4: Testen

  1. Versorgen Sie den Sender-Knoten mit dem 18650-Battery-Shield
  2. Verbinden Sie den Empfänger mit Ihrem Computer und öffnen Sie den Serial Monitor (115200 Baud)
  3. Alle 10 Minuten sehen Sie Temperatur und Luftfeuchtigkeit aus bis zu 8km Entfernung eintreffen

Warum das so gut funktioniert

  • Deep Sleep: Der ESP32 zieht im Deep Sleep nur 10µA. Mit einer 2000mAh-18650-Batterie läuft der Sensorknoten mit einer Ladung über 3 Monate.
  • UART-LoRa: Anders als SPI-basiertes LoRa (SX1276) nutzt das E32-Modul einfache serielle Kommunikation. Keine komplexe Bibliothek, kein SPI-Verdrahtungsdurcheinander, keine Konfigurationsregister.
  • 1W-Leistung (30dBm): Die E32-915T30D ist die Hochleistungsversion. Standardmodule geben 20dBm (100mW) aus. Dieses gibt 30dBm (1000mW) aus — die 10-fache Leistung, die 3-fache Reichweite.

Noch weiter gehen

  • Weitere Sensorknoten hinzufügen: Jeder Knoten sendet nach einem eigenen Zeitplan, um Kollisionen zu vermeiden
  • An die Cloud weiterleiten: Verbinden Sie den Empfänger-ESP32 mit WLAN und leiten Sie die LoRa-Daten an MQTT weiter
  • Solarenergie: Bauen Sie ein kleines Solarpanel ans 18650-Battery-Shield für den Dauerbetrieb
  • Mesh aufbauen: Mehrere Empfänger-Knoten können Daten über noch größere Distanzen weiterreichen

Leave a Reply

Your email address will not be published. Required fields are marked *