ESP-8266, ESP32: ds2438 + HIH-5030. Температура и влажность на длинном проводочке для гурманов.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 25 апр 2018.

Метки:
  1. ИгорьК

    ИгорьК Гуру

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

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

    Для определения температуры/влажности, у меня в погребе уже работает связка из датчиков DS18b20 и HIH-5030. Датчики HIH от Сладкого Источника показали себя с лучшей стороны - не умирают, не выходят из строя, не деградируют в часто мокром погребе. Однако, при высокой влажности они иногда показывают значение выше 100%. Обусловлено это двумя факторами - ошибкой до 7% в пределе ( когда влажность 90-100%) и неточным указанием опорного напряжения при замере. Как оказалось, второй трабл - решаем. И вот как...

    Железо - оно будет такое:

    upload_2018-4-25_16-46-25.png

    Почему ds2438+HIH5030 ?
    • HIH5030 - это надежно, не деградирует;
    • применение ds2438 решает проблему опорного напряжения - при расчете влажности мы каждый раз будем получать и учитывать его значение;
    • в ds2438 встроен датчик температуры, который ничуть не хуже DS18b20 - проверял лично во многих тестах;
    • все это - 1Wire, с расстоянием линии сами знаете каким. В гараже, например, для вывода датчика на улицу может потребоваться тянуть провода метров на 5-7 (мой случай).

    Естественно, все это Lua, модуль во вложении. Датчик на 4 (можно менять) ноге ESP-8266.
    Запрос - асинхронный, посему применять через callback:
    Код (Lua):
    do
    ds = require('_ds2438_HIH')
    dattb = {}
    call = function()
        print('\nheap '..node.heap())
        table.foreach(dattb, print)
    end
    ds.update(dattb, call)
    tmr.create():alarm(30000, 1, function() ds.update(dattb, call) end)
    end
    На выходе - таблица со значениями типа number, поскольку все это предназначено для дальнейших вычислений.

    Для каждого датчика забираются три значения:
    • температура;
    • относительная влажность;
    • абсолютная влажность.
    Логика работы:
    • первый опрос датчика - получение напряжения питания;
    • второй опрос - получение температуры и напряжения на ноге HIH;
    • считаем относительную влажность с учетом напряжения питания;
    • считаем абсолютную влажность с учетом температуры;
    • вставляем данные в таблицу;
    • если есть еще датчик - повторяем для него;
    • вызываем callback функцию с передачей ей таблицы.
    К осени я планирую сделать устройство, аналогичное этому проекту, но на одной ESP-8266. Раньше не получится да и датчики HIH-5030 только заказаны сами знаете где.

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

    UPD. 27.04.2018
    Ура! Один потерянный HIH-5031 обнаружился!!! И сразу нашел ошибочку в вычислении абсолютной влажности. Модуль перезалит.

    upload_2018-4-27_10-13-6.png
     

    Вложения:

    Последнее редактирование: 5 окт 2018
    shurra85, Daniil, Asper Daffy и ещё 1-му нравится это.
  2. ИгорьК

    ИгорьК Гуру

    А вот и ESP32 поспел. Для ESP-8266 тоже должно работать.

    upload_2019-9-17_18-20-16.png
     

    Вложения:

    • Final32.zip
      Размер файла:
      1,5 КБ
      Просмотров:
      316
    Последнее редактирование: 17 сен 2019
    shurra85 и Andrey12 нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Таки микропроект работает зело стабильно (ибо уже сутки нет интернета до домашнего брокера, Алматель, еди его... а он все не перегрузится):

    upload_2020-1-16_16-35-32.png

    Потребовался тут долгоиграющий датчик температуры/влажности в столярку, и замутил его на этом железе, на ESP-8266. Шлем данные на MQTT брокер, сегодня без json.
    Отправка температуры, относительной и абсолютной влажности.

    upload_2020-1-16_17-6-6.png

    Код для умных и расторопных в приложении.

    Правим по своему усмотрению:

    upload_2020-1-16_16-10-54.png

    upload_2020-1-16_16-11-37.png
     

    Вложения:

    • AmperkaHIH.zip
      Размер файла:
      325,4 КБ
      Просмотров:
      235
    Последнее редактирование: 16 янв 2020
    DetSimen и RonAD нравится это.
  4. shurra85

    shurra85 Нуб

    Игорь, благодарю! Хороший проект, а вот вопрос. Какая схема подключения двух и более датчиков? Ставить их параллельно? Как насчет ёмкости и резисторов?
    [​IMG]
     
    Последнее редактирование: 13 мар 2021
  5. ИгорьК

    ИгорьК Гуру

    Ёмкость - она на каждом конечном датчике, что есть пара ds/hih, резистор - он один. В зависимости от длины линии может уменьшаться до 2.2 ком.
     
  6. shurra85

    shurra85 Нуб

  7. ИгорьК

    ИгорьК Гуру


    Автор этой библиотеки решал свои, а не ваши вопросы.

    Здесь я касался этой библиотеки. Пользоваться ей можно, лишь хорошо поняв ее косяки: http://forum.amperka.ru/threads/esp...зы-программирования.12558/page-11#post-152760
     
    Andrey12 нравится это.
  8. shurra85

    shurra85 Нуб

    Игорь, здравствуйте, с праздником. Не подскажите, как вы получили значения этих двух коэффициентов? Как правильно откалибровать датчик?
    upload_2021-5-9_16-4-17.png
     
  9. shurra85

    shurra85 Нуб

  10. ИгорьК

    ИгорьК Гуру

    Ну кто же спорит: ардуино - это святое :) Смотрим код по вашей ссылке выше:
    upload_2021-5-9_22-42-27.png
    Как же быть? Я бы поверил не мне.

    Но неардуинщик имеет право пройти по ссылке из того-же примера:

    upload_2021-5-9_22-45-24.png

    Потом сюда:
    upload_2021-5-9_22-46-9.png
    Потом сюда:
    upload_2021-5-9_22-46-53.png
    И на странице 2 увидел бы следующее:

    upload_2021-5-9_22-48-5.png
    Остальное - дело техники.

    У него хотя и все ровно с логикой, но те же недостатки: нет отрицательных температур и остановка кода 20 мс.

    Скажу вам по секрету, язык Lua и язык Ардуино С++ знают приблизительно одинаковое количество людей. Просто Ардуино умеют копипастить больше :)
     
  11. ИгорьК

    ИгорьК Гуру

    Если об этом что-то сказано в даташите по ссылке выше - ответ там. Я не калибровал.

    ПыСы. Предполагаю, откуда взял свои циферки автор скетча.

    Смотрите, hih-5030, хотя и имеет рабочее напряжение от 2.7 до 5.5 вольт, но в даташите указано, что номинальное - 3. То есть 5030 - для трехвольтовой логики.

    Скорее всего автор начинал свои исследования с другого семейства hih. На память, 4000 серия - как раз для пятивольтовки. Вот там и могут быть другие константы для вычисления влажности.
     
    Последнее редактирование: 10 май 2021
  12. shurra85

    shurra85 Нуб

    Благодарю, очень подробно ответили
     
  13. ИгорьК

    ИгорьК Гуру

    Что затеяли сделать?
     
  14. SergeiL

    SergeiL Оракул Модератор

    А мне кажется они все деградируют, вопрос насколько быстро и насколько сильно.
    Тут на днях решил проверить что показывают датчики влажности и температуры из разных комнат в одном месте.
    Такую проверку делаю периодически, дабы понять правильно показывают или нет.
    Приношу все устройства в одно место, и датчики размещаю как можно ближе друг к другу, на одной высоте.
    С температурой все понятно, что там может деградировать, разница в десятых, а вот влажность - отличается более чем на 10%.
    Гостиная и детская HDC1080, от TI. Спальня была первая, там DS1820 + HIH-5030.
    HIH-5030 в спальне уже менял писал про это тут
    На этой неделе протестировал снова и получил разницу между двумя HDC1080 (гостиная и детская) в 3 процента, 40% и 43%, а HIH-5030 из спальни показал 30%. Продул сжатым воздухом все датчики, показания практически не изменились.
    Ради эксперимента достал новый HDC1080, припаял к нему разъем и подключил вместо работающего долгое время - показывает 39%. (Тот который снял, показывал 42%)
    Есть еще новый HIH-5030, в пленочке, можно поменять и проверить.
     
  15. ИгорьК

    ИгорьК Гуру

    Ясный пень, все портится. Но из сказанного мало что следует: hih могут быть и не hih на самом деле, условия эксплуатации, etc...

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

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

    upload_2021-5-11_12-40-50.png

    upload_2021-5-11_12-42-41.png
     
  16. SergeiL

    SergeiL Оракул Модератор

    Ну это понятно :)
    И аля Мерседес тоже :)
     
  17. shurra85

    shurra85 Нуб

    Первое это мониторинг в сушилках древесины. Второе - "Умный дом" на даче с различными датчиками. С умным домом, скорее всего, обойдусь без проводов.
     
    ИгорьК нравится это.
  18. ИгорьК

    ИгорьК Гуру

    Это я люблю. В 3 посте готовый проект под эти нужды.

    Да и HIH здесь будет излишен. BME280 - самое то. А еще лучше - что-то от xiaomi с дисплейчиком, самому такое не спаять.

    upload_2021-5-12_8-37-10.png