Измеритель влажности почвы, влажности воздуха и температуры воздуха на ESP32
Привет муськовчане. Пару лет назад я стал огородником. С возрастом многих к земле тянет, естественный процесс.
Наверное, это закономерно в нашу цифровую эпоху, захотелось мне огород автоматизировать. Видимо, самый первый процесс, приходящий на ум не только мне, который хочется автоматизировать в огороде, это полив. А поливать хочется не абы как, а столько сколько надо. Если дождь, у системы полива выходной, если сухо поливаем, да стараемся соблюдать рекомендуемые влажности почв для разных культур. Поэтому я озадачился вопросом, как измерить влажность. На эти дела существуют ГОСТ-ы, но мерить по их рекомендациям, в наше время, мягко говоря мало кто согласится. Да и не онлайн.
Распаковки не будет. Сам не смотрю и другим показывать не буду. Кто не видел эти желтые пакеты из Китая? Внутри в антистатическом запаянном пакете лежал товар. Как ни странно при доставке, ни чего не сломали, и это радует. Доехало быстро, за 10 дней, в принципе для почты Гонконга это скорее правило, чем исключение. Вот трек RU159252885HK.
Для меня сей приборчик, во первых, реализация того что и так хотел сделать, во вторых он еще и на ESP32 сделан, что тоже приятно и есть чего пощупать. До этого, примерно год назад купил измеритель влажности и минерализации почвы, освещенности и температуры от Xiaomi, тут был обзор mysku.ru/blog/china-stores/43295.html, оказалось у моего старого Samsung-а Bluetooth не той системы, а может быть и нет. Потому что, спустя какое-то время я купил-таки себе новый телефон и той самой фирмы, но чуда не произошло, прибор один раз даже нашелся через синий зуб, а потом перестал. Я поднял правую руку, опустил ее и подумал, — И фиг с ним.
Теперь к влажности почвы. Измеряли ее «при царе горохе» раньше просто, брали образец, взвешивали, выпаривали влагу и опять взвешивали. Отношение разницы масс к первоначальной массе и есть влажность.
Кроме этого метода измерения как в ГОСТ, путем взвешивания образцов и их выпаривания и повторного взвешивания, есть косвенные методы измерения. Например проводимость почвы как то коррелирует с ее влажностью, но кроме того зависит от состава почвы, кроме того возникают проблемы с сохранностью электродов.
А есть способ измеряющий количество воды через диэлектрическую проницаемость. Т.е. в почву помещается конденсатор, у которого диэлектриком является она (почва), и его емкость линейно зависит от диэлектрической проницаемости диэлектрика (почвы). И скажем, если заглянуть в справочники, то выяснится, что проницаемость воды сильно отличается от основных материалов, из которых состоит почва. А это органика, характерная проницаемость 2-3. Неорганика, характерная проницаемость 4-16. А у воды диэлектрическая проницаемость 81. Это означает, что она может вносить значительно более существенный вклад. И соответственно, по идее, точность измерения этим способом количества воды в почве без дополнительной настройки будет выше, чем предыдущим.
Теперь собственно сам прибор.
Состоит из единой платы, на которой размещено:
Мозг в виде ESP32. Это модуль который содержит и мозги, и память программ и имеет ножки ввода/вывода как цифровые, так и аналоговые, три uart порта и главное это беспроводные коммуникации wi-fi и bluetooth.
Микросхема CP2104 конвертор uart – usb.
Микросхема tp5410 контроллер зарядки и одновременно step-up преобразователь, что бы напряжение литиевого аккумулятора поднять до требуемых 5В питания.
Микросхема tl555c – таймер, на котором сделан генератор измерителя влажности почвы.
Микросхема DHT11 – измеритель влажности и температуры воздуха.
Измерительный конденсатор, выполненный на печатной плате.
Две кнопки Boot для программирования и EN как ни странно это сброс.
Отсек для батареи 18650
Разъем USB
И все GPIO наружу 😉
Еще фото
Первым делом подаем питание через usb разъем. Берем телефон и ищем что-то по wi-fi в надежде найти новую точку доступа и вот вам большой китайский фиг. Но понимания, что мы в начале квеста еще нет, еще крутится мысль, — Мы ее сейчас побырому, решим.
Начал я с просмотра всех (или почти все) товаров с этим изделием, вернее комментариев к товарам. И в одном отзыве увидел комментарий, что девайс не прошит, а скетча в сети нет.
Далее я пошел сразу двумя путями. Написал продавцу, — Как так, где скетч? И пока тот должен был ответить, побрел по просторам сети в поисках ответов. Как искал, писать не буду. Что нашел?
Дорогу к полурабочему скетчу указал продавец. Как подключить к среде программирования arduino ESP32, нашел в сети. Для того что бы среда Arduino начала понимать ESP32 нужно просто положить распакованный архив в каталог. Для windows.
X:\Users\Xuser\Documents\Arduino\hardware\espressif
X – буква диска где хранятся «Мои документы», у меня они на D, по умолчанию они на диске C.
Xuser – имя вашего пользователя в системе.
Архив тут github.com/espressif/arduino-esp32
Кроме того у меня не хватало библиотеки SimpleDHT11, которая используется в программе.
Это брать тут github.com/winlinvip/SimpleDHT
Ну и ссылка по наводке продавца на исходник программы.
github.com/LilyGO/higrowopen
И она не заработала.
Что бы заработало надо, программисты молчать ))) Хотя пишите. Что я исправил. С двумя слэшами то что было. Без то что стало.
Тип данных переменных точки доступа и пароля
Поверка, что значения имени и пароля не пусты.
Получение данных из DHT11
Читаем АЦП для с той ноги.
Смотрим, что то заработало.
Это FF по своей инициативе красиво показывает, на самом деле все вот так, как ниже на смортфоне )))
Схема датчика влажности почвы вот такая.
Генератор на 555 таймере. Частота 500 кГц, делитель на конденсаторе C5 (печатный) и резисторе R1. Далее детектор на диоде и к АЦП. Номиналы емкостей не знаю, резисторов написал.
На воздухе прибор намеряет около 3000 АЦП-шных попугаев. Циферка в строчке water. Её значение меняется от 3000 до 3070 от настроения.
Берем набираем в стаканчики песок, землю с моего огорода, то что было кем то названо торфом, и воду. Сразу скажу, что песок, земля и торф уже почти год стоят в тепле и высохли полностью.
И начинаем мерить.
Песок.
Торф.
Земля.
Вода.
Разница существенная, это радует.
Далее, ради интереса взвесим стаканчик с водой и землей.
149 и 111 грамм, при примерно одинаковом объеме.
А теперь будем добавлять воду в землю, тщательно перемешивать. Насыпал в полиэтиленовый пакет и перемешал и высыпал обратно.
Количество воды на 111 грамм земли. Показания АЦП и посчитанная влажность.
8 грамм воды. -2803 6,7%
16 грамм воды. -2690 12,6%
24 грамм воды. -2630 17,8%
50 грамм воды. -1740 31%
Итоги?
Мне штуковина понравилась.
Не смотря на отсутствие рабочего софта. Зато какой простор для творчества. )))
Зато теперь я хочу эту штуку подключить, например к narodmon.ru.
Добавить фоторезистор, и измерять еще и освещение. Люксметр есть, откалибровать смогу.
И даже не смотря на то что кнопка EN отвалилась (!) хотя я ее нажимал от силы раз 5, мне этот квест пришелся по душе.
ЗЫ сейчас проверим ))) Набрал снега и воткнул в него. Показывает 2980-3000. Твердая вода совсем ни как жидкая. На этом все. )))
Источник
Датчик влажности почвы (резистивный): инструкция по использованию и примеры
Используйте резистивный сенсор влажности почвы для создания систем автоматического полива растений. Датчик подойдёт для ухода за комнатными цветками и флоре на огороде. Не дайте своим растениям засохнуть!
Принцип работы
Датчик для измерения влажности почвы выполнен в виде вилки с двумя электродами, которыми погружается в грунт на расстояние до 40 мм. При подключении питания на электродах создаёться напряжение. Если почва сухая, её сопротивление велико и через датчик между электродами течёт слабый ток. Если земля влажная — её сопротивление становится меньше, а ток датчика между электродами соответственно увеличивается. По итоговому аналоговому сигналу можно судить о степени увлажнения почвы.
Максимальное напряжение на выходе S не превышает 75% от напряжения питания модуля V , т.е. сигнальный диапазон датчика равен:
На показания датчика также влияют следующие факторы:
Электроды датчика покрыты золотом, чтобы предотвратить пассивную коррозию, когда он выключен. Избавиться от электролитической коррозии, вызванной протекающим током, невозможно, поэтому сенсор резистивного типа рекомендуется запитывать через силовой ключ. То есть, включать его только на время измерений, чтобы максимально продлить ресурс. В плане эксплуатации это доставляет неудобство, поэтому рекомендуем обратить внимания на ёмкостный датчик влажности почвы, который в силу своего исполнения неподвержен корозии.
Пример работы для Arduino и XOD
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например Arduino Uno.
Схема устройства
Подключите датчик влажности почвы к аналоговому пину A0 платформы Arduino. Для коммуникации понадобятся соединительные провода «мама-папа».
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
Код для Arduino IDE
Прошейте платформу Arduino скетчем приведённым ниже.
После загрузки скетча, в Serial-порт будут выводиться текущие показания сенсора в 10-битном диапазоне.
Патч для XOD
После загрузки прошивки, в отладочной ноде watch будут выводиться текущие показания сенсора в диапазоне от 0 до 0,75:
Пример для Espruino
В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии Espruino, например Iskra JS.
Схема устройства
Подключите датчик влажности почвы к аналоговому пину A0 платформы Iskra JS. Для коммуникации понадобятся соединительные провода «мама-папа».
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
Исходный код
Прошейте платформу Iskra JS скриптом приведённым ниже.
После загрузки скрипта, в консоль будут выводиться текущие показания сенсора в диапазоне от 0 до 75%.
Пример для Raspberry Pi
В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры Raspberry Pi, например Raspberry Pi 4.
Схема устройства
К сожалению в компьютере Raspberry Pi нет встроеенного аналого-цифрового преобразователя. Используйте плату расширения Troyka Cap, которое добавит малине аналоговые пины.
Подключите датчик влажности почвы к Raspberry Pi через плату расширения Troyka Cap к 3 пину. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
Программная настройка
Исходный код
Запустите скрипт на малине приведённым ниже.
После загрузки скрипта, в консоль малины будут выводиться текущие показания сенсора в диапазоне от 0 до 75%.
Элементы платы
Измерительные электроды
Датчик построен на основе транзисторного усилителя тока. Для измерения влажности почвы на датчике расположены два электрода, которые для проведения измерений необходимо воткнуть в почву. Электроды подключены в цепь между коллектором (точка SP) и базой (точка SN) встроенного транзистора на плате MMBT2222ALT1G.
При изменении влажности почвы, меняется сопротивление между базой и коллектором, к которому подключен положительный полюс источника питания. Соответственно меняется и протекающий ток от коллектора через эмиттер на землю. В результате изменяется и выходное аналоговое напряжение сенсора (точка OUT). Подробности найдёте на принципиальной схеме датчика.
Troyka-контакты
Датчик подключается к управляющей электронике через три провода.
Источник