В этом уроке мы подключим Датчик движения, датчик звука, датчик газа MQ-2, пьезоизлучатель и модуль на 4 реле. Настроим эти датчики так чтоб у нас включался свет и подавался звуковой сигнал при срабатывании какого либо датчика.
В этом уроке нам понадобится:
- Модуль из 4 реле: http://ali.ski/vGIlhm
- Датчик газа MQ-2: http://ali.ski/6JRA_
- Датчик звука: http://ali.ski/9xeBwK
- Пьезоизлучатель: http://ali.ski/9mNnRi
- Датчик HC-SR501: http://ali.ski/EPkJs
- Контактные провода: http://ali.ski/Exjr3
- Макетная плата: http://ali.ski/rq8wz8
- Arduino uno: http://ali.ski/gC_mOa
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Проект “Универсальная сигнализация” призван помочь вам защитить свой дом от разных напастей: несанкционированного проникновения в квартиру или дом и высокой концентрации углекислого газа.
Подключать будем все датчики по схеме приведенной в самом начале этой статьи. Так как на все датчики одного пина 5V не хватит, нужно либо скручивать контакты, либо использовать специальную плату прототипирования, в которой уже имеются замкнутые контакты расширения.
После подключения всех датчиков нужно скопировать программный код приведенный ниже и вставить его в программу Arduino IDE после чего этот программный код нужно загрузить в ардуино.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #define pirPin 9 // Объявляем переменную для датчика движения и указываем пин int SoundPin = A4; //Объявляем переменную для датчика звука и указываем пин int Count = 0 ; int relay1 = 6 ; // Объявляем переменную для реле 1 и указываем пин int relay2 = 5 ; // Объявляем переменную для реле 2 и указываем пин int relay3 = 4 ; // Объявляем переменную для реле 3 и указываем пин int relay4 = 3 ; // Объявляем переменную для реле 4 и указываем пин const int gassensorpin = A5; //Объявляем переменную для сенсора газа, указываем пин int gassensorvalue = 0 ; //Объявляем переменную для хранения значения с датчика газа и приравниваем ее к 0 int buzzer = 8 ; //Обявляем переменную для пьезоизлучателя, указываем пин void setup () { pinMode (SoundPin, INPUT ); //Назначаем пин для датчика звука как вход pinMode (pirPin, INPUT ); // Назначаем пин датчика движения как вход pinMode (relay1, OUTPUT ); //назначаем пин как реле как выход pinMode (relay2, OUTPUT ); //назначаем пин как реле как выход pinMode (relay3, OUTPUT ); //назначаем пин как реле как выход pinMode (relay4, OUTPUT ); //назначаем пин как реле как выход } void loop () { gassensorvalue = analogRead (gassensorpin); //Считываем значение с датчика газа if (gassensorvalue > = 600 ) // задаем порог уровня загазованности { digitalWrite (relay1, LOW ); // Включаем реле, к которому подключен вентилятор tone (buzzer, 1915 ); //Подаем сигнал пьезоизлучателем delay ( 3000 ); } else { digitalWrite (relay1, HIGH ); //Выключаем реле с вентилятором noTone(buzzer); //Выключаем сигнал пьезоизлучателя } int pirVal = digitalRead (pirPin); if (pirVal = = HIGH ) // Если происходит движение { digitalWrite (relay2, LOW ); //то Включаем реле, к которому подключено освещение digitalWrite (relay3, LOW ); // включаем реле, к которому подключено освещение digitalWrite (relay4, LOW ); // включаем реле, к которому подключено освещение tone (buzzer, 1700 ); //Подаем сигнал пьезоизлучателем delay ( 3000 ); } else { digitalWrite (relay2, HIGH ); //Выключаем реле digitalWrite (relay3, HIGH ); //Выключаем реле digitalWrite (relay4, HIGH ); //Выключаем реле noTone(buzzer); //Выключаем сигнал } Count = analogRead (A4); if (Count> 800 ) { digitalWrite (relay2, LOW ); //Включаем реле, к которому подключено освещение digitalWrite (relay3, LOW ); //Включаем реле, к которому подключено освещение digitalWrite (relay4, LOW ); //Включаем реле, к которому подключено освещение tone (buzzer, 1014 ); //Подаем сигнал пьезоизлучателем delay ( 1000 ); } else { digitalWrite (relay2, HIGH ); //Выключаем реле digitalWrite (relay3, HIGH ); //Выключаем реле digitalWrite (relay4, HIGH ); //Выключаем реле noTone(buzzer); //Выключаем сигнал } } |
После загрузки программного кода на вашем устройстве будет реализована следующая логика: если пороговое значение шума или загазованности будет превышено, а также если сработает датчик движения, то включается пьезоизлучатель – для подачи сигнала – и реле – для включения вентиляции в случае загазованности и света для отпугивания нежелательных гостей.
Я постарался прокомментировать каждую строчку кода, чтоб можно было изменять под себя и пины подключения и задержку между срабатываниями.
Подробная работа показана в видео приведенном чуть ниже.