Создание умного домофона с автоответчиком и Интернет-соединением
Опубликовано 4 августа, 2013
Не так давно я чинил домофонную трубку и задумался — а не сделать ли мне небольшую модернизацию? Научить его уведомлять меня через Интернет о том, что кто-то приходил, или даже удалённо открывать дверь с мобильного телефона… А затем я решил — почему бы вообще не сделать автоответчик? На телефонах сейчас автоответчик уже мало кому нужен, а вот знать, кто же ко мне приходил, было бы весьма полезно, особенно при том, что я не привык брать трубку, если никого не жду. Воплотить идею в реальность оказалось не так уж сложно.
У меня домофон Cyfral, после недолгих поисков я нашёл кучу разных схем их трубок. Судя по всему, домофоны других компаний работают по примерно такому же принципу. Схему своей трубки я начертил сам (мог допустить ошибки):
Принцип работы прост. Пока домофон не используется, питания в линии нет. Когда трубка лежит, динамик напрямую соединён с линией, сопротивление трубки при этом менее 50 Ом (домофон будет ругаться и выдавать ошибку, если это не так). Когда трубку снимают, размыкается SW2, включается микрофонный усилитель, и сопротивление трубки возрастает, за счёт чего домофон и понимает, что начался разговор. Когда нужно открыть дверь, нажимается кнопка SW1, в результате чего сопротивление трубки вырастает ещё сильнее.
Я решил вытащить плату из обычной трубки, подпаяться прямо к ней и поместить всё это в винтажный корпус старого настенного дискового телефона.
Какие же точки на схеме нужны? Во-первых, нужно отслеживать наличие сигнала в линии, чтобы понимать, когда кто-то звонит, и когда разговор завершён. Для этого нужен плюсовой провод от домофонной линии (да, там важна полярность), а лучше точка после защитного диода D1. Для того чтобы симулировать снятие трубки, нужно поставить реле последовательно с SW2. Для открытия двери нужно либо замыкать базу транзистора на землю, либо тупо размыкать цепь. Для воспроизведения звука нужно подавать сигнал на MIC- через резистор в 10-15 кОм. Самой сложной задачей оказалась запись звука. Можно поставить на выводы динамика трансформатор для гальванической развязки или просто через конденсатор получить переменную составляющую. Эксперименты показали, что особой разницы нет.
Для своего проекта я взял микроконтроллер ATMEGA64. У него есть аппаратный ШИМ, который вполне неплохо справляется с воспроизведением звука, а аналого-цифровой преобразователь можно использовать для записи звука. Данные было решено хранить на обычной SD-карте. Для переключения между трубкой (обычный режим) и микроконтроллером (запись/воспроизведение звука) я задействовал электромагнитные реле. Кстати, при таком варианте трубка становится самой обычной в случае, если пропадает внешнее питание. Ну а для связи с внешним миром я решил использовать свою самодельную сеть, о которой писал в другой статье.
Основная плата получилась такой (реле вынес на отдельную):
Готовый вид:
В корпусе телефона:
Да, получилось не очень-то аккуратно… Я плохо делаю всё, что делаю руками.
Итоговый вид:
Демонстрация работы:
Ну а если есть диск, почему бы не задействовать его для управления? Идеальный интерфейс же:
Но гораздо удобнее управлять им с PC:
Или с телефона, при этом используются и push-уведомления:
Есть три типа режимов работы:
- Воспроизвести звуковую запись («Здравствуйте, хозяин уже ждёт вас, заносите пиццу скорее!») и открыть дверь
- Воспроизвести звуковую запись («Оставьте сообщение после гудка…»), записать сообщение и воспроизвести другую запись («Спасибо, пока!»)
- Просто воспроизвести запись («Извините, хозяин недоступен» или «Никого не хочу видеть»)
При этом есть возможность установить однократный режим, который сменится на основной после первого звонка. Очень удобно при заказе пиццы, например: при звонке в домофон больше не нужно в спешке вскакивать с кровати и искать тапочки, курьеру на тот момент уже открыта дверь подъезда. Ну а записи, которые оставляются на автоответчике, неспеша закачиваются на удалённый сервер, откуда могут быть прослушаны прямо с мобильного телефона. Да, при этом создаётся несжатый WAV файл с полноценным заголовком, который уже не требует дополнительной обработки.
Ну и самое главное — я получил кучу опыта: научился работать с SD-картами и FAT, воспроизводить и записывать звук, а ещё стал лучше понимать, как работает аналоговая техника. Пожалуй, это самое важное в любом, даже очень бессмысленном проекте 🙂
Комментарии
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Очень интересная тема! А можно по-подробнее про схемотехнику, код?
На гитхаб выкладывал: http://github.com/ClusterM/intercom