В первых трех частях я рассказал как у меня возникла идея (необходимость) построения “умного дома” и как я ее воплотил в жизнь.

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

Ну и небольшой спойлер: под катом будет краткое описание “очередной поделки на esp8266 с преферансом и куртизанками”.

Итак, прошло четыре года (с начала эксплуатации первых модулей так вообще шесть) В целом система показала себя хорошо, но всплыли два недостатка, впрочем, вполне ожидаемых.

Первый — централизованность. Да, это плохо, да, об этом я знал, но опыта производства конечных автономных устройств не было, да и выбранный в качестве основного протокол 1-Wire такой возможности не предоставлял.

Соответственно, центральный сервер стал узким местом. Пять раз по вине выхода из строя “железа” вся система не работала больше суток (а то и двух-трех) и приходилось пользоваться резервной (включать освещение рубильниками в щитке, обходиться без теплого пола, вентиляции, производить повторную калибровку водяных счетчиков и т. д.).

Плюс к этому, в доме участились случаи отключения электропитания более чем на час. Заряд ИБП кончался и сервер производил аварийное отключение, а, точнее говоря, весьма грубо вырубался. После чего его подъем не всегда проходил гладко, главным образом потому, что MySQL не очень любит столь хамское к себе отношение. Восстановление таблиц (а там вся история по всем датчикам за многие годы) иногда занимало часы и не всегда ему удавалось сделать это без постороннего вмешательства. Да, эту проблему, теоретически, можно решить купив более умный ИБП, подключив его к серверу и научив сервер штатно выключаться при потере питания. Но мой текущий ИБП вполне еще бодрый старичок, да и материнка сервера, почему-то не захотела нормально работать в режиме, автоматического включения после подачи питания, если до этого была штатно выключена.

Второй — ограничение на топологию шины 1-Wire + моя неопытность.

Да, я читал что должен быть центральный ствол и лишь небольшие ответвления, об этом много где написано. Но проект расширялся весьма непредсказуемо и при этом все вроде как работало. А потом, в один “прекрасный” момент, работать перестало. Т. е. отключаешь часть устройств, все нормально, включаешь опять и сигнал начинает “плавать”. Заменил часть основных линий на экранированные, минимизировал ответвления, но сделать полноценную единую шину без перфоратора и существенной порчи отделки уже нет возможности. В итоге разбил сеть на два сегмента, вывел на два отдельных контроллера, но, тем не менее, раз в пару месяцев опять возникала проблема когда устройства начинали выпадать из сети. Помогало только полное выключение всей системы с последующим включением, а эта процедура весьма не тривиальная и без меня мои домашние провести ее не в состоянии.

Тем временем, около двух лет назад, я натолкнулся на статью и у меня возникла идея сделать своеобразный подарок на день рождения своему отцу. Он увлекается разведением на приусадебном участке различных экзотических растений и ему нужен постоянный контроль температуры в разных климатических зонах его сада. Собственно, до внедрения системы, это осуществлялось обходом вполне (теплых ламповых :) ) аналоговых спиртовых термометров дважды в сутки. Вынашивал я эту идею несколько месяцев, потом заказал в одном известном (тогда еще только в узких кругах) китайском интернет-магазине необходимые компоненты, сделал плату, написал прошивку. В общем, получилось как-то так:

Вся система размещается в стандартной телефонной розетке.



Разводка четырехжильным телефонным проводом.



Питание пассивное. Для бассейна заказал водонепроницаемую версию датчика.



Теперь папа смотрит температуру на компьютере.

Вот так:



Ну и с графиками:



Схема модуля

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

Итак, вашему вниманию представляется “esp07_4PIO_6S v2”.

Вид сверху:



Вид снизу:



В прошлый раз большой проблемой было подбор корпуса, так что в этот раз я плясал именно от корпуса. Поскольку в наличии были корпуса от старых моделей медиаплеера Dune, выбор пал на них. После доработки напильником (отверстия под входы и выходы у медиаплеера немного другие, завести 220v на разъем HDMI не удалось :) ) подошло идеально. Только датчик температуры пришлось снаружи делать, так как внутри начинка нагревает воздух.

Входы и выходы на 220v



Входы и выходы на 5v и 12v



