Как стать автором
Обновить

Комментарии 63

За ESP хотелось бы подробностей.
Какие именно подробности интересуют?
Вводная и минимальное приложение, с описанием, почему это сделано именно так.
Если именно про ESP, то таких статей довольно много, могу порекомендовать статью, которую упоминал выше и с которой началось мое знакомство с данным семейством.
https://geektimes.ru/post/255450/
Насколько я знаю, в esp07 512МБ памяти, как вам удалось сделать обновление по воздуху?
В моей системе по воздуху обновляется только моя часть прошивки (lua код, конфиги и т. д.), мне этого достаточно. Сам nodemcu у меня по воздуху не обновляется.
512МБ? Полгигабайта? Где такой приобрести можно?
Я для себя просто перепаял микросхему памяти. Выпаял флешку с убитой esp12 4Mb и впаял в esp07. У 07 разъем для антегны есть и это огромный плюс в определенных случаях

Годная статья. Главная ценность — опыт эксплуатации, оно на макетке всегда пару дней ок пашет, а вот когда год пользуешь — лезет. Побольше бы таких заметок на хабе

поддерживаю. Много кто пишет вот сделал. И мало кто — проработало N лет и вот выводы.
а и материнка сервера, почему-то не захотела нормально работать в режиме, автоматического включения после подачи питания, если до этого была штатно выключена.

Насколько я видел там системе посылается сигнал выключения системы без отключения БП. А бесперебойнику шлётся сигнал отключится через минуту и после появления питания включить розетки. Так как раз обходилась проблема не включения после правильного выключения(каламбур какой то). Но это было для Linux как дела в винде обстоят я не знаю.
Про винду ничего не знаю, в линуксе просто halt делал. В настройке биоса стояло что-то типа «включать после подачи питания». Так вот после halt и выключения/включения питания система не запускалась, а после аварийного выключения все было нормально. На десктопе такого не было (в обоих случаях комп стартовал), грешил на глюки в материнке.
НЛО прилетело и опубликовало эту надпись здесь
Стояло «always on»

Датчики температуры имеет смысл делать беспроводными, на esp8266. Цена кабеля сравнима с ценой esp, но не прокладывать дополнительный кабель иногда очень удобно ;).

Не совсем, помимо платы еще и обвязка денег стоит, и трудозатраты выше, и опять же плата питание по воздуху не берет, все равно провод нужен, так что если изначально проектировать систему в только для измерения температуры и опроса датчиков (типа сухой контакт), без моментальной обратной свази, то 1-wire очень даже неплох.

Ну а если до точки сбора информации далеко, либо нужна сразу на сервер отправлять, то гибридное решение (один мастер на esp8266, несколько датчиков ds18b20), описанное в начале статьи очень, на мой взгляд, удачное.

Лучший критерий удачности — что система уже год как работает ;) Просто я с кабелями не люблю возиться. Сверлить, штробить — тоже затратно. Да и ложить кабель нужно с запасом..

Есть хорошие клеммники на торец платы, позволяющие подключать провод без отвертки, и не нужно снимать крышку корпуса.
Ищите типа 5Pcs 10 poles 10pin Dual Row Screwless PCB Terminal Block Connector 5.08mm Pitch

Там просто вдоль провода вставляется в спец. место шило и нажимается рычажок освобождения клеммы.
Да, такие видел, но у меня уже был запас обычных под отвертку. На будущих моделях я бы вообще лучше поставил разъемные клеммники, чтобы сразу всю колодку снимать, так легче, при необходимости плату снимать и обслуживать.

как себя зарекомендовали модули 8266, надежные при работе 24/7?

Через меня за это время прошло около 20 модулей. Два из них оказались ненадежных, т. е. нестабильных при длительной работе.

