Lorapromini - низкий узел Lorawan Node
Узел датчика Lorawan, основанный на ATMEGA328P MCU (Arduino Pro Mini) и RFM95W/SX1276 LORA.

Модуль можно использовать:
- Соберите различные климатические значения с экологическими датчиками. См. Датчик экологического (погода/клима)
- Расскажите, поместил ли буквенную носитель новые письма в ваш почтовый ящик. Смотрите монитор почтового ящика
- Уведомить, если кто -то позвонит дверь
- Действовать в кнопке без вир
- И еще много ...
Функции
- Deep Sleep MCU и датчики между передачами данных
- Два входа прерывания могут использовать для разбуждения MCU и датчиков от глубокого сна
- Подтвердите сообщения и неподобные сообщения
- Ультра низкое энергопотребление. Менее 10 мкА со всеми признаками и датчиками
- Вход мощности 3.5-6 В:
- Батарея (литий-ион или Li-Socl2 работает нормально)
- Батарея с солнечным зарядным устройством
- Поддержка датчика
- Bosch BME280 (влажность, барометрическое давление и температура окружающей среды)
- Maxim DS18B20 (+)/DS18S20 (+)/DS1822 1-проводной датчик температуры
Предупреждение
Лорапромини не заботится о соответствии с ограничением рабочего цикла. Пожалуйста, выберите только интервалы передачи, которые находятся в пределах юридических пределов (1%/0,1%). Пожалуйста, также обратите внимание, что входы прерывания могут вызывать дополнительные передачи, если эта функция активирована.
Заказы печатной платы
☝ У меня все еще осталось несколько печатных плат. Если вы заинтересованы, пожалуйста, свяжитесь со мной. Контактные данные можно найти здесь: https://github.com/fooorschtbar или посетите мой магазин Tindie:
Пример приложений
Экологический (погодный/климальный) датчик
- Скачать Radiation Shield STL
- Купить водонепроницаемый светодиодный солнечный свет

Монитор почтового ящика
- Скачать корпус STL
- Купить обычно открытые переключатели тростника



Больше фото


