Arduino com. Arduino GSM сигнализация: бюджетное DIY решение для охраны

Как сделать GSM сигнализацию на Arduino своими руками. Какие компоненты понадобятся для сборки. Как настроить и запрограммировать устройство. Какие функции имеет самодельная охранная система.

Содержание

Компоненты для сборки GSM сигнализации на Arduino

Для создания простейшей GSM сигнализации на базе Arduino понадобятся следующие основные компоненты:

  • Плата Arduino Nano или Micro
  • GSM модем Neo M590 или SIM800
  • Датчик движения PIR AM312 или другой сенсор
  • Аккумулятор 18650 или блок питания 5В
  • SIM-карта любого оператора

Дополнительно могут потребоваться провода, резисторы, светодиоды и другие мелкие детали для подключения. Общая стоимость компонентов составит около 1000-1500 рублей, что делает проект действительно бюджетным.

Схема подключения и распиновка

Распиновка основных элементов сигнализации для Arduino Nano выглядит следующим образом:

  • D8-D11 — подключение датчиков (до 4 штук)
  • D12 — контроль внешнего питания
  • D2 — кнопка включения/отключения охраны
  • D4 — управление сиреной
  • D5 — загрузка GSM модема
  • D13 — индикаторный светодиод

GSM модем подключается к пинам TX и RX Arduino для обмена данными. Питание на компоненты подается либо от аккумулятора, либо от стабилизированного блока питания 5В.


Функции и возможности самодельной GSM сигнализации

Разработанная сигнализация на базе Arduino обладает следующим функционалом:

  • Постановка/снятие с охраны с помощью кнопки или SMS
  • Отправка SMS и звонок при срабатывании датчиков
  • Контроль до 4 охранных зон (датчиков)
  • Мониторинг внешнего питания
  • Управление дополнительными устройствами по SMS
  • Запрос баланса SIM-карты
  • Энергосберегающий режим сна для автономной работы

Все настройки и управление осуществляются с помощью SMS-команд с телефона администратора. Это позволяет удаленно контролировать систему.

Программирование Arduino для GSM сигнализации

Для программирования устройства используется стандартная среда разработки Arduino IDE. Основной алгоритм работы сигнализации выглядит следующим образом:

  1. Инициализация и настройка GSM модема
  2. Ожидание SMS-команд в активном режиме
  3. При постановке на охрану — переход в режим сна
  4. Пробуждение по сигналу от датчиков
  5. Отправка тревожных SMS и звонков
  6. Ожидание команд и повторный переход в сон

Код занимает около 11-14 КБ в зависимости от модели Arduino. Для хранения настроек используется 40 ячеек EEPROM. Прошивка оптимизирована для длительной автономной работы от аккумулятора.


Настройка и отладка GSM сигнализации

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

  • Номер телефона администратора
  • Режим энергосбережения (сна)
  • Настройки датчиков
  • USSD-запрос для проверки баланса
  • Текст SMS-уведомлений

Все настройки задаются с помощью SMS-команд с определенным синтаксисом. Например, ADMIN:1234567890 задает номер администратора, а SLEEP:ON включает режим сна. Проверить текущие настройки можно командой CONFIG.

Основные SMS-команды для управления

Для управления самодельной GSM сигнализацией на Arduino используются следующие основные SMS-команды:

  • ARM — постановка на охрану
  • DISARM — снятие с охраны
  • STATUS — запрос текущего состояния
  • BALANCE — проверка баланса SIM-карты
  • RESET — перезагрузка устройства
  • BELL:ON — включение сирены
  • SLEEP:OFF — отключение режима сна

Команды отправляются на номер SIM-карты, установленной в GSM модем сигнализации. Ответ приходит в виде SMS на телефон администратора. Это позволяет удобно управлять системой удаленно.


Преимущества и недостатки самодельной GSM сигнализации

Какие плюсы и минусы имеет GSM сигнализация на Arduino, сделанная своими руками? Рассмотрим основные моменты:

Преимущества:

  • Низкая стоимость компонентов
  • Гибкая настройка под свои задачи
  • Возможность модернизации и добавления функций
  • Автономная работа от аккумулятора
  • Простота монтажа и обслуживания

Недостатки:

  • Ограниченный функционал по сравнению с профессиональными системами
  • Необходимость навыков программирования для доработки
  • Отсутствие сертификации и гарантий
  • Возможны ложные срабатывания

В целом, самодельная GSM сигнализация подходит для простой охраны дачи, гаража или небольшого офиса. Для защиты ценного имущества лучше использовать профессиональные решения.

Рекомендации по эксплуатации самодельной сигнализации

Чтобы обеспечить стабильную работу GSM сигнализации на Arduino, следует придерживаться нескольких правил:

  • Использовать качественный стабилизированный блок питания
  • Регулярно проверять баланс SIM-карты
  • Периодически тестировать срабатывание датчиков
  • Защитить устройство от влаги и пыли
  • Настроить автоматическое включение при подаче питания
  • Установить резервный аккумулятор на случай отключения электричества

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



Arduino Придбати в Києві, Україна

Шановні клієнти! У зв’язку з перебоями у енергопостачанні, обробка замовлень може займати 2-4 дні. Сподіваємося на Ваше розуміння.

Все буде Україна!

