КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

Проект 4. Детектор протечек воды

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

Описание работы:

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

Нам понадобится:

Для реализации проекта нам не нужно устанавливать никаких библиотеки.

Схема сборки:

  • Полученные результат представлен ниже на рисунке.

Код программы:

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) выполняются следующие действия:

В коде setup выполняются следующие действия:

  • Переводим выводы светодиодов и зуммера в режим выхода.

В коде loop выполняются следующие действия:

  • Считываем показания датчика влажности.
  • Сравниваем показания с допустимым пределом. Если показания влажности больше 50%, то сообщаем о потопе, а именно гасим зеленый светодиод и сигнализируем о тревоге функцией "Sos()". В ней мы гасим и зажигаем красный светодиод, а так же включаем и выключаем зуммер с периодичностью соответствующей команде SOS.
  • Если показания влажности меньше 50%, то постоянно светит зеленый светодиод, а красный светодиод и зуммер выключены.
  • Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика влажности будут дольше приходить для сравнения.

Ссылки:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями