0
Есть ли какие-то очевидные проблемы с домашней автоматизацией, сделанной своими руками?
Я хотел бы узнать, не видит ли кто-нибудь серьёзных проблем в этой системе, которую я хочу установить у себя дома. Программное обеспечение находится на стадии бета-тестирования, а аппаратную часть я начну собирать через несколько недель.
Текущий Домашний статус
- почти все светильники — это временные кнопки, подключённые к реле на 220 В
- два места в доме, где подключены все провода
Поскольку картинка стоит тысячи слов... (на фото примеры, а не те устройства, которые я буду использовать (разные реле на 220 В, реле, подключённые к Arduino, но основная идея хорошо передана)

- последовательно подключаем реле на 220 В к обычным выключателям света и соединяем его с Arduino
- для определения состояния выключателя света используется датчик тока на 30 ампер
- каждая Arduino (или хотя бы одна из множества Arduino — одной может быть недостаточно) Ethernet shield используется для отправки / получения данных по закрытой сети (недоступной из локальной сети / Интернета)
- плата mini-itx atom под управлением Linux и некоторых других устройств node.js программное обеспечение прослушивает UDP-пакеты в сети (контроллер)
- каждый Arduino отправляет каждые x минут состояние включения / выключения в виде UDP-пакета
- каждый Arduino отправляет UDP-пакет при изменении состояния
- каждый Arduino прослушивает адресованные ему UDP-пакеты и может включать / выключать реле
- контроллер получает и сохраняет все данные на сетевой карте, используя секунду для предоставления веб-интерфейсов с аутентификацией для локальной сети
- другие устройства Arduino будут встроены в переключатели, матрицы датчиков и смогут отправлять UDP-команды для включения / выключения источников света
- контроллер выполняет действия, управляемые событиями и расписанием, изменяет состояние и может отправлять команды на Arduino
Преимущества
- с сохранением обычных выключателей в доме
- если система выйдет из строя, обычные выключатели продолжат работать
- модульный — я могу добавлять узлы по мере необходимости
- контроллер нужен только для расширенного управления
- относительный
- перспективный — я не могу представить, что протокол UDP устареет в ближайшее время
- защищённый веб-доступ из-за пределов дома
Недостатки
- может потребоваться много плат Arduino и Ethernet-модулей
Необязательные элементы
- Raspberry Pi с тепловизионными веб-камерами для обнаружения присутствия, с модифицированной установкой zoneminder для отправки UDP-пакетов в зависимости от занятости
- пара телефонов Android со сломанной GSM-связью и слабыми аккумуляторами, используемые в качестве сенсорных интерфейсов внутри дома
- телефон Nokia, используемый с Gammu для управления домом с помощью SMS
Разъяснение
Реле на 220 В, которые установлены сейчас, позволяют включать и выключать свет из разных мест в помещении. Представьте, что реле — это трёхсторонняя схема управления
- с одной стороны подведено питание 220 В
- с одной стороны расположены кнопки, работающие от сети 220 В
- с одной стороны выведен провод для лампочки
Реле на 220 В работает в режиме включения/выключения. При каждом нажатии на любую кнопку оно меняет своё состояние, если вы удерживаете кнопку нажатой более 0,1 секунды (так сказано в инструкции к реле).
Мой электрик установил реле на 220 В, оно не является «нормально разомкнутым» или «нормально замкнутым». Если питание отключается, а затем включается снова, свет возвращается в прежнее состояние.
Чтобы активировать сетевое реле на 220 В, мне нужно использовать нормально разомкнутое реле Arduino и удерживать его в замкнутом состоянии более 0,1 секунды. Мне просто нужно отправить «импульс» на 220 В на реле на 220 В.
Это основная причина, по которой освещение будет работать, пока есть питание. Все Arduino могут выйти из строя, и обычные светильники будут работать как обычно. Я потеряю только возможность дистанционного управления и расширенное планирование/написание сценариев.
Что касается цен, то я закупаю Arduino + Ethernet или Mega + Ethernet (и несколько других аналогов Arduino) по цене около 15–25 долларов за пару, так что стоимость относительно невысокая. На разработку основного программного обеспечения для контроллера я планирую потратить 40 часов, а затем ещё несколько сотен часов в течение нескольких лет на доработку пользовательского интерфейса, добавление событий и так далее.
Все предметы будут размещены в двух коробках внутри дома, по одной на каждом этаже, а третья коробка будет отвечать за сад, патио и полив.
--- Позднее редактирование ---
Я создал схему, вы можете увидеть её в действии на YouTube
http://www.youtube.com/watch?v=BmsdXMbd2vo
vlad b.
Автор вопросаКомментарии:
Ваш ответ
2 ответа
0
Я занимаюсь чем-то подобным уже пару месяцев. В настоящее время система работает только в моей мастерской (для тестирования). В настоящее время я использую для управления один Arduino UNO, который считывает показания различных датчиков, в том числе уровня освещённости и температуры/влажности, а также некоторых дверных (герконовых) и инфракрасных датчиков движения. Arduino считывает показания и отправляет сообщения в программное обеспечение (в настоящее время Python 2.7 под управлением Ubuntu) по протоколу UDP, которое затем выполняет необходимую обработку и отправляет управляющие команды обратно на Arduino, опять же по протоколу UDP. В настоящее время обработка данных сводится к проверке внутренних датчиков освещенности и включению света при необходимости. В конечном счете я хочу перевести все освещение на светодиоды 12 В, чтобы можно было использовать накопленную солнечную энергию, но пока я использую систему, похожую на вашу, в которой реле подключены последовательно к выключателю питания для освещения и являются нормально замкнутыми, так что в случае сбоя в схеме управления выключатели освещения должны работать в обычном режиме.
У меня также есть несколько внешних ИК-датчиков, и та же система активирует внешнее охранное освещение, на этот раз с помощью нормально разомкнутого реле.
Я считаю, что использование нормально замкнутых реле необходимо для основного освещения, иначе система управления домом выйдет из строя, как только она будет установлена в других частях дома.
Я хочу использовать светодиоды, потому что их яркость можно регулировать с помощью ШИМ-выводов Arduino. Это позволит обеспечить приятный приглушённый свет для ночных походов в туалет, и всё это, конечно же, будет происходить автоматически.
Я только что получил Mega 2560, которая предоставляет гораздо больше возможностей для ввода-вывода. Как и вы, я планирую использовать отдельные платы Arduino для ввода и вывода данных.
Я разрабатываю систему управления на Python и планирую перенести её на Raspberry PI, когда разработка будет завершена. Это позволит мне разместить всё в корпусе с экраном состояния, подключённым к композитному видео. В настоящее время на ПК работает ограниченный экран состояния, который позволяет мне управлять яркостью светодиодных панелей и ламп GU16.
Я настроил Arduino так, чтобы он принимал команды с любого устройства в сети, поэтому я могу управлять им с помощью устройств Android, которые есть у меня дома.
У меня также есть полностью рабочая система видеонаблюдения, но я пока не думал о том, чтобы использовать её для каких-либо действий. С другой стороны, у меня нет внутренних камер, только внешние.
Я рассматривал возможность использования тепловизора, как вы и предложили, но думаю, что стоимость будет серьёзной проблемой (мне нужно, чтобы цена была ниже 100 австралийских долларов за комнату), поэтому я настаиваю на использовании недорогих ИК-датчиков (около 2 долларов за штуку из Китая).
Мой код для Arduino не самый лучший, но я с радостью поделюсь им.
В настоящее время он настроен на постоянный мониторинг различных датчиков, а также на прослушивание 3-байтовой строки UDP в формате 410 (4 — это свет 4, 1 — включено, последняя цифра используется для указания уровня яркости светодиода)
Я согласен с комментарием о стоимости дома при перепродаже, но я не планирую переезжать в обозримом будущем. Возможно, ваши потребности отличаются.
Код на Python также управляет режимами пониженного энергопотребления мониторов в мастерской. В настоящее время они переводятся в режим ожидания через 10 минут бездействия в мастерской.
Я занимаюсь настройкой розеток, которые включаются так же, как и свет, чтобы система могла отключать такие устройства, как паяльник и усилители, которые я часто забываю выключить.
Дайте знать, если вам понадобится моя помощь в вашем проекте. Звучит здорово. Удачи
Джон
Комментарии:
-
v
vlad b.
Самые большие проблемы при использовании двух серверов, которые обрабатывают все данные параллельно, связаны с синхронизацией данных по времени. Хотя последнее можно сделать довольно легко, с первым на Raspberry Pi возникают сложности, поскольку у него нет внутренних часов, поэтому приходится выполнять очень много синхронизаций по времени. Я всё ещё изучаю этот вопрос и напишу здесь, когда у меня будет ответ. Также я задал вопрос об этом здесь: raspberrypi.stackexchange.com/questions/8125/…
-
u
user13613
Использовать регистры немного сложнее: нужно выполнить операцию XOR с их предыдущим состоянием, а затем отреагировать на изменение, если оно произошло. Это удобно, быстро и позволяет работать с восемью датчиками одновременно. Код всё ещё находится в разработке и не лишён ошибок, но сейчас я заменяю Uno на Mega и пользуюсь возможностью привести в порядок экспериментальную проводку.
-
u
user13613
Поскольку программное обеспечение разделено (Arduino считывает показания датчиков и выполняет переключение, а Pi отвечает за логику), я не вижу причин, по которым вы не могли бы запустить два Pi параллельно с одним и тем же программным обеспечением, чтобы каждый из них отправлял пакеты на Arduino. Пока они оба делают одно и то же, конечный результат должен быть нормальным. Arduino не важно, откуда она получает данные, поскольку она просто отслеживает прослушиваемый UDP-порт и выполняет какое-то действие, если получает трёхбайтовый пакет данных. Он также отслеживает показания датчиков, но для этого я использую регистры PIND и PINB (одновременное считывание).
-
u
user13613
Я не знаю, как лучше опубликовать код, потому что он не помещается в это окно :) Я отправлю вам ссылку на свой сайт, и мы сможем разобраться с этим там. Я планирую вести блог о проекте, но пока не нашёл на это времени.
-
u
user13613
Я самоучка и никогда по-настоящему не разбирался в C, но, тем не менее, код в основном работает. Поэтому я сделал в Arduino только самое необходимое, а большинство решений (например, включать или выключать свет и т. д.) принимаются на Python, который в конечном счёте запускается на Pi.
-
u
user13613
Привет, Влад! Мой UDP-код — это пережиток проекта с использованием OpenCV, над которым я работал в начале года (для отслеживания кошек в моём саду), в нём использовались сервоприводы панорамирования и наклона, поэтому я отправлял на сервоприводы три байтовые строки для управления их движением.
-
v
vlad b.
Я подумываю о том, чтобы использовать два Raspberry Pi в качестве серверов, но пока не придумал, как обеспечить надёжное аварийное переключение и перезапуск в случае сбоя основного сервера. Есть идеи на этот счёт?
-
v
vlad b.
А мои реле Arduino нормально разомкнуты и замыкаются примерно на 100 мс, чтобы переключать состояние. Не могли бы вы подробнее рассказать о том, как вы структурируете свои UDP-пакеты? Я использую простую структуру запроса: identifier=<current_identifier>&action=sensor_update&sensor=<name>&value=<value>. Я не уверен, стоит ли использовать беспроводную связь вместо прокладки кабелей в некоторых местах.
-
v
vlad b.
Я изучаю/использую Node. js в качестве основного контроллера. Вы можете ознакомиться с моим прототипом здесь: github.com/vladbabii/MasterController-HomeAutomation . Я думаю, что для этого лучше всего подходит язык с равномерным распределением нагрузки, который может обрабатывать несколько входящих/исходящих пакетов и потоков данных (TCP-соединение для непрерывного потока данных о состоянии, TCP-соединение для данных в формате JSON, которые можно использовать в браузере, прослушивание и генерация UDP-команд). Разница в том, что я делаю с электричеством, заключается в том, что у меня есть реле на 220 В, которое не является нормально разомкнутым или нормально замкнутым. Оно просто меняет состояние при подаче импульса в 220 В.
0
Самым большим недостатком является индивидуальный характер сделки и необходимость внесения изменений при продаже дома.
Если бы я сегодня рассматривал возможность покупки дома, в котором кто-то сделал капитальный ремонт и установил полностью самодельную систему, используя «современные технологии» 10 или 15 лет назад, я бы, наверное, подумал что-то вроде: «Ого, мне придётся всё снести и полностью переделать электропроводку в этом доме». И цена, которую я был бы готов заплатить, отражала бы это. Я немного утрирую, чтобы проиллюстрировать свою мысль, но вам стоит это учитывать.
Комментарии:
-
k
keshlam
Или вы можете установить готовые пульты дистанционного управления/диммеры, и вам вообще не придётся беспокоиться об их отключении или взаимодействии с домашней электросетью.
-
v
vlad b.
Всё, что мне нужно сделать, — это снять датчик тока, подключить провода обратно и отсоединить реле Arduino от реле на 220 В. А затем вернуть на место старые крышки для соединения основных кабелей вместо тех, что у меня сейчас используются для хранения всего лишнего.
Похожие вопросы
Каковы преимущества и недостатки различных типов умных выклю...
0 ответов
23.12.2025Автоматизированное/управляемое освещение — варианты?...
3 ответа
24.12.2025Альтернативы сигналу включения питания для систем домашней а...
2 ответа
24.12.2025Централизованная система домашней автоматизации. Есть ли у в...
1 ответ
24.12.2025Можно ли сэкономить на электроэнергии, выключая холодильник ...
7 ответов
24.12.2025
vlad b.
«Там, где вы просто отключаете питание светильника, реле меняет состояние». На самом деле всё наоборот. подайте на реле напряжение 220 В, и оно изменит состояние.
vlad b.
У настенных выключателей клемма + всегда подключена. Когда я нажимаю на кнопку, на реле подается напряжение 220 В. Затем реле меняет состояние и, по-видимому, прекращает подачу тока до тех пор, пока я не перестану нажимать на кнопку. Через несколько дней придет мой электрик, и я вынесу одно из реле из распределительного щита. Обычно я не работаю с напряжением 220 В без него. Реле на 220 В куплены в магазине, ничего самодельного.
Johnny
Не могли бы вы предоставить ссылку на реле на 220 В переменного тока, которые вы используете? Я не встречал таких реле, которые работали бы так, как вы описываете: вы просто отключаете питание светильника, и реле меняет состояние. Я понимаю, как это может работать, если реле включено, но если реле выключено, как оно узнает, что вы переключили выключатель? Или есть отдельный канал управления на 220 В переменного тока, который запускает реле?
vlad b.
@Monso — реле на 220 В подключено к настенным выключателям, потому что кнопки работают от сети 220 В.
vlad b.
Добавлены пояснения. @gregmac — мне нужно изменить две вещи: подключить реле Arduino к реле на 220 В, соединить провода с лампочкой и добавить датчик тока.
gregmac
Единственный способ, который я могу придумать, — это использовать реле с фиксацией SPDT (это значит, что для каждого из них вам также понадобятся 2 контакта ввода-вывода для контроллера), а «обычные» переключатели сделать трёхпозиционными, при этом реле будет выполнять функцию второго трёхпозиционного переключателя («трёхпозиционный» == «двухпозиционный», если вы находитесь в Великобритании). Скорее всего, это потребует замены большинства переключателей и существующей проводки на трёхжильный провод. В любом случае... Я не могу понять, как такой подход «сделай сам» может быть дешевле, чем Insteon/UPB/Zwave (или X10, но не используйте его, он ужасен). Самостоятельно можно сделать программное обеспечение/контроллер, но не аппаратную часть/коммутатор.
Jason
@gregmac Мы сказали, что он планирует подключить реле последовательно, поэтому использование нормально замкнутого контакта (НЗ) будет работать так, как если бы система не была установлена. Можно сказать, что дополнительная система не сможет включать свет, а только выключать его или возвращать в прежнее состояние. Но мне всё ещё интересно, где находятся обычные выключатели, потому что они тоже работают по принципу «только выключение».
gregmac
Как вы собираетесь сохранить существующую функцию переключения, если система выйдет из строя, но при этом вы сможете управлять включением и выключением системы?
Jason
Почему ваши кнопки подключены к реле, а не к Arduino? Где во всём этом обычные настенные выключатели? Вы рассматривали возможность использования X10? Его можно интегрировать в Arduino или ПК и убрать всю высоковольтную проводку. Если вы решите купить реле, убедитесь, что они рассчитаны на высокую силу тока и рабочий цикл, и помните, что для использования реле необходимо питание электромагнита, а это энергозатратно.