Датчик влажности почвы
Товары
Модуль влажности почвы предназначен для определения влажности земли, в которую он погружен. Он позволяет узнать о недостаточном или избыточном поливе ваших домашних или садовых растений.
Содержание
Обзор датчика влажности почвы Arduino
Датчик влажности почвы Arduino предназначен для определения влажности земли, в которую он погружен. Он позволяет узнать о недостаточном или избыточном поливе ваших домашних или садовых растений. Подключение данного модуля к контроллеру позволяет автоматизировать процесс полива ваших растений, огорода или плантации (своего рода "умный полив").
- Vcc – питание датчика;
- GND – земля;
- A0 - аналоговое значение;
- D0 – цифровое значение уровня влажности.
Технические характеристики модуля
- Напряжение питания: 3.3-5 В;
- Ток потребления 35 мА;
- Выход: цифровой и аналоговый;
- Размер модуля: 16×30 мм;
- Размер щупа: 20×60 мм;
- Общий вес: 7.5 г.
Пример использования
Рассмотрим подключение датчика влажности почвы к Arduino. Создадим проект индикатора уровня влажности почвы для комнатного растения (ваш любимый цветок, который вы иногда забываете поливать). Для индикации уровня влажности почвы будем использовать 8 светодиодов. Для проекта нам понадобятся следующие детали:- Плата Arduino Uno
- Датчик влажности почвы
- 8 светодиодов
- Макетная плата
- Соединительные провода.
// Скетч к обзору датчика
// влажности почвы
// http://
// Петин В., 2015
// контакт подключения аналогового выхода датчика
int aPin=A0;
// контакты подключения светодоодов индикации
int ledPins[8]={4,5,6,7,8,9,10,11};
// переменная для сохранения значения датчика
int avalue=0;
// переменная количества светящихся светодиодов
int countled=8;
// значение полного полива
int minvalue=220;
// значение критической сухости
int maxvalue=600;
void setup()
{
// инициализация последовательного порта
Serial.begin(9600);
// настройка выводов индикации светодиодов
// в режим OUTPUT
for(int i=0;i<8;i++)
{
pinMode(ledPins[i],OUTPUT);
}
}
void loop()
{
// получение значения с аналогового вывода датчика
avalue=analogRead(aPin);
// вывод значения в монитор последовательного порта Arduino
Serial.print("avalue=");Serial.println(avalue);
// масштабируем значение на 8 светодиодов
countled=map(avalue,maxvalue,minvalue,0,7);
// индикация уровня влажности
for(int i=0;i<8;i++)
{
if(i<=countled)
digitalWrite(ledPins[i],HIGH); //зажигаем светодиод
else
digitalWrite(ledPins[i],LOW); // гасим светодиод
}
// пауза перед следующим получением значения 1000 мс
delay(1000);
}
Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение переменных для полного полива (minvalue) и сильной сухости почвы (maxvalue) получим экспериментально. Большей сухости почвы соответствует большее значение аналогового сигнала. С помощью функции map масштабируем аналоговое значение датчика в значение нашего светодиодного индикатора. Чем больше влажность почвы, тем больше значение светодиодного индикатора (количество зажженных светодиодов). Подключив данный индикатор к цветку, мы издали можем видеть на индикаторе степень влажности и при определять необходимость полива.
Часто задаваемые вопросы FAQ
1. Не горит светодиод питания- Проверьте наличие и полярность подаваемого на датчик YL-38 питания (3,3 – 5 В).
- Настройте потенциометром порог срабатывания. Проверьте соединение датчика YL-38 с щупом YL-69.
- Проверьте соединение датчика YL-38 с щупом YL-69.
- Проверьте наличие щупа в земле.