[Из песочницы] Очередная умная розетка для очередного умного дома

Много лет мечтал о создании умного дома, но каждый раз останавливала проблема связи модулей (розеток, датчиков и выключателей) с центром и между собой. Но прогресс не стоит на месте, все чаще и чаще встречающаяся информация о микроконтроллерах со встроенными трансиверами подтолкнула меня опять вернуться к моей давней идее. В этом посте я расскажу о том, как создавалась «умная розетка» (на самом деле сетевой фильтр), который и представлен на фото ниже.780d520be92640d0940d4b99e0a3a9fa.jpg

Все остальное под катом. Осторожно! Много картинок.

Предисловие Сначала надо сказать, что в городе, в котором я сейчас живу, очень большая проблема с электронными компонентами (резисторы по 5р. штука, а о микроконтроллерах тут вообще не слышали). Все приходится заказывать или просить товарищей мне передавать из более продвинутых в этом плане мест. Надеюсь, эта информация объяснит возможные вопросы по применению тех или иных компонентов. Это не первое моё устройство и, благодаря использованию готовых модулей, надобность в рисовании схем отпала. Представлю только схему симисторного ключа.Компоненты Заказал у наших любимых друзей из поднебесной замечательные модули с распаянным nRF24LE1. О этом микроконтроллере уже много написано на хабре (тут, и тут, и еще вот тут), и это очень помогло на старте.Мои модули, в отличие от большинства рассмотренных на хабре, меньше размером и имеют PLS с маленьким шагом (кстати, может сообщество подскажет, как правильно называются эти штырьки и где достать ответную часть).6ab37299df0c435184ab55c930676f9c.png

В качестве мученника модернизируемого был выбран обычный, уже прошедший испытание бухгалтерами и уборщицами, сетевой фильтр. Я его протер на сколько смог, но некоторая усталость от постоянных пинаний ногами налицо.

c5dfb4d7cd5245f39472ea5bacdbe337.jpg

Так же из поднебесной были заказаны симисторы BTA16 (600v, 16A) и опто-симисторы MOC3063. Рассыпуха частично была, частично докупил.Итак, в бой!

Процесс разработки Для начала разобрал сетевой фильтр, что бы понять, хватит ли мне места.043fabe9ab1c4de3808c28777c0abc17.jpgМеста вагон и телега хватает.

Далее для прошивки nRF24LE1 решил использовать microUSB разъем. Контактов хватает, но нужно подтягивать вход PROG к питанию, чтобы перевести мк в режим программирования. Решил обойтись простым джампером (который пришлось самому делать из термоусадки и проволоки).

877e49914bd84368877850ea0905987a.png

Отдельное, большое, спасибо посту от MaksMS, а так же ему лично. Статья и переписка с ним очень помогли начать программировать nrf24le1, а так же завести радио часть.

Итак, модуль отзывается на запросы программатора (использую USB ASP), переходим к управлению силовой части. Для управления симистором решил использовать опто-симистор MOC3063. Данная микросхема полностью отделяет силовую часть от низковольтовой, но есть один нюанс. MOC3063 имеет встроенный детектор перехода через 0 (zero-cross) в сети питания и сама подает открывающий импульс на симистор, что в свою очередь ведет к тому, что мы не можем диммировать розетку, но эту цель я и не преследовал. Схема включения ниже:

5086f61f4f814ef7af2fc067c444dd78.png

Схема проста, думаю, дополнительных объяснений не надо. Единственное отступление, вместо ограничивающего резистора поставил зеленый светодиод, который будет оповещать о включении опто-симистора.По схеме собрал, маленькие, модули для 5-и розеток (на фото только 3):

7f092597c4f944c4abf9410fd347f7f5.jpg

e7f5a2d021be4f7b8f3cde4057f25e7f.jpg

Далее, одну из линий в сетевом фильтре порезал в указанных местах, а из вырезанных промежутков сделал перемычки на «не скрепленные» концы, что бы при включении вилки они сильно не разгибались.

8503b61c11114ae280f2a7fa87a81230.jpg

6b278f6680a94c5297cf034276415661.jpg

Припаял управляющие выводы симисторных модулей к пинам микроконтроллерного модуля 0.2, 0.1, 0.0, 1.6, 1.5.5 желтых светодиодов припаял к выводам 0.7, 1.0, 1.1, 1.2, 1,3. К выводам 0.5, 0.6 припаял зеленый и красный светодиоды для индикации работы модуля (парсинг команд, прием или отправка данных).Все это добро упаковал в корпус сетевого фильтра.