Все платы перед «выпуском в продакшен» подвергаю нагрузочному тестированию. Собрал стенд который эмулирует срабатывание датчиков (и соответственно логику работы платы) в довольно быстром темпе и оставляю работать минимум на трое суток (первую вообще две недели «насиловал») Тут не только сам модуль тестируется, а в целом вся система (у меня в итоге в платах ошибок было больше чем в модулях :) )
А есть ли какие-то системы по типу 1-Wire, но децентрализованные? Как я это вижу:
Есть шина, есть устройства с условными mac-адресами. Каждое устройство программируется — например при срабатывании геркона — МК, к которой он подключен, шлет уведомление на адрес 11:22:33:44 с ID входа (исполнительное реле включения освещения), то при получении такого импульса должно замкнуть конакты, таким образом устройства живут своей жизнью и выход из строя одного ломает только подключенные к нему.
Есть, но это уже не 1-wire, 1-wire так не может.
То есть вам в итоге фактически пришлось отказаться от проводных коммуникаций, оставив на проводах только не очень оперативные задачи вроде опроса датчиков?

Я тоже сейчас впервые делаю свой УД. Много думал. Сделал ставку на RS-485 и Modbus. По кругу всей квартиры проложил в стяжке 2 витых пары (две — на всякий случай, итого 16 проводников). Они проходят последовательно через каждый блок выключателей и через каждое сетевое устройство, местами получились относительно большие петли — туда и обратно. Управление каждым устройством делаю отдельным контроллером для каждого устройства / группы устройств, чтобы при смерти сервера тот же свет штатно управлялся тем же выключателем. При выходе одного контроллера из строя можно заменить его целиком на такой же, так как они универсальные и дешевые, будут несколько запасных. Надеюсь избежать проблем, с которыми вы столкнулись)
В планах, да. На проводах оставить только опрос датчиков.
На данный момент часть управляющей логики тоже остается на 1-wire.
Но эта логика не является жизненно важной (свет в коридоре и на лоджии, вентиляция и т.п.)
Т.е. при выходе из строя сервера или еще какой-либо причине падения всей системы, жизненно важные системы продолжают работать независимо.

RS-485 насколько я знаю более надежен чем 1-wire, хоть и более сложен.
Сделать запасную пару очень правильное решение.
Собственно будь у меня изначально опыта работы с микроконтроллерами больше, я бы сделал как вы.

Добрый день! Что вы используете в качестве сервера????

Писал во второй части https://geektimes.ru/post/254050/

Обычная десктопная материнка на Linux Ubuntu. (только в формфакторе MINI-ITX и с пассивным охлаждением)
Если подключить без преобразования AC-DC к аккумулятору, то может проработать без электричества в несколько раз дольше. Ну и не забудьте поставить датчик на наличие самого питания, а лучше еще и контроллировать заряд аккумулятора :)
Можно, но не все так просто, там ведь еще жесткий диск и нужно обеспечить хорошее качественное питание.
Да и где отключили на час рано или поздно отключат на три и все равно времени не хватит.

К слову, я уже сделал из своего «простого UPS» «умный UPS» (на все той же esp8266, на гитхабе у меня есть), и планирую сделать нормальное включение/выключение при потере питания.
Как вариант — подключить esp8266 к батарейке бесперебойника и завершать систему, если напряжение падает до определенного уровня. Ну или digispark какой-нить.
Почти так и планирую сделать, плата на esp8266 уже готова и испытана, дело за малым код написать и протестировать.

Raspberry и клоны… Значительно легче с бесперебойным питанием, с размерами… И тот же линукс внутри.

У меня на этот сервер еще видеонаблюдение идет (ну и файлопомойка транзитная, так как диск большой стоит)

А raspberry есть, стоит в горячем резерве, как раз на случай когда проблемы с сервером. Один раз уже спасало.

Тогда надо решить, что питается от бесперебойника, что нет, если это критично. Файлопомойке бесперебойное питание не обязательно, видеонаблюдению — зависит от того, как запитаны камеры.

