Гигрометр - датчик влажности почвы

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 2 июля 2017, 17:04

Гигрометр - датчик влажности почвы.jpg
Гигрометр - датчик влажности почвы
Гигрометр - датчик влажности почвы.jpg (22.59 КБ) 1695 просмотров


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

Технические характеристики модуля

Напряжение питания: 3.3-5 В;
Ток потребления 35 мА;
Выход: цифровой и аналоговый;
Размер модуля: 16×30 мм;
Размер щупа: 20×60 мм;
Общий вес: 7.5 г.

Схема подключения не сложная. Давайте подключим как показано на схеме, зальём скетч и протестируем работу датчика.
подключение гигрометра датчика влажности почвы.png
подключение гигрометра датчика влажности
подключение гигрометра датчика влажности почвы.png (782.97 КБ) 1687 просмотров


Код: Выделить всё

int GLED= 10; // Совсем мокрая почва D10 (к зелёному диоду)
int BLED= 9; // мокрая почва D9 (к синему диоду)
int RLED= 8; // сухая почва D8 (к красному диоду)
int SENSE= 0; // аналоговый сигнал датчика влажности почвы A0

void setup()
{
pinMode(GLED, OUTPUT);
pinMode(BLED, OUTPUT);
pinMode(RLED, OUTPUT);

Serial.begin(9600);
digitalWrite(RLED, HIGH);
digitalWrite(BLED, HIGH);
digitalWrite(GLED, HIGH);
delay(1000);
digitalWrite(RLED, LOW);
digitalWrite(BLED, LOW);
digitalWrite(GLED, LOW);
}

void loop()
{
int sensorValue = analogRead(SENSE);
sensorValue= sensorValue/10; // можно и не делить (я делал для удобства в мониторе порта меньше цифр)
Serial.println(sensorValue);

if(
sensorValue < 40) // Совсем мокрая почва - зелёный диод
{
digitalWrite(RLED, LOW);
digitalWrite(BLED, LOW);
digitalWrite(GLED, HIGH);
}

if(
sensorValue > 39 && sensorValue < 70) // мокрая почва - синий диод
{
digitalWrite(RLED, LOW);
digitalWrite(BLED, HIGH);
digitalWrite(GLED, LOW);
}

if(
sensorValue > 70) // сухая почва - красный диод
{
digitalWrite(RLED, HIGH);
digitalWrite(BLED, LOW);
digitalWrite(GLED, LOW);
}
delay(1000);
}


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

phpBB [media]


На видео видно как датчик реагирует на влажность почвы. Чуть влажная не политая - горел синий диод. Стоило только немного полить - загорелся зелёный.

Возможен и другой метод индикации влажности. Смотрим схему и скетч.

подключение гигрометра датчика влажности2.jpg
подключение гигрометра датчика влажности #2
подключение гигрометра датчика влажности2.jpg (80.37 КБ) 1684 просмотра


Код: Выделить всё

// контакт подключения аналогового выхода датчика
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);
}
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Аппаратная часть»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя