Меню

Датчик влажности почвы esphome

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

ESP8266 и датчик влажности почвы

ESP8266 – отличный пример многофункциональной электроники. Если вам нравится Arduino, вам также понравится ESP8266. Он маленький, требует всего 3,3 вольт и, что лучше всего, имеют все возможности подключения по WiFi. ESP8266 идеально подходит, если вы хотите подключить к Интернету практически любое устройство для реализации концепции Интернета вещей.

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

Датчик влажности можно использовать для определения влажности почвы или для определения, есть ли вода вокруг датчика, чтобы растение в вашем саду могло получать воду, когда оно испытывает жажду. Этот датчик очень прост в использовании, вы можете просто вставить его в почву и прочитать данные. С помощью этого датчика вы можете сделать небольшой проект, который позволит растению отправить вам сообщение типа «Я хочу пить, пожалуйста, налейте мне немного воды». Сам датчик состоит из чувствительного элемента в виде вилки и преобразовательного элемента в виде небольшой платы.

Подключить датчик влажности к ESP8266 NodeMCU очень просто. Соедините два контакта датчика влажности с двумя контактами в цепи усилителя, использовав при этом перемычки. Подключите Vcc (питание) усилителя к контакту 3,3 V на NodeMCU. Подключите вывод GND (заземление) к выводу GND на NodeMCU. Подключите аналоговый выходной контакт к контакту A0 на NodeMCU. Подключите NodeMCU к ПК через USB-кабель. Схема подключения ESP8266 NodeMCU и датчика влажности может выглядеть следующим образом.

Теперь перейдем к программной части. После запуска Arduino IDE нужно активировать поддержку ESP8266. Если у вас ее нет, то перейдите во вкладку «Файл» (File), а затем нажмите «Настройки» (Preferences). В дополнительных разделах URL-адреса диспетчера добавьте следующую ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json. Нажмите OK и затем перейдите в Инструменты — Платы — Менеджер плат (Tools — Boards — Boards Manager). В поле поиска введите esp8266, затем щелкните на «esp8266 by ESP8266 Community», потом нажмите «Установить» (Install). Теперь вы настроили Arduino IDE для работы с NodeMCU.

Код программы довольно прост и имеет следующий вид.

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

Источник

Подключение датчика влажности почвы FC-28 к ESP8266

Нужно отслеживать степень влажности почвы, чтобы подобрать режим полива для растений или организовать автоматическую систему орошения? Измерить влажность можно с помощью специального датчика FC-28.

Влажность почвы

Влажность почвы — это соотношение влаги, содержащейся в земле, к массе земли в сухом виде, также называют весовым показателем влаги. Существует другое определение, влажность определяется, как отношение объема воды к объему грунта, в котором он находится, но это уже объемный показатель влаги. Измерения влажности осуществляются в процентах. Результат меняется от 0 % при полностью сухой земле до 100 % при ее полном водонасыщении.

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

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

Датчик влажности почвы FC-28

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

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

Аналоговое подключение датчика FC-28


При аналоговом подключении используем аналоговый выход датчика и AO платы. Датчик принимает значения от 0 до 1023. Для более наглядного представления влажности замерим значения получаемые от датчика, когда земля сухая. Мы получили значение «579», преобразуем с помощью функции map в диапазон от 0 до 100, а затем выведем в монитор порта.

Читайте также:  Выращивание мини овощей как бизнес

Скетч для аналогового подключения

Монитор порта

Цифровое подключение датчика FC-28

При цифровом подключении используем цифровой выход датчика и D2 платы. В отличии от аналогового подключения мы будем получать 1 и 0, в зависимости от установленного порога на потенциометре. «1» — влажность меньше установленной, а «0» — выше установленной.

Источник

Беспроводной DIY монитор влажности почвы

Приветствую всех читателей Хабра! Сегодня хочу поделится с вами моим новым проектом — беспроводным датчиком влажности почвы, который построен на основе всем известного модуля влажности почвы с алиэкспрес. Новый датчик это логическое продолжение первого моего DIY проекта на эту тему. Но в новой реализации это уже не ардуино модуль, а законченный девайс с своим собственным корпусом. Итак, каша из топора, часть вторая! 🙂

