Комнатная теплица. Измеряем влажность почвы

 
Комнатная теплица. Измеряем влажность почвы

Комнатная теплица. Измеряем влажность почвы

Источник света для нашей теплицы уже готов и светит он, прямо скажем очень неплохо.
Теперь нужно позаботиться о достаточном количестве влаги в почве. Но прежде чем начать поливать растения в автоматическом режиме нужно научить систему измерять влажность почвы и понимать когда и сколько воды нужно использовать.
Для этого сделаем простую систему измерения влажности почвы на основе датчика влажности почвы Grove SEN92355P и контроллера Arduino (точнее его более дешевого клона DFRduino Uno), а отображать измеренное значение влажности мы будем на стандартном алфавитно-цифровом ЖК (LCD) дисплее, подключенном к плате Arduino по стандартной же схеме.

Датчик представляет собой готовый к применению модуль с разъемом для подключения кабеля.

1.JPG

Но мы его немного модифицируем (для лучшей защиты от влаги, брызг и грязи). Для этого нам понадобится избавиться от этого самого разъема (ибо если вода попадет внутрь, его придется отключать и просушивать, например феном, что неудобно).

2.JPG

Самый простой способ подключения нашего датчика к контроллеру - с помощью телефонного кабеля, которые часто остаются лишними в офисах или у сисадминов на работе. Важно чтобы этот кабель был четырехпроводным! Длина его не имеет значения, так как мы отрежем кусок нужной нам длины (и меня это 40 см).
На фотографии ниже видны четыре разноцветные провода этого кабеля внутри корпуса телефонного разъема.

3.JPG

Безжалостно откусываем телефонные разъемы и отрезаем кусок кабеля нужной длины.

4.JPG

Снимаем внешнюю изоляцию кабеля дляной примерно 3 см

5.JPG

Зачищаем от изоляции концы разноцветных проводников и облуживаем их паяльником. После чего отпаиваем ненужный нам разъем датчика. Т.к. он припаян поверхностным монтажем и явно бессвинцовым припоем - он легко отваливается при легком прогреве контактов.

6.JPG


После этого припаиваем провода кабеля к контактным площадкам датчика в такой последовательности (по цвету проводов):

  • Ченый  - GND
  • Красный - VCC (+5В)
  • Зеленый - SIG (сигнал, выход датчика)
  • Желтый - к оставшейся контактной площадке, которая не используется в схеме - для надежности механического соединения (необязательно)

7.JPG

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

8.JPG

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

9.JPG

Датчик готов, помещаем его на место (втыкаем в землю с растениями)

10.JPG

А другой конец кабеля подключаем к плате Arduino:

Черный - GND
Красный - +5V
Зеленый - A0 (аналоговый вход)
Желтый - просто откусываем, он не используется.

С помощью простейшей программы (скетча) Arduino выводит на экран ЖК дисплея значения измеренной влажности в неких "попугаях", значения которых в описании датчика обозначают следующее:

0 ... 300  - Сухая почва
300 ...700 - Влажная почва
700 ... 950 - Вода

В данный момент (см. фото) почва явно слишком влажная

11.JPG

Если датчик находится на воздухе, программа честно показывает 0:

12.JPG

В воде мы получили значение в среднем 775:

13.JPG


14.JPG

Ради интереса была измерена влажность кожи руки:

15.JPG

16.JPG

Значение 70 дает надежду, что система работает и не сильно привирает.

Вот текст скетча (программы) для измерения влажности:

#include <LiquidCrystal.h>

int val = 0; 
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
lcd.begin(16, 2);
}

void loop() 
{
lcd.clear();
val = analogRead(0);
lcd.print("GND HUM: ");
lcd.print(val);
delay(1000);


}




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