Arduino и датчик капель/дождя
В некоторых любительских проектах, связанных с мониторингом состояния погодных условий или, например, с выращиванием растений в открытых условиях, бывает полезным знать, идет ли в данный момент дождь или нет. Поскольку многие радиолюбители в качестве упраляющей платы используют плату Arduino, то для этих целей был разработан специальный датчик капель/дождя, без проблем подключаемый к Arduino. Представленный в данном материале простой Arduino-проект позволит включать звуковую сигнализацию при срабатывании датчика капель/дождя.
Датчик дождя состоит из сенсорной пластины и платы с компаратором LM393. Помимо цифрового выхода, датчик имеет аналоговый выход, поэтому микроконтроллер Arduino может считывать аналоговые показания в диапазоне напряжений от 0 до 5 В или значение от 0 до 1023 после АЦП.
Если сенсорная плата датчика находится в сухом состоянии, аналоговый выход модуля составляет 5 В. В случае, если на пластину попадают капли дождя, соединяющие проводники платы между собой, то аналоговый выход изменяется от 5 В до 0 В в зависимости от количества влаги на пластине. Таким способом датчик сообщает нам, сильный или слабый идёт дождь. Arduino включит сигнализацию после определенной интенсивности дождя и некоторой задержки, что будет определено в коде. Это позволит избежать ложных срабатываний. В данном случае порог срабатывания составляет 300, а задержка 30 секунд.
Ниже представлен скетч для Arduino, который позволяет включать сигнализацию, подключенную к цифровому порту 8, при регистрации датчиком дождя.
int rainSensePin= 0; // аналоговый вход 0 для сигнала датчика
int alertPin= 8; // цифровой выход 8 - для сигнализации
int curCounter= 0; // счётчик - инкрементируется на 1 каждую секунду после срабатывания датчика
void setup(){
Serial.begin(9600);
pinMode(alertPin, OUTPUT);
pinMode(rainSensePin, INPUT);
}
void loop(){
int rainSenseReading = analogRead(rainSensePin);
Serial.println(rainSenseReading); // для мониторинга через последовательный порт
delay(250); // короткая задержка
if (curCounter >= 30){ // конец временной задержки
digitalWrite(alertPin, HIGH); // срабатывание сигнализации
}
// если дождя больше нет, сбрасываем счетчик
if (rainSenseReading 300) { // если интенсивность дождя не превышает порога
digitalWrite(alertPin, LOW); // не включаем сигнализацию
curCounter = 0; // сбрасываем счетчик в 0
}
delay(1000);
}
Когда идет дождь (и Arduino обнаруживает его) выход D8 переходит в высокий логический уровень. Этот выход можно подключить к звуковой сигнализации (пьезозуммеру) или переключателю (электромагнитному реле). Схема подключения выхода показана ниже.
В данном случае питание на Arduino подаётся от внешнего источника 9 В, схема активации зуммера/реле может питаться от 5-12 В. Источник напряжения питания Vcc должен подходить как по напряжению, так и по току для данной схемы.
Таким образом, создание проекта, в котором с помощью платы Arduino можно регистрировать наличие или отсутствие дождя или падающих капель от какого-либо источника жидкости, не является сложным занятием. Датчик капель/дождя для Arduino достаточно распространен, стоит недорого и прост в использовании. В конечном счете его можно сделать самому.