Устройство легко просигнализирует о том, что в доме потоп. Установленный светодиод высвечивает сигнал 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%, то постоянно светит зеленый светодиод, а красный светодиод и зуммер выключены.
- Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика влажности будут дольше приходить для сравнения.
Обсуждение