Файлопмойка, это просто бонус, так как есть диск, диск большой и всегда в сети.
Видеонаблюдение запитано от 12v в кабеле по которому идет разводка 1-wire, питается, соответственно, от того же ИБП.
Есть еще готовые устройства от Sonoff и ElectroDragon за $5-6 уже с корпусом и питанием. Прошивку свою можно залить.
Готовых решений масса, но это «не наш метод» ;)

Два вопроса. Почему лаг в секунду при опросе датчиков критичен? Это же дом, а не система мониторинга состояния ректора АЭС. Зачем хранить историю датчиков за 4+ лет? Неужели хоть раз возникало желание посмотреть какая была температура в комнате в 18:43:31 десятого мая четыре года назад? Это же как пересматривать видео вон того прошлогоднего салюта...

Почему лаг в секунду при опросе датчиков критичен?

Потому, что это скорость реакции интерфейса системы.
Пользователь нажимает кнопку, реакции нет, пользователь напрягается, его это раздражает.
Тем более, что пользователь привык, что при щелчке обычного выключателя свет включается мгновенно.

Зачем хранить историю датчиков за 4+ лет?

Аналитика, бигдата и все такое. Там ведь не только температура, но и потребление воды, электроэнергии, передвижения по квартире, двери, окна и т. д.
Да если они пропадут, никто не умрет, но если они есть и каши практически не просят, зачем выкидывать.

с лагом вопрос снят, с БД, личное мое мнение, что такие крупные объемы не нужны.

БД за прошлые годы можно сжимать — усредняя показатели. Потому что обычно нафиг не надо знать, как вы два года назад тратили воду 2 мая, а вот среднее потребление может быть интересно.
Можно конечно, вот только там объемы на диске смешные, на фоне, к примеру, видео с камер, так что единственное чем мешало, долгое восстановление после повреждения БД, но ее ломать и так не стоит.
Все равно придется усреднять, если захотите график за 4 года показать. Но да.

Мой комментарий относится к предыдущим статьям цикла (ну и к умным домам вообще).
КМК, неправильно подключать выключатели/кнопки и пр. элементы управления низковольтной "витушкой". Надо использовать обычный силовой ВВГ и NYM (КВВГ если надо больше 3 жил). Это надо для того чтобы в случае чего можно было реализовать "традиционное" подключение светильников и др. оборудования.
Зачем? Например, в случае аварии контроллера можно просто вынуть его из клемм и соединить их напрямую, получив некий базовый функционал.
Потом, квартира эта сейчас ваша, а завтра вы решите поменяться с родственниками. Или переехать. Или перебраться поближе к природе/работе, а хатку сдавать. В любом случае, отдавать квартиру в таком виде людям, далёким от техники, нельзя. К сожалению, эти умные дома пока не вышли из пелёнок и не могут долго жить без папочки :) Да и свой компьютер вы вряд ли оставите чужим людям. Даже если не компьютер, а ПЛК (Arduino) — это будет работать до первой поломки. А дальше придёт электрик из ЖЕКа… продолжение придумайте сами :)


Есть вопрос по подключению датчиков типа "сухой контакт". Почему выбран вариант с подачей 5 вольт через датчик? Обычно в цифровой технике коммутируют "землю", подтянув вход к питанию. Т.е. "ноль" — активный уровень. Почему Вы сделали по-другому.


Ну и позвольте традиционно побрюзжать по поводу качества схем. В этой статье лучше чем в прошлых, но всё же… Пожалуйста, освойте символ "общий" ("земля", GND)! Сразу увидите что схема станет "прозрачней", более читабельной и понимабельной.
К платам тоже есть мелкие придирки. Не ленитесь подвигать/повращать элементы чтобы снизить плотность проводников. Просто распечатайте платку в реальном масштабе и посмотрите на неё на предмет мест где наиболее вероятно появление "залипух". Сразу станет понятно что можно подвинуть или повернуть.

Спасибо за развернутую критику!

КМК, неправильно подключать выключатели/кнопки и пр. элементы управления низковольтной «витушкой»...