Каталог

  • Новинки магазину
  • Подарункові сертифікати, сувеніри
  • Arduino контролери
    • Контролери Arduino (оригінал, Італія)
    • Контролери Arduino (Китай)
    • Arduino для розробників
    • Корпуса для контролерів Arduino
    • Набори на основі контролерів Arduino
  • Міні-компьютери
    • Asus Tinker Board
    • Raspberry Pi
    • NVIDIA
    • Orange Pi
    • LattePanda
    • Odroid
    • BeagleBone
    • FriendlyARM
    • Pine 64
  • Raspberry Pi
    • Міні-комп’ютери Raspberry Pi
    • Набори Raspberry Pi
    • Дисплеї
    • Корпуси
    • Охолодження
    • Периферія, розширення
    • Блоки живлення для Raspberry
    • WiFi та GSM
    • Відеокамери
    • Звук
    • Література по Raspberry
  • Засоби розробки, програматори
    • M5Stack
    • AVR
    • BBC micro:bit
    • Програматори
    • STM32 Discovery
    • STM32 Nucleo
    • STM8, STM32
    • ESP8266, ESP32
    • FPGA
    • Teensy
    • Bluetooth
    • LoRa
    • Інше
    • Texas Instruments
    • NXP
  • Карти пам’яті SD, Флешки
  • Набори (DIY Kits), конструктори
    • M5Stack
    • Освітні STEM набори Arduino
    • Освітні набори Raspberry Pi
    • Освітні STEM набори Micro:bit
    • Набори Arduino (Розумний Дім, Природа)
    • «Практична електроніка»
    • Освітні набори «Амперка»
    • Радіоконструктори
    • Конструктори «Зроби сам»
    • Набори радіодеталей
    • Набори компонентів
  • RF, Wi-Fi, Bluetooth, GSM, GPS, FM, XBee
    • Антенны
    • RFID, NFC
    • Wi-Fi ESP8266, ESP32
    • Wi-Fi
    • GSM, GPRS
    • Bluetooth
    • Радіомодулі
    • XBee та інші *Bee
    • GPS
    • FM
  • SONOFF Розумний будинок
    • Wi-Fi вимикачі
    • Wi-Fi розумні розетки
    • Wi-Fi освітлення
    • Датчики
    • Wi-Fi камери
    • Корпуси
  • Метеостанції
  • Плати розширень, модулі, шилди
    • Силові
    • Комунікаційні
    • Прототипування
    • Відображення інформації
    • Переферійні
    • GPS модулі
    • Audio, звук, голос, mp3
    • Інші
  • TFT, LCD, OLED, E-Ink дисплеЇ
    • TFT дисплеї (HDMI)
    • TFT дисплеї в корпусі (HDMI, VGA, AV)
    • TFT дисплеї (модулі, шилди)
    • TFT HMI панелі Nextion
    • LCD дисплеї
    • OLED дисплеї
    • E-Ink
  • Audio, Звук, mp3
    • Відтворення
    • Запис
    • Підсилювання
    • Динаміки
    • Мікрофони
  • Датчики
    • Звук, ультразвук
    • Освітлення, ІЧ, вогонь, ультрафіолет
    • Рух, відстань
    • Температура, вологість
    • Акселерометри, гіроскопи
    • Напруга, струм
    • Газ, дим, пил, повітря
    • Тиск
    • Для рідини
    • Ph, хімічний аналіз
    • Механічний вплив
    • Індуктивні датчики
    • Магнітне поле
    • Медицина, здоров’я
    • Інше
  • Робототехніка
    • Роботи на колесах
    • Роботи гусеничні
    • Роботи крокуючі
    • Роботи-маніпулятори
    • Робо-платформи
    • Міжплатні стійки
    • Шестерні, пассіки, втулки, кронштейни
    • Колеса
    • Інше
  • Радіокеровані іграшки, STEM-конструктори
  • Мотори, крокові двигуни, сервомотори, драйвера
    • Сервомотори
    • Цифрові сервоприводи
    • Крокові двигуни
    • Лінійні приводи актуатори
    • Мотори
    • Мотори для авіа-моделей
    • Драйвери та контролери
    • Інше
  • Насоси, помпи, електромагнітні клапани
  • Кабелі, дроти, перехідники, шнури живлення, хаби
    • Дроти монтажні, кабелі
    • Кабель AWG
    • 220В
    • USB
    • USB-хаби
    • HDMI
    • Ethernet
  • Макетування
    • Безпаєчні макетні плати
    • Макетні плати під пайку
    • Стеклотекстоліт
    • Дроти, перемички
    • Кнопки, клавіатури
  • Роз’єми, конектори, клемники
    • Роз’єми низковольтні DC
    • Роз’єми USB
    • Роз’єми
    • Роз’єми XH
    • Конектори
    • Конектори Dupont
    • Конектори PLS, PBS
    • Клемники
    • ВЧ-Роз’єми та перехідники BNC
    • SMA Роз’єми та перехідники
  • Радіодеталі
    • Напівпровідники
    • Мікроконтролери
    • Резистори
    • Резистори змінні
    • Резистори підлаштування
  • Реле
    • Електромеханічні
    • Твердотільні
    • Пристрої на базі реле
  • Генератори сигналів
  • Вимикачі, перемикачі, кнопки, дистанційні перемикачі
    • Вимикачі, перемикачі
    • Дистанційні вимикачі
    • Кнопки
    • Концевики
  • Конвертори, перетворювачі
    • USB — UART — TTL
    • RS232, RS485, DB9
    • Відео, VGA, HDMI, DVI
    • Перетворювачі рівней
    • Інше
  • LED освітлення, фонарики
  • Світлодіоди світлодіодні індикатори, лазери
    • Світлодіоди
    • Світлодіодні модулі
    • Світлодіодні індикатори
    • Світлодіодні ленти
    • Світлодіодні стрічки (периферія)
    • Контролери і драйвери світлодіодів
    • Лазери
  • Джерела живлення, подовжувачі
    • Блоки живлення
    • Блоки живлення негерметичні
    • Модулі живлення
    • Лабораторні блоки живлення
    • Портативні батареї Powerbank
    • Сонячна енергія, генератори
    • Кабеля живлення, перехідники
    • Мережеві фільтри-подовжувачі
    • Інше
  • Перетворювачі напруги, стабілізатори, димери
    • Стабілізатори напруги
    • Перетворювачі підвищуючі
    • Перетворювачі понижуючі
    • Перетворювачі двонаправлені
    • Силові ключі, регулятори потужності
  • Зарядні пристрої, зарядні модулі
    • Зарядні пристрої
    • Разрядні пристрої
    • Зарядні пристрої мережеві
    • Зарядні пристрої (модулі)
  • Пристрої введення, клавіатури, джойстики
  • Акумулятори, батарейки, батарейні відсіки
    • Акумулятори Li-Po
    • Акумулятори Li-Po (форматні)
    • Акумулятори NiMH
    • Акумулятори Li-Ion, 18650
    • Акумулятори Гелеві, AGM
    • Батарейки
    • Тестери батарей та акумуляторів
    • Батарейні відсіки 18650
    • Батарейні відсіки AA
    • Батарейні відсіки AAA
    • Батарейні відсіки інші
  • Деталі для літаючих апаратів
    • Телеметрія
    • Польотні контролери
    • Радіо апаратура, приймачі
    • Регулятори ходу ESC
    • Рами, шасі, корпуси
    • Гвинти й пропелери
    • Мотори
    • GPS і компас
    • FPV
    • Роз’єми, коннектори
    • Проводи, кабелі, перехідники
    • Датчики струму, BECи
    • Інше
  • Охолодження
    • Вентилятори 30×30
    • Вентиляторb 40×40
    • Вентилятори 50×50
    • Вентилятори 60×60
    • Вентилятори 70×70
    • Вентилятори 80×80
    • Вентилятори 90×90
    • Вентилятори 120×120
    • Радіатори
    • Термопасти, теплопровідні клеї
  • Інструменти, обладнання
    • Клеї
    • Кусачки, бокорізи, пасатижі
    • Ножі, скальпелі, ножиці
    • Викрутки, ключі
    • Пінцети, набори для ремонту
    • Шуруповерти, дрилі, свердла
    • Мультитул
    • Клеєві пістолети
    • Ізолента, скотч, термоусадка
    • Лінійки, рулетки
    • Кліщі (обтиск, опресовування), знімачі ізоляції
    • Набори компонентів
    • Інші інструменти
  • Паяльне обладнання
    • Паяльники і набори
    • Паяльні станції
    • Фени, газові горілки и паяльники
    • Паяльні аксесуари
    • Флюси, паяльні пасти
    • Припій
    • Жала для паяльників
    • Інші паяльні витратні матеріали
  • Касетниці, органайзери, сортовики
  • Вимірювальні прилади, мультиметри, осцилографи, вимірювальні модулі
    • Мультиметри (тестери)
    • Осцилографи
    • Щупи, затискачі
    • Вимірювальні модулі
    • Тестери елементів, кабелів
    • Температура
  • Готові пристрої
  • 3D принтери і ЧПУ
    • Підшипники полімерні
    • Підшипники лінійні
    • Підшипники радіальні
    • Вали, муфти, гайки
    • Концеві опори
    • Підшипники фланцеві
    • Шківи, ремені
    • Електроніка
    • Двигуни
    • Драйвери
    • Екструдери, Столи
    • Охолодження
  • 3D пластик Monofilament
    • ASA
    • ABS
    • PLA
    • coPET
    • HIPS
    • ELASTAN
    • SAN
    • PET
    • PBT
  • 3D пластик Plexiwire Filament
    • ABS
    • ABS+
    • PLA
    • FLEX
    • NYLON
  • Термопластик полікапролактон для ліплення
  • 3D Ручки
  • Магніти неодимові
    • Прямокутні
    • Круглі
    • Кріпильні
    • Кільця
  • Інше
  • Література
  • Розпродаж
  • Корпуси універсальні, ніжки
    • Корпуси
    • Ніжки для корпусів
  • Xiaomi
  • Архівні товари

