Всегда была интересна тема умного дома, вариантов купить готовый, большое многообразие, но т.к. я технарь, решил делать сам. IoT (интернет вещей) я думаю под это дело подходит на все 100, и т.к. изделия подобного типа производят в одной знакомой мне организации, я решил попробовать сделать на их основе. Сама железка на CC1310 уже есть в наличии, остается только запилить под нее прошивку и подключиться к ней по нужным DIO.
LAUNCHXL-CC1310 – это отладочная плата на базе беспроводного микроконтроллера CC1310 поддерживающая обмен данными в диапазоне Sub-1GHz.
Особенности:
- LaunchPad с трансивером Sub-1GHz для беспроводных приложений с интегрированной PCB антенной;
- Широкополосная антенна поддерживает диапазона 868 MHz (ISM диапазон для Европы) и 915 MHz (ISM диапазон для US);
- Встроенный эмулятор на плате дает вам возможность начать разработку кода в CCS Cloud;
- Может использоваться с LaunchPad kit и Smart RF Studio приложениями;
- Все I/O сигналы доступны через разъем BoosterPack;
- Совместимость с LCD BoosterPack.
Датчик влажности и температуры AM2320: влажность: 0-100%, точность 3% Шина I2C
АМ 2320 имеет следующие технические характеристики:
Напряжение питания – 3,1-5,5 В;
Потребляемый ток – 8-10 мА в режиме ожидания, до 950 мА в режиме измерений;
Диапазон измерения температуры от -40º до +80ºС;
Максимальная погрешность измерений – 0,5 ºС;
Диапазон измерения влажности воздуха – 0-100%;
Погрешность измерений влажности воздуха – 3%;
Время между считыванием данных – 2 сек;
Габариты – 15х12,1х4,5 мм.
AC-DC 220 -> 5 в. небольшого размера чтобы встроить в вытяжку.
Моя железка выглядит примерно так.
По умолчанию I2C назначено на DIO4, DIO5, но т.к. я переделывал данное мне устройство, пришлось переназначить на DIO26 - SCL, DIO27 - SDA и DIO - 28 на управление реле. Причем столкнулся с глюком, зависало после не продолжительной работы, оказалось что на моей шине I2C стоят 2 конденсатора на GND, отпаял, все стабилизировалось.
Прошивка для устройства делается на OS Contiki, на Си, Делается прошивка для граничного роутера (о нем чуть ниже) и для устройств mesh - сети.
Именно на этом устройство нужно было переназначить I2C, написать процесс опроса датчика влажности (раз в 3 сек.) засунуть значение влажности в переменную, добавить возможность задавать нижний и верхний порог влажности при которых бы включался вентилятор, также чтобы эти значения не сбрасывались при отключении питания, для "запоминания" была использована встроенная флеш-память.
И процесс который следит за показаниями влажности, сравнивает их в порогами включения, отключения и управляет реле.
Получение данных и настройки осуществляются при помощи coap запросов, из плагина Cupper, чуть позже нужно будет сделать веб интерфейс с красивыми кнопками, и приложение для смартфонов.
Граничный роутер работает на 6lbr (акроним от 6LoWPAN Border Router)
У меня граничный роутер сделан из nanopi neo плюс радиомодуль, соединенный через UART
Принцип работы
Граничный роутер должен включать 2 среды передачи данных для обеспечения возможности передачи данных и непосредственно само приложение обеспечивающее передачу данных между ними. Для работы приложения требуется вычислительное ядро. В итоге можно выделить следующие составляющие необходимые для аппаратной реализации (рассмотрим их последовательно для случая передачи данных из традиционной IP-сети в сеть 6LoWPAN):
контроллер/приёмопередатчик Ethernet,
вычислительное ядро для обработки пакетов,
контроллер/приёмопередатчик сети 802.15.4,
подробнее тут на русском языке.
В итоге я получил работающее устройство которое уже установлено и работает уже.. часов 12 ))
В дальнейшем стоит задача немного модернизировать прошивку, чтобы можно было принудительно включать вытяжку и задавать время до выключения, написать веб интерфейс и приложение хотя бы под андроид.
Дальше буду делать датчик задымления, с оповещением в виде СМС или другими способами, но тут придется делать "спящее устройство" чтобы батареи хватило на долго.
И самая главная задача, это сделать "прошивку по воздуху" чтобы не снимая устройство можно было залить свежую прошивку.
И "небольшое" видео как это устройство собиралось и работает.