Китайский модуль измерения влажности почвы построен на таймере 555. Метод измерения — емкостной. Для моего проекта нужна была версия модуля с установленным стабилизатором напряжения XC6206P332 на 3.3В, который в дальнейшем придется удалить с платы модуля. Дело в том что в таких версиях используемся модификация таймера TLC555 с нижним порогом по питанию в 2В. В версиях без стабилизатора используются таймеры NE555 c нижним порогом по питанию в 5В. Но в любом случае что проще купить для повторения этого проекта дело повторяющего. В первом варианте выпаиваем стабилизатор напряжения, во втором меняем таймер например на такой — LMC555 (даташит) работающий даже от 1.5В. Для беспроводного модуля к китайскому датчику влажности почвы я выбрал радиомодуль от EBYTE E73C на котором установлен чип nRF52840. Аргументом стала цена модуля и имеющееся количество данных модулей у меня в запасах.

Беспроводной модуль получился очень простой, RGB светодиод, пара кнопок, полевой транзистор, батарейка. Собрать такой девайс сможет даже самый неопытный начинающий паяльщик. На датчике влажности помимо удаления стабилизатора напряжения так же необходимо выпаять разъем и впаять на его место штырьевую вилку 3P, шаг 2.54 мм.

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

Корпус был напечатан на моем бытовом SLA принтере ANYCUBIC. Время печати деталей порядка пары часов. Последующая пост обработка заняла около получаса. Стоимость израсходованной полимерной смолы

Потребление в режиме сна — 4.7мкА, в режиме передачи 8мА. Интервал замеров изменяемый, шаг 1 минута. Время измерения 50мс (5 замеров в тестовой программе), потребление во время измерения

1 мА. Так же производятся измерение температуры чипа, измерение уровня заряда батарейки. Передача данных на контролер УД посредством сети Mysensors, передача данных на контролер УД посредством сети Zigbee.

Код тестовых программ находится на моем Github

Пример работы в сети Mysensors и УД Мажордомо

Пример работы в сети ZigBee и УД Мажордомо

Код настройки конвертора в модуле zigbee2mqtt для датчика влажности (пока не уверен, что это верное решение).

Тестовую прошивку написал один из участников нашего DIY сообщества — Lenz, вот его GIthub.

Стоимость компонентов которые пришлось добавить к китайскому влагомеру составила порядка 400-500 рублей. На мой взгляд вполне неплохо.

Видео работы датчика

Дальнейшие планы на этот проект. Хочется заменить МК на что то более простое, например на nRF52810 или nRF52811, но всё будет упирается в цену, скорее всего придется отказаться от радиомодулей и сделать просто на чипе. Возможно подумаю добавить зуммер, вполне вероятно стабилизатор питания, так как сейчас необходимо учитывать напряжение питания при замере. Довести до стабильного состояния Zigbee версию, сделать BLE версию, сделать мобильное приложение-показометр. Вообщем точно будет что-то еще.

Если вас заинтересовал данный проект, предлагаю зайти в группу телеграмм, там всегда будет оказана помощь в освоении протокола Майсенсорс, Zigbee, BLE на nRF5, помогут освоить программирование nRF52 в Ардуино ИДЕ и не только в ней.

Источник

Автоматическая система полива сада на Home Assistant, ESP8266 и MiFlora

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

Хотелось, чтобы система полива была автоматической, при этом при ее выборе приходилось учитывать следующие условия:

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

Оценив готовые решения, которые удалось найти в местных DIY сетях и на Amazon и почитав отзывы об их надежности (как правило, не самой высокой), решили попробовать сделать что-то самостоятельно.

Читайте также:  Показатели биологической активности почв

Disclaimer: Автор не является IT-специалистом, и не претендует на профессиональное знание описываемой темы. Уровень исполнения проекта — хобби. Об уровне своих знаний в сфере программирования и электроники автор прекрасно осведомлен и будет очень признателен за предложения по улучшению и оптимизации использованных решений.

Принципиальная схема

Сад был разбит на 4 зоны полива, каждая из них снабжается индивидуальным датчиком влажности почвы и может поливаться по индивидуальному графику и разным количеством воды.
По земле проложены ПНД-трубки капельного полива с перфорацией, которые подключены к трубам сходящимся в водоразборном узле и подключенным через электромагнитные клапаны к водопроводу. Клапаны управляются реле подключенными к ESP8266 (Sonoff 4Ch).

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