Arduino Arduino Original ARM AVR bluetooth CPLD dc-dc DISCOVERY DIY ESP32 ESP8266 Ethernet FPGA FPV GPS GSM IR LCD LED LoRa Micro:Bit MSP Nucleo NXP Odroid OrangePi PIC Raspberry Pi RFID RTC SD card servo Sonoff STEM STM32 TFT LCD Wi-Fi WiFi XBee Zigbee Драйвер Зарядний Іграшка виміри інструмент Книги конектори Корпус Набір KIT перехідник Живлення реле Кроковий

Статьи →

Моховий нічник

Це шматочок лісу вдома, який радує погляд та допомагає розслабитися. Цей неймовірний живий куточок дуже легко зробити самому. →

Українізація бібліотеки Adafruit_GFX_Library для матриць MAX7219 та LCD

Для виводу текстової інформації на саморобний блок світлодіодних матриць з загальним анодом в середовищі Arduino рідною мовою я стикнувся з проблемою, що та бібліотека LedContorl, якою я зазвичай користуюсь, неспроможна здійснити обертання на заданий кут →

Реєстратор параметрів вологості та температури

Добрий день. Виникла необхідність в вимірюванні вологості та температури в приміщенні протягом дня з одночасним їх записом для подальшої →

Плазмофон

Мы настолько привыкли к высоким технологиям, что забываем о простых физических явлениях и механизмах. А ведь на всём простом строится что-то →

Автоматичний кран для води на Arduino своїми руками

Доброго дня, хочу розповісти Вам про виготовлення корисного пристрою – автоматичного крану для води на Arduino.


Подарункові сертифікати, сувеніри

Arduino контролери

Міні-компьютери

Raspberry Pi

Засоби розробки, програматори

Карти пам’яті SD, Флешки

Набори (DIY Kits), конструктори

RF, Wi-Fi, Bluetooth, GSM, GPS, FM, XBee

SONOFF Розумний будинок

Метеостанції

TFT, LCD, OLED, E-Ink дисплеЇ