В целом соглашусь, в жизненно важных зонах так и сделано (поскольку было переделано из «классического» подключения, соответственно вернуть труда не составит)
Так же согласен, что в большинстве случаев, следует иметь резервный вариант.
Но конкретно в моем случае вероятность сдавать/поменяться и т. д. пренебрежима мала. А если продавать (что тоже на данный момент крайне маловероятно), то все равно в 90% случаев после покупки ремонт делают.

Есть вопрос по подключению датчиков типа «сухой контакт». Почему выбран вариант с подачей 5 вольт через датчик? Обычно в цифровой технике коммутируют «землю», подтянув вход к питанию. Т.е. «ноль» — активный уровень. Почему Вы сделали по-другому.

В старых схемах (на 1-wire) так было сделано, так как делал по образу и подобию схем «скопипастеных» из интернета. В новых (на esp) коммутация на землю. Или я что-то не так понял?

Ну и позвольте традиционно побрюзжать по поводу качества схем. В этой статье лучше чем в прошлых, но всё же… Пожалуйста, освойте символ «общий» («земля», GND)! Сразу увидите что схема станет «прозрачней», более читабельной и понимабельной.

В старых было, но мне было не очень наглядно, в новых сделал как лично мне было легче воспринимать.
Я не профессионал, так что на вкус и цвет… :P

К платам тоже есть мелкие придирки. Не ленитесь подвигать/повращать элементы чтобы снизить плотность проводников. Просто распечатайте платку в реальном масштабе и посмотрите на неё на предмет мест где наиболее вероятно появление «залипух». Сразу станет понятно что можно подвинуть или повернуть.

Раз десять печатал и двигал, особенно последнюю. Наиболее важным счел как можно дальше развести часть 220v и низковольтную (особенно после того, как оборвавшийся с макетки случайный проводок устроил замыкание с фейерверком, белым дымом и выгоранием половины платы). Еще надо учесть, что по углам, возле крепежа вплотную к плате подходит металлический корпус (да, плохо, уже объяснили, но какой был и тепло отводить удобно) и там тоже нельзя размещать дорожки. Так что если есть конкретные предложения с учетом этих факторов готов принять к рассмотрению, можно сразу на гитхаб. ;)
сразу на гитхаб

Я в гитхаб не умею. И в игл тоже :)
Вот сюда выложил скрипты для преобразования в Dip Trace (надо запускать из-под игл). Преобразуйте, я попробую показать что я имел в виду.

Вот, поделал маленько :)
Схема у меня не открылась, поэтому мог какие-то линии запороть. И не сразу сообразил что "12V" и "GND" это выводы блока питания, поэтому размеры могут не совпасть.
GND лучше делать полигоном, но тут надо подумать как сделать чтобы не пустить его на высоковольтную сторону.
Если поглубже вникать в схему, может быть можно сделать и лучше, а так в целом компоновка и трассировка сохранились, но ада стало поменьше :)

На счет ада, может быть, но:
1) Вы залезли на углы, которые соприкасаются с металлическим дном.
2) Посредине перекрыли отверстие, через которое проходит антенна.
3) Диод D3 (хоть это на схеме не обозначено, специально размещен на длинной дорожке, так как в SMD варианте у меня в наличии не было и распаивал на ножках, но без сверления.
4) Переместили отверстия перехода от компонентов, а поскольку металлизировать в домашних условиях я не научился, я специально сделал их возле ножек/контактов, чтобы легче было делать переход с одной стороны на другую.

Т.е. по сути, если исправить все замечания, то все улучшения, это замена дорожек под углом 90 на дорожки под углом 45 градусов, может это уменьшает ад, но из чисто эстетических соображений мне нравятся прямые, поэтому везде где это не мешало, старался сохранить.

