После серии постов про DIY-диммер «умного дома» решил рассказать о своей реализации подобного проекта.
Цель моего поста — поделиться опытом и предложить несколько направлений для размышления.
Для меня «умный дом» — это когда находится какая-то проблемная область в обычной домашней жизни, для нее делается какое-то решение, которое начинает работать без участия человека и позволяет забыть эту проблемную область как минимум надолго, а в идеале — навсегда.
В какой-то из вечеров, «обнаружил» давно забытый в углу гостиной торшер, который никто уже очень давно не включал.
Обусловлено это тем, что свет в гостиной управляется универсальным пультом Logitech и через веб. Чтобы это было возможно, была сделана небольшая железка на ардуино, которая принимала ИК-команды от пульта и «нажимала кнопки» на радиопульте от потолочного светильника. Дополнительно эта железка оборудована модулем nRF24L01+ и умеет принимать команды от других модулей, в частности моих LAN- и GSM-шлюзов и передавать данные о своем состоянии. Но не о ней речь в этом посте (чуть-чуть писал об этом тут).
Итак, обнаружена «проблемная область» — нерадиофицированный торшер.
Поразмыслив над этой темой, придумалось, что сходная задачка (дистанционное включение-выключение) может очень даже пригодиться еще минимум в двух местах — питание роутера и модема провайдера (реализовать перезагрузку «по питанию»).
В дальнейшем появилась мысль сделать собственные выключатели (да-да, для установки в стандартные подрозетники и управляемые еще и через радиоканал), но пока до реализации руки не дошли из-за нехватки времени.
Таким образом получается, что проект как минимум не «одноразовый» и может быть тиражирован как в ближайшем, так и не очень близком будущем.
Сказано-сделано, смотрю, что же есть в «закромах родины» (ящичек с радиодеталями) и обнаруживаю:
- предусмотрительно закупленные релюшки с напряжением 5В, которые могут коммутировать вполне себе «взрослые» 250В с током до 7А,
- в качестве МК хотел использовать atmega168, но оказалось, что я под какие-то свои будущие нужды приобрел парочку atmega8 в DIP-корпусах, но руки мои до них так пока и не добрались — настал их черед,
- пакетик транзисторов КТ306Г (еще из советских времен).
От кварцевого резонатора в схеме решил отказаться в пользу упрощения схемы и платы.
МК буду программировать через ISP с помощью программатора USBtinyISP, который уже тоже давно ждал своего времени.
Сразу задумался о питании разрабатываемого модуля.
Городить еще один блок питания к блоку, который коммутирует питание торшера (или другого устройства), как-то совсем не хотелось. Сделать сразу полную схему с питанием — тоже. И тут на глаза попалась зарядка для iPhone (нашел в Москве место, где их можно купить по 100 рублей и по этому случаю купил 5 штук «про запас»).
Правильный инструмент в руки и вуаля:
Замечательная платка импульсного БП с 5В на выходе и током до 1А — использую ее.
Первый прототип реализован на макетной плате и гордо продемонстрирован жене в работе.
Первая реакция: «Но ты же не оставишь эту конструкцию в таком виде и сделаешь для нее корпус?»
Корпус был «изготовлен» из обычной мыльницы.
Чтобы блок был «универсальным», оборудовал его обычной электрической вилкой и соответствующей розеткой. Розетка, к сожалению, на тот момент нашлась только такая, аналогичную которой я использовал для изготовления садового удлинителя (приобретена в строительном магазине). Мягко говоря, и вилка, и розетка несколько «крупноваты».
В общем, как обычно — «я его слепила из того, что было»:
На изготовление прототипа ушло где-то пару часов.
Где-то час ушел на написание и тестирование скетча и небольшие танцы с бубном по его заливке в МК (ни один МК при прошивке не пострадал от неверно выставленных фьюзов).
После нескольких дней опытной эксплуатации торшер обрел «вторую жизнь».
Можно приступать к тиражированию.
Только в этот раз итерация началась с поиска подходящего корпуса, в который бы уместилась основная плата и плата блока питания. Дополнительно хотелось оставить функцию зарядки (USB-разъем).
Подходящий корпус был обнаружен в ближайшем «Чип и Дип» (да, дорого, но зато сразу). Размер корпуса 63х44х31мм и его внутренняя компоновка вполне четко дали размеры будущей основной платы.
Схемку быстро накидал в Eagle и там же развел плату.
Если требуется схема и плата — сообщите в комментариях — сделаю апдейт к статье.
Сначала хотел остановиться на односторонней плате, но после нескольких попыток оптимизации разводки — отказался от этой идеи и решил заЛУТить двустороннюю плату по этому методу.
Для меня это был первый опыт (сразу 100% успешный, хотя и не без огрех).
Поскольку это «первый опыт», решил использовать этот шаблон и сделать «проверочную» плату.
Сильно позже распечатал свои шаблоны на HP1320n с «правильными» настройками — качество оказалось несравнимо выше и никаких нежелательных артефактов на распечатке не наблюдалось.
Для переноса тонера на фольгированный стеклотекстолит воспользовался подложкой от детских наклеек (оказывается, сейчас продают целые «книжки-наклейки» вместо старомодных «книжек-раскрасок»). Сам материал — отлично подошел, но из-за того, что наклейки «вырубаются» на прессе — основа пострадала (на фото ниже видно на бликах характерные «разрезы» по местам бывших наклеек):
После тщательной «утюжки» и последующего «отмачивания» тонер практически полностью перешел на будущую плату (бумага просто отслоилась от платы, а тонер остался на меди). А вот в местах «разрезов» медь окислилась (повышенная температура и доступ воздуха) — это хорошо видно на фото:
Плату перед травлением внимательно рассматривал под лампой — дорожки подкрашивать не пришлось.
Травил в растворе хлорного железа, постоянно контролируя процесс (вспоминая свои детские поделки, когда платы рисовал цапон-лаком).
Результат оказался вполне жизнеспособным (на дорожках местами виден не до конца отмытый тонер):
После внимательнейшего осмотра плат на просвет, выяснился еще один косяк шаблона — недостаточная плотность тонера, которая особенно хорошо оказалась заметна на толстых дорожках. Этот дефект выглядел как сеточка из очень-очень маленьких протравленных отверстий, расположенных в строгом геометрическом порядке.
Дорожки залудил паяльником (325 градусов), в качестве флюса использовал обычный глицерин — результирующая плата меня полностью удовлетворила — никаких «залипух» и «трещин» («сеточка» тоже затянулась).
Плату развел таким образом, что не было ни одного «свободного» переходного отверстия (т.е. все переходы — только через выводные элементы). Но малость просчитался: несколько переходов оказались под разъемом ISP и разъемом под радиомодуль. При монтаже задумался, каким образом можно это обойти, и нашел достаточно простое решение: распустил многожильный провод на тонкие жилы и аккуратно запаял кусочки этой жилы с двух сторон в тех отверстиях, где нужен был переход, при этом минимально занимая пространство внутри отверстия. Это позволило реализовать переход и отверстия остались достаточно свободными для того, чтобы соответствующие разъемы нормально встали на свои места и были распаяны.
Как ни странно, даже использование не самого лучшего шаблона, дало вполне годный результат.
Таким образом, получили все компоненты будущего модуля:
Первая «примерка» к новому корпусу:
Позднее между платами добавлена жесткая прокладка, вырезанная из старой пластиковой карты, чтобы исключить возможный контакт.
Дополнительно в корпусе было организовано отверстие для USB-разъема, чтобы можно было от этого блока еще и заряжать что-нибудь (рядом с торшером расположен столик, на котором телефоны/планшеты регулярно «ночуют»).
Собственно, результирующее устройство рядом с прототипом:
В этот раз вилку и розетку взял более компактные (в «расход» пошел удлинитель из ИКЕА). К сожалению, они только белого цвета, мне черный вариант подошел бы больше:
С торшером все понятно, а вот когда стал «примеривать» этот модуль к роутеру и модему, понял, что некоторые вещи не додумал и в скетч были добавлены следующие функции:
- сохранение в EEPROM текущего состояния (вкл/выкл)
- восстановление текущего состояния после сброса (например, при выключении питания).
- временной режим работы (перманентная коммутация или временная). К примеру, для роутера и модема не нужно давать две команды — «выключить» и потом «включить», а дать одну команду «выключиться на ХХ секунд»
- возможность удаленно менять все параметры блока через радиоканал и сохранение этих параметров в EEPROM (чтобы не делать уникальную прошивку для конкретного устройства, а иметь возможность настроить конкретный блок под конкретную задачу)
- возможность удаленно прочитать все текущие параметры блока (как состояние, так и «настройки»)
- «сторожевая собака» (глупо было бы оставить роутер или модем без питания из-за «зависания» модуля и лишить себя доступа к домашним системам извне).
На текущий момент оба модуля (прототип и первый в «серии») успешно трудятся и решают свои задачи. Пара плат и корпусов ждут своего часа…
В голове бродят мысли о выключателях в стандартные подрозетники (и мысль разобрать один из китайских радиоуправляемых выключателей, дабы произвести небольшой реверс-инжиниринг, чтобы не наступить на какие-нибудь еще грабли или даже «выпотрошить» его почти целиком и заменить внутренности на свои).
Имея достаточный набор таких «коммутаторов», можно спокойно реализовывать какие-нибудь автоматические сценарии с учетом данных от каких-либо проводных или беспроводных «датчиков», но об этом как-нибудь в следующий раз…
Автор: avstepanov