Этот репозиторий содержит прошивку, которая запускается на альтернативной плате для дождевого датчика TFA 30.3161 (см. Ссылку внизу страницы для получения дополнительной информации), который преобразует устройство в технологию Lorawan 868 МГц.
Данные о измерении будут переданы в шлюз Лоравана в диапазоне устройства (даже в городских районах 1 км может быть покрыто без каких -либо проблем), в то время как энергопотребление действительно низкое, поэтому батареи длится годами.
Предусмотрен предоставленный декодер полезной нагрузки JavaScript, протестированный с помощью TheThingsNetwork V3 и Chirpstack V4.

Помимо собранной дождевой доски Lora Rain, необходимы следующие инструменты:
Процессор на основной плате представляет собой Arduino, совместимый с Atmel Atmega328p. Таким образом, проект использует популярную библиотеку McCi Arduino LMIC для Лоры. Для легкой компиляции и развертывания используется платформу -инструмент.
Реализация Lorawan поддерживает OTAA и ABP. Данные сеанса (например, клавиши сеансов, счетчик рамки) и значение счетчика осадков будут время от времени храниться в чипе SPI Fram. Это делается сразу после присоединения к сети, а также после того, как каждый третий пакет данных был отправлен. Преимущество Fram над флэш -памятью - это гораздо большее количество циклов записи, но все еще хорошая идея, чтобы немного ограничить их.
После запуска устройство сначала переходит в спящий режим. Он просыпается либо после определенного интервала времени, либо при нажатию кнопки (что возможно раз в минуту). Если нет действительного сеанса, он попытается присоединиться в первую очередь. Когда пакет данных был отправлен, микроконтроллер переключается на глубокий сон, в котором энергопотребление падает до 14 мкА. Время глубокого спящего режима реализуется с использованием таймера сторожевого пса, чтобы разбудить микроконтроллер из режима Power Down каждую секунду, уменьшая переменную счетчика, содержащую период времени до следующей передачи.
Импульсы, генерируемые дождевым датчиком переломного ведра, захватываются прерыванием изменения порта. Это необходимо, потому что большинство компонентов периферийных устройств микроконтроллера (включая таймер/счетчик) неактивны из -за глубокого спящего режима. Прерывание разбудит контроллер в течение короткого периода времени, чтобы увеличить счетчик дождя. После этого это продолжится со следующим циклом глубокого сна.
Если подключен датчик BMP280, в передачу также включены данные о температуре и барометрическом давлении.
Интервал сна и дождевой счетчик могут быть обновлены с помощью сообщения нисходящей линии связи. Просто используйте FPORT 1 для интервала и FPORT 2 для значения счетчика, оба отправлены в виде 16-битного целого числа (сначала MSB).
Эта прошивка использует систему сборки Platformio, которая автоматически обрабатывает все инструментальные и зависимость. Пожалуйста, следуйте руководствам на платформе. Затем клонируйте этот репозиторий и измените в правильный каталог.
Просто подключите свой USBASP к 6 -контактным разъему провайдера на плате. Пожалуйста, убедитесь, что программист установлен на напряжение 3,3 В, так как RFM95W не является терпимым 5 В! После этого просто выполните pio run -t bootloader -e m328p_isp (или -e m328pb_isp для ATMEGA328PB) для программы загрузчика и плавников. После этого устройство может быть легко запрограммировано с помощью последовательного соединения.
Скопируйте файл src/config.h.example в src/config.h. Затем не покинули либо use_otaa, либо use_abp, создайте новое устройство на вашем сервере Lorawan и заполните начальные данные сеанса в config.h, как описано в нем. Вы можете найти необходимый декодер полезной нагрузки в docs/payalt-decoder.js.
Как только все будет настроено, подключите последовательный адаптер USB к соответствующему заголовку PIN. Затем выполните pio run -t upload (добавить -e m328pb для Atmega328pb), чтобы программировать прошивку.
Возможно, вы захотите проверить последовательную консоль на наличие сообщений журнала, используя pio device monitor . Сеть будет соединена сразу после питания. Значения измерения будут передаваться каждые 15 минут.
После завершения активации Лоравана данные сеанса хранятся в FRAM и восстанавливаются при загрузке. Значение хэша config.h включено для обнаружения изменений конфигурации и аннулирования текущего сеанса, заставляя устройство реактивировать. Реактивация также может быть вызвана путем удержания кнопки в батарейке в течение нескольких секунд при вставке батарей.
Светодиод на плате будет освещаться, если пакет отправляется. Это будет мигать, если активация OTAA не удастся.
https://www.maltepoeggel.de/?site=lora-raingauge
Эта прошивка выпускается в соответствии с условиями лицензии MIT, см. Файл лицензии для получения подробной информации.