Опрос


Что для Вас Умный Дом?


Результаты


Реклама


Беспроводный звонок как часть Умного Дома

03/03/2015 18:04:14

С незапамятных времен, еще когда деревья в саду были большими маленькими, я прицепил на дверь китайский беспроводной звонок, купленный на скорую руку в маленьком провинциальном супермаркете за какие-то уж совсем смешные деньги. Звонок этот, состоящий из беспроводной кнопки и блока-приемника с похрюкивающим динамиком, так и провисел у входной двери несколько лет. Ведь, как известно, нет ничего более постоянного, чем временное. Однако, всему рано или поздно приходит конец, даже временному. Но не китайскому беспроводному звонку! Он обрел вторую жизнь, благодаря интеграции в общую систему Умного Дома.


Герой нашего поста - беспроводный звонок из Поднебесной

Я решил, что проигрывать мелодию звонка будет установленная для оповещения о различных событиях колонка, подключенная к мини-ПК Cubieboard2. Эта связка уже давно работала у меня в доме и произносила голосом различные сообщения. А от встроенного в звонок динамика я откажусь. По сути я буду использовать только функцию передачи радиосигнала от кнопки в блок-приемник, а факт нажатия на кнопку будет передаваться на сервер с помощью модуля MegaD-328.
Что дает подобная интеграция дверного звонка в общую систему.

1. Возможность выбора и проигрывания любого WAV/MP3 файла, в том числе в зависимости от каких-то внешних условий. (Давно мечтал поставить в качестве звонка бой кремлевских курантов или Вестминстерского аббатства)
2. Регулировка громкости воспроизведения в зависимости от времени суток или других обстоятельств. (В час ночи бой курантов может и до нервного срыва довести)
3. Автоматическое управление освещением. Например, включение света в прихожей в темное время суток. (Реализовал несколько подобных сервисных механизмов - удивительно удобно)
4. Включение записи камер наблюдения по факту нажатия кнопки. (У меня есть прекрасная коллекция фоток, сделанная pinhole-камерой вызывной панели калитки. Когда у меня плохое настроение, я иногда просматриваю архив с этими чудесными лицами, чтобы поднять бодрость духа)
5. При отсутствии в доме хозяев параллельно с нажатием кнопки звонка можно воспроизводить заранее записанный лай злой собаки, мяуканье злой кошки или ворчание недовольного и тоже злого хомячка.
6. Автоматическая блокировка воспроизведения звука звонка при нажатии кнопки более 3-х раз подряд. (Знаете есть отдельные персонажи, которые будут звонить в дверь до тех пор, пока ее не откроют, а потом еще скажут: Кажется, у вас тут звонок не работает!)

Как вы понимаете, возможностей у такой банальной и простой штуки, как дверной звонок, огромное количество, если, конечно, он является полноценной частью Умного Дома. Безусловно, китайские производители тоже не стоят на месте. Так, в магазинах можно найти звонки даже с поддержкой карт памяти, на которые можно записать произвольную мелодию. Но все это не сравниться с теми обширнейшими возможностями, которые дает нам сервер Умного Дома. А он сможет проигрывать даже разную мелодию в зависимости от того, кто звонит...
Ну а кроме того, мне порядком надоело менять батарейки в блоке-приемнике (хотя есть модели, работающие и от сети 220В), и я решил, что было бы неплохо запитать его от какого-нибудь низковольтного источника. Интегрировать в общую систему Умного Дома будем посредством подключения блока-приемника звонка к стандартному входу контроллера MegaD-328 Kit. Поэтому... наркоз, скальпель, поехали!

Пульс? Нормальный... пока. Вскрытие корпуса показало, что приемник построен на довольно распространенной в подобных изделиях микросхеме LP802B-M4. Прежде всего, отключаем от платы разъем динамика и элементов питания. Это теперь атавизм - можно удалить, причем и то и другое.
Теперь перерезаем дорожку от ноги 17. Можно дорожку не резать, а выпаять выводы резистора и диода ниже по дорожке.

Теперь навесным монтажом паяем схему согласования с исполнительным модулем MegaD-7I7O. Она состоит из резистора 43 кОм и любого маломощного n-p-n транзистора, например, КТ3102 или КТ315 из "наших" или ВС547 из "буржуйских". Вывод базы транзистора через резистор припаиваем с верхней стороны платы к ноге 17 микросхемы. Вывод эмиттера – к "земле" - перемычке на плате или любой другой точке с нулевым потенциалом.

Берём трёхжильный кабель или провод нужной длины. Жилу кабеля, по которой будет передаваться сигнал на модуль MegaD-7I7O, припаиваем к выводу коллектора транзистора, как видно фотографии выше. Больной еще дышит? А черт его знает...

Вторую и третью жилы кабеля припаиваем к выводам разъёма питания-динамика. Верхний вывод разъёма – "земля", ниже – питание +3 В. Я же совсем забыл сказать, что для простоты я решил запитать плату звонка непосредственно от контроллера MegaD-328, а точнее от АЦП-разъема, поэтому...

