Устройство легко просигнализирует о том, что в доме потоп. Установленный светодиод высвечивает сигнал SOS для того, чтобы было видно, где сработал датчик, а зуммер подает сигнал тревоги, который можно услышать в любой другой комнате.
Описание работы:
Для начала работы подключите питание к Arduino. И поместите устройство в комнату, в которой предварительно может случиться потоп. Зеленый светодиод постоянно горит сигнализируя о том, что в комнате сухо. Как только намокает датчик влажности, зеленый светодиод гаснет, а красный светодиод высвечивает сигнал SOS, а зуммер сигнализирует SOS.
Нам понадобится:
- Arduino Uno х 1шт.
- Trema Set Shield х 1шт.
- Аналоговый датчик влажности почвы х 1шт.
- Trema-модуль зуммер х 1шт.
- Trema-модуль зеленый светодиод х 1шт.
- Trema-модуль красный светодиод х 1шт.
- 3-проводной шлейф «папа-мама» х 1шт.
Для реализации проекта нам не нужно устанавливать никаких библиотеки.
Схема сборки:
- Устанавливаем Trema Set Shield в Arduino Uno.
- Устанавливаем зеленый Trema-модуль светодиод в 1 посадочную площадку.
- Устанавливаем красный Trema-модуль светодиод в 3 посадочную площадку.
- Устанавливаем Trema-модуль зуммер в 4 посадочную площадку.
- Устанавливаем Аналоговый датчик влажности почвы в 6 посадочную площадку, используя 3-проводной шлейф «папа-мама» .
- Полученные результат представлен ниже на рисунке.
Код программы:
int pinDatH = A3; // Объявляем пин для работы с датчиком влажности.
int pinLedRed = 3; // Объявляем пин для работы с красным светодиодом.
int pinLedGreen = 6; // Объявляем пин для работы с зеленым светодиодом.
int pinZum = 11; // Объявляем пин для работы с зуммером.
//
int datHValue; // Переменная для считывания показания датчика влажности.
//
void Sos(); // Функция индикация SOS.
//
void setup() //
{ //
pinMode(pinLedRed, OUTPUT); // Переводим вывод pinLedRed в режим выхода.
pinMode(pinLedGreen, OUTPUT); // Переводим вывод pinLedRed в режим выхода.
pinMode(pinZum, OUTPUT); // Переводим вывод pinLedRed в режим выхода.
} //
//
void loop() //
{ //
datHValue = analogRead(pinDatH); // Считываем показания датчика влажности.
if (datHValue > 500) // Если показания влажности больше 50%, то сообщаем о потопе.
{ //
digitalWrite(pinLedGreen, LOW); // Гасим зеленый светодиод.
Sos(); // Переходим к функции индикации SOS.
} //
else // Если показания датчика влажности меньше 50%, то сухо.
{ //
digitalWrite(pinLedGreen, HIGH); // Включаем зеленый светодиод.
digitalWrite(pinLedRed, LOW); // Гасим красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
} //
// *******************************************************************//
// delay(1000); // Время за которое данный с датчика влажности будут сравниваться с потенциометром.
// *******************************************************************//
} //
//
void Sos() // Функция индикация SOS.
{ //
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
//
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(1500); // Задержка 1500 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
//
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(1500); // Задержка 1500 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
//
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(1500); // Задержка 1500 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
//
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, HIGH); // Включаем красный светодиод.
digitalWrite(pinZum, HIGH); // Включаем зуммер.
delay(300); // Задержка 300 мс.
digitalWrite(pinLedRed, LOW); // Выключаем красный светодиод.
digitalWrite(pinZum, LOW); // Выключаем зуммер.
delay(1500); // Задержка 1500 мс.
}
Алгоритм работы:
В начале скетча (до кода setup) выполняются следующие действия:
- Объявляем пины для работы с аналоговым датчиком влажности почвы, Trema-модуль светодиодами, Trema-модуль зуммером.
- Объявляем переменную, которые задействованы в программе.
- Объявляем функцию.
В коде setup выполняются следующие действия:
- Переводим выводы светодиодов и зуммера в режим выхода.
В коде loop выполняются следующие действия:
- Считываем показания датчика влажности.
- Сравниваем показания с допустимым пределом. Если показания влажности больше 50%, то сообщаем о потопе, а именно гасим зеленый светодиод и сигнализируем о тревоге функцией "Sos()". В ней мы гасим и зажигаем красный светодиод, а так же включаем и выключаем зуммер с периодичностью соответствующей команде SOS.
- Если показания влажности меньше 50%, то постоянно светит зеленый светодиод, а красный светодиод и зуммер выключены.
- Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика влажности будут дольше приходить для сравнения.

Обсуждение