Dies ist ein grundlegendes Arduino-Framework für die Verwendung des steigenden HF Lorawan-Radiomodems und der Verbindung eines Sensors mit einem Lorawan-Netzwerk wie TTN.
Wir verwenden ein I2C-Fram-Gerät unter der Adresse 0x50 für nichtflüchtigen Speicher. Dieses Gerät kann weggelassen werden oder durch EEPROM durch geringfügige Änderungen ersetzt werden.
Deveui stammt aus dem Radio-Modem oder über einen I2C 24AA025E64-Chip unter der Adresse 0x52 oder kann in der Datei config.h festgelegt werden. Jedes Modem verfügt über einen QR -Code oben mit seinem Deveui.
Diese Codebasis wurde für das USA TTN Frequency Band entwickelt und getestet, kann jedoch in andere Bands geändert werden.
Getestet mit: RHF0M062-HF22 und RHF0M0E5-HF22, sollte aber auch mit RHF78-052LA-HF22 und anderen Derivatemodulen aus steigendem HF arbeiten.
http://www.risinghf.com/home
Dieser Testcode enthält 3 Routinen senden,
Der kurze Status wird für Fehlermeldungen verwendet und ist auf 9 Bytes begrenzt, nur dann gesendet, wenn wir starten und wenn wir einen Fehler haben ... (DR0 -> 11 Bytes -2 mögliche Mac -Bytes)
Der Status wird selten mit Geräteinformationen gesendet ... Version, Kompilierungszeit usw.
Sensordaten werden im Standardfall jede Stunde gesendet ...
Wir haben auch Unterstützung für eine regelmäßige Wiederaufnahme. Nach dem Umzug von V2 zu V3 auf TTN wurde klar, dass Geräte von Zeit zu Zeit wieder zugeteilt werden müssen, um zukünftige Bewegungen oder Änderungen im Netzwerk oder TTN zu unterstützen.
Mit dieser Codebasis können einige Download -Nachrichten verarbeitet werden.
Beim Start liest der Code einen in FRAM gespeicherten Datenblock (falls verfügbar) und vergleicht das Kompilierungsdatumfeld und CRC mit dem, was in FRAM gespeichert ist, um zu sehen, ob wir einen 1. Start haben. In diesem Fall speichern wir eine Kopie des Datenblocks in FRAM für die zukünftige Verwendung. Wenn nicht, passen wir die Startzahl an und speichern die Startursache.
Der USB-Anschluss wird am Boot ausgeschaltet, um Strom zu sparen. Dies erfordert eine Doppelaufnahme des Reset-Schalters, um wieder zum Boot-Loader zu gelangen.
Es gibt viele Konfigurationsoptionen, die Sie in der Datei config.h -Datei einstellen können, einschließlich der Lorawan -Schlüssel, Frequenztabellen, Zeitpunkt der Sendungsfunktion usw.
Das Radio-Modem verfügt über ein EEPROM, das die meisten seiner Parameter nach einem Setup speichern kann ... config.h hat eine Definition, die die Wiedereinstellungsparameter im Modem deaktiviert, wenn sie nicht erneut zurückgesetzt werden müssen.
Debug1- und Debug2 -Makros können deaktiviert werden, um alle Debug -Ausgaben an den seriellen Port zu entfernen. Sie ermöglichen es uns, die häufigere "C" -PRINF -Funktion (...) in unserem Code anstelle der Funktionen von Arduino Serial.print (...) zu verwenden.
Dieser Code wurde mit proprietärer Hardware und mit einem Rocketstream-Mini-Ultra-Pro-Lora-Board getestet.
TBD:
Adding some logging to flash
look at over-the-air code upgrade...
Add support for EEProm option to replace FRAM
An option to get DEVEUI from the modem and or UUID from the CPU
Add more commands to support Class B in the modem library
Documentation of modem library
Add AT command to set various parameters from the serial port
Libraries used by this project:
LoRaWan-RFH0M062-mod
This radio-modem library was developed by SEEED studios for the RHF78-052 device, I have
made many changes to support the newer radios, added an error function, and speed up timing
on messages to/from the radio.
Stopwatch
RTCZero-MOD
FRAM_MB85RC_I2C
Arduino_CRC32