TTN Mkrwan Node
Фон
Доказательство концепции для «ультра низкой мощности» Lorawan / The Things Network Node с использованием Arduino Mkr WAN 1300.
MKR WAN 1300 использует слишком много мощности в спящем режиме, который будет использоваться в качестве ультра низкого уровня питания (чуть больше 1 мА).
В этом доказательстве концепции используется техасский инструмент TPL5110 Ultra Low Power Timer, чтобы принести ток сна до 50 На.
Поскольку устройство полностью отключено во время сна, мы используем модуль FRAM, чтобы сохранить клавиши сеанса Lorawan и счетчики кадров.
Два тестовых узла:
Вверху слева: дисплей и датчик температуры Maxim DS18B20
Внизу слева: Bosch BME280 Влажность и датчик давления

Вверху справа: ток сна
Внизу справа: запуск тока (узел с дисплеем)
Теория операции
- TPL5110 просыпается и питается на MKR WAN 1300
- Читать сохраненные данные из Fram
- Присоединяйтесь к сети
- OTAA в первый раз (нет данных в Фрам)
- ABP с использованием сохраненных сеан -клавиш и кадров
- Собирать данные с датчиков
- Отправить полезную нагрузку Lorawan в формате Cayenne LPP
- Проверьте сообщение по нисходящей линии связи
- Введите режим сна (поднимите выполненный штифт TPL5110)
Требование оборудования
Код полагается на следующее оборудование:
- Arduino Mkr WAN 1300 - прошивка 1.1.7 или новее
- TPL5110 Breakout
- Фрамский прорыв
- Датчики, пример кода предоставлены для
- Напряжение аккумулятора (используя встроенный разделитель)
- Maxim DS18B20 Датчик температуры (один провод)
- Bosch BME280 Датчик давления влажности температуры
- Необязательный
- SH1106 128x64 I2C Display для отладки
- Кнопка, чтобы заставить сбросить (otaa ocke) во время загрузки
Любое подобное оборудование должно работать, но может потребоваться какое -то изменение кода.
Программные зависимости
Arduino IDE с следующими библиотеками (все доступно от менеджера библиотеки Arduino):
- Arduino Mkrwan версия 1.1.7 или более новее
- Adafruit Fram (SPI версия)
- TheThingsNetwork версия 2.5.13 или более новее ( не 2.5.12!)
- Для датчика BME280
- Адафрут унифицированный датчик
- Adafruit BME280
- Для датчика Maxim DS18B20
- OneWire
- Dallastemperaturation
- Для необязательного отображения: U8G2
Образец установки
Настройка образца с OLED -дисплеем SH1106 и датчиком DS18B20:

Операции
Конфигурация программного обеспечения
- Скопируйте
arduino_secrets_distr.h в arduino_secrets.h и введите свои ключи, полученные из консоли TheThingsNetwork - В
TTNMkrWanNode Decommom определяет ваши датчики.
Датчик напряжения всегда доступен, он использует встроенный разделитель. Обратите внимание, что повесит тот факт, что разделитель составляет 1/3, а эталон напряжения составляет 1,0 В, максимум, который вы можете измерить, - 3,0 В ... - В
debug.h выберите вариант отладки:-
#define DEBUG прокомментирована: Код отладки не сгенерировал -
#define DEBUG DENAGEDEDED: DEBUG на (USB) серийной консоли. Узел будет ждать консоли! -
#define DEBUG и #define OLED Undemated: сообщения отладки на OLED -дисплее.
- В
ttn.h вы можете установить свой порт по умолчанию Lorawan и скорость передачи данных
Власть
Отключить питание от TPL5110 (DRV) при питании от USB.
Инициализация
Если FRAM не содержит допустимых данных или если кнопка нажимается при запуске MKR WAN 1300, устройство выполнит соединение OTAA.
Сообщения нисходящей линии связи
Перед сном узел будет проверять сообщение о нисходящей линии связи:
- 0x01: сброс. Узел выполнит соединение OTAA во время следующего цикла
- 0x02 0xpp: установил порт. Узел будет использовать порт
pp при отправке данных - 0x03 0xdd: установить скорость передачи данных. Узел будет использовать запрошенную скорость передачи данных.
Время сна
- При питании из USB узел будет простаивать в течение 5 минут, а затем сбросится
- При питании через TPL5110 время сна управляется резистором (при прорыве Adafruit вы можете использовать Trimpot на плате)