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

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Универсальная сигнализация на arduino с отправкой смс

27 мая, 2017

Схема подключения:

Для данного проекта нам понадобится:

Датчик движения: http://ali.ski/EPkJs | Gearbest HC-SR501: http://fas.st/9YvTp

Датчик газа: http://ali.ski/6JRA_ | gearbest: http://fas.st/HB1Ds

Датчик протечки воды: http://got.by/1hzcye

Модуль реле:http://ali.pub/1hzd3n

Zummer: http://got.by/1hzdau

Геркон (датчик открытия двери): http://got.by/1hzdjz

Gsm модуль NEOWAY M590: http://got.by/1hzdsx

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

 

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

Сама схема подключения универсальной сигнализации представлена в начале статьи.

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

Скетч:

#include <SoftwareSerial.h> //подключаем библиотеку для программного Rx Tx
SoftwareSerial mySerial(2, 3); // RX, TX
#define pirPin 9 // Объявляем переменную для датчика движения и указываем пин
int Count = 0;
int relay1 = 6; // Объявляем переменную для реле 1 и указываем пин
int relay2 = 5; // Объявляем переменную для реле 2 и указываем пин
int relay3 = 4; // Объявляем переменную для реле 3 и указываем пин
int relay4 = 7; // Объявляем переменную для реле 4 и указываем пин
const int gassensorpin = A5; //Объявляем переменную для сенсора газа, указываем пин
int gassensorvalue = 0; //Объявляем переменную для хранения значения с датчика газа и приравниваем ее к 0
int water = A0; //Объявляем пин для подключения датчика дождя
unsigned int waterValue = 0; //Создаем переменную для хранения значений с датчика воды и приравниваем его к 0
int Door_sensor = 10; // Объявляем пин для подключения датчика открытия двери
int Door_val = 0; // Объявляем переменную для хранения состояния датчика
int buzzer = 8; //Обявляем переменную для пьезоизлучателя, указываем пин
void setup() {
 pinMode(pirPin, INPUT); // Назначаем пин датчика движения как вход
 pinMode(Door_sensor, INPUT); //Назначаем пин датчика открытия двери как вход
 pinMode(relay1, OUTPUT); //назначаем пин как реле как выход
 pinMode(relay2, OUTPUT); //назначаем пин как реле как выход
 pinMode(relay3, OUTPUT); //назначаем пин как реле как выход
 pinMode(relay4, OUTPUT); //назначаем пин как реле как выход
 delay(2000); //время на инициализацию модуля
 Serial.begin(115200); //скорость порта
 Serial.println("Signalization v1.0");
 mySerial.begin(115200);

 mySerial.println("AT+CMGF=1"); //режим кодировки СМС - обычный (для англ.)
 delay(100);
 mySerial.println("AT+CSCS=\"GSM\""); //режим кодировки текста
 delay(100);
 
}

void loop() {
 gassensorvalue = analogRead(gassensorpin);//Считываем значение с датчика газа
 if (gassensorvalue >= 600) // задаем порог уровня загазованности 
 {
 
 mySerial.println("AT+CMGS=\"+71234567890\""); // даем команду на отправку смс
 delay(100);
 mySerial.print("gas"); // отправляем текст
 mySerial.print((char)26); // символ завершающий передачу
 Serial.println("ok");
 tone(buzzer, 1915); //Подаем сигнал пьезоизлучателем
 delay(3000);
 digitalWrite(relay1, LOW); // Включаем реле, к которому подключен вентилятор
 delay(15000);
 
 }
 else
 {
 digitalWrite(relay1, HIGH); //Выключаем реле с вентилятором
 noTone(buzzer); //Выключаем сигнал пьезоизлучателя
 }
 int pirVal = digitalRead(pirPin);
 if(pirVal == HIGH) // Если происходит движение 
 {
 mySerial.println("AT+CMGS=\"+71234567880\""); // даем команду на отправку смс
 delay(100);
 mySerial.print("Motion"); // отправляем текст
 mySerial.print((char)26); // символ завершающий передачу
 Serial.println("ok");
 digitalWrite(relay2, LOW); //то Включаем реле, к которому подключено освещение
 digitalWrite(relay3, LOW); // включаем реле, к которому подключено освещение
 digitalWrite(relay4, LOW); // включаем реле, к которому подключено освещение
 tone(buzzer, 1700); //Подаем сигнал пьезоизлучателем
 
 delay (10000);
 }
 else
 {
 digitalWrite(relay2, HIGH); //Выключаем реле
 digitalWrite(relay3, HIGH); //Выключаем реле
 digitalWrite(relay4, HIGH); //Выключаем реле
 noTone(buzzer); //Выключаем сигнал
 }

 waterValue = analogRead(water);//Считываем значения с датчика дождя
 if(waterValue<300) //задаем пороговое значение срабатывания сигнализации
 {
 mySerial.println("AT+CMGS=\"+1234567890\""); // даем команду на отправку смс
 delay(100);
 mySerial.print("Water!"); // отправляем текст
 mySerial.print((char)26); // символ завершающий передачу
 Serial.println("ok");
 tone(buzzer, 1000); //Подаем сигнал пьезоизлучателем
 delay (10000);
 }
 else
 {
 noTone(buzzer); //Выключаем сигнал
 }
 Door_val = digitalRead(Door_sensor); //Считываем значения с датчика открытия двери
 if (Door_val == LOW){ //Дверь открыта
 digitalWrite(Door_sensor, LOW);
 {
 mySerial.println("AT+CMGS=\"+71234567890\""); // даем команду на отправку смс
 delay(100);
 mySerial.print("Dooropen"); // отправляем текст
 mySerial.print((char)26); // символ завершающий передачу
 Serial.println("ok");
 tone(buzzer, 1700); //Подаем сигнал пьезоизлучателем
 delay (5000);
 }
 }
 else
 {
 noTone(buzzer); //Выключаем сигнал
 }


}

 

Ссылка на скетч: https://yadi.sk/d/5drVRxcv3JaLvB

Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.

Видео:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

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

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·