
Комментарии 34
многабукв
Непонятно, где тут, собственно, умный дом.
По MQTT отправляем данные - куда? - неизвестно. И что с ними потом делаем - непонятно.
Уходим в дипслип и экономим батарейку? Ради чего? Ради того, чтоб потом что-то быстро измерить, а потом долго и упорно жрать батарейку и подключаться по WiFi? а потом еще и коннектится с сервером и долго и нудно в текстовом виде передавать данные. Если уж оставаться с ESP32, то почему не использовать ESP-NOW?
Arduino IDE уже не модно-молодёжно. Используйте Platfomio
Корпус из фанёры при доступе к лазерной резке и акрилу - и дороже, и менее эстетично, и менее технологично.
соответственном программном обеспечении, которое на раз-два пишет LLM.
а на три налажает
Трафик поступает через сервер Интернета вещей, но через самописный, и если его поставить локально – устройство вообще полностью автономно собирает данные по Вашему дому и хранит их на этом сервере.
самописный не имеет никаких шансов. Собирать данные и хранить - это не умный дом
Ну да, могу подробнее расписать моменты если будет минутка, что-то думал, что и так само собой разумеющееся) В Алисе есть навыки, я ими и пользуюсь для голосового управления тем же самодельным пультом, например. На видео видно, там, в частности, можно и просто сказать "Домовенок Кузя, переключи источник". Platformio тоже использую, дело привычки, однако.
А сколько времени компилируется проект в Arduino IDE под ESP? Я перешёл на Platformio, потому что там компиляция под ESP раз в 5 быстрее.
Уже не первый раз наблюдаю подобную ситуацию, когда "педагоги", да и в целом государственные люди, пишут и делают большой объем какой-то ерунды, не владея даже базовым пониманием о предмете.
Ладно, человек может ошибиться, когда декларирует что не воспринимает системы не дающие понимания что происходит на уровне железа, и тут же берет огороженный ESP32.
Но в чем суть умного дома-то - разве сложно почитать и понять? Ладно, об этом позже.
Даже программируя это бесполезное устройство, автор, он же преподаватель понаступал на детские в общем-то грабли.
Ну вот например, датчик дыма MQ-2 разогревается и сушит воздух. Использование их в одной коробке неизбежно повлияет на измерение, как и использование гигроскопичного корпуса.
Вопрос-исследование на тему "почему эта штука превратится в тыкву, если вдруг глюканет роутер" - пусть будет заданием на повышение квалификации педагога.
А вообще, умный дом - это не датчики и моргание светом, а комплекс взаимосвязанных устройств, могущих работать в одной связке. Включать телевизор командой "Телевизор, включись" - это просто автоматика. Умным домом оно станет, когда уходя из дому вы скажете "Телевизор, включись через час после моего ухода, если влажность станет выше 50%".
Вот это должно быть в статье, а не паттерны и принципы :)
Почитайте другие работы, например, тут показано, как в гибридном формате с умными розетками и на базе своего сервака сделан проект Умного подоконника: https://habr.com/ru/articles/1025358/. Эта статья то ли как продолжение, то ли как предыстория.
По датчикам с нагревам и калибровкой - четко показал, что при проблемах в совместимости ставится разъем и датчик выносится с частичной изоляцией за счет термоусадки. Очевидно, что скопления пара или влаги дадут неточное измерение, но по даташиту кстати там вроде достаточный зазор. Хотя согласен, что перестраховка не помешает.
По поводу автоматики и принятия решений - согласен, наверное что-то напишу в ближайшее время. По автоматике то в целом тоже все просто, ML-часть интереснее... То есть системы либо интегрируются, либо условие то прописать дело 5 минут хоть в ESP32-клиенте, хоть на серваке. Ну согласен, что можно что-то поинтереснее накидать по конкретным кейсам, как будет время)
Автор не делал коммерческий продукт. Практически уверен, что целью автора в было получение удовольствия от создания, нежели познания истины в последней инстанции и донесения ея до нас. 99.9% подобных систем - гипертрофированное подобие пульта того или иного домашнего агрегата. И, согласен с автором, - самое кривое в подобных системах (для меня, во всяком случае) - зависимость от некоего дяди. И неважно, роутер глюкнулся или дядя у себя рубильник выключил. Лампочка в сортире должна светить.
Второе по кривизне, игнорируемое в том числе изготовителями практически всех железок - безопасность и надежность. Я, например, должен быть уверен, что мои дети в безопасности, когда я в командировке, и ни одна "умная розетка" не полыхнет, если у соседа, например, ноль отгорит.
Используемый процессор, инструментарий разработки или еще какая фича в данном случае - дело десятое. Практически любую функцию можно реализовать на чем угодно, даже на древнючем 8051. Если автор получает удовольствие от процесса, кто мы такие, чтоб ему мешать?
ЗЫ. Мощность подогрева датчика - const. Повесить рядом психометр и ввести поправки - дело одного дня. Фанера - крашеная. Солонка/сахарница, стоящие рядом на столе и то впитывают больше. Да и покажите мне того человека, кому мешает жить погрешность в 5% его домашнего гигрометра?
Ну вот. А у автора лампочка не будет светить, если роутер глюкнется.
Да и фанерная коробка быстрее полыхнет, чем заводская розетка, сделанная из поликарбоната или нейлона.
З.Ы. Покажите человека, которому вообще нужно знать какая влажность у него в доме.
:-) Астматиков в мире до 10%. Поэтому почти каждому десятому, читающему сей текст интересно знать влажность дома, особенно зимой
Вообще очень жалею, что так и не дошли пока руки чтобы доделать и знать какая влажность в ванной...
Чтобы что? Ну вот я знаю что у меня влажность после купания 90%, без купания 50%. И что мне с этим делать?
Чтобы черная плесень не росла. Чтобы вначале включать вентиляцию, а потом, если совсем всё плохо и осушитель.
И делать это когда человек уже ушел. И только если надо.
У осушителей стоит свой гигрометр, при том не дерьмо типа DHT22, а герметичный, с калибровкой и так далее. Чем отличаются?
Ну например разводкой. Вот эта вся лапша что на фото, через год будет наполовину разъедена коррозией, а еще через год отвалится.
***
Вытяжка просто подключается к выключателю света, и она просто должна работать, вне зависимости от того что там показали какие-то датчики. А современные малошумные - так вообще могут работать всегда, и это в общем-то нормальная практика связанная не только с влажностью, а и в целом с чистотой воздуха.
***
Вот знаете, у меня ассистент по команде может продиктовать номер машины припаркованной на улице перед домом (с камеры видеонаблюдения), самостоятельно подавать показания счетчика в облэнерго, кормить кота после "мяу", обесточивать дом и заводить удаленно автомобиль, но вентилятор сюда подключить я бы ни за что не догадался. Это же лютый оверинжиниринг.
Это все, конечно здорво, но мне хотелось бы поддерживать влажность меньше, чем минимальная уставка доступная для осушителя. И больше нуля.
Ну и иметь данные о влажности до и после, чтобы глядя на графики принимать решения о том, что и как делать дальше.
Где-нибудь в течении года допилю.
У меня совершенно отличающиеся от ваших представления о полезном и бесполезном. С этим ничего не поделать.
Вероятно для вас это всё и правда не нужно...
Это все, конечно здорво, но мне хотелось бы поддерживать влажность меньше, чем минимальная уставка доступная для осушителя. И больше нуля.
Вы не сможете, по-двум причинам: а) В компрессорных "больших" осушителях эта установка зашита намертво для защиты холодильной установки; б) Полупроводниковые мелкие осушители, на элементах пельтье, имеют слишком маленький COP, их вы можете хоть круглые сутки держать включенными, при 400 Вт потреблении, в комнате 15 квадратов, они могут снизить с 90% до 80%, и на этом все. У меня их было около десятка, на этом я съел собаку, и оставил один, самый эффективный. Кстати кондиционер у которого COP 9000BTU (это около 2.7 кВт) - тоже в целях безопасности снижает влажность не ниже определенного предела.
Ну и иметь данные о влажности до и после, чтобы глядя на графики принимать решения о том, что и как делать дальше.
Эта игрушка будет актуальна первые несколько дней. Потом осушитель (если он и есть) будет крутиться в штатном режиме, безо всяких графиков и анализов.
Комфортная для человека влажность воздуха в помещении - 50%. Это - плюс-минус самая обыкновенная окружающая среда в типичной квартире или доме. Там где влажность by design повышенная - во-первых люди не живут, во-вторых исправляется самым обыкновенным вентилятором подвязанным на выключатель света, или даже 24\7, что является неплохой практикой и способствует циркуляции свежего воздуха.
Ваши "графики" просто скажут что вентилятор должен быть включен круглосуточно, но я вам это и без графиков скажу.
Вероятно для вас это всё и правда не нужно...
Графики - нет, не нужны. Влажность воздуха - это абсолютный, предсказуемый и весьма инертный параметр. Разницу между 40% и 50% вы не ощутите. А бытовые приборы позволяют держать определенный уровень и без графиков.
Впрочем осушитель у меня есть, и я даже могу читать с него данные и им управлять в любом режиме. Вот реально в любом, могу даже его выключить, если вы на этой странице напишете три раза "ку". Но не делаю это, потому что к умному дому это не относится, это такая же автоматика как и например холодильник.