Плати розширень, модулі, шилди

Audio, Звук, mp3

Датчики

Робототехніка

Радіокеровані іграшки, STEM-конструктори

Мотори, крокові двигуни, сервомотори, драйвера

Насоси, помпи, електромагнітні клапани

Кабелі, дроти, перехідники, шнури живлення, хаби

Макетування

Роз’єми, конектори, клемники

Радіодеталі

Реле

Вимикачі, перемикачі, кнопки, дистанційні перемикачі

Генератори сигналів

Конвертори, перетворювачі

LED освітлення, фонарики

Світлодіоди світлодіодні індикатори, лазери

Джерела живлення, подовжувачі

Перетворювачі напруги, стабілізатори, димери

Зарядні пристрої, зарядні модулі

Акумулятори, батарейки, батарейні відсіки

Пристрої введення, клавіатури, джойстики

Деталі для літаючих апаратів

Охолодження

Інструменти, обладнання

Паяльне обладнання

Касетниці, органайзери, сортовики

Вимірювальні прилади, мультиметри, осцилографи, вимірювальні модулі

Готові пристрої

3D принтери і ЧПУ

3D пластик Monofilament

3D пластик Plexiwire Filament

3D Ручки

Термопластик полікапролактон для ліплення

Магніти неодимові

Інше

Література

Корпуси універсальні, ніжки

Розпродаж

Xiaomi

Архівні товари

Бюджетная + Энергоэффективная GSM сигнализация на Arduino

Вдохновление питал из этих двух известных обзоров на этом сайте: mysku. club/blog/ebay/51321.html, mysku.club/blog/ebay/44545.html
Изначально хотел свою маленькую энерго эффективную (от любого акума 4,2В) но с более грамотным кодом сигналку, хотя ардуино я знал на уровне базовых уроков :).
За основу была взята статья от CTAHOK и с неё началось медленное более углубленное изучение контроллера и Си.

Для понимании происходящего эти два обзора обязательны к прочтению.

Замечу, Arduino Pro Mini RobotDyn реально меньше кушает, так что если вам нужен автономный вариант, не пренебрегайте этим советом. Но главное это грамотный уход в сон. Стандартный sleep_cpu() (в большинстве реализаций только он используется) на самом деле не полностью тушит «свет». Играясь разными ADCSRA = 0; и т.п. можно снизить потребление тока во сне на уровне погрешности дешового мультиметра. После долго изучения, проб и ошибок, была написанна рабочая версия сигналки от 18650 но с приходом апетита хотелось чтоб это всётаки было больше похоже на законченное решение а не инженерный образец плюс добавить функциональсноти как у kvolk. Вот и появилась, спустя много времени, эта статья с первой публичной версией. Всё делалось на энтузиазме и ради процесса, если комуто не угодил функциональностью, описанием, уж извините. Хоть всё работает просто, но описать все эти нюансы оказалось непростой задачей, возможно даже чтото упустил, забыл, не протестировал. Буду рад всем найденым багам и предложениям по улучшению. Хотя вроде багов не осталось 🙂

Дисклеймер

Надеюсь вы понимаете что на реальные объекты нужно ставить проф решения. Данное решение хоть и позволяет отправлять хозяину звонок о нарушении охроняемого контура, всежё это игрушка, предназначенная для охраны чегото не существенного.
Из этого также следует что это изделие для тех кто хоть чтото понимает в микроэлектронике и прогромировании.
Ну и в 23 году сигналка с общенением только через смс, выглядит как то нелепо (интернета нет и не предвидется) поэтому as-is.

Минимальный набор

этого достаточно чтоб подключиться к компу и просто проверить в работе, посмотреть команды

1. Плата ардуино Nano или Micro
2. GSM modem Neo M590 или SIM800
3. Любой сенсор например PIR AM312 или кусок провода
Более подробно ниже.

Важно

На комплектующих, сборке, настройке модема и других базовых моментах останавливаться не буду, это описанно и в статьях выше и много где еще, пожалуйста прочтите их. Скажу лишь модем надо предварительно настроить на скорость 9600 остальные настройки модема желательны по умолчанию и архи важно иметь хорошее питание выдающее честные 2 Ампера и надежное подсоединение ко всем пинам. Все не используемые пины заземлить. Более подробно про модем mysku.club/blog/aliexpress/37745.htmlВыхода в интернет у модема нет. Пароль с сим карты убрать. Все команды управления сигнализацией только латиницей и только большими. Если в будущем размер прошивки превысит 16Кб его можно уменьшить (если комуто важно 16Кб) с небольшим урезанием фунционала.

Критика

Нормально отношусь. Графики, картинки добавленны.
По поводу выхода в интернет (справедливо урезоннили дерзость юнца) я както про это и не подумал — согласен, имеете право думать что там троян, боян и т.д. но если по делу:

  • Исходя из дисклеймера вы не должны ставить это изделие на дорогие для вас объекты, а значит и притензии «ты украдешь у нас важную информацию» не уместны.
  • Опять исходя из дисклеймера, если вы понимаете в прогромировании, значит вы знаете как проверить что делает модем. Если нет — ниже описанно как. Если всеравно не понятно — лучше закрыть эту статью.
  • Если всёравно боимся можно поставить симку без выхода в интернет.
  • Или на плате Nano в Arduino, запускаете Serial монитор и легко проверяете все команды которые отправляются на модем. Как он конфигурируется. Куда звонит. Что отправляет и т.д.
  • Многие из вас юзают китайские сигналки, IP камеры и тд. Все они имеют закрытый код. Почти все они имеют бэкдор. Вы купили их за деньги но при этом вы не критикуете что там закрытый код и не боитесь что они крадут ваши данные. Тут же всё бесплатно, всё легко проверяется как на ладони — но море недовольства.
  • Соурсов: сори не будет. Free for use w/o source.
  • Если не переубедил и страх остался — просто не заливайте прошивку.