Что может данный модуль и почему он лучше чем старая система?

  • Для монтажа не требуется никаких дополнительных проводов. Питается он от той же сети, что и управляет.
  • При отключении или недоступности центрального сервера или Wi-Fi он переходит в offline режим и осуществляет управление по автономному сценарию (сценарий под каждую зону может быть свой)
  • Снимает данные о температуре/влажности/освещенности в комнате.
  • Управляет 4-мя устройствами 220, считывает данные с 6 датчиков типа “сухой контакт”.
  • Способен самостоятельно отправлять данные на thingspeak.com и аналогичные системы.
  • Реагирует быстрее чем старая система (не то чтобы это было проблемой, но раньше каждый датчик опрашивался два раза в секунду, что могло дать суммарный лаг более чем в секунду). Эта система работает по прерыванию.
  • Умеет обновлять прошивку “по воздуху”.

Схема

Такую плату развести в один слой не удалось, так что пришлось осваивать двусторонний ЛУТ:

Плата

Опыт эксплуатации уже более полугода, в планах заменить на данный модуль все управляющие части системы, на 1-Wire оставить только мониторинг.

Учитывая пожелания к прошлым статьям, схемы и код доступны на github. Старые тоже там есть, вдруг кому пригодятся.

Как-то так. Ставьте лайки и подписывайтесь на новые видео :) Шутка, все равно новая статья если будет, то через пару лет, чукча не писатель :P

Хотя, если появятся вопросы по прошивке и архитектуре esp07_4PIO_6S, напишу детальную статью об этой поделке, есть там, на мой взгляд, несколько интересных решений.
Поделиться с друзьями
-->