Но, в любом случае, спасибо!
  1. Ну да, чтобы сделать хорошо, надо глубоко влезать в проект, учитывать множество факторов.


  2. Это отверстие перенёс наверх, ближе к креплению антенны (глядя на фото подумал что ему всё равно где быть).


  3. В таких случаях лучше сделать своё посадочное место, учитывающее возможность установки разных компонентов.


  4. Я раскидал отверстия так чтобы они не стояли в рядок. Это уменьшает вероятность залипухи между контактными площадками. Вроде, следил чтобы они не попали под микросхемы и можно было сделать переходы перемычками.


  5. Исполнение дорожек под 45 градусов позволяет иногда расположить их подальше друг от друга (например, если они сходятся "встречными курсами") и опять же снизить опасность залипух. Хотя, в общем случае следует стараться уменьшить число углов т.к. поворот — потенциальное место трещины в дорожке. Кстати, из-за опасности трещин "домашние" платы надо лудить полностью.


  6. Основные изменения (для меня): разгрёб мешанину резисторов в районе модуля, улучшил расположение гребёнок под доп. модули, улучшил взаимное расположение оптронов и симисторов. Красота наводилась руками автоматически пока голова соображала что куда подвинуть :)


  7. На что ещё надо обратить внимание. Мелкие элементы (R, C) имеют ограничение по рабочему напряжению. Надо проверить подходит ли выбранный типоразмер под сетевое напряжение (тут надо не скупиться и взять запас раза в 2-3). Если элемент не проходит, надо или брать более крупный типоразмер, или ставить несколько элементов одного номинала последовательно, чтобы напряжение разделилось между ними.

как-то так...

В таких случаях лучше сделать своё посадочное место, учитывающее возможность установки разных компонентов.

Логично, просто поленился.

Я раскидал отверстия так чтобы они не стояли в рядок. Это уменьшает вероятность залипухи между контактными площадками.

Да, это рационально, учту на будущее.

На что ещё надо обратить внимание. Мелкие элементы (R, C) имеют ограничение по рабочему напряжению. Надо проверить подходит ли выбранный типоразмер под сетевое напряжение (тут надо не скупиться и взять запас раза в 2-3). Если элемент не проходит, надо или брать более крупный типоразмер, или ставить несколько элементов одного номинала последовательно, чтобы напряжение разделилось между ними.

Это вообще очень дельный совет для начинающего «радиолюбителя». Я этим пренебрегал и поплатился. Особенно пролетел по току на AMS1117. И очень долго искал эту ошибку.
Почти неделю по несколько часов каждый день. Проявлялось как внезапное зависание esp. Грешил, на чип (перепаял несколько штук), на прошивку (перепробовал разные комбинации), потом понял что не хватает тока (отследил, что зависание появляется когда все четыре выходных канала включены), стал грешить на остальные компоненты. Нашел ошибку прямо как в фильме «Пятый элемент». Сидел над платой разглядывал и обреченно вздохнул (а получилось подул на AMS1117, напряжение на момент пришло в норму и я понял что проблема в перегреве, так что в той плате, сделал радиатор, а в новой версии развел более массивный компонент ну и прислонил к к металлическому корпусу через терморезинку.
пролетел по току на AMS1117

Ну, ток (и мощность) — это более очевидные вещи, на это обычно смотрят. А про напряжение забывают. А логика-то простая: чем ближе контакты, тем больше вероятность пробоя. Например, для резисторов размера 0805 максимальное напряжение 150 Вольт, т.е. в сетевых цепях их использовать нельзя. Надо ставить 3 шт последовательно. Скажем, вместо одного на 300 Ом три шт по 100 Ом.


Кстати, про мощность. Неплохой способ отвода тепла от маломощных линейных стабилизаторов — припаять его на большой полигон на плате. Медь очень хорошо отводит тепло. Также на промышленных платах делают полигоны с двух сторон и "пробивают" их множеством переходных отверстий. Получается радиатор с двух сторон.


подул на AMS1117, напряжение на момент пришло в норму

Ну, это стандартный способ поиска глюков в цифровых схемах. Берём ватку со спиртом и протираем микросхемы. Спирт быстро испаряется, охлаждая корпус. Когда схема начинает работать как надо — делаем вывод о глючной микре :)

