Устройство легко просигнализирует о том, что в доме задымлено. Установленный светодиод высвечивает сигнал SOS для того, чтобы было видно, где сработал датчик, а зуммер подает сигнал тревоги, который можно услышать в любой другой комнате.
Описание работы:
Для начала работы подключите питание к Arduino. И поместите устройство в комнату, в которой предварительно могут появиться нежелательные газы. Зеленый светодиод постоянно горит сигнализируя о том, что в комнате нет дыма. Как только датчик оказывается в зоне поражения дымом, зеленый светодиод гаснет, а красный светодиод высвечивает сигнал SOS, а зуммер сигнализирует SOS. Необходимо подождать некоторое время после подключения устройства к питанию, чтобы нагревательный элемент датчика прогрелся до нужной температуры и выдавал адекватные показания.
Нам понадобится:
- Arduino Uno х 1шт.
- Trema Set Shield х 1шт.
- Trema-модуль датчик газа х 1шт.
- Trema-модуль зуммер х 1шт.
- Trema-модуль зеленый светодиод х 1шт.
- Trema-модуль красный светодиод х 1шт.
Для реализации проекта нам не нужно устанавливать никаких библиотеки.
Схема сборки:
- Устанавливаем Trema Set Shield в Arduino Uno.
- Устанавливаем зеленый Trema-модуль светодиод в 1 посадочную площадку.
- Устанавливаем красный Trema-модуль светодиод в 3 посадочную площадку.
- Устанавливаем Trema-модуль зуммер в 4 посадочную площадку.
- Устанавливаем Trema-модуль датчик газа в 6 посадочную площадку.
- Полученные результат представлен ниже на рисунке.
Код программы:
int pinDatD = A3; // Объявляем пин для работы с датчиком дыма. int pinLedRed = 2; // Объявляем пин для работы с красным светодиодом. int pinLedGreen = 3; // Объявляем пин для работы с зеленым светодиодом. int pinZum = 11; // Объявляем пин для работы с зуммером. // int datDValue; // Переменная для считывания показания датчика дыма. const int ultimateLevel = 500; // Переменная предельного уровня показаний датчика дыма. // void Sos(); // Функция индикация SOS. // void setup() // { // pinMode(pinLedRed, OUTPUT); // Переводим вывод pinLedRed в режим выхода. pinMode(pinLedGreen, OUTPUT); // Переводим вывод pinLedRed в режим выхода. pinMode(pinZum, OUTPUT); // Переводим вывод pinLedRed в режим выхода. } // // void loop() // { // datDValue = analogRead(pinDatD); // Считываем показания датчика дыма. if (datDValue > ultimateLevel) // Если показания дыма больше предельного уровня, то сообщаем о задымлении. { // digitalWrite(pinLedGreen, LOW); // Гасим зеленый светодиод. Sos(); // Переходим к функции индикации SOS. } // else // Если показания датчика дыма меньше заданного уровня, то нет задымления. { // 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-модуль светодиодами, Trema-модуль зуммером.
- Объявляем переменную, которые задействованы в программе.
- Объявляем функцию.
В коде setup выполняются следующие действия:
- Переводим выводы светодиодов и зуммера в режим выхода.
В коде loop выполняются следующие действия:
- Считываем показания датчика дыма.
- Сравниваем показания с допустимым пределом. Если показания дыма больше предельного уровня, то сообщаем о задымлении, а именно гасим зеленый светодиод и сигнализируем о тревоге функцией "Sos()". В ней мы гасим и зажигаем красный светодиод, а так же включаем и выключаем зуммер с периодичностью соответствующей команде SOS.
- Если показания дыма меньше предельного уровня, то постоянно светит зеленый светодиод, а красный светодиод и зуммер выключены.
- Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика дыма будут дольше приходить для сравнения.
- Можно менять уровень по которому срабатывает тревога. Для этого в скетче необходимо переменную предельного уровня "ultimateLevel" изменить на то значение, которое вам необходимо.
Обсуждение