Конфигурация стека вещей
- Lorawan версия
MAC V1.0.3
Как использовать
- Производство печатной платы. Здесь вы найдете файлы Gerber
- Соберите печатную плату. Здесь вы найдете счет материалов (Bom)
- Внимание: текущая версия (v3.1) печатной платы не имеет заголовка интернет -провайдера! Должен быть установлен предварительно сжиганный ATMEGA328P. Я получил один от мини -доски Arduino Pro (3,3 В 8 МГц), потому что полностью собранный Arduino дешевле, чем один чип
- Прошивка Flash Config (см. Как прошить)
- Начало калибровки напряжения из меню
- Строитель конфигурации конфигурации начала конфигурации
- Измерить напряжение с помощью мультиметра
- Вставьте многометровое напряжение и аналоговое значение в калькуляторе Volts-Per-Bit (VPB), чтобы получить коэффициент VPB.
- Если у вас есть регулируемый источник питания, попробуйте разные напряжения, чтобы найти лучший фактор. Предупреждение: максимальное напряжение составляет 6 вольт
- Заполните другие поля, такие как метод активации, сеансовые клавиши и Euis
- Написать конфигурацию в EEPROM с использованием меню конфигурации
- Проверьте письменную конфигурацию через меню конфигурации
- Flash Debug или выпуск прошивки (см. Как вспыхивать)
- Заканчивать
Как мигать
avrdude-F -v -c arduino -p atmega328p -P <COM PORT> -b 57600 -D -U flash:w:<FIRMWARE FILE>:i
Пример:
avrdude -F -v -c arduino -p atmega328p -P COM4 -b 57600 -D -U flash:w:firmware_1.0_config.hex:i
Прошивка изменяющегося
Версия 2.7
- Исправлена проблема сброса триггера прерывания слишком рано.
Версия 2.6
- Вторая попытка решить ненужную задержку из -за ограничения рабочего цикла. Переполнение Timer0 замораживает MCU после примерно 20 передач.
Версия 2.5
- Фиксированная проблема с ограничением рабочего цикла
- Исправлена неточность DeepSleep MCU
Версия 2.4
- Внешнее прерывание во время передачи завершает передачу и запускает новую передачу.
- Режим проверки включенной ссылки
Версия 2.3
Версия 2.2
- Дополнительная задержка отправки от 0 до 20 с была добавлена, чтобы избежать перекрытий между различными узлами с одинаковым интервалом отправки
- Некоторые оптимизации флэш -памяти
Версия 2.1
- Улучшенная (отладка) регистрация до серийного вывода
- BME отправляет -127 ° C (ссылка DS18x), если датчик не найден
Версия 2.0
- Добавлены бортовые штифты прерываний
- Добавлена опция для отключения контактов с прерыванием
- Добавлена опция для подтвержденной вершины
- Изменено сообщение Lorawan Data Up
- Добавлено состояние прерываний
- Комбинированная основная и второстепенная версия байта в один байт (4 бита для мажорных и 4 бита для несовершеннолетних)
Версия 1.1
- Только для тестирования трубопровода CI
Версия 1.0
PCB ChangeLog
Версия 3.2
- Фиксированный C7 (заменен 10 UF на 100NF)
Версия 3.1
- Добавлен белый поле, чтобы указать идентификатор узла
Версия 3.0
- Удаленная Arduino Pro Mini Dauther PCB
- Добавлен ATMEGA328P напрямую к печатной плате
- Добавлены булавки для неиспользованных GPIOS
- Добавлены D2 и D3 с пульдорами и разъемом в качестве внешних прерываний (необходимость FW v2.0 или выше)
Версия 2.2
- Добавлен RST PIN -код в разъем для программирования
Версия 2.1
- Добавлен разъем для программирования
Версия 2.0
- Меньшая печатная плата
- Округлые края
- Исправлена проблема с картированием встроенного штифта DS18X
Версия 1.0
Форматер полезной нагрузки TTS (ранее декодер полезной нагрузки TTN)
function decodeUplink ( input ) {
var bytes = input . bytes ;
var itrTrigger = ( bytes [ 0 ] & 0x1 ) !== 0 ; // Message was triggered from interrupt (bit 0)
var itr0 = ( bytes [ 0 ] & 0x2 ) !== 0 ; // Interrupt 0 (bit 1)
var itr1 = ( bytes [ 0 ] & 0x4 ) !== 0 ; // Interrupt 1 (bit 2)
var bat = ( bytes [ 1 ] << 8 ) | bytes [ 2 ] ; // Battery
var fwversion = ( bytes [ 3 ] >> 4 ) + "." + ( bytes [ 3 ] & 0xf ) ; // Firmware version
var temp1 = ( bytes [ 4 ] & 0x80 ? 0xffff << 16 : 0 ) | ( bytes [ 4 ] << 8 ) | bytes [ 5 ] ; // BME Temperature
var humi1 = ( bytes [ 6 ] << 8 ) | bytes [ 7 ] ; // BME Humidity
var press1 = ( bytes [ 8 ] << 8 ) | bytes [ 9 ] ; // BME Pressure
var temp2 =
( bytes [ 10 ] & 0x80 ? 0xffff << 16 : 0 ) | ( bytes [ 10 ] << 8 ) | bytes [ 11 ] ; // DS18x Temperature
var mbStatus = "UNKNOWN" ;
if ( itr0 ) {
mbStatus = "FULL" ;
} else if ( itr1 ) {
mbStatus = "EMPTY" ;
}
return {
data : {
interrupts : {
itr0 : itr0 ,
itr1 : itr1 ,
itrTrigger : itrTrigger ,
} ,
extra : {
mbStatus : mbStatus ,
mbChanged : itrTrigger ,
} ,
fwversion : fwversion ,
bme : {
temperature : temp1 / 100 ,
humidity : humi1 / 100 ,
pressure : press1 ,
} ,
ds18x : {
temperature : temp2 / 100 ,
} ,
battery : bat / 100 ,
} ,
warnings : [ ] ,
errors : [ ] ,
} ;
} Тодо