Мой долгострой. Проект далек от завершения. Но промежуточные результаты уже не стыдно показать. Плата моей разработки, заказана у китайцев. 180 диодов ws2812b-mini, wemos d1 mini в качестве контроллера. Эксперименты с генерацией палитр и нестандартными таблицами мэппинга.
Всем привет. Расскажу о своем опыте внедрения на дачном участке устройств умного дома. Для людей, не дружащих с паяльником и компьютером, такой путь покажется сложным, но для меня он превратился в своего рода хобби.
Началось все с того, что я зачем-то заказал 2 умных реле на Aliexpress. Типа вот таких:
Эти реле привязываются через приложение к облачному серверу и позволяют управлять через телефон включением и отключением нагрузки. Так же можно создавать сценарии на включение/отключение по времени. Я отложил их в дальний ящик и благополучно про них забыл, пока не наткнулся на просторах интернета на прошивки Tasmota для таких реле. Вкратце расскажу о начинке: Наряду с известными всем микроконтроллерами Arduino есть такие контроллеры как ESP8266, ESP32 и им подобные.
Они недорогие, производительные и их легко купить. К ним можно подключать кнопки, датчики, реле и прочее. И эти же контроллеры устанавливают во многие умные устройства, включая реле которые я купил. Это я понял вскрыв корпус реле и осмотрев плату.
Теперь о программной части: на данные контроллеры устанавливаются разные прошивки. Можно установить microPython, можно программировать на них с помощью среды разработки для Arduino. А можно устанавливать готовые прошивки, которые сильно упрощают работу с устройством. В эти прошивки уже встроен Web интерфейс, работа с беспроводными сетями и многое другое. Одна из них это Tasmota и есть несколько довольно простых способов прошить ее на ESP. Готовые модули ESP уже имеют разъем MicroUSB, для голых плат придется приобрести программатор.
С готовыми устройствами типа реле чуть сложнее. Придется вскрывать устройство и искать контакты для подключения программатора, но для многих устройств уже уже инструкции в интернете с распиновкой и подсказками.
Следующие фото взял из интернета, но у меня было точно так же.
Так выглядит внутрянка реле:
Синяя перпендикулярная плата как раз та, на которой ESP8266.
Это она же с обратной стороны:
В правой нижней части видно контакты нашей целевой платы
К этим контактам нужно подпаять провода, которые в последствии подключатся в программатор
Питание 220В на плату подавать не нужно. Контроллер возьмет питание от программатора. Только будьте внимательны, сам контроллер ESP питается от 3,3В. А на программаторе может быть выход только 5В. Тогда нужно будет обеспечить 3,3В от другого источника. Подробно здесь этот вопрос описывать не буду.
После смены прошивки и подключения к Wi-Fi прошивальщик сам отправит нас по нужному ip-адресу и мы окажемся на главной странице нашего устройства
Таким образом мы ушли от облачных серверов, что с одной стороны не дает нам быстро и легко управлять устройством отовсюду где есть интернет. С другой стороны теперь наше устройство никуда не завязано и мы можем делать с ним все что захотим.
Управлять включением/отключением реле из WEB интерфейса и в домашней сети мы теперь можем. Передо мной встали несколько вопросов:
Как заставить устройства общаться между собой.
Управление устройством через приложение, получать от него обратную связь.
Сделать автоматизацию, управление по сценариям и событиям в целом.
Удаленное управление из интернета.
Побродив по интернету понял что нужно идти в сторону протокола MQTT. Это протокол передачи данных между устройствами с помощью коротких сообщений.
Если коротко, то каждое устройство может рассылать и получать определенные топики вида /статус/устройство/№реле "состояние" или команда/устройство/№реле "действие". Для того чтобы устройства могли общаться между собой им нужен сервер. Слать сообщения напрямую они не могут. Применимо к MQTT сервер называется Брокер
Но брокер сам по себе не управляет устройствами, а лишь является связующим звеном, хранит и передает сообщения. На что поставить брокер? Так как для него не требуется больших вычислительных способностей я решил установить его прямо на роутер. Так как роутер всегда включен и к нему же подключаются беспроводные устройства. Если есть какое-то устройство которое будет работать 24/7 и управлять умным домом, можно воспользоваться им.
У меня уже имелся простенький роутер с 4G модемом. ZBT1626
Прочитав инструкцию на 4pda установил на нее кастомную прошивку OpenWRT. И затем установил на него брокер Mosquitto. В настройках Tasmota вводим ip-адрес mqtt брокера и теперь наши устройства могут общаться меджу собой. В следующих постах расскажу подробнее о настройке MQTT, из чего делал сервер умного дома и какие устройства уже есть в работе
После удачного добавления ума обычному домофону (смотри предыдущие посты), решил что можно добавить ума и чайнику.
Поизучав рынок на предмет умных чайников стало понятно, что данный тип устройств нифига не дешёвое удовольствие. Но вот стоимость чайника от Xiaomi вполне удовлетворила мою жабу, и чайник был приобретен.
И вот когда заветный девайс был добавлен в мой умный дом, я был мягко говоря огорчен... - Почему этот "умный" чайник не умеет включаться удалённо? Это просто фиаско... Прожил этот чайник года два и никого не предупредив обиделся и поломался. Гад.
Ладно, подумал я, попробуем его оживить или придумать что-то своё, но теперь я уже понял чего мне надо от чайника. Самое главное - это возможность удалённого включения! И хотелось бы им рулить по Wi-Fi, а не по долбаному блютузу. Ок, полезли в интернет искать замену по хотелкам. И фиг... пара вариантов от Redmond и ценой под 10килло рублей. Значит будем этот оживлять подумал я еще раз.
Разбираем чайник снизу, и видим там плату блока питания с релюхой до самыйх ушей залитых инертным компаундом, который как и ожидается ничем не отдирается, а только крошится в мелкую крошку. Замерив сопротивление спирали, понимаем, что оживить чайник не получится.
Лезем в ручку, там находится плата управления, с блютуз-микроконтроллером. И вот тут я понял чего надо сделать...
Итак идея: Купить новый такой-же чайник, а плату управления сделать свою, на ESP8266. Заказываю новый чайник, и идем в EasyEda делать подменную плату.
Немного поигравшись с линейкой и мультитестером получаем вот такую-вот схему:
Заказываем производство, и ждем. Да, когда я это делал, проблем с заказами еще не было. Потом пайка, нахождение косяков, исправление их в схеме. На картинке выше всё уже исправлено, поэтому фотка плат немного отличается. Но не суть.
От платы со старого чайника сдергиваем мелочёвку в виде светодиодов/кондёров/резисторов, разъёмы подключения и спиральки Touch-сенсора. В итоге получаем подменную плату:
Теперь надо всё это хозяйство прошить. Умный дом у меня на базе Home Assistant и прошивку будем писать на ESPHome.... посидев пару вечеров, и откалибровав показания температурного датчика получаем готовое устройство. Да, тут стоит отметить, что отключение чайника происходит по показаниям температурного датчика, поэтому тут стоит уделить внимание.
По умолчанию у чайника есть две сенсорные кнопки, отвечающие за включение и удержание температуры. Включение оставляем, а вот поддержание температуры мне нафиг не надо. Вместо её я сделал подогрев до указанной температуры.
Втыкаем плату в новый чайник:
И идем в HomeAssistant соединяться с чайником:
И конечно же добавим карточку в lovalace
Остаётся за малым - прокинуть в Умный дом яндекса, для управления через Алису. Вот таким вот образом, умный чайник Xiaomi Mi Smart Kettle стал и в правду умным.
Цена вопроса - 2500 руб. чайник + 1000 руб. платы и детали. И это дешевле чем Wi-Fi чайник Redmond, плюс своя прошивка без всяких левых аккаунтов производителей.
Давно и неспешно погружаюсь в тему умного дома. Имеется Home Assistant с различными интеграциями, в том числе с умной колонкой от Яндекса.
И тут с приходом теплых дней вспомнил я про кондиционеры и про их возможность управления по WiFi.
Поскольку в инструкции в к ним сказано лишь о возможности такой работы без какой-либо конкретики и о существовании какого-то абстрактного WiFi модуля, подключаемого в USB разъем кондиционера, начал гуглить.
Нагуглил вот такие варианты:
Ballu Smart Wi-Fi BEC/WFN-02 Рекомендуется “экспертами” Ballu Управляется приложением HOMMYN, которое может интегрироваться с Алисой, Марусей и Салютом. В продаже хрен найдешь ибо уже снят с производства.
HOMMYN HDN/WFN-02-01 Универсальный модуль от HOMMYN для HOMMYN Есть в продаже. Даже разок заказал с Озона, но заказ отменили. Решил еще раз поизучать вопрос и…
HeatStick И тут я натыкаюсь на статью на хабре, в которой ребята представляют свой модуль для управления техникой Ballu, из которой меня осеняет что, несмотря на то что модули втыкаются в USB разъем, по факту же они взаимодействуют с устройством через UART посредством приема и отправки простейших команд при помощи контроллера esp8266.
Надо сказать, факт работы через UART меня сильно вдохновил. Ведь это означает, что все “мозги” для интеграций по сути находятся в модуле. Достаточно лишь заснифать общение оригинального модуля и можно интегрировать кондиционер с чем угодно посредством той же esp8266.
Но и этого делать мне не пришлось, так как, оказывается, давно уже есть решения на базе esphome. Не меньшим открытием для меня оказалось, что прошивки для midea, aux подходят для огромного множества кондиционеров разных фирм.
Сначала я наткнулся на вот такое решение: https://github.com/GrKoR/esphome_aux_ac_component, у которого в списке есть Ballu, хоть и не моей модели. Но, затем, когда я обнаружил явные расхождения по питанию (в доке везде 12-14В, а у меня 5), понял что это точно не мой вариант.
Обратился к доке на свою модель и обнаружил, что произведена она на заводе midea. И вот уж совпадение, но у esphome работа с ними есть прямо “из коробки”: https://esphome.io/components/climate/midea.html
Дело за малым: берем esp-01, заливаем прошивку, припаиваем usb разъем, втыкаем, добавляем появившуюся интеграцию esphome и радуемся маленькой личной победе и небольшой экономии.
Так это выглядит в настройках интеграции Home Assistant
Так это выглядит в lovelace Home Assistant
А вот так в умном доме от яндекса:
Фотографиями своей неаккуратной пайки, пожалуй, шокировать никого не буду, но схема там простейшая:
Есть небольшой нюанс, что у esp8266 по спеке максимальный вольтаж составляет 3,6В, а от кондея приходит 5В. По хорошему, необходимо этот момент учесть и каким-либо образом снизить напряжение. Однако, на практике же эта микросхема прекрасно живет и на 5 вольтах, что сводит весь набор компонентов лишь к платке с esp8266 (в моем случае, esp-01), разъему USB A male и 4 проводкам.
По ценам на али это тянет рублей на 100 вместо тех же 1500-2000 за решение от HOMMYN.
Полагаю, что для тру-электронщиков я никакого открытия не сделал, однако допускаю, что для начинающих это вполне может быть полезно.
Прежде чем рассказать о шприцевом насосе начну немного издалека, о том, что побудило меня заняться рукоделием
К моему большому огорчению этой осенью я обнаружил у себя опухоль на корне языка. Глубоко в душе надеялся, что пронесёт, и мне показалось, но не пронесло, буквально через день был диагноз - рак горла 3 ст. Потом оказалось, что первая, а чуть позже вторая, т.к. это понятие чисто субъективное. Начал лечение, сначала 5 курсов химии, не помогло, потом операция в январе, а теперь таргетная и лучевая, как говорят для закрепления результатов операции, чтобы не было рецидива. Жесть как неприятно и долго. Отнимает много сил и времени. После операции еще не все устаканилось, глотать я пока не научился, отчасти из-за этого горло мне временно отключили, глотать, говорить, втягивать сопли носом и ощущать запахи я не могу. Дышу через трахеостому.
Питаюсь через назогастральный зонд. Это такая тонкая трубочка как на фото ниже, диаметром примерно 4,7 мм, которая идет через нос в желудок
Еда подается через шприц Жане, это в основном шприцы на 150-200 мл. Через такую тонкую трубку много не съешь, а главное - еду надо вводить неспеша как при обычном питании, мы же не за 5 секунд порцию поглощаем, а шприцом это делать медленно тяжело и скучно, еда густая, рассчитать усилие непросто. Я как как бывший сисадмин ленивый, поэтому решил сделать приспособу которая меня будет кормить в буквальном смысле - шприцевой насос.
После модернизации своего Сапфира (3д принтер) у меня осталось много разного железа подходящего для сооружения такой помпы - шаговый двигатель, драйвера россыпью, ходовой винт, нашлась ардуина и прочая рассыпуха. Погуглил там, сям, посмотрел на thingiverse. Готового решения не нашел, но вдохновился идеями и решил делать сам. Времени до госпитализации на лучевую терапию оставалось 5-6 дней.
За ночь набросал проект в 3D редакторе
Начал печатать. Кое-что приходилось корректировать по месту, т.к. печать - самое затратное по времени мероприятие.До конца не знал каким у меня будет пульт управления, ну и всю электронику и софт отложил на последние дни. К слову сказать промежуточных фото у меня нет, из-за дефицита времени. Поэтому прошу прощения пост из серии - как нарисовать сову.
Думал сделать на ардуино, но у меня оказалась одна палата Arduino Nano которая была прошита скетчем печатающим в бесконечном цикле слово "Test" в последовательный порт. Быстро найти решение как прошить плату у которой с момента загрузки занят порт, я не нашел. Попробовал перепаять проц ( у меня их есть с десяток) не вышло, не завелось, подозреваю надо было хорошо отмыть флюс в ацетоне, но мне негде и времени на эксперименты не оставалось. Поэтому взял за основу ESP8266, а конкретно Wemos D3 mini. Собрал схему на бредборде, залил туда ESPHome, можете называть меня извращенцем, но я его знаю, а времени у меня не было. Все завелось с первого раза. Перенес все на две макетных платы 60х40 мм, одна с дисплеем и органами управления - энкодер и 2 тактовых кнопки. Вторая с драйвером TMC2208, Wemos и понижайкой для питания последней, т.к. драйвер переваривает от 8 до 36 вольт. Не сочтите за мажорство, я пробовал драйвера 4988 и LV8825 не понравились, первый откровенно дергает и громко шумит, второй получше, а вот 2208 просто идеал - крутит тихо и равномерно.
По поводу софта - для тех кто не знает ESPHome (esphome.io) , это часть умного дома Home Assistant которая использует за основу ESP , умеет общаться со множеством периферии, поддерживает самописные модули на С++. Кода как такового нет, работа модуля описывается конфигом на yaml который к моему счастью умеет в лямбды и скрипты. Выглядит примерно так
За код дисплея не бросайте в меня камнями, с точки зрения оптимизации он не эффективен (каждый раз проходится по всем условиям if, хотя сработать должно только одно) , но зато понятен и безглючен, а это для меня важнее.
В устройстве реализованы следующие фичи:
Рабочий ход со скоростью от 1 до 5000 импульсов за секунду Обратный ход со скоростью от 1 до 5000 импульсов за секунду Быстрый возврат по двойному клику с максимальной скоростью
Регулирование скорости и останов происходит при помощи энкодера. Вращение - регулировка, нажатие - стоп.
Оставлен доступ по WiFi можно посмотреть такие параметры как скорость, состояние кнопок и энкодера. А главное - можно заменить прошивку по OTA.
Видео основного процесса
Несколько фото с разных ракурсов
Если кого-то заинтересует, выложу со временем исходники на thingiverse, подскажу, если будут вопросы.
Итак, захотелось медиаколонку, чтобы что-нибудь бумкало на даче, пока работаешь. Быстрый обзор рынка показал, что имеет смысл брать BT-колонку, но не нравится то, что надо будет постоянно дрючить телефон. Хотелось сделать вариант "включил и забыл".
Решил делать сам.
Куплены самые дешевые из не самых ушлепских (на тот момент) автомобильные динамики.
Рассчитать объем не получилось, сделать объем как в автомобильной двери тоже (сильно большая коробка получилась бы). Итог - делаем, как получится и пофиг.
Материал - ДСП. Пилим...
Грунтуем (попытка убуречь от влаги, на дачу же). Одну половину досок покрыл антигравием, другую покрасил (использовал что было в наличие)
Собираем
Шумим, ватин был, шумоизоляция была, все осталось от шумления дверей в авто.
Обтягиваем акустической тканью.
Запихиваем акустику. В качестве усилителя была куплена старенькая Alpine магнитола. Имеет BT, USB, радио. Так что в итоге колонка сможет играть с любого источника. Сначала смотрел в сторону самых дешманских китайских магнитол, но увидев что там внутри, решил купить хорошую БУ. БП - от компа. Тоже имелся в наличие.
Для вентиляции подсос идет с боковых отверстий в передней части (где решетки стоят), и выдувается назад блоком питания.
В крышку интегрируем герметичную розетку (пригодится) и зарядку для телефона (по тупому - просто втыкаем имеющийся зарядник).
Дальше самое интересное, на просторах сети нашел проект Ka-Radio (кому интересно, есть на гитхабе). Грубо говоря это интернет-радио на базе ESP8266. Собрал, прошил. Подрубается к местному WIFI и играет. Дисплей купил на али. Управление дисплеем/включение/отключение/всякие режимы работы сделал на ардуино. Использовал единую плату ESP+Arduino c али.
Все управляется с одного энкодера, есть системное меню, где можно посмотреть инфу, а так же перевести контроллер в режим без "онлайн радио", если хочешь пользоваться магнитолой, как источником сигнала. +Прикрутил антенну для FM.
Запихиваем все в крышку. Получилось не очень с обратной стороны, ну да ладно..
Результат:
Чтобы мафон не терял настройки поставил свинцовый аккум от УПСа (да, тоже был). И простую повышайку до 14 вольт (регулируемую). Когда все включено - заряжается, выключил - питает соответствующий вход на магнитоле.
Сзади намотано 10 метров кабеля для подключения к розетке. Прикручены колесики. Боковые ручки (под ними вклеены мелкие неодиновые магниты, чтобы от музыки не тряслись ручки). Байда получилась тяжелая, хорошо что не стал делать из МДФ. В итоге...
Видео работы интерфейса радио
Поет хорошо) Включаешь БП сзади и пошел.. сам подрубается к WIFI и играет последнюю станцию.
На случай если не будет интернета, воткнул флешку с 30 гигами музыки, формат конечно только mp3.
Чтобы обновить плейлист надо зайти на шару ESP, там лежит один единственный файл плейлиста, прописываешь радиостанции - название/url . Формат - винамповский m3u.
P.S. подергать urlы радиостанций очень удобно из программы RadioShure.
Fastler - информационно-развлекательное сообщество которое объединяет людей с различными интересами. Пользователи выкладывают свои посты и лучшие из них попадают в горячее.