Отапливание дачки в зимний период... ESP-01+DS18В20+MQTT

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 10 ноя 2017.

  1. IvanUA

    IvanUA Гик

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

    Задача: Управление электрическим обогревателем до 2-х кВт, возможность дистанционно контролировать процесс, возможность менять заданные параметры так сказать на лету...

    Задачка простенькая, но есть свои нюансы. Человек хочет мониторить помещение не зависимо от того в какой точке планеты он находится. Вариант через интернет ему больше подошел чем через СМС. Вопросом наличия зоны WiFi в зоне действия устройства - озадачился заказчик. В принципе это и не проблема с нынешними технологиями поставки интернета.

    Идеальным решением как мне кажется будет использование ESP-01 в качестве управляющего устройства. Датчик температуры - уже зарекомендовавший себя DS18B20. Выход в "мир" ну конечно же через MQTT протокол. В качестве исполнительного устройства будет обычное реле с 10-ти амперным выходом, но. Но заказчик сразу был предупрежден, что лучше этот выход использовать для коммутации нагрузки до 1 кВт. Повышение нагрузки обеспечивает он сам.

    [​IMG]
    И вот устройство прошивается и уже начинает что то показывать.
    При использовании того же кода, что был мной уже опробован на других моих поделках, первые два датчика из последней партии в 5 штук, купленных у китайцев - уверенно показывали температуру градусов так на 10 больше реальной.
    Побороздив просторы интернета я пришел к выводу что брак этих датчиков от китайских друзей, это явление переодически осветляемое такими же "испытателями" (бетатестерами) китайских дешевых комплектующих как и я собственно.
    Но делать нечего, немного букаф в коде и показания начинают приближаться к показаниям ртутных термометров (хотя бог его знает кто их производитель).

    В этом проекте очень хотелось реализовать маленький, компактный код. А не такой как у меня получается последнее время. НО... не там то было...

    Если прием и отправка данных на MQTT брокер у меня заняла строк ....10-20, то возможность сохранять в энергонезависимую память данные устанавливаемых значений температуры включения и выключения нагревателя, уже добавили дополнительную страницу к коду((((

    Ссылка на бинарник для любителей просто залить и пользоваться. https://drive.google.com/open?id=1SI7JN9oD6PZPebkvxS4xcrah69Vr1g2p

    Если у кого есть желание поковыряться и что то поправить, изменить - пишите дам скетч - будем общаться.
     
    Последнее редактирование: 15 ноя 2017
    Slaiterx, Arduino_man и Andrey_Mormul нравится это.
  2. IvanUA

    IvanUA Гик

    На этой страничке можно посмотреть температуру в помещении, состояние обогревателя, и заданные температурные параметры включения и выключения
    [​IMG]

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

    [​IMG]
     
    Последнее редактирование: 13 ноя 2017
  3. IvanUA

    IvanUA Гик

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

    Короче говоря, опять +3-5 страниц кода для добавления WEB мордочки устройства.... Собственно того что предстоит мне этим вечером.
     
  4. Oleksandr54

    Oleksandr54 Нерд

    Тема очень интересная, хотя разработки похожие уже есть, например 1M Smartphone на стадии бета теста. Насколько она будет бесплатная судить рано.
     
  5. IvanUA

    IvanUA Гик

    Честно говоря, я не искал аналога в решении поставленной задачи, просто решил собрать сам с нуля (вернее на основе своих разработок)...
    В любом случае, ввиду того что уже как дня три в постоянных тестах и вылавливаю нежданчики, то буду рад помощи других людей.
    Если есть желающие по тестить, то пишите - скину вам ссылку на скетч.
     
  6. Oleksandr54

    Oleksandr54 Нерд

    Скажите куда писать, напишем. А собрать прибор с нуля намного интересней любого законченного устройства. Надо будет только разобраться с работой MQTT сервера, никогда с ним не работал.
     
  7. big_alex

    big_alex Нерд

    Скажите, поддержка PID управления планируется?
     
  8. alp69

    alp69 Гик

    1. Что мешает выложить его здесь?
    2. На многие вопросы найдете ответы в темах, которые создал ИгорьК. Допустим в этой. Если, конечно, Вас не пугает Lua.
     
  9. IvanUA

    IvanUA Гик

    Отправил ссылку на скетч вам в личку.
     
  10. IvanUA

    IvanUA Гик

    Пока такой задачи не стояло.
     
  11. IvanUA

    IvanUA Гик

    1. Ну в принципе ничего не мешает, но хотелось бы понимать что это кому-то полезно для собственного развития. Если да, то хотелось бы общаться с этими людьми, а если кому просто нужно скачать, залить и пользоваться, то в первом сообщении я выложил ссылку на бинарник. Тому же кому действительно интересно колупаться - дам без всяких исходники кода.
    2. Я не ищу ответов на вопросы. Устройство (код) уже готово. Мне нужно знать мнение разбирающихся или начинающих разбираться - что с кодом, как его можно улучшить, что надо изменить и прочее.
    Игорю К - однозначно респект. Спасибо за его (труд) тему про ЛУА. Интерес к этой теме есть уже где-то как с месяц. Часть книги - уже можно сказать пройдена, надеюсь скоро буду пробовать не просто мигать диодом в ЛУА, но и сделать что-то по серьезнее)))
     
    Последнее редактирование: 12 ноя 2017
  12. Oleksandr54

    Oleksandr54 Нерд

    Спасибо за скетч. Красиво работает. Со временем подключу нагрузку, проверю в работе. Реле поставлю твердотельное на 25А валяется без дела. Потерял много времени пока разобрался с MQTT, не было показаний температуры на экран. Оказалось настройки MQTT, сервера (логин, пароль, порт) на ESP не прописываются из скетча, только вручную из WEB страницы.
     

    Вложения:

    • реле.jpg
      реле.jpg
      Размер файла:
      95,2 КБ
      Просмотров:
      365
  13. IvanUA

    IvanUA Гик

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

    Изменил - немного скетч (v.2). Добавил на порт RX функцию кнопки. При коротком нажатии - меняется состояниe нагрузки на противоположное (вкл на выкл и наоборот). Если кнопку зажать на более 15 секунд, то форматируются ячейки памяти с данными, и должны восстановиться дефолтные данные. Так же поправил вывод показаний отрицательных температур.
     
    Последнее редактирование: 13 ноя 2017
  14. IvanUA

    IvanUA Гик

    Вебмордочка устройства
    [​IMG]

    [​IMG]
     
  15. IvanUA

    IvanUA Гик

    Сегодня устройство получило версию v.3
    Сделано:
    - увеличено время работы устройства в режиме точки доступа до 4- минут
    - поправлен ввод отрицательных температур через MQTT протокол
    - поправлена процедура возврата к заводским установкам
    - ну и так по мелочи, разные нежданчики.

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

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

    [​IMG]

    [​IMG]
     
    Последнее редактирование: 15 ноя 2017
  16. Antonredst

    Antonredst Нерд

    Здравствуйте, а можно и мне скетч . если не поздно еще
     
  17. IvanUA

    IvanUA Гик

    Отправил в ЛС
     
  18. yucan

    yucan Нерд

    Здравствуйте, IvanUA! Со мной не поделитесь скетчем?
     
  19. IvanUA

    IvanUA Гик

    Отправил ссылку.
     
  20. Slaiterx

    Slaiterx Гик

    И мне пожалуйста