Il s'agit d'un framework Arduino de base pour l'utilisation du radio-modèle Rising HF Lorawan et la connexion d'un capteur à un réseau Lorawan comme TTN.
Nous utilisons un périphérique FRAM I2C à l'adresse 0x50 pour la mémoire non volatile. Cet appareil peut être omis ou remplacer par un EEPROM par des changements mineurs.
Deveui provient du radio-modem ou via une puce I2C 24AA025E64 à l'adresse 0x52 ou peut être définie dans le fichier config.h. Chaque modem a un code QR sur le dessus, avec son Deveui.
Cette base de code a été développée et testée pour la bande de fréquences USA TTN mais peut être changée en d'autres bandes.
Testé avec: RHF0M062-HF22 et RHF0M0E5-HF22, mais devrait également fonctionner avec RHF78-052LA-HF22 et d'autres modules dérivés de la hausse du HF.
http://www.riseinghf.com/home
Ce code de test a 3 routines d'envoi,
L'état court est utilisé pour les messages d'erreur et est limité à 9 octets, envoyé uniquement lorsque nous démarrons et lorsque nous avons une erreur ... (DR0 -> 11 octets - 2 octets MAC possibles)
Le statut est rarement envoyé avec des informations sur l'appareil ... version, temps de compilation, etc ...
Les données du capteur sont envoyées, dans le cas par défaut toutes les heures ...
Nous avons également un soutien pour une réinscription périodique. Après avoir passé de la V2 à V3 sur TTN, il est devenu clair que les appareils doivent se réjouir de temps à autre pour prendre en charge les mouvements futurs ou les changements dans le réseau ou le TTN.
Cette base de code permet également de traiter quelques messages de téléchargement.
Au démarrage, le code lit un bloc de données stocké dans FRAM (si disponible) et compare le champ de date d'heure de compilation et le CRC à ce qui est stocké dans FRAM pour voir si nous avons un premier démarrage. Si c'est le cas, nous enregistrons une copie du bloc de données dans FRAM pour une utilisation future. Sinon, nous ajustons le nombre de démarrages et enregistrons la cause de démarrage.
Le port USB est désactivé au démarrage pour enregistrer l'alimentation, ce qui nécessite un double tour du commutateur de réinitialisation pour revenir au chargeur de démarrage.
Il existe de nombreuses options de configuration que vous pouvez définir dans le fichier config.h, y compris les touches Lorawan, les tables de fréquence, le synchronisation de la fonction Send, etc ...
Le radio-modem a une EEPROM qui conservera la plupart de ses paramètres stockés après une configuration ... config.h a une définition qui désactivera les paramètres de réinstallation dans le modem s'il n'est pas nécessaire de les réinitialiser à nouveau.
Les macros Debug1 et Debug2 peuvent être désactivées pour supprimer toutes les sorties de débogage vers le port série, ils nous permettent d'utiliser la fonction "C" Printf (...) la plus courante dans notre code au lieu des fonctions Arduino Serial.print (...).
Ce code a été testé avec du matériel propriétaire et avec un mini-ultra-pro-lora de Rocketsam Mini-Ultra-Pro-Lora.
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