Drücke „Enter”, um zum Inhalt zu springen.

Wemos D1 Node ins LoRaWAN bringen mit Arduino

4

Auf einer sehr gut gelungenen Weiterbildung zum Thema LoRaWAN und TTN (The Things Network) an der Karl-Kübel-Schule in Bensheim vom 12.-13. Dezember 2018 (großen Dank an Rainer Wieland, iotler.de) durften wir unter anderem lernen, wie man einen ESP8266 in Form eines Wemos D1 als Node ins TTN bringen kann. Dabei stießen wir auf mehrere Probleme bei der Suche nach geeigneten Arduino Bibliotheken. Um euch eine vergleichbare Odyssee durch´s Netz zu ersparen, zeige ich euch, mit welchen Bibliotheken der Beitritt eures Nodes ins Internet der Dinge gelingen sollte.

Zuerst benötigt ihr eine Bibliothek für das verwendete Board, welches nicht standardmäßig in der Arduino Board-Bibliothek enthalten ist. Auf GitHub findet ihr aber unter https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls eine sehr gute Liste mit Drittanbieter-Boards:

3rd-Parity Bibliothek auf Github

Ein Stück weiter unten findet ihr einen Link zu einer json-Datei, welche ihr in den Arduino Voreinstellungen (Datei >> Voreinstellungen) als zusätzliche Boardverwalter-URL hinzufügt:

Einbindung der Adresse in die Voreinstellungen

Unter Werkzeuge >> Board >> Boardverwalter sucht ihr nach “ESP8266” und installiert nachfolgende Boardsammlung:

Installation des Boards über den Boardmanager

Nun seid ihr in der Lage, über den Arduino Boardmanager das LOLIN(WEMOS) D1 R2 & mini auszuwählen:

Auswahl des Boards

Als nächstes wird die lmic-arduino Bibliothek benötigt. Diese findet ihr in der Arduino Bibliotheksverwaltung unter dem Suchbegriff “lmic”. Aber Achtung: ihr findet hier mehr als nur eine Bibliothek mit diesem Namen. Leider haben wir es mit anderen Bibliotheken nicht geschafft den Node ans TTN anzubinden.

Wenn die Bibliothek installiert wurde, modifiziert man das Example um den Node anschließend zu programmieren. Dazu wählt ihr unter Datei >> Beispiele >> LMIC-Arduino >> ttn-abp aus (Voraussetzung hierfür ist ein als ABP registrierter Knoten in thethingsnetwork.com).

In der Beispiel-Datei müssen mehrere Anpassungen vorgenommen werden: der network session key, der application session key und die end-device address aus dem thethingsnetwork.com müssen eingetragen werden:

Anpassen der Adressen im Beispiel-Code

Darüber hinaus müssen, abhängig vom Verwendeten LoRa-Board noch die Pins angepasst werden:

Anpassung des Pin Mappings

Wenn alles richtig angepasst und ausgewählt wurde, kann mit einem Klick auf Hochladen das Programm im μC Platz nehmen. Wenn sich nun ein entsprechendes LoRaWAN-Gateway in der Nähe eures Senders befindet, könnt ihr auf thethingsnetwork.com die “Hello, world!” Pakete bewundern:

Empfangene Pakete im thethingsnetwork (TTN)

Naja, fast. Eigentlich sieht man an dieser Stelle nur den payload als Hex. Wenn man jedoch im Payload Format die Zeile

decoded.String = String.fromCharCode.apply(null,bytes);

hinzu, dann bekommt ihr die Daten als human-readable angezeigt:

Payload Format

Viel Spaß 🙂

  1. Lars

    Hallo,
    die Idee mit dem Wemos D1 Mini finde ich sehr schön!

    > Als nächstes wird die lmic-arduino Bibliothek benötigt.
    > Diese findet ihr in der Arduino Bibliotheksverwaltung unter dem Suchbegriff “lmic”.
    > Aber Achtung: ihr findet hier mehr als nur eine Bibliothek mit diesem Namen.
    > Leider haben wir es mit anderen Bibliotheken nicht geschafft den Node ans TTN anzubinden.”

    ja, und WELCHE ist denn nun die richtige Lib?? es gibt so viele, ich bin am Verzweifeln…

    • André

      Hallo Lars, danke sehr 🙂
      Wenn ich mich nicht ganz täusche, dann ist es die Bibliothek “MCCILoRaWAN LMIC library” in der Version 2.3.1 gewesen.
      Lass es uns wissen, wenn es damit klappen sollte.
      LG André

  2. Rene

    Ich bin am verzweifeln .. wo hängt es hier:
    13:04:27.805 -> my .. os_init
    13:04:27.805 -> RXMODE_RSSI
    13:04:27.805 -> my .. LMIC_reset
    13:04:27.805 -> my .. PROGMEM
    13:04:27.805 -> my .. CFG_eu868
    13:04:27.805 -> my .. End init -> Start Job
    13:04:27.805 -> 5135: engineUpdate, opmode=0x808
    13:04:27.805 -> 5236: EV_TXSTART
    13:04:27.805 -> 5313: TXMODE, freq=867100000, len=26, SF=7, BW=125, CR=4/5, IH=0
    13:04:27.884 -> Packet queued

    … und hier passiert nix mehr. Was fehlt?
    ESP8266, SPI und DIO0, DIO1 sind verbunden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert