IoT — pt. 2 — Soil moisture sensor

m0nochr0me
3 min readJan 2, 2021

--

Ξ

Интернет вещичек — часть 2 — датчик влажности почвы

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

Устройство просыпается каждые 5 минут и публикует в MQTT свои показания в виде числа от 0 до 1023, где меньшие значения соответствуют большему содержанию воды в почве.

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

Материалы

  1. Модуль ESP-12F
  2. Емкостный сенсор влажности почвы
  3. Двухсторонняя макетная плата 70x30
  4. Резистор 4.7k
  5. Резисторы 100k и 47k
  6. Линейный стабилизатор LM1117–3.3
  7. Конденсаторы 10uF и 0.1uF по две штуки каждого
  8. Брэйкаут с micro-USB разъёмом.
  9. Монтажный провод
  10. 3Dпечатный корпус и винты M3x10 с гайкамим

Для прошивки модуля потребуется USB-UART преобразователь с выходным высоким логическим уровнем 3.3V и пара временных кнопок для подключения к выводам RESET и FLASH.

Схема

Стабилизатор питания

Так как вход АЦП модуля ESP-12 имеет диапазон от 0 до 1V, а выход сенсора от 0 до 3V, необходим делитель из резисторов R2 и R3.

Сборка

Цветов у меня мало, а протоплат 70x30 много, поэтому опять обойдемся без ЛУТа.

В протоплате пришлось вырезать дремелем отверстие, чтобы можно было разместить сенсор по центру.

Код

Для работы кода не требуется никаких дополнительных библиотек, так как средства работы с внутренним АЦП уже имеются в стандартной библиотеке micropython’а.

Интервал сбора данных, по умолчанию равный пяти минутам, можно изменить в файле config.py.

Прошивка

Процесс прошивки аналогичен описанному в конце статьи про тикерный монитор.

Корпус

Файлы для печати корпуса можно скачать в проекте Onshape.

После помещения платы внутрь желательно залить компаундом (например, столь любимым многими, термоклеем) место выхода платы сенсора из корпуса.

Дашборд

Для отображения показаний от датчика добавим в Mqtt Dashboard плитку типа “Прогресс” и установим ей пределы значений от 0 до 1024.

Примечания

При большем, чем у меня количестве комнатных растений, требующих контроля влажности почвы, использование таких датчиков может показаться расточительством. В этом случае будет лучше использовать модуль ESP8266, совметно с внешним чипом АЦП. Однако, в этом случае будет сложно обойтись без промышленно изготовленной платы (или хотя бы ЛУТом).

На самом деле, значения, поступающие от датчика, находятся в пределах от 200, при полном погружении в воду, до 700 на воздухе. Это нужно иметь в виду, принимая решение о поливе.

Стоило бы добавить к датчику возможность измерять температуру, однако об этом я подумал слишком поздно, когда уже упаковал всё в корпуса и воткнул в землю. Впрочем, сделать это легко, например, с помощью цифрового термометра 18B20 и одного резистора (поддержка интерфейса 1-wire уже есть в стандартной библиотеке).

Заключение

Спасибо за внимание, и не забывайте поливать комнатные цветы.

Ссылки

--

--

m0nochr0me
m0nochr0me

Written by m0nochr0me

Поделки из шишек и жёлудей

No responses yet