Если не работает

Ресеты когда ищет сеть, звонит, смс — проблема питания или контактов
Ресеты когда ищет сеть, звонит, смс — убедитесь что у вас есть деньги и для звонков и для смс
Выключается когда ищет сеть, звонит, смс — проблема питания или контактов
Ресетится или перестаёт отвечать (зависает) при первом запуске или настройке — обнулите весь еепром. все ячейки должны быть или 00 или FF
Ресетится циклически — уберите пароль на симке
Ресетится циклически — убедитесь что у вас GSM симка а не CDMA например
Ресетится циклически — убедитесь что у вас активная GSM симка

В кратце как работает (более подробно ниже): Может работать как с уходом в сон так и всегда включенна. Для всегда включена лучше запитывать от БП. Если в Багдаде всё спокойно, ардуинка выключает модем и сама уходит в сон, предварительно включив режим охраны. В режиме сна её может пробудиь только тревога. GSM естественно не работает для экномии батареи. Когда тревога — ардуино просыпается, включает модем, отправялет смс о тревоге, некоторое время бодрствует — для приема смс-команд, и опять уходит в сон. Программа на строенна так что если сбой мобильной сети то ардуино рестартуется, и опять благополучно уходит в сон/охрану.
Касательно баланса — пока что, прошивка работает только в режиме английских букв и USSD запроса баланса. Т.е. чтобы работал баланс, ответ должен приходить латиницей через USSD а не смс-кой или звонком. Если у вашего оператора нет такой функции — отключите в настройках сигнализации получение баланса.

Техническая информация по проекту


Прошивка расчитанна на Arduino на чипе Atmega 168/328 (Uno, Nano, Pro Mini) и Atmega 16u4/32u4 (Micro/Leonardo). Подходят как платы 5В так и 3. 3В.
For Atmega 168/328:

Sketch uses 11530 bytes (37%) of program storage space. Maximum is 30720 bytes.
Global variables use 128 bytes (6%) of dynamic memory, leaving 1920 bytes for local variables. Maximum is 2048 bytes.

For Atmega 32u4:

Sketch uses 14394 bytes (50%) of program storage space. Maximum is 28672 bytes.
Global variables use 266 bytes (10%) of dynamic memory, leaving 2294 bytes for local variables. Maximum is 2560 bytes.

EEPROM использует всего 40 ячеек.

  • Arduino может питаться как от акума так и от БП так и от обоих вместе. Если только от акума то режим сна включать обезательно (без сна проработает около недели). Сколько долго может проработать от одной 18650 я не замерял но например PIR AM312 китайцы пишут потребляет 0.1 mA выходит достаточно долго (месяца 4 точно а то и полгода). В режиме сна потреблением ардуины можно пренебречь, будет потребление только у сенсоров.
  • GSM Modem используется: Neo 590/m590e (возможно и 6хх) и Sim800.
  • PIR датчики или герконовые датчики или любые другие с двумя состояниями: любые. 4 штуки. можно разные. Я проверял:
    HC-SR505/501 только 5В, out средний пин длительностью 8 секунд. мне не подходит как по размеру так и по питанию и по времени уровня.
    MINI SR602 out крайний пин. глюченный какойто.
    AM-312 pull-down не нужен, out средний пин. мне эти больше всего понравились. могут работать и от акума (менее 5в) и от БП 5 вольт. маленькие по размеру и потреблению тока. Но есть один нюанс. У меня их не получилось притянуть к земле они сами имеют подтяжку. Поэтому когда приходит звонок или смс, срабатывает тревога (получается ложная). Кто сможет это исправить пожалуйста сообщите.

Более подробное описание в разделе Подключение.

Распиновка и выводы

ATmega328P

#define Pin11 bit(PB3) //sensor 3
#define Pin10 bit(PB2) //sensor 2
#define Pin9  bit(PB1) //sensor 1
#define Pin8  bit(PB0) //sensor 0
#define ExtPwr  bit(PB4)// D12 пин тревоги отключения напряжения 220 вольт
#define AOFF  bit(PD2) //  D2 - INT0 кнопка включения отключения сигнализации. 
#define BELL  bit(PD4) //  D4 - пин внешней сирены или любого другого устроства которое будет включаться на время до 3 минут
#define BOOT  bit(PD5) //  D5 - пин загрузки модема
#define LED   bit(PB5) //  D13 led

ATmega32U4

#define Pin11 bit(PB7) //sensor 3
#define Pin10 bit(PB6) //sensor 2
#define Pin9  bit(PB5) //sensor 1
#define Pin8  bit(PB4) //sensor 0
#define ExtPwr  bit(PB2)// Mosi пин тревоги отключения напряжения 220 вольт
#define AOFF  bit(PD0) //  D3 - INT0 кнопка включения отключения сигнализации.
#define BELL  bit(PE6) //  D7 - пин внешней сирены или любого другого устроства которое будет включаться на время до 3 минут
#define BOOT  bit(PC6) //  D5 - пин загрузки модема
#define LED   bit(PC7) //  D13 led

Подключение

В случае с PIR AM312 средний вывод сенсора на любой пин ардуины (D8-D11) без резистора/заземления.

Пин контроля внешнего питания ExtPwr — просто от блока питания 5В плюсовой вывод на этот пин. Без делителей напряжения и прочего. Когда нет 220В то на этот пин не идёт высокий сигнал и сигналка срабатывает. Но если у вас ардуино 3,3 вольта то конечно делитель напряжения надо. Также делитель напряжения нужен если у вас ардуино 5В но блок питания скажем 7В. Если у вас питание только от акума то вам не нужен этот пин.

