Многофункциональный ethernet контроллер умного дома на avr своими руками
Вы здесь: Home Железо Уроки и примеры USB Контроллер умного дома
USB Контроллер умного дома (или GPIO на любом компьютере II)
Рассмотрим простой способ сделать USB контроллер умного дома из USBasp на базе Atmega8.Прошивку можно адаптировать и для других микроконтроллеров,например Atmega32 c 32 входами/выходами.
Ожидается обновление версии до 1.1,где будет возможна поддержка до 4 датчиков DHT и исправлены ошибки.
К сожалению на USBasp доступны без пайки только 6 выводов микроконтоллера и 2 светодиода,но это самый быстрый способ получить готовое устройство USB контроллера,умеющего на данный момент:
-Управление внешними разнообразными нагрузками (выводы GPIO ) ,например реле.Чтение состояния выводов.2 вывода умеют работать как PWM (ШИМ) и могут например управлять яркостью светодиодной подсветки.
-Один из выводов устройства умеет работать как RCremote ,к которому можно подключить передатчик на 433 или 315 мгц для управления популярными сейчас радиорозетками или люстрами с радиоуправлением.Так же можно передавать данные на удаленное устройство,например на монитор отображения какой либо информации.Описание передачи информации по данному алгоритму можно посмотреть тут.Протокол совместим с микросхемами,использующуеся в радиопультах.
-Подключение датчиков DHT11 или DHT22 для мониторинга температуры и влажности.
Клиентская программа написана на Си и может работать как в операционной системе Windows так и в Linux.Драйвера для HID варианта не требуются.Для USB варианта устанавливаются стандартные драйвера V-USB.
Прошивка микроконтроллера основана на проекте V-USB,создающим программный USB.
Архив с прошивкой ,утилитой управления и её исходный код можно скачать по ссылке.В архиве имеется вариант usb-gpio как USB устройство,в том числе исходный код на Си утилиты управления и откомпилированый вариант для windows.Для его необходимы стандартные V-USB драйвера.В разработке вариант usb-gpio как HID устройство.
Прошивка м/к:
Микроконтроллер прошивается стандартно ,через другой программатор USBasp или Arduino .Прошивка возможна и при установленном USBasp загрузчике.
Подключение устройств к контроллеру:
Не забывайте,что на шлейфе,идущим в комплекте контакты будут зеркальны относительно ключа у 5 контакта.
Все порты могут назначены как на ввод так и на вывод,а так же могут использоватся дополнительные функции:
DHT- подключение датчика влажности DHT 11 или DHT 22 ,датчик определяется автоматически.
PWM- на портах возможен режим ШИМ для управления мощностью(яркостю) устройств.
RCremote - Отправка команды для управления радиоустройствами.К данному выводу подключается радиопередатчик 433 или 315 мгц.
Управление через консольную утилиту:
Утилитой можно управлять из других программ , используя следущие команды:
gpio-usb on -Включает высокий уровень на соотвествующем порте.
gpio-usb off -Выключает высокий уровень на соотвествующем порте.
gpio-usb status - Чтение статуса GPIO на вывод.
gpio-usb statusin -Чтение статуса GPIO на ввод.
gpio-usb mode -Управление режимом порта.Для того,чтобы например назначить 7 порт на ввод необходимо ввести gpio-usb mode 7 1 .Режимы записываются в энергонезависимую память.
gpio-usb dhtread -Чтение датчика DHT11 или DHT22,подключенного на GPIO 5.
gpio-usb dhtsetup -Запрос статуса и вкл/выкл опроса датчика DHT.Опрос происходит раз в минуту.Статус записывается в энергонезависимую память.
gpio-usb pwm3 -Управление ШИМ на 3 GPIO.
gpio-usb pwm4 -Управление ШИМ на 4 GPIO.
Исходный код утилиты можно интегрировать в свои проекты..Например можно дополнить оболочкой (GUI) для управления.
Принимаются предложения и пожелания по доработке утилиты.
Стороннее приложение для работы в датчиками BMP085/180 и DHT11/22 ссылка в windows.
Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.
Умный дом, который я полностью сделал сам
- Чтобы свет в прихожей и коридоре плавно включался и отключался.
- Чтобы свет включался, если открывается входная дверь.
- Если нет движения, свет должен выключаться через 15 минут.
- Если кто-то встал ночью, по датчику движения, включается ночная подсветка.
Освещение санузла:
- Свет, в санузле, также должен плавно включаться и отключаться.
- При выключении света — в коридоре включается ночная подсветка.
- Освещение включается, если кто-то вошел в дом.
- Система выдаёт предупреждение, если входную дверь забыли закрыть.
Безопасность:
- Если дома никого нет, то автоматически перекрывается вода, отключается теплый пол, а термостат котла ставится на минимальную температуру.
- Также закрываются окна на мансардном этаже.
- Если в доме замечено постороннее движение — система присылает уведомление о проникновении в жилище.
- Вытяжка в санузле включается через 1 мин после включения света.
- Вытяжка выключается через 5 мин после выключения света в санузле.
Снятие показаний со счетчиков воды и газа:
- Ежедневный контроль и удалённое снятие показаний со счётчиков.
- Ежемесячная автоматическая рассылка показаний счётчиков в управляющую компанию.
- Автономная работа при отключении электричества.
Водоснабжение:
- При обнаружении протечки автоматически срабатывает звуковая сигнализация, а вода перекрывается.
- Отправка уведомления при аварии.
- Удалённый доступ к крану, для перекрытия общей подачи воды.
Источник бесперебойного питания:
- От ИБП работают — газовый котёл, освещение в коридоре и санузле.
- Если электричество отключили, система присылает уведомление.
- Удалённый контроль ИБП.
Удалённое управление, установка температуры и считывание параметров.
Контроль газового котла:
- Система присылает уведомление об аварии.
- Возможность удалённой перезагрузки котла.
Мансардные окна:
- Удалённое управление.
- Автоматическое закрытие при дожде.
- Автоматическое закрытие при включении режима охраны дома.
Фильтры для воды:
- Автоматический подсчет объёма прокаченной воды с момента замены фильтра.
- Автоматический подсчёт времени с момента замены фильтров.
- Отправка уведомления о необходимости замены фильтров.
- Графический интерфейс системы доступен через интернет.
- Резервный канал в виде GSM терминала и управления через SMS.
Ну, как вам объём задумок и сценариев? Глобально? А теперь расскажем, как пользователь решил эту задачу.
- надёжность;
- простота реализации;
- в устройствах, кроме ИБП, нет аккумуляторов.
Определив задачу, пользователь разбил всю систему на несколько простых узлов — блоков. Так проще всё изготовить и отладить. Затем, для каждого блока tvema нарисовал печатную плату. Объединил всё в одну заготовку и, в таком виде, послал в компанию, которая специализируется на изготовлении печатных плат на заказ.
Последнее время я увлекаюсь системами умного дома и хотел бы поделиться накопившимся опытом. В серии постов на эту тему я расскажу как о попытке сделать свою систему с нуля, так и о готовых решениях.
Сейчас на рынке присутствует очень много разрозненных решений. Ради эксперимента мне захотелось попробовать сделать что-нибудь самому.
Нафиг километры проводов. У меня в квартире сделан ремонт, поэтому заново штробить стены желания совсем нет. Пусть умный дом будет обмениваться данными по радио-каналу.
Нафиг бредовые идеи. Встроить айпад с интерфейсом в стену? Отправлять данные на народный мониторинг? Ну уж нет, спасибо, обойдёмся без этого.
Нафиг пульты. Пульты всегда теряются и ломаются. Лучший пульт — тот, который всегда с тобой. Это телефон или часы (привет, Сири!). Также не забудем оставить классические элементы управления (настенный выключатель, ггг) для менее продвинутых домочадцев.
Такой подход лаконичен и позволяет не смешивать всё в одну кучу, не усложнять архитектуру системы, превращая устройства в многофункциональные комбайны.
Теперь подробнее. Итак, должен быть некий центральный узел — контроллер (или сервер), который будет хранить информацию обо всех других устройствах, а также реагировать на команды от пользователя, предоставляя ему удобный интерфейс. Периферийные устройства при этом ничего не будут знать друг о друге и о пользователе, общаясь только с центральным узлом. Таким образом, всё взаимодействие будет происходить через контроллер.
Малина хороша надёжностью, открытостью, маленькими размерами, ценой (35$ по карте Мастеркард ) и удобством разработки (внутри — обычный Линукс).
И у Малины, и у Ардуины огромное число последователей по всему миру, поэтому многие проблемы обычно уже решены до вас и легко гуглятся при наличии минимального уровня английского.
Осталось решить, каким образом будет организовано взаимодействие между Малиной и несколькими Ардуинами. Напомню, от проводов я отказался, поэтому выбираем между беспроводными технологиями. От 433 МГц я отказался в виду отсутствия шифрования и перегруженности частоты в городах. От ZigBee я отказался, потому что их модули стоят неоправданно дорого (50-60$), а мне хотелось сделать бюджетное решение. От Z-Wave я отказался ввиду проприетарности протокола и сложности коннекта с Ардуиной.
Собственно, выбрал я Wi-Fi, и вот почему. Wi-Fi обеспечивает хорошую безопасность и легко встраивается в существующую инфраструктуру. Роутер Wi-Fi есть в каждом доме и обычно покрывает всю площадь помещения. Если дальности не хватает — можно поставить несколько роутеров или репитеров. С Wi-Fi не придётся заморачиваться с низкоуровневыми протоколами (есть TCP/IP), но придётся придумать свой высокоуровневый протокол для обмена данными между устройствами и контроллером (это не сложно).
Ещё большой плюс Wi-Fi — мощные, но очень дешёвые модули ESP8266 (3-4$), позволяющие подключить любое самодельное устройство к сети. Модули очень маленькие, но с богатыми возможностями (умеют создавать свою сеть, а не только подключаться к существующим). Причём, в них есть свой микроконтроллер, и его можно прошивать (через Arduino IDE). То есть, теоретически можно было бы обойтись без Ардуины, но для этого нужна другая модификация модуля, например, ESP-12E (на нём просто больше GPIO-выводов), а я использовал модификацию ESP-01 в силу куда большей распространённости и простоты для новичка.
Итак, с технологиями и примерной архитектурой определились, теперь перейдём к созданию первого устройства. Любой умный дом, как правило, начинается с освещения, мы тоже не будем отклоняться от этой традиции — будем делать умную лампочку (или умный выключатель), которой можно будет управлять с телефона или компьютера.
Обычный выключатель замыкает или размыкает электрическую цепь механически. Для того, чтобы замыкать и размыкать цепь не механически, а электронно, будем использовать реле: подали управляющий сигнал — цепь замкнулась (и лампочка зажглась), убрали сигнал — цепь разомкнулась (и лампочка погасла).
Синий кабель — питание 5В, в качестве микроконтроллера Искра Нео (можно юзать Искру Мини) — российский аналог Ардуино, в разрыв цепи лампочки (230В) вставлено реле, также на схеме присутствуют модуль ESP8266, кнопка (чтобы можно было включать/выключать лампочку не только с телефона, но и руками) и светодиод (для тестирования, пока не была подключена лампочка). Все компоненты можно купить как в России, так и заказать из Китая на Алиэкспрессе.
На самом деле, так как Ардуина работает от 5В, а ESP8266 от 3.3В, ему нужно было собрать некоторую обвязку, а не подключать напрямую. Несмотря на то, что все статьи в интернете уверяют, что модуль сгорит от 5В, я подключил его напрямую и не наблюдаю проблем в течение года при постоянном использовании. По-хорошему, конечно, нужно собрать стабилизатор питания (например, на схеме LM317).
Если вы хотите этот прототип превратить в работающий умный выключатель, то для организации питания Арудины проще всего разобрать недорогой китайский блок питания на 5В и вынуть из него внутренности.
Проводка в квартире находится под высоким напряжением (~230В), работа с которым представляет большую опасность для здоровья и жизни. Например, прикосновение даже к некоторым участкам включённого реле приведёт к неминуемому поражению электрическим током, которое может повлечь серьёзные травмы и даже смерть. Неправильное подключение блока питания или других устройств к сети может привести к возгоранию. Люди, не имеющие необходимой квалификации, не должны каким-либо образом производить описанные в данной статье действия. Если у вас есть хоть малейшие сомнения в работе с электрическими сетями, остановитесь. Всё, что вы делаете, вы делаете на ваш страх и риск. Автор статьи не несёт ответственности за любые ваши действия.
Здесь всё очень просто. Реле подсоединяется к контроллеру через 3 контакта: питание, земля, сигнал. С другой стороны расположен клеммник, на котором есть как нормально закрытый (NC), так и нормально открытый (NO) контакты. При подаче управляющего сигнала NC-контакт открывается и пропускает ток, а NO-контакт закрывается. Подключение светодиода и кнопки — это первое, что пробуют все начинающие ардуинщики, так что на этом останавливаться не будем. ESP8266 подключается по UART интерфейсу (RX к TX, TX к RX), в нём залита штатная прошивка на AT-командах.
Для удобства отладки прототипа я использую Искру Нео — аналог Ардуино Леонардо (у них USB работает через виртуальный Serial-порт).
О том, как устроен контроллер моего умного дома, я расскажу позже, но пока важно отметить следующее. Контроллер умеет отправлять управляющие команды устройствам, а также принимать команды от них.
Здесь 00000001 — ID устройства, 111111 — пароль доступа, status — название команды, on/off — пароль команды.
В следующей заметке я подробно расскажу об этом простейшем протоколе, а также об устройстве контролера моего умного дома.
Создание будильника в ROS c голосовым оповещением и управлением приборами X10.
0 0 [0]
11.01.2015
Блок управления вытяжкой в ванной на микроконтроллере v.4
Блок управления вытяжкой в ванной на микроконтроллере (МК) Atmega 8 и цифровом датчике влажности SHT10. Как и на кухне, вытяжка в ванной штука нужная, и так же как и кухонные вытяжки они как правило с ручным управлением, вот для автоматизации этой процедуры данный блок и предназначен.
35 4.2 [1]
28.12.2014
Блок управления кухонной вытяжкой на микроконтроллере
Блок управления кухонной вытяжкой на микроконтроллере (МК) Atmega 8 и 2-х датчиках температуры DS18B20. Вытяжка на кухне вещь нужная, независимо от того вытяжка это над плитой или та что на стене, и в той и другой применяют вентиляторы и чаще всего с примитивным управлением, т.е. включить/выключить и делать это нужно вручную. Вот чтобы избавить нас от этой "утомительной" процедуры данный блок и предназначен.
30 0 [0]
28.06.2015
Конструктор для сборки устройств автоматизации Tibbo Project System
0 0 [0]
16.01.2017
SMART-GARAGE
В настоящее время набирают популярность системы умный дом, но цена на такие системы очень сильно кусается. Я вам представляю схему, которая, подходит не только для дома, но, а также для гаража и упростит вашу жизнь, и жизнь вашей машине. Из компонентов - ардуино, 3 кнопки, LCD Дисплей и Датчик DS18b29. Цена устройства на момент начала 2017 года $6,5. Данная система поддерживает температуру в квартире\гараже.
4 0 [0]
28.10.2021
Элементы умного дома z-wave на Razberry и Z-Uno. Часть 1
Рассмотрено создание умного дома для устройств z-wave на контроллере Raspberry pi и создание собственных устройств z-wave на плате Z-Uno
0 0 [0]
07.11.2021
Элементы умного дома z-wave на Razberry и Z-Uno. Часть 2
Рассмотрено создание собственных устройств z-wave на плате Z-Uno
0 0 [0]
03.12.2021
Самодельный электромеханический замок "ANTAR SL21"
Вариант полностью самодельного бытового электромеханического замка для установки на входную дверь жилого помещения, как элемент системы безопасности умного дома.
10 4.8 [1]
При использовании материалов сайта, обязательна
ссылка на сайт ПАЯЛЬНИК и первоисточник
Читайте также: