• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Raspberry pi
      • Raspberry pi server
      • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
    • Другие контроллеры
  • ЧПУ
  • 3d печать
  • Умный дом
    • Home Assistant
  • Об авторе

Урок 11. Универсальная сигнализация на Arduino

Январь 31, 2017

В этом уроке мы подключим Датчик движения, датчик звука, датчик газа MQ-2, пьезоизлучатель и модуль на 4 реле. Настроим эти датчики так чтоб у нас включался свет и подавался звуковой сигнал при срабатывании какого либо датчика.

В этом уроке нам понадобится:

  1. Модуль из 4 реле: http://ali.ski/vGIlhm
  2. Датчик газа MQ-2: http://ali.ski/6JRA_
  3. Датчик звука: http://ali.ski/9xeBwK
  4. Пьезоизлучатель: http://ali.ski/9mNnRi
  5. Датчик HC-SR501: http://ali.ski/EPkJs
  6. Контактные провода: http://ali.ski/Exjr3
  7. Макетная плата: http://ali.ski/rq8wz8
  8. Arduino uno: http://ali.ski/gC_mOa

Проект “Универсальная сигнализация” призван помочь вам защитить свой дом от разных напастей: несанкционированного проникновения в квартиру или дом и высокой концентрации углекислого газа.

Подключать будем все датчики по схеме приведенной в самом начале этой статьи. Так как на все датчики одного пина 5V не хватит, нужно либо скручивать контакты, либо использовать специальную плату прототипирования, в которой уже имеются замкнутые контакты расширения.

После подключения всех датчиков нужно скопировать программный код приведенный ниже и вставить его в программу Arduino IDE после чего этот программный код нужно загрузить в ардуино.

#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); //Выключаем сигнал
 
 
 }
 
}

 

После загрузки программного кода на вашем устройстве будет реализована следующая логика: если пороговое значение шума или загазованности будет превышено, а также если сработает датчик движения, то включается пьезоизлучатель – для подачи сигнала – и реле – для включения вентиляции в случае загазованности и света для отпугивания нежелательных гостей.

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

Подробная работа показана в видео приведенном чуть ниже.

Видео:

Primary Sidebar

Поиск

Новые записи

  • Вывод картинки на oled дисплей и контроллер Arduino, Esp8266, ESP32
  • Получаем доступ по ssh к серверу Home Assistant на HassOS
  • Включение компьютера удаленно с помощью смартфона и esp8266
  • Глушилка wi-fi сигнала на esp8266 или как-же достали соседи шуметь по ночам
  • Отправка сообщений по Email на ESP32

Подписаться на YouTube!


Secondary Sidebar

Свежие записи

  • Вывод картинки на oled дисплей и контроллер Arduino, Esp8266, ESP32
  • Получаем доступ по ssh к серверу Home Assistant на HassOS
  • Включение компьютера удаленно с помощью смартфона и esp8266
  • Глушилка wi-fi сигнала на esp8266 или как-же достали соседи шуметь по ночам
  • Отправка сообщений по Email на ESP32




Copyright_У Павла! © 2021 ·