Это базовая структура Arduino для использования растущей радиомодимы HF Lorawan и подключения датчика с сетью Lorawan, такой как TTN.
Мы используем устройство I2C Fram на адресе 0x50 для нелетучих памяти. Это устройство может быть опущено или заменит на EEPROM с незначительными изменениями.
DeVeui из радиомодимы или через чип I2C 24AA025E64 на адресе 0x52 или может быть установлен в файле config.h. Каждый модем имеет QR -код сверху, с его DeVeui.
Эта база кода была разработана и протестирована для полосы частот США TTN, но может быть изменена на другие полосы.
Протестировано с помощью: RHF0M062-HF22 и RHF0M0E5-HF22, но также должен работать с RHF78-052LA-HF22 и другими производными модулями от RING HF.
http://www.risinghf.com/home
Этот тестовый код имеет 3 подпрограммы отправки,
Короткий статус используется для сообщений об ошибках и ограничен 9 байтами, отправленным только тогда, когда мы запускаем, и когда у нас есть ошибка ... (DR0 -> 11 байтов -2 возможных байта Mac)
Статус редко отправляется с информацией о устройстве ... Версия, Время компиляции и т. Д.
Данные датчика отправляются в случае по умолчанию каждый час ...
У нас также есть поддержка периодического возобновления. После перехода от V2 на V3 на TTN стало ясно, что устройства должны время от времени вновь подходить для поддержки будущих ходов или изменений в сети или TTN.
Эта база кода также позволяет обрабатывать несколько загрузочных сообщений.
При запуске код считывает блок данных, хранящийся в FRAM (если доступен), и сравнивает поле с датой компиляции и CRC с тем, что хранится в FRAM, чтобы увидеть, есть ли у нас 1-й загрузок. Если это так, мы сохраняем копию блока данных в Fram для будущего использования. Если нет, мы настраиваем количество загрузки и сохраняем причина загрузки.
USB-порт выключается на загрузке, чтобы сохранить питание, это требует двойного нажатия переключателя сброса, чтобы вернуться к загрузке.
Есть много параметров конфигурации, которые вы можете установить в файле config.h, включая клавиши Lorawan, частотные таблицы, время отправки и т. Д.
Радиомодим имеет eEPROM, который будет хранить большинство параметров, хранящихся после настройки ... config.h имеет определение, которое отключает параметры повторного установки в модеме, если нет необходимости сбросить их снова.
Макросы Debug1 и Debug2 могут быть отключены, чтобы удалить все вывод отладки в последовательный порт, они позволяют нам использовать более распространенную функцию «c» printf (...) в нашем коде вместо функций arduino serial.print (...).
Этот код был протестирован с проприетарным оборудованием и с помощью доски Mini-Ultra-Pro-Lora RocketStream.
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