GrabDuck

Умный дом. Начало

:

Привет, Гиктаймс!
Интерес к «умным домам» появился у меня еще во время обучения в университете, в 2004 году, когда меня не заинтересовали предложенные кафедрой темы дипломных работ. И мы с другом предложили заведующему кафедрой свою тему: «Разработка программно-аппаратного комплекса 'Умный дом'».

Сказать, что я тогда знал слишком мало об умных домах — не сказать ничего.
Меня привлекало само название «Умный дом». Для меня это было какое-то таинство, нечто магическое.

image

Собранный во время выполнения дипломной работы наш «умный дом» умел мало:

  • Обнаружение проникновения в квартиру/дом в режиме охраны.
  • Управление освещением в полуавтоматическом режиме (учитывались показания датчиков движения, времени суток и предустановленных шаблонов).
  • Определение протечки воды в ванной и на кухне.
  • Голосовые оповещения с использованием звуковой карты компьютера и голосового движка.
  • Уведомление по смс хозяина дома о ключевых событиях (протечка воды, проникновение в дом, отсутствие напряжения 220В).

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

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

С тех пор много воды утекло. Мы перебрали различные технологии и протоколы связи. Знакомились с готовыми решениями для управления «умным домом». Но в итоге решили сами разрабатывать контроллеры для построения программно-аппаратного комплекса.

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

Сегодня я немного расскажу, как всё начиналось, а в следующих статьях постепенно актуализирую информацию до текущего состояния наших дел.

С момента окончания университета до 2010 года я с головой ушел в основную работу и «умным домом» заниматься не удавалось.
Если сказать честно, работа не была помехой, просто в голове было очень много идей, которые еще не сформировались в единое ви́дение.

2010 г.
Изначально мы решили, что основным элементом, «мозгом», наших устройств будет микроконтроллер ATmega8.

Он выполнен по технологии CMOS, 8-разрядный, основан на AVR-архитектуре RISC, потребляет микротоки. За один такт выполняя одну полноценную инструкцию, достигает производительности 1 MIPS на МГц, позволяя достигнуть оптимального соотношения производительности к потребляемой энергии.
Богатый набор встроенной периферии. Нас он всем устроил. Заказали сразу 70 штук:

image

Коммуникацию между устройствами было решено делать посредством RS485.
Для экспериментов собрали простую платку: ATmega8 + SN75176. Я уже изучил программы для проектирования печатных плат и метод ЛУТ.

2011-2012 гг.
Эксперименты с RS485 проходили с разным успехом. Что-то работало сразу, другие устройства постоянно ловили коллизии на шине.

Достаточно намучившись мы сели думать. После пары месяцев экспериментов с различными протоколами мы решили остановиться на Ethernet'е. Так как изначально мы задумывали модульную архитектуру нашего «умного дома» и комбинированное управление (очень сложно построить аварийно-устойчивую систему используя только централизованный или, наоборот, децентрализованный подход), то первое устройство, которое было собрано — это Ethernet-контроллер, который мы планировали устанавливать в каждый наш «девайс», подобно сетевым картам в компьютерах.


После примерок и тестирования — заказали изготовление плат на заводе, а сборку проводили сами вручную.
image
Плата Ethernet-модуля.

image
Ethernet-модуль в контроллере светодиодных лент

В связи с переходом на Ethernet пришлось поменять и микроконтроллер, устанавливаемый в наши устройства. На данный момент мы используем ATmega328.

В качестве сетевого и транспортного протокола для обмена информацией между различными модулями используется TCP/IP. Данные передаются по протоколу прикладного уровня HTTP, что позволяет произвести первоначальную настройку наших устройств посредством обычного браузера с помощью любого устройства (ноутбук, планшет, мобильный телефон).
Таким образом, управлять устройствами можно из любой программы, написанной на любом современном языке программирования, из других наших устройств, оснащенных Ethernet-модулем, а также из любых «девайсов», поддерживаемых формирование и отправку HTTP-запросов.

На данный момент мы озаботились шифрованием трафика и поддержкой протокола HTTPS.

В следующих статьях я расскажу о наших устройствах для:


Благодарю за внимание!

Всех с Международным днём друзей!