Если у вас питается и от сети и от акума, подключение акума к сети делаете так — mysku.club/blog/ebay/43282.html#comment1930875 Это чтобы не использовать акум когда есть 220.

Саму ардуину запитываете либо через USB порт либо через пины Vin (если БП более 5В) или 5V (если БП 5В или акум).

От блока питания/акума отдельная линия питания идёт на датчики. Чтобы они подолжали работать даже если ардуино выключится.

Кнопка включения отключения режима тревоги реагирует на землю т.е. пин AOFF, когда нажата кнопка подключенная к этому пину, должен притягиватся к земле.

На BELL пине при срабатывании тревоги появляетмя или лог 0 и лог 1 (настраивается) тем самым можно через реле или еще как, активировать какоето устройство, например здоровый школьный звонок в качестве сирены 🙂 (у соседа в совецкие времена когда еще не было ЧОПов висел такой). Ну или пожарную сигнализацию для ардуино. Как её подключать можно подсмотреть в этом обзоре сигнализации на ардуино — kolotushkin.com/article.php?id=33

BOOT пин через резистор 4,7 или 10 кОм просто подключается одним проводком к BOOT модема.

Модем запитывается либо отдельной линией либо через ардуино либо ардуино запитывается через модем (если на модеме дублируются пины питания). На своем 590 я вместо понижающего диода (который понижает напряжение с 5 до 4.2В) поставил перемычку. Модем прекрасно работает от 5 вольт. Перемычка мне дала то что у меня с двух сторон 5В и я могу ардуино запитывать через модем. Но каждый решает сам понижать напряжение для модема или нет. Главно помните что основные глюки и рестарты изза плохого питания модема. Лучше еще танталовый конденсатор подключить к выводам птания.

D13 пин можно использовать как внешний лед (либо использовать встроенный в ардуино)

У модема и ардуино обезательно общая земля. Tx модема на Rx ардуино. Rx модема на Tx ардуино.
Если плата 32u4 то используется Serial1 (PD2/PD3)

Настройка и синтаксис

Первая команда которую вы отправляете на модем должна быть RESETC. После этого необходимо произвести первоночальную настройку сигнализации (добавить номер, режимы и тд).
Длина смс с командами которые вы отправляете на модем максимум 64 символа.
Команда имеет формат ЧТО_НАСТРАИВАЕМ: НОВОЕ_ЗНАЧЕНИЕ например: SLEEP:OFF или SMS:0 или ADMIN:591691791
Номер телефона всегда указывается только номер без кода страны/региона макс длина 10 цифр.
Простые команды которые имеют только два состояния, можно передовать все в одном сообщении через пробел, соблюдая максимальную длину, например: SLEEP:ON S0:OFF и тд.
Если отправляете длинное смс (длинее 64) то модем не обработывает непоместившиеся команды.
Сложные команды (где длиное значение/текст) лучше передовать по одной, например номер админа, баланса и тд. Вы можете попробовать их объеденять по 3 или более команд в одно смс, но тогда результат проверять фактически. Если сигналка сообщила что ок значит ок (5 быстрых вспышек). иначе укарачивайте команду.
Проверить состояние конфига нельзя. Поэтому если сомневаетесь/запутались. Сбрасываем одной смс RESETC и другой смс настраиваем заново.

О логике работы

Модем регистрирует сим и регистрируется в gsm сети. Если это не получается он рестартуется. Если получилось модем после регистрации переходит в режим ожидания смс команд.

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

После рестарта ардуионо, режим перехода в охрану — после ожидания команд — всегда включен. Даже если до этого охрана была выключенна кнопкой или смс.

Далее после нескольких минут ожидания команд модем становится непосредственно на охрану.
При этом охрана может сопровождаться с уходом в сон (экономия энергии). Уход в сон это когда модем выключается. Ардуино выключается. Под питанием остаются только датчики. Из этого режима (охрана во сне) ардуино просыпается только если сработал датчик тревоги. Получается если находится в этом режиме (от батарейки) и сенсоры никто не беспокоит очень долго то когда сядет батарейка вы об этом не узнаете. Проверять напряжение во сне прошивка не умеет. Т.е. оставлять без присмотра, гдето в поле, на год и более не рекомендуется.

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

Смс не сработают, если приём этого смс совпал с уходом в сон, или уже во сне, со звонком как на сигнализацию так и от сигнализации и т.д. Т.е. например если вы отправили команду и тут же (сразу) получили звонок тревоги то ваша команда не сработала но зато вы узнали что есть проникновение в периметр охраны, смс команду придётся отправить еще раз, если это по прежнему актуально. Если вы отправили команду а прошло секунд 20-40 и вы получили звонок то скорее всего это ложная тревога от вашего смс. Кто сможет это «победить» напишите пожалуйста как.

Из выше описанной логики также следует что не отключайте режим охраны при включенном режиме сна — уйдёт в сон и не проснется. Также наоборот не включайте режим сна когда выключенна охрана(тревога).

Еще следите за временем ухода в сон и временем работы внешней сирены/звонка (если конечно включен режим внешней сирены). Время работы внешней сирены должно быть меньше того времени через которое ардуино уйдёт в сон (а в месте с ним и в режим охраны), если режим сна конечно включен. А то уход в сон при включенной внешней сирены вызывает неопределенное поведение.

После как сработала тревога, модем звонит на указанные номера и отправляет смс со статистикой и цикл повторяется. Т.е. опять несколько минут ждёт смс и потом становится на охрану. Букв много но на самом деле всё просто.

Завис не завис модем можно проверить либо по быстро мигающему леду в режиме приёма команд (если охрана не отключена), либо включить выключить охрану через кнопку или смс в режиме приёма команд, либо отправить смс команду в режиме приема команд и посмотреть на реакцию леда.

При отправке смс команд в режиме приёма если все команды в этом смс правильные и все успешно установлены то будет световая индикация. Если хоть одна команда не правильная то индикации не будет.