Дельные советы, спасибо, особенно про ватку со спиртом.
Александр, спасибо за статью. Если думаете и дальше делать модули с возможностью автономной работы, то советую еще присмотреться к esp32. Оно дороже, но возможностей больше. Мне 1-wire по разным причинам не подходило поэтому использовал stm32 для сбора информации с датчиков, а потом подключал к rpi, что бы был легкий доступ в сеть. Недавно rpi заменил на esp32 подключил 3 stm32 по spi. Еще и блютус есть, использую его + uart как консоль в случае необходимости либо как доступ к булоадеру микроконтроллеров.
Не найдете время для статейки?
А что именно интересует? Какие-то части наверное могу адаптировать под стаью. Но большого смысла не вижу. Проект целиком показать не могу, а без этого все сведется к очередному руководству, которых и так полно в сети.
Понимаю, что не стоит подавать Вам лишнюю идею ради ее дальнейшего мучительного обдумывания (сам люблю такого рода влажные фантазии с надеждой на обязательную реализацию при первой удобной возможности), поэтому заранее извиняюсь, но по электрическим электросетям не пытались инет провести и таким образом объединить все розетки в сеть для отдельного управления каждой из них? Например, забыл выключить утюг — быстро на мобиле глянул в какой он розетке включен, и отключил ее удаленно, и т. д… Вроде бы такие существуют давно (в Германии точно, они еще лет 10 назад спокойно проводили такое наравне с ADSL). Плюсов куча, один из главных — полное отсутствие вмешательства в действующую инфраструктуру (ибо не у всех имеется возможность въехать в квартиру с черновой отделкой или кардинально переделывать лютейшую коммуналку), кроме замены розеток, что занимает буквально пять минут на каждую. Ну и другой немаловажный плюс — отсутствие излучения, ибо одно дело одна точка для устройств, которые могут только по Wi-Fi, а другое дело когда излучателей в каждой стенке по пять штук. Паранойей не страдаю, однако тема излучения Wi-Fi меня заботит давно. Самое главное, это то, что беременным не рекомендуется находиться рядом, причем это исследования ученых, а не яжматерей или Яровых. Вот что точно уже существует в плане розеток — дак это с симками, то есть ей можно туда просто позвонить или СМС отправить, судя по всему она их парсит и обрабатывает запросы. Стоит все удовольствие около 6k, на мой взгляд — весьма.
Называется PLC, но в каждую розетку встроить дороговато, да и это не в розетку, а снаружи торчать будет. Да и считывать данные с других сенсоров все равно надо. Но как решение оправления именно розетками сойдет, хоть и не бюджетно.
Поскольку в наличии были корпуса от старых моделей медиаплеера Dune, выбор пал на них. После доработки напильником (отверстия под входы и выходы у медиаплеера немного другие, завести 220v на разъем HDMI не удалось :) ) подошло идеально.

Ребят, это стартап! Надо занимать пока ниша горяча! И не благодарите, рад был быть полезным)))
Стартап «завести 220v на разъем HDMI»?
Или размещать самоделки в старые корпуса от других устройств?
Это была шутка, но, как говорится, «в каждой шутке...») Самоделки в корпуса. Да и вообще все, что связано с умным домом, ниша реально свободна. Хотя, как известно, спрос рождает предложение, не наоборот, однако часто его стоит изначально подстимулировать. Однако, учитывая нынешнее состояние экономики и все большее сокращение потребительской корзины, потребности народа неминуемо скатываются до банальной потребности в пропитании, куда тут до умных домов…
Я бы не сказал, что свободна. По сравнению с ситуацией пятилетней давности, сейчас на рынке очень много предложений по домашней автоматизации.
Ну а самоделки в старые корпуса, тут бизнес сложно построить, со стабильностью поставок проблемы будут ;)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории