Содержание
Обзор датчика влажности почвы 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.
- Проверьте наличие щупа в земле.