Второй конец кабеля припаиваем к трёхконтактному гнезду PBS-3. Для модуля MegaD-328 версии 5.1 жилу "земля" - к среднему контакту, жилу "+ питания" - к правому контакту. Для модуля MegaD-328 версии 5.2 жилу "+ питания" - к среднему контакту, жилу "земля" - к правому контакту. На вилке разъёма ХР3 или ХР4 платы модуля это контакты 2 и 3 соответственно. Не перепутайте - иначе пациент не выживет...
Напомню, что с АЦП-разъема контроллера мы берем только питание, а сигнал подаем на стандартный вход.

В результате получаем вот это. Не удивляйтесь, что сигнальный провод только один. Его мы подключим к правой клемме любого стандартного входа MegaD-328 Kit. Землю подключать не нужно, мы ее возьмем с АЦП-разъема.

Размещаем блок звонка в щитке рядом с другой автоматикой. Можно было бы упаковать плату звонка в точно такой же 4DIN-корпус, что используется для MegaD-328. Но я решил не усложнять процесс и элементарно зажал корпус звонка между двумя торцевыми фиксаторами ABB/Entrelec BAM2.

Подключаем сигнальный провод к порту P1 и... дверной звонок теперь часть Умного Дома! Обращаю ваше внимание, что клеммные колодки в исполнительном блоке MegaD-7I7O рассчитаны на подключение провода сечением до 0,75 мм2. Для закручивания винтов потребуется плоская отвертка с шириной лопатки 2,5 мм.

Теперь при каждом нажатии на кнопку дверного звонка будет отправляться сообщение на сервер. И именно сервер будет принимать решение по поводу того, какое действие предпринять. Конечно, можно подключить какой-нибудь зуммер или звонок непосредственно к MegaD-328 и настроить вход таким образом, чтобы он переключал выход (в данном случае, например, Mode:P, Action: 7:1;p10;7:0). Но это неинтересно. Мы это оставим в качестве сценария по умолчанию, когда сервер не доступен.

В самом простейшем случае прописываем код, который будет выполняться на сервере, обрабатывающем сообщения от устройств MegaD-328. У меня это mod_megad.php (все описанные на сайте скрипты можно сказать в архиве с Демо-интерфейсом)

if ( $_GET['pt'] == "1" )
{
     file_get_contents("http://192.168.0.231/sound.php?sound=Doorbell-westminster");
}

Получив сообщение о том, что сработал порт P1, сервер вызывает URL, тем самым давая команду Cubieboard2 на проигрывание мелодии звонка. Вы, конечно, догадались, что в данном случае Cubieboard2 у меня выступает в качестве этакого сетевого проигрывателя. Разумеется, можно было бы подключить динамик непосредственно к серверу, если ваша конфигурация это позволяет. В моем случае Cubieboard2 выполнял кое-какие смежные задачи и проигрывание оповещений является его дополнительной функцией. А за счет своих небольших размеров этот мини-ПК легко разместился щитке, расположенном в прихожей. Кстати, вызывать скрипт, размещенный на Cubieboard2 MegaD-328 может и напрямую с помощью поля NetAction.

А вот и содержимое скрипта sound.php, который вызывается с сервера

if ( !empty($_GET['sound']) )
{
        if ( $_GET['sound'] == "Doorbell-westminster" )
        $volume = 58;
        else
        $volume = 48;
        exec("amixer set Master $volume; aplay /var/www/sounds/".$_GET['sound'].".wav");
}

В папку /var/www/sounds я записал нужные мне WAV-файлы. Таким образом достаточно вызвать скрипт с параметром sound равным имени файла без расширения, чтобы Cubieboard2 проиграл его. Громкость, которая устанавливается по умолчанию при старте операционной системы - 48. Если для различных сообщений - это нормально, то для звонка маловато. Поэтому при проигрывании звонка с помощью утилиты amixer сначала устанавливается нужная громкость.

В качестве мелодии я остановился на Вестминстерском перезвоне. Звучит солидно! Эту мелодию, а также другие подходящие для звонка звуки вы можете найти в этом архиве.

Таким образом, переделка китайского беспроводного звонка стоимостью 350 руб позволяет добавить контроллеру MegaD-328 беспроводную составляющую, а Умному Дому новую функциональность. Думаю, стоит сказать, что микросхема приемника потенциально поддерживает несколько независимых каналов. Таким образом, используя указанный в статье подход, можно достаточно дешево реализовать несколько беспроводных кнопок. С другой стороны важно отметить, что низкая помехозащищенность, небольшая дальность, отстутствие полноценного контроля передачи данных и обратной связи позволяет применять данное решение разве что в качестве дверных звонков. Для стабильной, качественной и надежной беспроводной связи между различными элементами системы следует применять совсем другие решения, о которых я еще напишу в следующих материалах.

 

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2015-03-06 11:10:25 | SerGa
Jager, у Вас опечатка на картинке: шлюз именуется Slinex XR-27 , а не RX


2015-03-04 16:37:37 | Jager
У меня тоже MegaD при деле :)
Выглядит примерно так https:/lh3.googleusercontent.com/-P-OG5-TeDhU/VPcKRx68TuI/AAAAAAAAFQE/n79uCYYF64s/s800/door.jpg