Простое создание системы "умного дома"
Вот решил показать вам простую систему "умного дома", без всяких дорогих датчиков и заморочек (только если чуть-чуть). На платформе arduino. Покажу комнату, но можно хоть квартиру всю так "обвешать".
Эта система работает у меня второй год, несколько раз улучшалась и до сих пор вносятся изменения. Началось все с подсветки и выключателя, а на данный момент все перешло с управления телефона.
Покажу несколько вариантов которые я пробовал.
Все, что нам понадобится - это:
arduino, можно любую, но желательно с поддержкой вай фай или интернет шилдом. Я пробовал на uno, esp8266, nodeMCU. Все показали себя хорошо, но у каждой платы есть нюансы. Самая оптимальная плата, на которой я остановился и менять не планирую - это UNO + WiFi R3 ATmega328P + ESP8266 (32 Мб памяти) (на али заказывал) стоит дороже других, но потенциал у нее большой. Ниже расскажу про это.
Далее необходимо накупить датчиков и реле. Тут уже по желанию. Я использую на постоянное напряжение электромагнитное реле, а на переменку твердотельное. Учтите, что твердотельное реле не имеет задержек при включении и выключении, так же бесшумно, но "рубит" только переменное напряжение. Электромагнитному реле без разницы что включать, тут главное подобрать реле по силе тока прибора, который вы желаете подключить.
Датчик температуры и влажности я использую DHT11, стоит он копейки. Но лучше купить DHT22 или AM2302, AM2321, DHT 21, AM2301. Эти датчики можно поставить и не адаптировать прошивку.
Это то, что я использую. Все это работает на платформе Blynk. Приложение бесплатное и вам дается часть энергии на реализацию ваших желаний. Если не хватает, можно навсегда докупить (1000 энергии за 150р хватит вполне на подключение досточно большого количества модулей).
Я к примеру не покупал и мне хватило установить 6 кнопок для устройств и график изменения температуры/влажности.
Итог. Мы имеем возможность мониторить за изменением температуры и влажности в комнате, а так же включать/выключать приборы в любой точке мира, где есть интернет.
Подготовка.
Нужно определиться с тем, что будет управляться. Если просто свет, подсветка и температура, то вполне пойдет и обычная дешевая плата на основе esp8266 или тому подобная. Но если нужно будет подключить большое количество датчиков, реле, а так же мосфеты для управления RGB лентой, то лучше будет чуть потратиться и купить UNO с wifi (только главное не ошибиться. Есть полно похожих). дело в том, что для управления RGB подсветкой нужны мосфеты, которым нужно 5 вольт для полного открытия. Если подключить это все на nodeMCU или подобную плату, где выход на шилде 3.3 вольта, то мосфет будет не полностью "открываться" и лента будет гореть не на всю яркость.
Кстати, интересно. Есть ли какая нибудь возможность управления лентой с выходом на 3.3. вольта?
Вот такую я прикупил и доволен вполне. Очень заморочена системы прошивки, но нужно прошиться один раз, а потом уже проблем не будет.
Теперь к прошивке и настройке.
Заходим на сайт Blynk, там подробно описан процесс подключения и даже есть видео, где показано что и как подключать. Там же есть генератор, который выдает вам прошивку для платы и того, что вам нужно подключить. Там все просто, выбираем вашу плату, вставляем код идентификации, который придет вам после того, как вы скачали приложение на телефон, зарегистрировались, выбрали нужную вам плату arduino и создали проект. Если просто нужно подключить датчик температуры, то выбираем DHT11 (это дополнение к прошивке. Реле, мосфеты будут работать, ничего дополнять не нужно). В прошивке указан порт подключения модуля (можно изменить под свой) и виртуальные пины, которые потом выбираются в приложении. Все очень просто на мой взгляд.
Далее видим в прошивке две строки, где нужно в кавычках вписать свой пароль и логин от вай фая.
Скачиваем ардуино на компьютер, в прошивке в самом начале есть ссылки на библиотеки, которые необходимо установить. Думаю процесс добавления библиотеки и прочего описывать не стоит. На сайте и в интернете полно видеоуроков где подробно описан процесс. Прошиваемся, открываем консоль в программе на компьютере и ставим скорость 9600. Она по идеи по умолчанию стоит. Если все получилось. То мы видим логотип Blynk и удачное подключение. Отсоединяемся. Паяемся или вставляем в перемычки проводки от модулей. Главное делать это с отключенным питанием. На мой счет спалено не менее 4 плат. Сначала думал, что не глупый и не смогу перепутать что то или замкнуть. Но банальное отвлечение или какое либо лишнее движение замыкает контакты и сжигает плату. Не хотелось бы, чтоб вы спалили дорогую или дешевую плату. Лучше все подключить, проверить, а потом уже включать питание.
Если все запустилось, то заходим в приложение на телефон. Там видим, что плата в сети. Открываем редактор (плюсик вверху), перетаскиваем кнопки, ползунки или то, что вам нужно. Жмем на вытащенные кнопки и выставляем пины подключения реле (можно и наоборот. Сначала выставить, а потом паять по пинам). Когда выставили, опять сверху жмем на кнопку "плей" и можно проверять. Если все правильно подключено, то уже можно будет пользоваться.
Работать можно и на обычной UNO. Минус в том, что постоянно должен работать компьютер с сервером. Он идет вместе с библиотекой. Открываем папку с библиотекой и переходим по пути "libraries\Blynk\scripts" там будем батник, открываем его. Он должен сам определить порт. Если не выходит, закрываем, жмем правой кнопкой, изменить и прописываем там порт, который можно увидеть в приложении ардуино или в устройствах компьютера. Можно снова запускать и сервер должен запустится. Но ардуино всегда должна быть подключена к компьютеру и сервер должен постоянно быть открытым. Я на этот случай скинул сервер в автозапуск, просто создав другой батник и прописал путь к серверу в библиотеке. Можно конечно еще сделать так, чтоб в панели не маячилась консоль. Опять таки, точно уже не вспомню. Но можно загуглить как скрыть бат файл.
На мой взгляд лучше купить все таки esp и не заморачиваться. Она не зависит от компьютера.
Если нужно параллельно без телефона пользоваться светом или другим устройством. Можно поставить проходной выключатель. Схема подключения простая и трудностей не вызовет. Чтоб не тянуть к плате 220 вольт. Я от платы к распаечной коробки кинул связку из двух интернетовских проводов. вышло метров 5 и помех никаких нет. В итоге сэкономил 5 метров кабеля 1.5 квадрата и обезопасил себя и плату от напряжения.
Как это все развесить и подключить грамотно?
Т.к. я постепенно что то менял, то все "кишки" от платы у меня под столом прикрученные на саморезы. Да, колхоз. Но я планирую ремонт в ближайшее время и уже готовый проект можно будет масштабно перенести и забыть. А пока провод в распаечную коробку я спрятал за плинтусом и ее не видно. Все провода спрятал за стол и ничего не отвалилось пока. Если планируется делать все грамотно и в комнате есть щит, то можно аккуратно все туда завести, просто поставив клему после автомата и от нее уже разводить по реле, а от реле на устройства.
С ремонтом проще. Вместе с кабелем похоронить за стеной дополнительный многожильный провод для управления реле или если нужно заземление на электроприборе, то дополнительно прокинуть одножильный провод для проходного выключателя. Тут уже на свое усмотрение я думаю.
Кстати с помощью этой же платформы можно управлять камерой. Не особо удобный способ, но без задержек и вполне рабочий. В прошивке выбрать "servo", установить нужные библиотеки и подключить сервомотор. Обязательно питание берем от блока питания, а не от платы. Ибо могут быть помехи и серво будет дергаться. Скачиваем какое нибудь приложение для удаленного доступа к ПК, крепим камеру на сервопривод, подключаемся к камере. На новых телефонах есть функция разделения дисплея. Во втором окне выбираем приложений Blynk и можем свободно вращать камеру. Способ мне понравился, но при смене стола, я заодно поменял плату и все перепаял. А про камеру забыл.
Ниже будут фотки, извиняюсь за формат, ибо фоткал при сборке и для себя. Не думал, что когда то буду писать об этом и выкладывать фото.
Я описал свою систему и свои замечания. Но этот проект прост и можно реализовать почти все, что угодно. Нет вай фая, а он только на телефоне? вписываем в логин и пароль данные с вай фая на телефоне. Теперь когда мы будем раздавать на телефоне вай фай, то плата будет подключаться к телефону и мы сможем управлять ей в пределах сигнала вай фай. На самом деле все упирается в фантазию и я долго могу описывать примеры этого проекта.
P.s. Почему именно blynk? Не знаю. Я начал этим увлекаться лет с 14 и еще с детства мечтал о какой нибудь подобной теме. А к 16 постепенно начал увлекаться ардуино, заказал тогда еще набор для начинающих, где множество различных датчиков (кстати советую для начинающих. До сих пор бывает черпаю оттуда какую нибудь нужную штуковину) и начал изучение этого шайтан устройства. Но это было как хобби и заморачиваться в создании своего сайта и вручную писать прошивку для каждого модуля не хотелось. В интернете находил готовые сайты для управления всем этим. Но они были довольно скучны. Просто на экране надпись вкл и выкл не была интересна. Да и не хотелось каждый раз заходить в браузер и открывать сайт для включения света. А этот сервис постепенно улучшается. Раньше при отключении света или каком либо зависании, то значения сбрасывались. Т.е. какой либо включенный прибор выключался, а приложение не показывало это. Теперь даже при отключении платы от сети и подключению снова. Она запускалась и включала все так, как было.
Бонусом говорят, что можно так же управлять с часов от самсунга. Но работает это только если есть телефон самсунг и часы gear s3 или galaxy. Точно не могу сказать ибо видел это только в интернете. Буду благодарен, если кто то подтвердит эту информацию. Сам планирую в будущем купить часы.
Если есть какие либо вопросы - пишите. Постараюсь в свободное время отвечать на каждый.
Вышло довольно много информации. Но я не смог написать коротко. Тяну за одно, а в голове еще пару мыслей крутится и понеслось. Думаю запилить еще один пост и подробным описании о том, как прошить плату которая у меня сейчас и возможные проблемы, которые могут вылезти и фиг ты найдешь эту информацию. Там есть нюансы. Получается, что в одной плате три платы (UNO esp atmega) и нужно прошить так, чтоб объединить вместе esp с uno. Я на тот момент информацию и прошивку нашел только на англоязычном форуме. Я сохранил ее на будущее. Могу еще описать процесс настройки для удаленного включения компьютера в любой точке мира. Но думаю этой информации в интернете полно.
Вот такой колхоз у меня под столом. Но я обещаю, что исправлюсь.
А вот это было полтора года назад. Ужас. Как вспомню...
Вот и закончил рассказ. Это первый мой длинный пост. Готов выслушать замечания и в будущем исправляться)