Соответственно терминал дублирует голосовой ввод.
Лампочки у меня через покупные розетки, кстати. Цена вопроса просто - дешевле и проще. Я же так и написал прямо, что использовать удобно именно для получения показаний с датчиков и управления тем же ТВ.
Влажность нужна в том же умном подоконнике для анализа и контроля качества роста клубники или микрозелени.
PS: Кстати, хотел еще сделать полноценного локального голосового ассистента, даже делал на библиотеках питоновских, но не все нравилось, надо на свежую чуть добить проект. Программа (вроде не совсем С++) память забивала и зависала уже под вечер на мак мини))
Полноценный локальный голосовой ассистент - это то, что умеет в контекст.
Ну вот например вы говорите "Алиса, какая температура за окном?", Алиса вам отвечает "Двадцать градусов", вы переспрашиваете "А сейчас?", и Алиса не команду просит уточнить, а снова дает температуру. Вы говорите "Если температура сядет ниже двадцати градусов, включи обогрев на двадцать три" - и Алиса это выполняет.
Ну или там говорите "Вася, через час включи лампочку в туалете", и Вася через час ее включает.
***
Вот на такую реализацию я бы посмотрел. Но к сожалению с вероятностью в 98%, это будет очередное - Алиса, сколько время? - Извините, команда не распознана. - Алиса, который час? - 17:00.
***
Свою систему я делал с подключением по витой паре, еще до событий, хотя несколько wifi-устройств осталось. И знаете, я несказанно этому рад. Когда включается РЭБ (время сейчас такое) - wifi всё. Все эти zigbee естественно тоже.
***
while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Скажите, а что будет если у вас по какой-либо причине не включится роутер, или не выдаст адрес? ;)
Сколько проживет то на батарейке если передача через прожорливый WiFi? Тут нужны какието более энергоэффективные средства связи ZigBee или хотя бы ble. OLED деградирует со временем. Я строил систему УД подобные как у автора статьи на базе openhab, souliss и tasmota. Времени ушло немало. Знания и опыт тоже получил интересные. В другой квартире времени не было и там умные розетки, лампочки , яндекс шлюз для ик передачии в общем все готовое из коробки ну и Алиса. Все оно прекрасно работает. Отвалы за несколько лет были единичными.
да нормально проживёт, конечно это не zigbee, но несколько месяцев проживёт, зато стоит копейки. У меня на участке были раньше сенсоры почвы на 2х ААА и на 18560+ панель, обе концепции жизнеспособны, на сезон с весны до поздней осени батареек хватало, а они все на 8266, не на 32.
Вообще"погодной станции" надо поставить памятник в мире DIY , как мышам в медицине..
А если серьёзно в таких проектах самое интересное это их эволюция через годы эксплуатации, в результате ее появляются (или нет) серьёзные решения.. Вот например система автополива.... казалось бы - воткнул в почву датчик, насос на релюшке, значение перешло порог, насос включил... А потом начинается - аа нееет , датчик с Али не работает в поле , на следующий день он показывает "пальцем в небо" , нужно замерять на 27 МГц и прямо на самом датчике , а еще нужно температурную компенсацию делать и тп и тд. Насос с релюхой - неее, поливать холодной водой нельзяяя, пойдёт гниль, нужно что бы температура воды отличалась не более чем на 3-4 градуса, а тёплая вода так любит заводить водоросли в танке, что надо туда периодически впрыскивать раствор марганцовки, а для этого нужен отдельный микронасос, уж не говорю про погодные условия.... , дождь, время дня.... И вот в итоге получается огромный комплекс о котором ты даже не думал, но он автоматизирует нужное дело... И вот он, проверенный временем стоит дорогого.
да нормально проживёт, конечно это не zigbee, но несколько месяцев проживёт, зато стоит копейки
считаем-с....
допустим-с, емкость батарейки 2000 мА*ч... потребление esp32 при работающем WiFi 300 мА, время на подключение - 3 секунды...
2000/300 = 6.7 часов работы
6.7*3600/3 = 8000 сеансов передачи данных, если сеанс раз в пять минут, то общее время работы 27.7 суток.
Это в предположении, что с двух батареек получаем всегда 3.3 вольта и напряжение у батарейки всегда стабильно. Ясен пень, что влажность почвы можно передавать раз в час и если эта влажность не используется для выключения полива
Ну если не заниматься виртуальной теорией , а обратиться к жизненным фактам, то в вифи режиме модуль потребляет 90-140ма, я большего не видел, как 8266 так и 32й , ну пусть милисекундный пик в 170, батареек с емкостью 2000 я никогда не видел, обычная -1200мачей ,передавать в с частотой в 5 минут это глупость, такая же как и останавливать полив по текущей влажности (фильтрация воды в зависимости от типа почв и многое другое) обычно это не чаще 30 мин , 100 мачей можно сразу выкинуть из емкости , там вифи уже не стартанет. Плюс есть еще 20-30 мка , а на улице все 50мка на дипслип, саморазряд и утечку. Но сразу больше 230 дней? Итого по практике - на сезон с весны по осень хватает.
Да, наверное я слегка застрял в прошлом, сейчас ценник на зигбю и вифи практически сравнялся....
Хотя есть еще один фактор , про вифи я много чего знаю и понимаю например, сколько мне точек надо на 120+ устройств и как маршрутить это все дело и как настраивать... И роутеры копеечные где можно поставить с опесорсным софтом , с зигбей надо все поднимать заново ... пока не вижу практического смысла..
Ну так стек ZigBee разве в esp32 нельзя влить esp-zigbee sdk? Я давно не вникал в эту тему насколько он отлажен. Частоты то одни. Просто полоса сигнала сильно меньше ну и соответственно энергопотребление. У меня в гараже датчик температуры на двух пальчиковых и вайфай пару месяцев держит. А вот дома датчик температуры на 2032 несколько лет. Тут даже не вопрос цены а лень менять батки
Это да. Ну по факту я электричество дома не отрубаю и все равно все на удлинителях висит. Не нравится, что и так уже дома все адаптеры для телефонных зарядок полампера еле тянут - вот с этим интересный есть нюанс, да.
Ради развлечения возможно конечно интересно, но непонятно зачем). Если по теме погуглить найдется как минимум Home Assistant абсолютно на 100% локально работающий open source. Да и для ESP32 есть проект ESPHome
Странно, ESP32 и не применен RTOS
Не могу придумать хоть одну задачу по дому, где бы время реакции было бы меньше 20мс (один период сети). Человек, судя по учебникам эргономики уже не получает дискомфорта от задержки включаемого устройства (после нажатия на кнопку) менее 0.2-0.5 с. Даже реализация PID управления каким-либо параметром дома как правило имеет время корректировки по параметрам датчиков не менее секунд/минут/часов.
ты видишь суслика?
Непонятно зачем опять изобретать свой велосипед. Есть готовые универсальные, и что самое главное, open source решения, типа esphome или tasmota.
Эти решения из коробки поддерживают огромное количество датчиков, устройств и протоколов. Если надо что-то своё - допиливается легко.
Ну а дальше, если управлять больше чем одной лампочкой - придется ставить сервер умного дома.
Потом приходит зигби, так как можно купить кучу всякого готового разных производителей и спокойно подружить со своим оффлайн умным домом.
А написать all-in-one-file.ino сейчас может любая бесплатная llm с одного запроса.(Промпт писать дольше чем все остальные шаги)
Автор просто хотел сделать что-то свое, особенное, даже коробки не стал печатать на принтере, а сделал их из фанеры. Вполне интересный и достойный diy проект. Да, много недоработок, но и решение не на рынок.
Самое интересное, что при наличии тысячи разных микроконтроллеров, atmega328 (которую ставят в плату Arduino) не потеряла популярности. Да, она может очень многое, потому как к ней нужны руки. Она слабее чем esp32, stm, raspberry и многих других, даже ch32, но она удобная, надёжная и привычная. Сам её использую во многих проектах, на как плату конечно (хотя бывает и как плату, только в виде pro mini).
Вот вы все говорите про беспроводные технологии, а ведь можно и без них. Любое стационарное устройство спокойно подключается проводами, на шину. Да, это все необходимо предусмотреть, но это проще. Ставите один max485 и у вас полноценная шина передачи данных на скорости 115200, выше крыши для всех устройств, даже если каждый выключатель будет отдельным девайсом. И в каждой розетке будет релюха стоять. Я уже не говорю про датчики, которые также можно посадить на единую шину.
Автор молодец, сделал то, что хотел и просто поделился этим с людьми. У каждого свое мнение и я уважаю мнение каждого, хоть многие мнения не поддерживаю и не разделяю. Каждому свое.
Автор, тебе несколько рекомендаций:
Не используй delay(), при включенном wi-fi, это очень плохо влияет на работу. Применяй таймеры.
Систему постарайся сделать более распределенную, тот же IR передатчик вынеси как отдельное устройство на шине, которое будет принимать и транслировать команды. Так как ты все равно все юзаешь через центральный распределитель команд, то просто отправляй команду в брокер, а брокер отправит кому нужно (да, нужна таблица распределения команд, логика обработки)
Попробуй использовать более примитивные МК для простых устройств, типа Ch32v003j4M6, PY32F002B, PY32F002A. Они за ведро стоят 400 рублей, без шуток. Обладают такими характеристиками, что закачаешься. Программируются тоже не сложно.
Ну и самое главное, старайся доводить схемы и корпуса до изделия, а не diy коробки. Сделай корректную схему, плату, с компонентам, а не с модулями, с хорошей компоновкой и так далее.
Это просто рекомендация для развития и совершенствования себя.
Удачи и успехов в проектах!
Он вернулся к дубу, прислонил к нему гусли и почесал задней ногой за ухом. — RTOS, RTOS и RTOS, — сказал он. — Только RTOS!
Архитектура независимого умного дома: паттерны аппаратного проектирования и Embedded-разработка на ESP32: Сенсорбокс