Комментарии (57)


  1. ukt
    22.05.2017 20:52

    За ESP хотелось бы подробностей.


    1. sashacmc
      22.05.2017 20:58

      Какие именно подробности интересуют?


      1. ukt
        22.05.2017 21:02

        Вводная и минимальное приложение, с описанием, почему это сделано именно так.


        1. sashacmc
          22.05.2017 21:05

          Если именно про ESP, то таких статей довольно много, могу порекомендовать статью, которую упоминал выше и с которой началось мое знакомство с данным семейством.
          https://geektimes.ru/post/255450/


  1. Buka2
    22.05.2017 20:55

    Насколько я знаю, в esp07 512МБ памяти, как вам удалось сделать обновление по воздуху?


    1. sashacmc
      22.05.2017 20:58

      В моей системе по воздуху обновляется только моя часть прошивки (lua код, конфиги и т. д.), мне этого достаточно. Сам nodemcu у меня по воздуху не обновляется.


    1. Arcanum7
      23.05.2017 17:50

      512МБ? Полгигабайта? Где такой приобрести можно?


    1. latonita
      25.05.2017 01:33

      Я для себя просто перепаял микросхему памяти. Выпаял флешку с убитой esp12 4Mb и впаял в esp07. У 07 разъем для антегны есть и это огромный плюс в определенных случаях


  1. Nizametdinov
    22.05.2017 20:59
    +4

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


    1. Godless
      22.05.2017 22:16

      поддерживаю. Много кто пишет вот сделал. И мало кто — проработало N лет и вот выводы.


  1. VBKesha
    22.05.2017 22:40

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

    Насколько я видел там системе посылается сигнал выключения системы без отключения БП. А бесперебойнику шлётся сигнал отключится через минуту и после появления питания включить розетки. Так как раз обходилась проблема не включения после правильного выключения(каламбур какой то). Но это было для Linux как дела в винде обстоят я не знаю.


    1. sashacmc
      22.05.2017 22:45

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


      1. electronus
        23.05.2017 09:40

        last state vs always on


        1. sashacmc
          23.05.2017 14:46

          Стояло «always on»


  1. iig
    22.05.2017 23:12

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


    1. sashacmc
      22.05.2017 23:25

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

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


      1. iig
        22.05.2017 23:41

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


  1. serafims
    23.05.2017 11:35

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

    Там просто вдоль провода вставляется в спец. место шило и нажимается рычажок освобождения клеммы.


    1. sashacmc
      23.05.2017 14:28

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


  1. madf
    23.05.2017 12:53

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


    1. sashacmc
      23.05.2017 14:34

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

      Все платы перед «выпуском в продакшен» подвергаю нагрузочному тестированию. Собрал стенд который эмулирует срабатывание датчиков (и соответственно логику работы платы) в довольно быстром темпе и оставляю работать минимум на трое суток (первую вообще две недели «насиловал») Тут не только сам модуль тестируется, а в целом вся система (у меня в итоге в платах ошибок было больше чем в модулях :) )


  1. KorDen32
    23.05.2017 13:45

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


    1. sashacmc
      23.05.2017 14:35

      Есть, но это уже не 1-wire, 1-wire так не может.


  1. Vaskrol
    23.05.2017 14:24

    То есть вам в итоге фактически пришлось отказаться от проводных коммуникаций, оставив на проводах только не очень оперативные задачи вроде опроса датчиков?

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


    1. sashacmc
      23.05.2017 14:42

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

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


  1. maksim-novoselov
    23.05.2017 14:24

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


    1. sashacmc
      23.05.2017 14:45

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

      Обычная десктопная материнка на Linux Ubuntu. (только в формфакторе MINI-ITX и с пассивным охлаждением)


      1. Avenit
        23.05.2017 15:11

        Если подключить без преобразования AC-DC к аккумулятору, то может проработать без электричества в несколько раз дольше. Ну и не забудьте поставить датчик на наличие самого питания, а лучше еще и контроллировать заряд аккумулятора :)


        1. sashacmc
          23.05.2017 15:18

          Можно, но не все так просто, там ведь еще жесткий диск и нужно обеспечить хорошее качественное питание.
          Да и где отключили на час рано или поздно отключат на три и все равно времени не хватит.

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


          1. LexB
            23.05.2017 17:21

            Как вариант — подключить esp8266 к батарейке бесперебойника и завершать систему, если напряжение падает до определенного уровня. Ну или digispark какой-нить.


            1. sashacmc
              23.05.2017 17:25

              Почти так и планирую сделать, плата на esp8266 уже готова и испытана, дело за малым код написать и протестировать.


      1. iig
        23.05.2017 18:01

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


        1. sashacmc
          23.05.2017 18:09

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

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


          1. iig
            23.05.2017 18:53

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


            1. sashacmc
              23.05.2017 18:59

              Файлопмойка, это просто бонус, так как есть диск, диск большой и всегда в сети.
              Видеонаблюдение запитано от 12v в кабеле по которому идет разводка 1-wire, питается, соответственно, от того же ИБП.


  1. sashacmc
    23.05.2017 14:45

    (del)


  1. Avenit
    23.05.2017 15:09

    Есть еще готовые устройства от Sonoff и ElectroDragon за $5-6 уже с корпусом и питанием. Прошивку свою можно залить.


    1. sashacmc
      23.05.2017 15:13

      Готовых решений масса, но это «не наш метод» ;)


  1. Sokol666
    23.05.2017 19:13

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


    1. sashacmc
      23.05.2017 19:23

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

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

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

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


      1. Sokol666
        23.05.2017 19:42

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


        1. vvzvlad
          24.05.2017 18:33

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


          1. sashacmc
            24.05.2017 18:37

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


            1. vvzvlad
              24.05.2017 18:39

              Все равно придется усреднять, если захотите график за 4 года показать. Но да.


  1. Wan-Derer
    24.05.2017 14:38
    +1

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


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


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


    1. sashacmc
      24.05.2017 15:13

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

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

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

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

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

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

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

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

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


      1. Wan-Derer
        24.05.2017 16:33

        сразу на гитхаб

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


        1. sashacmc
          24.05.2017 16:54

          1. Wan-Derer
            24.05.2017 23:56

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


            1. sashacmc
              26.05.2017 16:05

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

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

              Но, в любом случае, спасибо!


              1. Wan-Derer
                29.05.2017 01:48

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


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


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


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


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


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


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

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


                1. sashacmc
                  29.05.2017 10:46

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

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

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

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

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

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


                  1. Wan-Derer
                    29.05.2017 11:21

                    пролетел по току на AMS1117

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


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


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

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


                    1. sashacmc
                      29.05.2017 11:27

                      Дельные советы, спасибо, особенно про ватку со спиртом.


  1. htol
    27.05.2017 18:55

    Александр, спасибо за статью. Если думаете и дальше делать модули с возможностью автономной работы, то советую еще присмотреться к esp32. Оно дороже, но возможностей больше. Мне 1-wire по разным причинам не подходило поэтому использовал stm32 для сбора информации с датчиков, а потом подключал к rpi, что бы был легкий доступ в сеть. Недавно rpi заменил на esp32 подключил 3 stm32 по spi. Еще и блютус есть, использую его + uart как консоль в случае необходимости либо как доступ к булоадеру микроконтроллеров.


    1. Godless
      28.05.2017 20:49

      Не найдете время для статейки?


      1. htol
        29.05.2017 16:56

        А что именно интересует? Какие-то части наверное могу адаптировать под стаью. Но большого смысла не вижу. Проект целиком показать не могу, а без этого все сведется к очередному руководству, которых и так полно в сети.