Про админа

При первом включении флаг ADMIN 0. После ресета флаг ADMIN 0. даже если если до этого адмн был установлен.
Когда флаг ADMIN 0 выполняем любые команды с любого номера. если 1 только от ADMIN
Флаг ADMIN 1 когда по смс отправили ADMIN:795695555 [ваш номер].
Добавить второй номер (только для получения звонка и смс о тревоге) командой ADMIN2:795795795 может только админ. команды второй номер отправлять не может. длина и регион второго номера должна быть как первый.
Удалив админ номер автоматом удаляются админ права и второй номер. Удалять может только админ.
После тревоги если есть телефон в еепром он автоматом становится админом. даже если админ не был установлен.

Про кнопку остановки охраны

Если тревога уже сработала (допустим хозяин зашёл) и хозяин (или даже не хозяин если знает где кнопка и что она делает) нажал стоп то звонок всеравно пройдет а потом уже охрана не будет реагировать на сенсоры. Повторное нажатие активирует охрану. Но в настройках «отложенное реагирование» на тревогу т.е. сигнализация срабатывает например через 30 сек после обнаружения тревоги в охроняемом периметре. Это сделано для того чтоб хозяин мог зайти нажать (секретную) кнопку и ардуино не будет звонить и отправлять смс. Но охрана остается выключенной. Если её включить повторно до условного времени (в нашем примере 30с) то звонок и смс будут. Получается если вам нужна и дальше охрана её повторно надо включать после 30 сек и до ухода в сон/охрану.
Если встеки вы забыли нажать второй раз (для включения, а охрана вам нужна) и сигналка ушла в сон (настроенна именно на сон) то вы больше не будете получать звонки о тревоге. Чтобы включить обратно надо, чтоб сенсоры сработали (ардуино от сенсоров просыпаться будет но не будет звонить т.к. модем не включается) и когда сигналка выйдет в режим приема команд (примерно через 20-40 сек) при этом лед горит постоянно, надо повторно нажать кнопку.
Если вы через смс выключите охрану с уходом в сон то обратно через смс включить не сможите тк. модем больше не включиться, только через кнопку можно будет включить охрану.
Другими словами будьте осторожны с выключением чего либо когда включен режим сна в котором модем тоже выключается.

Световая индикация

Стандартный 13 пин (или можите пользоваться диодом на ардуино).
Если быстро мигает в самом начале при включении значит у вас либо сим пароль либо не ловит сеть.
Когда сигналка в режиме охраны она мигает коротко раз в секунду
Когда сигналка без охраны она горит постоянно.
Когда набирает номер, сработал датчик, поиск сети и пару других режимов тоже горит постоянно но этим режимы короткие по времени. например примерно 30-40 сек позвонить на один номер и ждать 3 гудка. потом постоянное свечение как правило должно перейти в режим охраны. если у вас горит постоянно и долго это либо отключена охрана либо он завис.
В режиме ожидания команд, если вы отправли смс команду будет быстрое моргание сигнализирущее что все команды правильные и успешно применены.
Если нет никакой сигнализации на отправленный смс значит хоть одна из команд не правильная.
Если отправили длинное (длинее 64 символа) смс (оно отправится) и команды которые поместились обработались (все) успешно то модем проморгает быстро (SMS_OK) но при этом он не обработает непоместившиеся команды и вы об этом ни как не узнаете. Следите за длиной смс.
Если у вас предложения по добавлению дополнительной лед индикации (определенные моргания для 13 пина) буду рад услышать.

Список команд

SMS:0 - не отправлять смс статус
    1 - отправлять только на первй номер. по умол.
    2 - на оба
S0:ON - задействовать нулевой сенсор для обнаружения тревоги
   OFF - выключить
S1:ON - задействовать первый сенсор
   OFF - выключить
S2:ON - задействовать второй сенсор
   OFF - выключить
S3:ON - задействовать третий сенсор
   OFF - выключить
по умол все сенсоры включены
S0LV:HI - логический уровень 0сенсора когда нет тревоги выставить как высокий
     LO - как низкий
S1LV:HI - логический уровень 1сенсора когда нет тревоги выставить как высокий
     LO - как низкий
S2LV:HI - логический уровень 2сенсора когда нет тревоги выставить как высокий
     LO - как низкий
S3LV:HI - логический уровень 3сенсора когда нет тревоги выставить как высокий
     LO - как низкий
по умол все низкий
CALL:0 - не звонить когда тревога
     1 - звонить только на первый.  по умол.
     2 - на оба
BELL:ON - задействовать пин внешней сирены (или другого устройства) [ВКЛ] 
     OFF - выключить [ВЫКЛ]. по умол.
BPLV:HI - логический уровень внеш сирены когда есть тревога выставить как высокий. по умол.
     LO - как низкий
BELLT:10..180 - время в сек, в течении которого будет подаваться заранее выставленный лог уровень на пин внешней сирены. 30 по умол.
BEEP:0..9 - сколько условных гудков звонить на номера. по умол 3
ADMIN:номер без локального регионального кода. может отправлять команды
ADMIN2:номер без локального регионального кода. длина обезательно как в первом.
ALARM:ON - задействовать срабатывание тревоги. по умол.
      OFF - выключить
SLEEP:ON - задействовать режим сна
      OFF - выключить. по умол.
POWER:ON - задействовать режим тревоги когда пропала сеть 220. если питание только от батареи не нужен.
      OFF - выключить
DELAY:0..250 - время задержки до срабатывания тревоги в сек.  через сколько будет тревога когда сенсоры уже обнаружили проникновение. 0 по умол т.е. без задержки сразу.
GETBAL:ON - получать баланс симки в репорте
       OFF - выключить. по умол.
