Esta é uma estrutura básica do Arduino para usar o Rising HF Lorawan Radio-modem e conectar um sensor a uma rede de Lorawan como o TTN.
Usamos um dispositivo I2C FRAM no endereço 0x50 para memória não volátil. Este dispositivo pode ser omitido ou substituído por uma EEPROM por pequenas alterações.
Deveui é do Radio-Modem ou através de um chip I2C 24AA025E64 no endereço 0x52 ou pode ser definido no arquivo Config.h. Cada modem possui um código QR na parte superior, com seu Deveui.
Essa base de código foi desenvolvida e testada para a banda de frequência TTN dos EUA, mas pode ser alterada para outras bandas.
Testado com: rhf0m062-hf22 e rhf0m0e5-hf22, mas também deve trabalhar com rhf78-052la-hf22 e outros módulos de derivativos do aumento da HF.
http://www.risinghf.com/home
Este código de teste tem 3 rotinas de envio,
O status curto é usado para mensagens de erro e é limitado a 9 bytes, enviados apenas quando começamos e quando tivermos um erro ... (DR0 -> 11 bytes -2 possíveis bytes Mac)
O status é enviado com pouca frequência com informações do dispositivo ... versão, tempo de compilação, etc ...
Os dados do sensor são enviados, no caso padrão a cada hora ...
Também temos apoio para uma reajuste periódica. Depois de passar de V2 para V3 no TTN, ficou claro que os dispositivos precisam se juntar novamente de tempos em tempos para suportar movimentos ou mudanças futuras na rede ou no TTN.
Essa base de código também permite que algumas mensagens de download sejam processadas.
Na startup, o código lê um bloco de dados armazenado no FRAM (se disponível) e compara o campo de data e hora de compilação e o CRC ao que é armazenado no FRAM para ver se temos uma primeira inicialização. Nesse caso, salvamos uma cópia do bloco de dados no FRAM para uso futuro. Caso contrário, ajustamos a contagem de inicialização e salve a causa da inicialização.
A porta USB está desligada na inicialização para salvar a energia, isso requer uma tapa dupla da chave de redefinição para voltar ao carregador de inicialização.
Existem muitas opções de configuração que você pode definir no arquivo config.h, incluindo as teclas de Lorawan, tabelas de frequência, tempo da função de envio, etc ...
O Radio-Modem possui uma EEPROM que manterá a maioria de seus parâmetros armazenados após uma configuração ... Config.h tem uma definição que desativará os parâmetros de retenção no modem se não houver necessidade de redefini-los novamente.
As macros Debug1 e Debug2 podem ser desativadas para remover toda a saída de depuração para a porta serial, eles nos permitem usar a função mais comum "C" Printf (...) em nosso código, em vez das funções do Arduino Serial.print (... ...).
Este código foi testado com hardware proprietário e com uma placa 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