91034ad0d3f84cebbabd98b19351ba64.jpg

Симисторные модули отлично поместились в промежутки между коробками для вилок (на фото к ним идет зеленые и серые проводки), под модулями установлены зеленые светодиоды (в заранее высверленные отверстия) в противоположной от них стороне, установлены желтые светодиоды.Слева посередине видны концы двух светодиодов состояния мк.Ну и в левом нижнем углу виден сам радиомодуль с висящим разъемом для программирования. Постой, а где же хваленый microUSB?! На момент съемки, microUSB кабель, который у меня был, оказался слишком длинным и программатор не видел мк.

Далее, самая большая проблема всего мероприятия: питание для микроконтроллера. Сначала хотел сделать конденсаторное питание, но нужных конденсаторов и стабилитрона в городе не нашел, а заказывать и ждать уже не было желания. Решил использовать блок питания из зарядки для какого-то телефона.

310a055e8cf842c193475695b29c6940.jpg

Долго мучился с блоком, который сверху (с красной полосой), но оказалось, что у него сгорела оптопара, и стабилитрон на блоке крайне сильно грелся. Такую штуку ставить было очень опасно, и я решил использовать блок, который снизу (с желтой полосой), хоть и пришлось оставить один из домашних девайсов без питания.

81dc5803c22e48c5919b536e67a4c438.jpg

Понятно, что конденсаторный вариант был бы гораздо меньших размеров, но у зарядки есть гальваническая развязка, что позволяет в будущем вывести разъем для программирования вне корпуса.Тем не менее, блок отлично поместился в корпус фильтра, и вся конструкция приняла следующий вид:

6639c8b21aa34cf782b78786947942f3.jpg

После сборки в рабочем состоянии:

780d520be92640d0940d4b99e0a3a9fa.jpg

69193f81f19948cab694a1742422d715.jpg

Функционал К сожалению, пока не могу выложить прошивку, потому что она очень запутана. Писалась с учетом работы в сети со многими устройствами, и в ней куча лишнего. Если сообществу будет интересно и я наконец получу инвайт то опубликую все в следующем посте. Хочется отметить, что никакого хитрого алгоритма там нет. Все сводится к простому дерганью пинами вкл/выкл. Никакого шима и тд. Простое мигание светодиодами (силовые модули для мк — обычные светодиоды)Принцип работы следующий: при получении пакета от сервера, модуль определяет, что следует сделать с выбранной розеткой, и включает или выключает её. В выключенном состоянии на против розетки горит желтый светодиод, во включенном состоянии горит зеленый.Тут я допустил очень серьезную ошибку, надо было сверлить дырки для светодиодов перпендикулярно к отверстиям для вилки. Так как 80% всех блоков питания, что я нашел дома, закрывают или оба светодиода, или один.

Немного о сервере Сервер представляет собой такой же модуль nRF24LE1, подключенный через USB-UART конвертер к ПК, с которого через Java приложение идет управление другими устройствами в сети. Фото нижеeee54ab7ffa74895b816050741bf3df3.jpg

Заключение Сетевой фильтр уже трудится на благо моего дома. Софт еще сырой и смысла его показывать и краснеть нет.Тем кто собирается повторять сие чудо я могу прислать облегченную версию прошивки и сервера, а так же дать пару советов: Светодиоды надо установить перпендикулярно, а для особо обеспеченных оргстеклом, рекомендую сделать светящуюся обводку. Будет круто! Сам радио модуль стоит установить в противоположную сторону от входа напряжения. Помех меньше, да и места больше. Используйте короткие microUSB Стоит добавить функцию сохранения состояния пинов при отключении питания. Сам планирую в новой версии прошивки это сделать Отдельная благодарность доценту Юрию Ивановичу Иванову (каф. САУ, ЮФУ) за помощь в разработке конденсаторных и других типов блоков питания. Хоть в этом проекте их нет, буду применять их в следующих, и обязательно расскажу об этом, если сообщество одобрит этот пост.

Ожидаю критики, а лучше похвалы и предложений по улучшению конструкции.

Необходимая документация Даташит на nRF24LE1Даташит на BTA16Даташит на MOC3063Схема управления силовой нагрузкой с более развернутым описанием

© Habrahabr.ru