LORA Radio Node V1
Da ist es also: ein Maker-freundliches LoRa Modul das einfach mit der Arduino IDE programmiert werden kann. Ein ATmega328p, ein Batteriehalter und unter Verzicht von weiteren Stromverbraucher kompakt auf einer 40 x 60 mm Platine untergebracht.
Hardware
Am LoRa Radio Node V1 wird ein ATMega328p mit Arduino Pro Mini Bootloader eingesetzt. Wegen der Verwendung von 3.3V ist der Controller nur auf 8MHz getaktet. Als LoRa Modul wird (lt. Datenblatt) ein RFM95/98W verwendet. Das Modul gibt es in verschiedenen Varianten, ich habe mich für das Frequenzband um 868Mhz entschieden.
Der 14500 Batteriehalter ist für einen 3.7 Lion Akku vorgesehen. Die Eingangspannung passiert einen SPX3819 LDO Spannungsregler für 500mA. Der Akku ist von der Eingangsspannung durch die Diode D1 getrennt und kann somit (ohne weitere Umbauten) nicht am Board aufgeladen werden.
Das Board hat keine PowerOn LED und da es sonst auch nur das Mindestmaß an externer Beschaltung gibt, eignet es sich gut für den Batteriebetrieb mit einem 14500 Akku.
Anschlüsse und Pins
Eine 6polige Steckerleiste ermöglicht die Programmierung mit der Arduino IDE und einem FTDI Adapter. Verwendet am besten einen FTDI Adapter mit DTR, dann kann direkt über die Arduino IDE der notwendige Reset ausgeführt werden.
Das LoRa Modul ist nicht voll verbunden, es können aber Lötbrücken bzw. Stiftleisten aufgelötet werden um die notwendigen Verbindungen zu aktivieren:
LoRa DIO0 --> D2
LoRa DIO1 --> D5 Jumper (setzen!)
LoRa DIO2 --> D6 Jumper
LoRa DIO3 --> D7 Jumper
LoRa DIO5 --> D8 Jumper
LoRa RESET --> D9
Lora NSS --> D10
Lora SPI --> D11, D12, D13
Für den Einsatz von LoRaWAN muss zumindest die Brücke DIO1 - D5 gesetzt werden.
Ein 6poliger ISP Adapter mit der SPI Standardbelegung (D11-D13) kann aufgelötet werden.
Zwei 4 polige Stecker ermöglichen den Anschluss von I2C Komponenten bzw. den diskreten analog Anschluss von A4/SDA und A5/SCL.
Die GPIOs D3, D4, A0, A1 stehen auf separaten 3 poligen Pfostensteckern gemeinsam mit 3v3 und GND zur Verfügung.
D13 ist wie vom Arduino UNO gewohnt mit einer blauen SMD LED verbunden. Diese LED flackert bei SPI Verwendung. Dies ist beim Batteriebetrieb zu beachten.
Und hier gibts noch ein Pinout Diagramm:
Software
Für TTN ist eine LMIC Library notwendig. Ich habe mich für die MCCI LoRaWan LMIC Library entschieden die ich schon für die Peer to Peer Versuche verwendet habe.
Wichtig: Im Library Unterverzeichnis project_config gibt es eine Datei lmic_project_config.h - in dieser Datei ist die zum Modul passende Frequenz zu aktivieren:
// project-specific definitions #define CFG_eu868 1 //#define CFG_us915 1 //#define CFG_au921 1 //#define CFG_as923 1 // #define LMIC_COUNTRY_CODE LMIC_COUNTRY_CODE_JP /* for as923-JP */ //#define CFG_in866 1 #define CFG_sx1276_radio 1 //#define LMIC_USE_INTERRUPTS
Das Pin Mapping im Usersketch ergibt sich aus dem Schaltplan bzw. obiger Kurzanleitung:
// Pin mapping for lmic const lmic_pinmap lmic_pins = { .nss = 10, .rxtx = LMIC_UNUSED_PIN, .rst = 9, .dio = {2, 5, LMIC_UNUSED_PIN}, // DIO1 is on JP1-2 and must be connected to GPIOO5 };
Bei Verwendung der seriellen Schnittstelle beachtet, dass die Schnittstellengeschwindigkeit vom Prozessortakt abhängig ist. Wegen dem Takt von 8Mhz passt die Geschwindigkeit von 115200 nicht wirklich. Lt. Internet-Rechere geht es dann eher Richtung 111000 BAUD. Eine sichere serielle Kommunikation mit dem Serial Monitor der Arduino IDE habe ich damit nicht geschafft. Bei 9600 oder 250000 funktioniert es aber einwandfrei.
Der Speicher des ATmega328p reicht gut für einen, evtl. zwei Sensoren. Es bietet sich an, eher auf SPI Sensoren (z.b. BME280) zu setzen. Aber auch einfachere I2C Sensoren (BMP180, SI7021) oder die bekannten DHT11/DHT22 können verwendet werden. Die Akkuspannung könnte mit einem 100K/100K Spannungsteiler ermittelt werden.
Beim Hochladen in der Arduino IDE darfst du nicht vergessen, als Board den Arduino Pro Mini und als Prozessor den 328/8MHz auszuwählen.
Zusammenfassung
Das LoRa Radio Node V1 ist aktuell mein Lieblings-Modul, wenn es um batteriebetriebene LoRaWAN Nodes geht. Das Modul ist kompakt aufgebaut. Die Steckerpfosten machen den Anschluss von bis zu 6 Sensoren sehr einfach. Die Antenne kann mit dem IPX Stecker einfach gegen eine andere Antenne oder eine Pigtail mit SMA Buchse gestauscht werden. Einzig wünschenswert wäre noch, dass die noch freien GPIOs (A2, A3) auch auf einem Pin herausgeführt werden.