BALNUM:ххх - номер с которого получать баланс в USSD режиме например *100#
AWAKET:3..60 - через сколько минут уходить на охрану/сон и сколько минут ждать смс команды от админа. 3 по умол.
DELTEL:1 - удалить админ номер и второй
       2 - удалить только второй номер
PREFIX:0 - перед номером добавляется - 0. по умол.
       1 - +7
       2 - +373
       3 - +375
       4 - +380
RESETA - ресет ардуино
RESETC - ресет конфига
BALANCE - отправить админу смс репорт сейчас

Конфиг модема

//if (!send("AT+CSMS=1"))  return false;      //phase 2+ чтото глючит при включение
  //if (!send("AT+IFC=1,1")) return false;      //software flow control
  //if (!send("AT+CMEE=2"))  return false;      //extended error code
  //if (!send("AT+CCLK=\"yy/MM/dd,hh:mm:ss\"")) return false;
  //if (!send("AT+CSTA=129"))  return false;    //local number type with leading 0, не работает
  if (!send("AT+CPBS=\"SM\"")) return false;    //phonebook to SIM
  if (!send("AT+CPMS=\"SM\"")) return false;    //sms to SIM is saved after power off
  if (!send("AT+CSTA=145"))    return false;    //int format with leading +, не работает
  if (!send("AT+CMGF=1"))      return false;    //sms text format
  if (!send("AT+CSCS=\"GSM\""))return false;
  //(2,1)+CMTI: "SM",n;
  //(2,2)lowlevel<cr><lf>+CMT: "+37379555752",,"21/08/08,17:12:09+18"<cr><lf>Text body<cr><lf>
  if (!send("AT+CNMI=2,2")) return false;       //считать lowlevel на INT0 чтоб знать сколько смс пришло
  if (!send("AT+CLIP=1")) return false;         //+CLIP: "060260202",129,,,"",0
  if (!send("AT+CSDH=0")) return false;         //don't display header
  if (!send("AT+CSCB=1")) return false;         //don't display cell broadcast messages
  if (!send("ATE1")) return false;              //echo on

Что делает модем


if (!send("ATDвашномер")) return false;
if (!send("AT+CMGS=вашномер")) return false;
if (!send("AT+CUSD=номербаланса")) return false; 

Прошивка

Обычный hex файл для прошивки через USB посредством avrdude из Arduino.
Файл *with_bootloader.hex для прошивки програматором.

Если мега 328p то можно прошить либо программа XLoader либо командой (при условии что у вас стоит ардуино IDE на диске C: а плата на COM7)

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -C«C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf» -patmega328p -carduino -PCOM7 -b115200 -D -Uflash:w:«D:\Files\alarm.hex»:i

Если 32u4 то надо узнать какой порт именно во время прошивки (обычно на один меньше чем где Serial) и такой командой (при условии что у вас стоит ардуино IDE а плата на COM14)

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -C«C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf» -patmega32u4 -cavr109 -PCOM14 -b57600 -D -Uflash:w:«D:\Files\alarm.hex»:i

disk.yandex.ru/d/-ng7FTKKAAuatQ

PS: Это мой первый обзор. Не судите строго

Arduino Официальный магазин | Платы Экраны Комплекты Аксессуары

Основы Ардуино

  • €24,00

    | /

  • €95,90

    | /

  • Сэкономьте 15%

    Первоначальная цена €42,00

    Текущая цена €35,70

    | /

  • 21,60 €

    | /

  • Распроданный

    23,40 €

    | /

  • €42,00

    | /

  • €40,80

    | /

  • 25,40 €

    | /

  • €22,80

    | /

  • €8,40

    | /

  • Распроданный

    €6,50

    | /

  • €22,80

    | /

  • 21,60 €

    | /

  • 63,50 €

    | /

  • Распроданный

    €20,80

    | /

Найти порт Arduino на Windows, Mac и Linux — MATLAB & Simulink

Основное содержание

Прежде чем использовать объект arduino для установления соединения к вашей плате Arduino ® , необходимо указать порт, к которому подключена плата Arduino. плата подключена.

Найдите номер порта в Windows

  1. Подключите плату Arduino к одному из портов USB на вашем компьютере под управлением Пакет поддержки MATLAB для оборудования Arduino.

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

  2. Откройте Диспетчер устройств (в поле поиска на Панель задач, введите Диспетчер устройств ).

  3. В окне диспетчера устройств разверните порты (COM и ЛПТ) список.

  4. Обратите внимание на имя порта ( COM# ), которое отображает Arduino название доски.

    Вы будете использовать это имя (например, COM3 ) в качестве значение входного аргумента порта при создании объекта arduino .

Найти номер порта на Macintosh

  1. Подключите плату Arduino к одному из портов USB на вашем Mac под управлением Пакет поддержки MATLAB для оборудования Arduino.

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

  2. Откройте терминал в macOS. Для этого вы можете использовать Spotlight Search (найдите Терминал ) или используйте окно Finder (запустите Finder, щелкните Перейти > Утилиты и дважды щелкните Терминал ).

  3. В командной строке Терминала перейдите в корневой каталог (запустите этот команда: cd / ).

  4. В корневом каталоге выполните следующую команду: ls /dev/* .

  5. Обратите внимание на имя порта /dev/tty. usbmodem* или /dev/tty.usbserial* .

    Вы будете использовать это имя (например, /dev/tty.usbmodem1421 ) как значение Входной аргумент порта при создании объекта arduino .

Найти номер порта в Linux

  1. Подключите плату Arduino к одному из USB-портов на вашем компьютере под управлением Пакет поддержки MATLAB для оборудования Arduino.

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

  2. Откройте терминал в Linux.

  3. В командной строке Терминала перейдите в корневой каталог (запустите этот команда: cd / ).

  4. В корневом каталоге выполните следующую команду: ls /dev/tty* .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *