Доброго времени суток! Вот и пришло время для второй статьи на тему ESP. Я расскажу про устройство, которое позволит получать информацию о микроклимате вокруг Ваших цветов (если, конечно, они у Вас имеются) и получать уведомления, о том, что их жизни что-то угрожает.
Для чего?
Моя жена поливает цветы примерно раз в неделю. Смотрит на почву в горшках, видит или чувствует, что пора бы цветам подкрепиться и поливает. Цветы у нас разные, но как выяснилось высыхают они примерно за одинаковое время. Большой горшок – большой цветок, маленький горшок – маленький цветок, смысл понятен. Все было бы хорошо, если бы на летний сезон я не оставался дома один на пару месяцев и не забывал поливать цветы. По приезду в конце августа жена с грустным лицом вытаскивает из нескольких горшков сухие черенки.
Это было небольшое лирическое отступление, теперь о решении. На один подоконник нам нужно 1-2 устройства, чтобы делать измерения в горшках разного размера. Первое, что необходимо контролировать – это влажность почвы, то, что губит наши цветы (с PH и остальной непонятной флористикой темой мы разбираться не будем, нам не до этого). Помимо влажности, после недолгих размышлений, решили измерять освещенность, чтобы можно было отследить влияние светового дня на растения, температуру и влажность окружающей среды – это вдогонку.
Инженеры из поднебесной уже, конечно постарались и сделали устройства, которые умеют пищать и чирикать при высыхании земли в горшке, но все-таки хочется иметь свой девайс со своими плюшками, тем более что себестоимость устройства не так высока.
Аппаратная реализация и описание работы
Наиболее важный момент – это автономность устройства и долговечность его работы (естественно не в ущерб качеству измерений). За основу взята все та же ESP-12E, с одним каналом АЦП на борту. Контроллер (модуль, если хотите) имеет несколько режимов работы, и, соответственно, потребления:
Power off – 0.5uA;
Deep sleep – 10uA;
Light sleep – 0.5mA;
Modem sleep – 15mA;
В режиме передачи данных до 170mA (данные разнятся и в некоторых источниках даже до 215mA).
Для наших нужд потребуются три режима: Deep sleep, Modem sleep и режим передачи. Раз все так хорошо, будем использовать две батарейки AAA для питания.
Освещенность измеряется фототранзистором BPW17N, влажность и температура окружающей среды AM2302, влажность почвы специально-разведенным электродом на плате под лаком. Так как у нас есть батарейки будем измерять и их напряжение. Чтобы это все делать по с одним АЦП используем мультиплексор CD74HC4051M96. На АЦП ESP-12E можно подавать напряжение до 1В, соответственно везде ставим делители.
Схема ниже, там накручено много чего для макетирования (в том числе на спаянной плате еще нет транзистора VT3, а последняя плата еще не готова).
Схема устройства
Две батарейки выдают напряжение 3-3,3В, мультиплексор работает в диапазоне от 2В до 6В. AM2302 работает в диапазоне 3,3-5,5В. Для ESP-12E необходимо напряжение от 2,3В. Все это проверено тестами и сверено с даташитами. Становится понятно, что AM2302 почти сразу перестанет работать, а то и совсем не заработает, соответственно делаем «хак» и ставим конденсаторный Buck-Bust TPS60240DGKR. Это решает еще одну серьезную проблему, так как при падении напряжения плывут измеряемые параметры (освещенность и влажность почвы) и приходилось корректировать значения измерений АЦП, учитывая напряжение, а это вносило погрешности.
Таким образом, получается примерно так: мультиплексор питается и управляется с ног ESP (она питается напрямую от батареек), AM2302, делители освещенности и влажности почвы запитаны от 3,3В с Buck-Bust, который, в свою очередь, управляется ногой ESP. Он раскачивает напряжение с 1,8В до 3,3В.
Измерение влажности почвы
Этой величине решил отвести отдельный подраздел. Первая версия устройства имела оголенные электроды (не покрытые лаком) и там было все просто, подаем напряжение на один электрод – снимаем со второго. Чем больше влажность, тем больше напряжение на АЦП.
Рис 1. Версии электродов на платах.
Все бы хорошо, но даже луженые электроды склонны к коррозии, да и вообще выглядят не эстетично. Поэтому родилась (была слизана) следующая схема: на один из «электродов» подается ШИМ с IO15, и с него же читается значение, «выпрямленное» и сглаженное. Получается, что чем больше влажность почвы, тем меньший сигнал доходит до АЦП, так как сигнал затухает.
Рис 2. Схема считывания влажности почвы.
Тестирование и работа
Сразу уточню, что длительные тесты продолжаются, а быстрые показали следующее: устройство проработало (не спешите разочаровываться) четверо суток. Измерения проводились 1 раз в минуту (!!!) с отправкой всех данных на сервер (получается порядка 5700 измерений). Deep sleep составляет 50с из этой минуты. Время работы в режиме Modem sleep составляет несколько секунд (происходят измерения с датчиков), далее несколько секунд в режиме передачи данных (тесты показали потребление порядка 50mA). Временные интервалы еще настраиваем. Подробнее о времени работы в разных режимах можно почитать по ссылке тут и, соответственно, посмотреть в исходниках на гите тут.
Пока планируем делать измерения раз в 2 часа с малым количеством измерений ночью, по прикидкам получается более 1 года работы. Расчеты больше экстраполированные из полученных результатов, но как известно разряд батареек имеет нелинейную форму, так что долгие тесты покажут что и как.
Рис 3. Графики отправляемых параметров.
Тут четыре параметра на одном графике – не очень удобно смотреть, но за то информативно. Провал – это замена батареек и полив цветка. Два пика – это освещенность. Заливка голубым – это влажность почвы. Пока не применены никакие сглаживания и фильтры, так как тестирование не закончено и хочется смотреть на сырые данные. На расширенных графиках, видно, как происходит смачивание почвы, затем влажность стабилизируется и происходит медленное высыхание. Пока не решили стоит ли как-то учитывать перелив растения или оставить это «поливальщику».
Рис 4. Фото устройства в горшке.
Рис 5. Фото устройства со стороны батареек.
На макете для крепления батарейного отсека и датчика влажности используются винты, когда все отладим поставим заклепки, типа таких:
Рис 6. Фото заклепок.
Корпус
Все просто – корпуса пока нет, а может и в принципе, не будет. Покроем сверху специальным лаком и в путь.
Себестоимость
ESP-12E – 120р;
CD74HC4051M96 – 14р;
TPS60240DGKR – 180р;
BPW17N – 21р;
AM2302 – 130р;
KLS5-818-B – 15р;
BC817 – 3р;
BAT54JFILM – 3р;
Пассив и кнопка – 20р;
Светодиод, пищалку и транзистор на ее управление пока выкидываем.
Без учета печатной платы и сборки получается порядка 500р.
Так скажем, приемлемо. Конечно, если сделать таких устройств 10шт, то печатка и сборка скушает значительную часть себестоимости и устройство получится дорогим, но пока мы за ценой не гонимся, партию 100к не делаем, а просто получаем удовольствие от процесса.
Планы
Как говорилось ранее, в первой статье, планируется сделать семейство датчиков, объединенных одним приложением. В данный момент есть четыре устройства:
1. OpenWindAir. Датчик концентрации углекислого газа.
2. LifeOfFlowers. Датчик влажности почвы и микроклимата для растений.
3. WarningWater. Датчик протечек.
4. AirWick_ESP. Конфигуратор для освежителя воздуха AirWick. Наверное, это даже больше шутки ради, подумал я сначала. А почему бы и нет?
Про это устройство я еще ничего не писал. У меня дома завалялся такой девайс:
Рис 7. Фото AirWick.
И очень уж мне хотелось сделать, чтобы он работал по расписанию, которое я сам могу задавать. Днем, например, только при посещении уборной, ночью, чтобы вообще спал, разве что «пшикнул» бы утром перед тем как я проснусь. Даже сделал я плату на STM32F100, но что-то не пошло. Пока все отлаживал, менял пороги и частоту срабатывания, все так и осталось в зачаточном состоянии. И тут пришла мысль, а почему бы не задавать с телефона параметры, тем более, если этот интерфейс уже отлажен:
— количество срабатываний после выключения света (в зависимости от времени посещения);
— количество срабатываний в ночное время (запрет на срабатывание при включенном свете);
— выключение устройства (например, на время отпуска);
— ну и конечно же посчитать как часто мы ходим в туалет и сколько времени там проводим)))). При включении света у меня включается радио и посещение может затягиваться.
Да – это излишки, скажете вы, настроил один раз и забыл, но наши руки не для скуки, и поэтому была сделана плата, о которой я расскажу позже.
В приложении для разных устройств можно делать вкладки с отображением под ними данных и графиков, относящихся к конкретному девайсу.
Рис 8. Фото приложения с несколькими вкладками.
ЗЫ: Ссылки на статьи из этой же темы:
Система сбора данных на ESP. Часть I. CO2
Спасибо за внимание!
Комментарии (74)
Mogwaika
06.04.2018 12:42+1Видел в продаже емкостные датчики воды для баков, которые через пластиковую стенку работают. На этом же принципе нельзя внешний датчик устроить или достаточный перепад будет только у свежеполитого горшка, а сухую от еле влажной почву не отличит?
the_bat Автор
06.04.2018 12:46+1Как раз отчетливо можно определить и чуть влажную и сухую почву. Проводили эксперимент, поливали и ждали пока высохнет, очень хорошо виден плавный спад до минимального значения. Ну или смотре что значит «еле влажная».
AlterMax
06.04.2018 12:45+1Респект! На всякий случай, решал подобную проблему проще, с помощью вот такой штуки с али:
Self-Watering Probesa3x
06.04.2018 12:47Это уже пройденный этап. Они помогают когда дома долго никого нет. Но когда я дома, цветы ничего кроме напоминалки не спасет.
DanielKOcean
06.04.2018 14:36Спасибо за статью! Классное получилось устройство, попробую для своих балконных черри заделать.
П.С. Если будет время, опубликуете на CircuitMaker-е? Это такой "GitHub" для разработчиков устройств от Altium.LorDCA
07.04.2018 05:26Где то я это уже видел…
hackaday.io/project/12843-esp-soil-moisture-sensor
github.com/AprilBrother/esp-soil-moisture-sensor
Mogwaika
06.04.2018 14:51+1А какого-нибудь литиевого аккума, типа 18650 не прикидывали на сколько хватит?
the_bat Автор
06.04.2018 14:57Нет, отказался от него, так как нужно еще ставить схему зарядки или заряжать аккум отдельно, а если нет под рукой второго аккума, то это неудобно.
Lando
06.04.2018 15:56+1А если поставить небольшой аккум и солнесную баттарею? По идее должна заряжаться от солнца и досветки растения. Зато поставил и забыл.
the_bat Автор
06.04.2018 17:11+1Пробовали считать, получается должна быть большая солнечная батарея.
Если поставить совсем маленькую на 300мА, то в несколько пасмурных дней она может сесть и не зарядиться. То есть нужно иметь запас. Думали поставить ААА Li-Ion 3,7В и солнечную, но кажется все равно будет несуразно смотреться. Пока на стадии размышления. Также, в этом случае, нужно ставить питатель с 4,2В-3,0В до 3,3В, либо выбирать драйвер солнечной батареи с регулируемым выходом.Lando
06.04.2018 18:32+2Наверно правильно. И места больше займет устройство и драйвер ставить надо по хорошему. А он не сказать что копейки стоит. Да и купить еще надо. Тем более есть AAA NiMh которые в стандартной зарядке можно заряжать.
Googlist
06.04.2018 21:25AAA литиевьіе на порядок хуже 18650, саморазряд большой, емкость маленькая и циклов заряд/разряд значительно меньше вьідерживает, лучше на 18650 делать, они наверное заметно технологичнее производятся.
Allineer
06.04.2018 14:57+1А объясните пожалуйста по датчику влажности почвы:
— полигон печатной платы со стрелками и надписью «Put this part to soil» (рис.1) соответствует проводнику между R9 и VD2 на схеме Рис.2?
— контакт ТР1 на схеме это… что?
pistoletov
06.04.2018 18:08+2С airwick хорошая идея. У меня уже лет 5 работает аирвик с attiny внутри. Работает после включения света в комнате. Я бы еще увязал его работу с вентилятором вытяжным но руки пока не дошли
BalinTomsk
06.04.2018 18:15+1Сделайте с десяток устройств — я у вас куплю.
the_bat Автор
06.04.2018 18:18Если Вы серьезно, то когда закончится отладка и мы сделаем небольшую партию — я оповещу.
areht
07.04.2018 04:51Я бы такой, может, взял, но я чуть более ленив — к устройству нужна бутылка и насос. Соответственно, на насос нужен выход эдак на ~150мА.
Я на прототипе насос 12V/350mA от 5 вольт запитывал — на полметра хватало воду поднимать, от 3 вольт — фиг знает. Я же правильно понял, что через TPS60240DGKR только AM2302 питается, а повесив 3 батарейки на вход я спалю ESP?DustCn
07.04.2018 07:04Возьмите DIY модуль со встроенным регулятором или свой припаяйте. У меня esp-12e по рублю пучок девборды, работают от 9 и 12 вольт спокойно.
Типа такой:
www.ebay.com/p/Esp8266-Esp-12-NodeMCU-Lua-WiFi-Internet-Things-Development-Board/1148520334?_trksid=p2047675.m4097.l9055areht
07.04.2018 07:26А потом этот «штык» для измерения влажности напильником выточить, а мультиплексор и тот же выход 150мА навесным монтажом делать? )
Meklon
07.04.2018 12:15Тут лучше всего подойдут перистальтические насосы. Они очень точные и могут проталкивать даже вязкие жидкости. Медленные, да. Но тут растения, а не автомойка.
areht
07.04.2018 14:42Такие мне попадались, но они где-то с $30 начинались. А для чего мне вязкие жидкости и высокая точность?
Meklon
07.04.2018 14:51+1Вам точность нужна для полива. Гарантированно влить ровно 50 мл условно. Особенно круто, если вы сразу из нескольких ёмкостей воду с удобрениями или корректорами pH. На Али есть дешёвые, но насколько долго живут, я не знаю.
areht
07.04.2018 15:42+1А с какой точностью нужно поливать? И как вообще вычислить, что мне нужно именно 50 мл, а не 70?
До нескольких ёмкостей я ещё не дорос — пока просто от неполива дохнутMeklon
07.04.2018 16:52А это как раз настраивается под конкретное растение, как и частота полива. Возможно выгодным окажется полив по 10 мл каждый час.
sav13
06.04.2018 21:52+1Хотелось бы увидеть калибровку датчиков.
Кривую, как едет себя влажность.
Диапазон.
Повторяемость от полива к поливу
Промышленные емкостные датчики влажности почвы имеет рабочую частоту в несколько мегагерцa3x
06.04.2018 22:39Как соберем достаточно статистики — сделаем анализ и посмотрим, что у нас с повторяемостью.
plm
06.04.2018 23:07Как работает измеритель влажности, так и не понял. Можно поподробнее?
И залить электронику (телефон, скажем) жидкостью — это всегда плохо, а у вас плата практически голая. Боюсь, не проживет она года до смены батареек :)the_bat Автор
07.04.2018 14:09+2Если Вы внимательно читали, плата покрывается лаком. Незащищенными остаются только контакты батареек.
plm
07.04.2018 14:20Ну да, точно, я забыл, в телефонах везде блестящая голая медь.
the_bat Автор
07.04.2018 19:20Вы не поверите, плату можно покрыть маской, как в сотовом телефоне, а можно покрыть лаком поверх компонентов, как не в сотовом телефоне.
plm
07.04.2018 19:52Маска — она тоже лак. Ладно, через год поглядим.
Так расскажите, пожалуйста, поподробнее, как работает измеритель влажности почвы у вас? Я так понял — кусок медной фольги в изоляции воткнут землю. И один провод к нему. И что вы меряете?the_bat Автор
07.04.2018 19:56С одного пина на другой ESP подается синус, сюда же подключен электрод (по схеме вроде все понятно). Часть сигнала теряется если почва влажная, и чем больше влажность, тем больше потери. Это абстрактная величина в попугаях, но мне она и нужна.
Meklon
06.04.2018 23:51+1Кхе-кхе. Электролиз…
Helium4
07.04.2018 09:31Ага. И пассивация электродов.
У меня на "лабораторном" кондуктометре с графитовыми стержнями от батареек в качестве электродов — иногда по 20 минут приходится отмачивать электроды в слабой кислоте, чтоб стабилизировать показания. Стержни были хорошо предварительно отмыты от солей. Правда система с двухполюсным меандром 100 Гц и токами до 1А, для цветочков многовато будет.
Фото кондуктометра — https://ibb.co/du1SwcMeklon
07.04.2018 12:17Я карандашные использовал. В итоге плюнули и купили промышленный за 50к) 100 Гц очень мало, кстати. У меня даже на 10 кГц улетела нейтральная точка в растворе.
the_bat Автор
07.04.2018 14:07Вы понимаете, да, что это происходит на 1-2 секунды за несколько часов?
Meklon
07.04.2018 14:55+1Понимаю. Я в лаборатории полгода ковырял подобные установки. Нужен был кондуктометр, который раз в 5 минут за 5 мс производит измерение и спит дальше. Так вот у меня электроды перестали растворяться ибот графит, но показатель проводимости улетал за 50-100 измерений просто в хлам. Тут только мегагерцы иначе это показометр.
the_bat Автор
07.04.2018 19:24Электроды под лаком, после 2-х мес тестов на лаке и меде под лаком ничего не видно. Показания стабильные, повторяемость 100%. Так что это не наш случай, явно.
avf1906
08.04.2018 18:24+2видимо разный метод, Meklon описывает кондуктометрический, а здесь судя по всему емкостной
Meklon
07.04.2018 19:29+2Возьмите раствор комплексных сухих удобрений. Разведите до концентрации 1500 ppm. Приготовьте литр такого раствора. Это модель вашей почвы. Если есть возможность — поставьте ёмкость на планетарный шейкер, чтобы шло непрерывное перемешивание. Теперь выполните серию из 1000 измерений через каждые 30-60 секунд. Задержка нужна, чтобы диффузия успевала уносить продукты реакции от электродов. Посмотрите на график. Если плоский, то все офигенно. В реальности, там будет падение сопротивления по экспоненте и сильный сдвиг pH. Проверьте эти параметры качественным pH-метром и кондуктометром, чтобы валидировать результаты.
Если увидите значимое влияние электролиза, то растению скоро придет конец. А ещё вы отравите почву солями олова и меди бонусом. Графит лучше. Он вариант платины для бедных, но ужасен в массовом производстве. Паять не вариант, только намотка жилы и термоусадка.
Короче, говоря, я уже изрядно походил по этим граблям) желаю удачи)the_bat Автор
07.04.2018 19:32Ни меди ни олова на наших электродах нет. Все под лаком.
Meklon
07.04.2018 19:40Так, стоп, я туплю. А что у вас ток проводит?
the_bat Автор
07.04.2018 19:41Я написал же что они под лаком. Процессов окисления нет. Проверено.
Meklon
07.04.2018 19:56Лак изолятор. Что у вас в роли двух плюсов ток проводит?
the_bat Автор
07.04.2018 20:01Смотрите схему. Электрод один, если не считать полигон вокруг. Измеряется затухание сигнала
Javian
07.04.2018 21:08+2Что-то вроде утечки переменного тока через конденсатор. Чем больше влажность, тем больше ток уходит в землю через обкладки «конденсатора». И соответственно просаживается напряжение, пришедшее на АЦП.
DustCn
07.04.2018 00:50А есть объяснение почему был выбран BPW17N? Я вот тоже думаю над датчиком освещения на есп, и пока застрял на выборе собственно фотоэлемента. Daylight стоят дорого, а такой вот — копейки, но он не ловит весь дневной спектр? Мне правда не для цветов нужен…
LorDCA
07.04.2018 05:30А какой смысл ловить весь спектр? Возьмите любой самый дешевый, хоть за пару центов, он будет реагировать даже на свет луны. :)
DustCn
07.04.2018 06:58В этом то и проблема :) Мне скорее нужно избавиться от засветки — т.е. только дневной свет чекать, а обычный копеечный фотоэлемент будет торчать почти в ИК области. Или я не туда смотрю?
В общем это звучит как задача подстройки умного дома под естественное освещение. Привязку к времени я уже рассматривал — довольно сложно. Проще бросить датчик на внешней стороне дома, вся загогулина в самом датчике.Javian
07.04.2018 07:50в смысле сложно привязаться ко времени? Формула расчета времени заката и рассвета реализована в разных библиотеках, в том же Ардуино. Если еще и добавить GPS модуль, то вообще полный автомат — время плюс координаты без какой- то внешней настройки.
По поводу ИК засветки — поставьте фильтр(ы) перед фотоэлементом.
the_bat Автор
07.04.2018 12:06Этот транзистор использовали ранее и он хорошо показал себя именно при работе на солнце. Очень хорошо определяется солнечная освещенность
smallghost
07.04.2018 10:50Ха, оказывается не я один думал про систему управления освежителем воздуха! Но вы продвинулись значительно дальше. Я предполагал также управлять на базе расписания, которое задаётся через облако.
avf1906
07.04.2018 18:11Классно, очень интересно.
Судя по цене самая дорогая часть — TPS60240. Если вдруг захотите удешевить, я бы сделал так: выход ШИМ + удвоитель/утроитель на конденсаторах + мелкий ldo на 5В. Итого 20руб вместо 180.
Javian
Можно попробовать этим методом измерять затухание сигнала не в почве, а через лист.
Мне как-то пенсионер рассказывал, что в одном тепличном хозяйстве при СССР проводили эксперименты по капельному орошению. У растения на листе (или стебле — точно уже не помню) были закреплены электроды. Когда «растение хотело пить» система включала капельное орошение. Получался рекордно низкий расход воды на полив плантаций. Делались эти эксперименты под оборудование первого в СССР завода по производству систем капельного орошения.
the_bat Автор
Это круто! )))
dmsav
Стало интересно как выглядели эти электроды.
И сколько нужно было электродов вообще на одно растение и на всю теплицу?