Este es un marco básico de Arduino para usar el radio-modem HF Lorawan Rising y conectar un sensor a una red Lorawan como TTN.
Utilizamos un dispositivo FRAM I2C en la dirección 0x50 para memoria no volátil. Este dispositivo se puede omitir o reemplazar con un EEPROM con cambios menores.
Deveui es del radio de radio o mediante un chip I2C 24AA025E64 en la dirección 0x52 o se puede configurar en el archivo config.h. Cada módem tiene un código QR en la parte superior, con su Deveui.
Esta base de código fue desarrollada y probada para la banda de frecuencia de USA TTN, pero se puede cambiar a otras bandas.
Probado con: RHF0M062-HF22 y RHF0M0E5-HF22, pero también debería funcionar con RHF78-052LA-HF22 y otros módulos de derivados de HF Rising.
http://www.risinghf.com/home
Este código de prueba tiene 3 rutinas de envío,
El estado corto se usa para mensajes de error y se limita a 9 bytes, se envía solo cuando iniciamos y cuando tenemos un error ... (DR0 -> 11 bytes -2 posibles bytes Mac)
El estado se envía con poca frecuencia con información del dispositivo ... Versión, tiempo de compilación, etc.
Se envían datos del sensor, en el caso predeterminado cada hora ...
También tenemos apoyo para una reorección periódica. Después de pasar de V2 a V3 en TTN, quedó claro que los dispositivos deben reunirse de vez en cuando para apoyar los movimientos o cambios futuros en la red o TTN.
Esta base de código también permite que se procesen algunos mensajes de descarga.
En el inicio, el código lee un bloque de datos almacenado en FRAM (si está disponible) y compara el campo de fecha de compilación y CRC con lo que se almacena en FRAM para ver si tenemos un primer arranque. Si es así, guardamos una copia del bloque de datos en FRAM para uso futuro. Si no, ajustamos el recuento de arranque y guardamos la causa de arranque.
El puerto USB se apaga al arranque para guardar la alimentación, esto requiere una doble toque del interruptor de reinicio para volver al cargador de arranque.
Hay muchas opciones de configuración que puede configurar en el archivo config.h, incluidas las claves de lorawan, las tablas de frecuencia, la sincronización de la función de envío, etc.
El radiomodem tiene un EEPROM que mantendrá la mayoría de sus parámetros almacenados después de una configuración ... config.h tiene una definición que deshabilitará los parámetros de rehabilitación en el módem si no es necesario restablecerlos nuevamente.
Las macros Debug1 y Debug2 se pueden deshabilitar para eliminar toda la salida de depuración al puerto serie, nos permiten usar la función "C" C "más común en nuestro código en lugar de las funciones Arduino Serial.print (...).
Este código se probó con hardware patentado y con un tablero RocketStream 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