При наступлении запланированного времени полива проверяется соответствие нескольким условиям:

  • влажность почвы ниже заданной величины
  • отсутствуют прогнозируемые осадки в достаточно большом количестве на ближайшие 2 дня
  • не превышен лимит воды по поливу заданного для этой линии

Использованное оборудование

Raspberry Pie с установленным HassIO (уже была)

ESP32 DevKit, прошитая ESPHome, выступающая bluetooth-гейтвеем для MiFlora и принимающая данные от проводных датчиков влажности. Расположена в саду

Проводные датчики влажности Capacitive Soil Moisture Sensor v1.2, измеряющие влажность в ближних к месту установки ESP32 зонам полива

Датчики MiFlora, подключены к ESP32 по BLE, измеряющие влажность в удаленных зонах полива.

SONOFF 4Ch, прошитый ESPHome, расположен в водоразборном узле, куда приходят трубы от всех зон полива

4 Нормально-закрытых электромагнитных клапана на 220В расположены в водоразборном узле и подключены к Sonoff 4Ch. Открывают подачу воды для полива. Выбрана нормально-закрытая модель, с тем чтобы вероятность «наводнения» в случае каких-либо сбоев электрики и электроники была минимальной, и чтобы минимизировать количество требуемых выходов реле.

Импульсный водосчетчик, стоящий на входе в систему полива в водоразборном узле и подключенный к Sonoff 4ch. Позволил полностью передать данные о расходе воды в Home Asssistant и реализовать функционал полива заданным количеством. Весьма удачным оказалось то, что на этой версии sonoff уже распаяны контакты для прошивки и даже есть один свободный GPIO02 – на него и был повешен импульсный счетчик.


Так выглядит коллектор с установленными клапанами и счетчиком воды. Контроллер (sonoff 4Ch) в кадр не попал, он установлен на расстоянии в полметра в щитке IP65

Настройки ESPHome и Home Assistant

Код ESPHome для него максимально примитивен, но на всякий случай приведу:

Кусок кода для ESPHome:

Подключать датчик можно только к аналоговым входам (ADC) микроконтроллера
Датчик придется калибровать, задав предельные значения напряжения для сухого датчика (в моем случае 3.22 В) и погруженного в воду (1,65 В). Я это делал включив демонстрацию log’ов в плагине ESPHome для HassIO и записав показания датчика в сухом виде и при погружении в воду.

После перепрошивки ESP32 в Home Assistant ничего настраивать не надо, там автоматически появляется датчик влажности с правильными единицами измерения

Я использовал счетчик «Пульсар», но вообще должен подойти любой счетчик с импульсным выходом (идентифицируется по торчащему проводу). Принцип действия таких счетчиков очень простой — рядом с колесиками счетчика расположен геркон, который активируется магнитом, расположенном на одной из цифр колеса учета (у меня — цифра 3 на колесике 10 литров).
Соответственно, подключив провода от счетчика к GND и одному из GPIO мы можем получить простейший бинарный сенсор.

Код для ESPHome при этом примитивен:

В Home Assistant все немного сложнее:

Там я сделал несколько счетчиков (counter), сенсор и автоматизацию для работы с ними
При этом есть общий счетчик истраченной за все время воды (фактически, это виртуальный «двойник» механического счетчика). Он реализован в двух ипостасях — как counter, измеряемый в литрах и растущий в результате реакции на изменения бинарного сенсора из ESPHome, и как sensor, измеряемый в кубических метрах и берущий данные из предыдущего counter (для удобства сравнения цифр со счетами за воду).

Для целей управления поливом и сбора статистики были также созданы по 2 счетчика на каждую линию полива — один за все время, а второй за «сегодня». Так как физический счетчик у нас один, а линий четыре, для получения точных данных расхода по каждой линии полив каждой линии был разнесен по разным временным интервалам и запрещено одновременное их включение.

Читайте также:  Кислотность почвы под смородину

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

