Arduino и гигрометр
Рассмотрим основы разработки автоматизированной системы полива.
На базе подобного проекта можно реализовать систему, которая отслеживает уровень влажности почвы и при необходимости включает насос для подачи воды.
Вода поступает из контейнера, в котором она собирается после дождей. Реализация подобного проекта позволяет не только ухаживать за вашими растениями, но и неплохо сэкономить, так как аналогичные промышленные системы автополива обойдутся вам в несколько раз дороже.
Данная инструкция является небольшой частью всего проекта и может рассматриваться скорее как основы работы с датчиком влажности - гигрометром на платформе Arduino.
Для проекта вам понадобятся
- 1 датчик влажности;
- 1 плата Arduino;
- 3 светодиода (разных цветов для наглядности);
- 3 резистора на 220 Ом;
- 1 резистор на 10 КОм;
- Проводники;
Схема подключения
Подключите датчик влажности к аналоговому пину A0 на Arduino. Какая именно нога датчика подключена к пину A0 неважно.
Питание мы обеспечиваем с платы Arduino, с выхода 5 вольт. К этому пину датчик подключается второй ногой через резистор 10 кОм.
Второй выход с датчика мы подключаем к земле - выход GND на плате.
По сути этого уже достаточно для работы датчика влажности. Но хотелось бы как то это все оживить. Для этого используем светодиоды, которые позволят нам визуально отслеживать уровень влажности.
Для их подключения использованы пины 13 (красный), 12 (зеленый) и 11 (голубой). Именно эти пины забиты в скетче, предложенном ниже. Естественно, вы можете использовать другие пины.
Анод красного светодиода (длинная нога) подключен к 13 пину. Резистор на 220 Ом подключается между катодом (короткая нога) светодиода и землей (выход GND).
Анод зеленого светодиода (длинная нога) подключен к 12 пину. Резистор на 220 Ом подключается между катодом (короткая нога) светодиода и землей (выход GND).
Анод голубого светодиода (длинная нога) подключен к 11 пину. Резистор на 220 Ом подключается между катодом (короткая нога) светодиода и землей (выход GND).
Все. Теперь можем переходить к программированию Arduino.
Скетч для Arduino
Алгоритм программы несложный. Мы считываем значение с пина A0 и определяем, находится ли это значение в определенном ранее диапазоне (0 - 400 = сухо, 400 - 700 влажно и 700 + = повышенная влажность).
Кроме того, мы включаем соответствующий светодиод.
В программе также реализована передача сигнала по серийному протоколу.
В самом коде сложностей не должно возникнуть. Если вам что-то не до конца понятно, можете обратиться к статье, в которой рассмотрены основы работы с Arduino на примере мигающего светодиода.
Видео, приведенное выше, возможно, станет дополнительной мотивацией для реализации этого небольшого, но интересного проекта.
/*
Уровень влажности почвы
*/
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
void loop()
{
int sensorValue = analogRead(A0);
String sensorType = "DRY";
Serial.println(sensorValue);
if(sensorValue < 400)
{
sensorType = "WET";
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(sensorValue > 399 && sensorValue < 700)
{
sensorType = "MOIST";
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
if(sensorValue > 700)
{
sensorType = "DRY";
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
}
Serial.println(sensorType);
delay(1000);
}