Изначально сенсор построен на базе данных сервиса darksky. К сожалению, за время настройки системы этот сервис успела купить компания Apple и объявила о постепенном сворачивании работы сервиса «на сторону». API пока работает, но, судя по всему, скоро потребуется искать альтеранативу этому решению, благо в HA довольно много других сервисов погоды. Здесь я привожу настройки для darksky, думаю, что даже с другим сервисом большая их часть сохранит актуальность.

Сначала создаем 2 сенсора по количеству осадков на завтра и послезавтра:

Затем делаем на основе трех прогнозов один template-sensor:

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

Вот так у меня выглядит кусок интерфейса с одной из зон в Home Assistant:

Здесь можно задать количество воды для полива (ползунком) и посмотреть значения основных сенсоров и счетчиков. Я привел интерфейс для одной из линий, для остальных все аналогично, только на линиях с проводными датчиками данных несколько меньше.

В интерфейсе можно заметить одну «лишнюю» деталь — вспомогательный сенсор «Достигнута норма». Его пришлось ввести, т.к. мне не удалось заставить работать condition:template для остановки автоматизации при достижении нормы по количеству воды, и в результате автоматизация просто проверяет значение этого сенсора. Уверен, что эту часть автоматизации можно сделать проще и элегантней, но моего уровня для этого не хватило.

Ниже код получившегося «костыльного» темплейт-сенсора:

Автоматизация для запуска полива в конечном итоге выглядит так:

Полив запускается поздно вечером, при этом каждая линия запускается в свой временной интервал. Разделение по времени запуска позволяет использовать один счетчик воды на входе для получения данных по 4 линиям.

При запуске проверяются три условия:

  • не превышен ли лимит по количеству воды на сегодня (если, например, включали полив вручную)
  • не превышает ли влажность 50% (по наблюдениям в наших условиях свежеполитая почва имеет влажность не более 60%)
  • не ожидается ли осадков более 5 мм в ближайшие два дня.

Следующая автоматизация — отключение полива:

В автоматизации использовано целых 4 варианта триггеров, но в большинстве случаев она срабатывает по первому — «костыльному» сенсору, который отслеживает превышение лимита по количеству воды. Остальные триггеры сделаны в большой степени для подстраховки.

Ну и последняя относящаяся к проблеме автоматизация — обнуление ежедневного счетчика

Экономика проекта

Затраты на управляющую часть системы полива получились следующие:

(Raspberry PIE c HassIO на борту и WiFi router с покрытием в саду уже были до начала проекта, их я не учитываю)

Электромагнитный клапан UNIPUMP BCX-15 1/2″ (нормально закрытый) 4*20 евро
Sonoff 4CH 17 евро
Счетчик импульсный Пульсар 8 евро
ESP32 DevKitC 3.5 евро
Capacitive Soil Moisture Sensor v1.2 2*0.67 евро
Датчики MiFlora 2*16 евро
Щитки, коллектор, провода, фиттинги все вместе около 50 евро

ИТОГО: около 190 евро

Затраты времени на настройку датчиков и МК — примерно 3-4 вечера по нескольку часов, но большая часть времени была потрачена на «изобретение велосипедов» и придумывание «костылей», в целом работы там немного. Физическая сборка системы заняла около 2 вечеров.
В целом, ожидается экономия воды примерно в 20-50% по сравнению с «глуповатой» системой на таймерах и при местных ценах на воду система должна окупиться за один-два сезона.

Недостатки и планы по доработке

По итогам выполнения проекта вскрылись некоторые нюансы и возможности для дальнейшего совершенствования.

В частности, я бы заменил электромагнитные клапана 220В на модель 24В — это напряжение являются стандартными для систем полива. В этом случае пришлось бы добавить в систему трансформатор на 24В и сменить Sonoff 4Ch на что-то с сухим контактом (например, Sonoff 4CH Pro или что-то самосборное). Сами клапана при этом стоят дешевле (от 8 евро) и снижают вероятность поражения электрическим током.

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

Еще немного расстроила невозможность учета количества воды для полива в объемах меньших чем 10 литров — именно этот объем является минимальной измеряемой величиной для такого счетчика. Эту проблему можно решить, разобрав счетчик и поменяв местами колесики, но пока до этого не дошли руки.

Источник

Adblock
detector