Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail

    info@3d-diy.ru — отдел продаж

    support@3d-diy.ru — тех. поддержка

    Адрес
    Москва, Павловская улица, 27с7
    м. Тульская
    Режим работы
    пн – пт 11:00—19:00
    8.05 – 11.05 не работаем
    3DIY
    3D принтеры
    Материалы для 3D печати
    Комплектующие 3D принтера
    Arduino и робототехника
    Комплектующие ЧПУ станка
    Инструменты
    Запчасти для 3D принтеров по брендам
    Товары снятые с продажи
    • 3D принтеры
      • Печать пластиком (FDM/FFF)
        Печать пластиком (FDM/FFF)
      • Печать фотополимером (SLA/DLP/LCD)
        Печать фотополимером (SLA/DLP/LCD)
      • Печать воском (MJP)
        Печать воском (MJP)
      • Для дома
        Для дома
      • Для бизнеса
        Для бизнеса
      • Для производства
        Для производства
      • Наборы для сборки
        Наборы для сборки
      • Промышленные
        Промышленные
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Материалы для 3D печати
      • Пластики
        Пластики
        • ABS
        • PLA
        • PETG
        • HIPS
        • PVA
        • FLEX (TPU)
        • Nylon/PA (Нейлон)
        • PC (Поликарбонат)
        • PEEK
        • POM (Полиацеталь)
        • PP (Полипропилен)
        • Резина
        • Стеклонаполненные
        • Термочувствительные
        • Угленаполненные
        • SBS
        • Светящиеся
        • Металлические
        • Спец. пластик
        • Пластик для 3D ручек
      • Фотополимеры
        Фотополимеры
        • Стандартные
        • ABS-типа
        • Гибкие
        • Водосмываемые
        • Выжигаемые
        • Инженерные
        • Стоматологические
        • Для хобби
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие 3D принтера
      • Электроника
        Электроника
        • Платы управления
        • Шаговые двигатели (ШД)
        • Драйверы ШД 3D принтеров
        • Драйверы шаговых двигателей ЧПУ
        • Дисплеи
        • Датчики и модули
        • Блоки питания
        • Реле
        • Концевые выключатели
        • Вентиляторы      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Провода, кабели и разъемы
      • Механика
        Механика
        • Зубчатые шкивы
        • Зубчатые ремни
        • Трапецеидальные винт-гайки
        • Шарико-винтовые передачи (ШВП)      
          • Гайки ШВП
          • Модули крепления гаек ШВП
          • Обратотанные ШВП
          • Опоры ШВП
        • Соединительные муфты
        • Ролики для зубчатых ремней
        • Цилиндрические направляющие
        • Рельсовые направляющие      
          • Профильные направляющие HIWIN
          • Профильные направляющие КИТАЙ
        • Держатели вала
        • Корпусные детали      
          • Корпуса
          • Апгрейды
          • Комплектующие для корпусов
        • Запчасти OpenBuilds
        • Подшипники качения
        • Пружины
      • Нагревательные столы и сопутствующие
        Нагревательные столы и сопутствующие
        • Нагревательные платформы
        • PEI пластины
        • Стекла и Зеркала
        • Теплоизоляция
        • Основания для столов
        • Силиконовые проставки (пружины)
        • Термисторы
        • Зажимы-фиксаторы
        • Пружины
      • Экструдеры
        Экструдеры
        • Экструдеры и механизмы подачи
        • Хотэнды
        • Сопла
        • Термобарьеры
        • Термисторы
        • Нагревательные блоки
        • Теплоизоляция нагревательных блоков
        • Тефлоновые трубки
        • Радиаторы
        • Нагревательные элементы
        • Шестерни
        • Фитинги
        • Сопутствующие товары
      • Сушилки для пластика
        Сушилки для пластика
      • УФ-камеры
        УФ-камеры
      • Мойки
        Мойки
      • Ультразвуковые ванны (мойки)
        Ультразвуковые ванны (мойки)
      • 3D ручки
        3D ручки
      • 3D-сканеры
        3D-сканеры
      • Расходные материалы для SLA / LCD
        Расходные материалы для SLA / LCD
      • Сопутствующие
        Сопутствующие
      • Наборы для мейкеров
        Наборы для мейкеров
      • Инструменты для 3D печатника
        Инструменты для 3D печатника
      • Постобработка
        Постобработка
      • Адгезивы
        Адгезивы
      Мойка и УФ-камера Elegoo Mercury Plus 3.0
      Мойка и УФ-камера Elegoo Mercury Plus 3.0
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Arduino и робототехника
      • Arduino
        Arduino
      • Raspberry Pi
        Raspberry Pi
        • Микрокомпьютеры
        • Дисплеи      
          • TFT-LCD дисплеи Raspberry Pi
          • IPS-LCD дисплеи Raspberry Pi
          • AMOLED дисплеи Raspberry Pi
        • Корпуса
        • Шилды
        • Камеры
        • Питание
        • Охлаждение
      • Обучающие наборы
        Обучающие наборы
      • Orange Pi
        Orange Pi
      • Одноплатники
        Одноплатники
      • Модули
        Модули
        • Платы расширения
        • Беспроводные модули
        • Интерфейсы
        • Релейные модули
        • Преобразователи питания
        • Лазерные модули
        • Аудио
        • Видео
        • Клавиатура
        • Драйверы моторов
        • Измерительные
        • Другие
      • Датчики
        Датчики
        • Аудио
        • Газа
        • Инфракрасные
        • Климатические
        • Жидкостные
        • Механического воздействия
        • Положения (акселерометры/компасы/гироскопы)
        • Пространства
        • Света и цвета
        • Тактильные
        • Тока и напряжения
      • Дисплеи
        Дисплеи
        • TFT-LCD дисплеи
        • STN-LCD дисплеи
        • LED дисплеи
        • OLED дисплеи
        • Дисплеи DWIN
        • E-Paper дисплеи
      • Механика
        Механика
        • Колёса
        • Коллекторные двигатели
        • Сервоприводы
        • Шаговые двигатели
        • Другие
        • Линейные актуаторы (приводы)
      • Макетные платы
        Макетные платы
      • Светодиоды
        Светодиоды
        • Светодиодные кольца
        • Светодиодные матрицы
        • Сегментные индикаторы
        • Светодиоды круглые
        • Другие
      • Провода и кабели
        Провода и кабели
      • Источники питания
        Источники питания
      • Радиодетали
        Радиодетали
        • Кварц
        • Кнопки
        • Конденсаторы
        • Резисторы
        • Транзисторы
        • Другие
        • Стабилизаторы
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие ЧПУ станка
      • Шаговые двигатели и аксессуары
        Шаговые двигатели и аксессуары
        • NEMA 8
        • NEMA 11
        • NEMA 14
        • NEMA 17
        • NEMA 23
        • NEMA 34
        • NEMA 42
        • NEMA 52
        • Шаговые актуаторы
        • Шаговые двигатели с редуктором      
          • C планетарным редуктором
          • C цилиндрическим редуктором
        • Шаговые двигатели с тормозом
        • Круглые шаговые двигатели
        • Сопутствующие
      • Зубчатые ременные передачи
        Зубчатые ременные передачи
        • Зубчатые ремни      
          • Зубчатые ремни GT2
          • Зубчатые ремни HTD 3M
          • Зубчатые ремни HTD 5M
          • Зубчатые ремни T2.5
          • Зубчатые ремни T5
        • Зубчатые шкивы      
          • Зубчатые шкивы GT2
          • Зубчатые шкивы HTD 3M
        • Ролики
      • Шарико-винтовые передачи (ШВП)
        Шарико-винтовые передачи (ШВП)
        • Готовые ШВП, обработанные
        • Гайки ШВП
        • Опоры ШВП
        • Модули крепления гаек ШВП
        • Кронштейны-опоры ШВП
      • Трапецеидальные передачи винт-гайка
        Трапецеидальные передачи винт-гайка
        • Винты трапецеидальные
        • Гайки трапецеидальные
        • Муфты Oldham
        • Сопутствующие
      • Цилиндрические направляющие
        Цилиндрические направляющие
        • Полированные валы
        • Цилиндрические рельсы
        • Линейные подшипники
        • Модули с линейным подшипником
        • Втулки скольжения
        • Держатели вала
        • Пластиковые втулки скольжения
      • Профильные направляющие
        Профильные направляющие
        • Профильные направляющие HIWIN      
          • Каретки HIWIN
          • Рельсы HIWIN
        • Профильные направляющие      
          • Каретки
          • Рельсы
        • Роликовые направляющие
      • Муфты соединительные
        Муфты соединительные
        • Жесткие
        • Кулачковые
        • Спиральные
        • Мембрнные
        • Сильфонные
        • Пружинные
        • Гибкие
      • Электроника
        Электроника
        • Блоки питания
        • Вентиляторы электрические и аксессуары      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Драйверы шаговых двигателей
        • Микропереключатели и концевики
        • Датчики касания инструмента
        • Кнопки и индикаторы
      • Фрезы
        Фрезы
        • Спиральные фрезы      
          • Стружка вверх
          • Стружка вниз
        • Компрессионные фрезы
        • Прямые фрезы
        • Конусные фрезы
        • Сферические фрезы
        • Фрезы рашпильные (кукуруза)
        • Цанги
        • Сопутствующие
      • Карбоновый профиль / трубки
        Карбоновый профиль / трубки
      • Пневматическое оборудование
        Пневматическое оборудование
        • Регуляторы давления, фильтры, лубрикаторы
      • Системы подачи смазки
        Системы подачи смазки
        • Автоматические смазочные насосы
        • Ручные смазочные насосы
        • Маслораспределительные аксессуары
      • Сопутствующие
        Сопутствующие
      • Шпиндели и сопутствующие
        Шпиндели и сопутствующие
        • Шпиндели воздушного охлаждения
        • Шпиндели жидкостного охлаждения
        • Частотные преобразователи
        • Крепления для шпинделей
        • Системы охлаждения шпинделей
        • Подведение СОЖ
        • Прижимы для шпинделей
        • Распылители масляного тумана
        • Щетка-насадка для шпинделя
        • Сопутствующие для шпинделей
      • Механика
        Механика
        • Кабель-каналы гибкие
        • Подшипники качения
        • Подшипниковые узлы
      • Конструкционный профиль
        Конструкционный профиль
        • Сухари пазовые
        • Т-болты
        • Т-гайки
        • Серия 15      
          • Анодированный
          • Без покрытия
        • Серия 20      
          • Анодированный
          • Без покрытия
        • Серия 20 (V-паз)      
          • Анодированный
          • Без покрытия
        • Серия 30      
          • Анодированный
          • Без покрытия
        • Серия 40      
          • Анодированный
          • Без покрытия
        • Серия 45      
          • Анодированный
          • Без покрытия
        • Серия 50      
          • Анодированный
          • Без покрытия
      • Комплектующие OpenBuilds
        Комплектующие OpenBuilds
        • Ролики OpenBuilds
      • Лазерные станки
        Лазерные станки
      • Лазерная резка и аксессуары
        Лазерная резка и аксессуары
        • Блоки розжига
        • Воздушные компрессоры
        • Датчики
        • Крепление лазерной трубки
        • Лазерные головки и держатели зеркал
        • Полупроводниковые лазерные модули
        • Системы охлаждения
        • Системы управления (Контроллеры)      
          • Контроллеры RuiDa
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Инструменты
      • Зачистка и обрезка кабеля
        Зачистка и обрезка кабеля
      • Измерительный инструмент
        Измерительный инструмент
        • Мультиметры
      • Кабель и провода
        Кабель и провода
        • Акустический кабель
        • Высоковольтный кабель
      • Клеевые пистолеты (термопистолеты)
        Клеевые пистолеты (термопистолеты)
      • Напильники и надфили
        Напильники и надфили
      • Обжимной инструмент
        Обжимной инструмент
      • Отвертки
        Отвертки
      • Паяльное оборудование
        Паяльное оборудование
        • Наборы для паяльных работ
        • Отсосы припоя
        • Паяльные принадлежности
        • Паяльные станции
        • Припой
        • Электрические паяльники
      • Пинцеты
        Пинцеты
      • Расходные материалы
        Расходные материалы
        • Изолента
        • Клеевые стержни
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Запчасти для 3D принтеров по брендам
      • 3DIY printers
        3DIY printers
        • Bizon 3
        • STRATEX 350
        • STRATEX 500
        • REX 6K Mono
        • P3 Steel 200 PRO
        • P3 Steel 300 PRO
        • P3 Steel 300 DUAL PRO
      • Bambu Lab
        Bambu Lab
        • Bambu Lab A1 mini
        • Bambu Lab A1
        • Bambu Lab P1 Series
        • Bambu Lab X1 Series
      • Creality
        Creality
        • Creality K1
        • Creality K1 MAX
        • Creality K1C
        • Creality K2 plus
      • Flashforge
        Flashforge
        • Adventurer 5M / 5M Pro
      • Anycubic
        Anycubic
        • Anycubic Photon Mono 4/ 4 Ultra
        • Anycubic Photon Mono M5/ M5s/ M5s Pro
        • Anycubic Photon Mono M7
        • Anycubic Photon Mono M7 Max
        • Anycubic Photon Mono M7 Pro
      • Flying Bear
        Flying Bear
        • Flying Bear S1
        • Flying Bear Ghost 6
        • Flying Bear Reborn 3
        • Flying Bear Reborn 2
        • Flying Bear Aone 2
      • Qidi
        Qidi
        • Qidi Tech X-Plus 3
        • Qidi Tech X-Max 3
        • QIDI Plus 4
        • Qidi Q1 Pro
      Phrozen
      Flying Bear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Товары снятые с продажи
        Phrozen
        Flying Bear
        QIDI
        CreatBot
        FlashForge
        Bambu Lab
        ERYONE
        Elegoo
        eSUN
        Creality
        BIGTREETECH
        Anycubic
      Войти
      0Избранное
      0Корзина
      3D принтерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУРобототехникаЗапчасти 3D принтеров по брендам
      3DIY
      Войти
      0Избранное
      0Корзина
      3DIY
      Телефоны
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем
      0
      0
      • Кабинет
      • 0Избранное
      • 0Корзина
      • Бренды
      • Акции
      • Услуги
        • Услуги
        • 3D печать
          • 3D печать
          • 3D печать пластиком FDM/FFF
          • 3D печать фотополимером
      • Компания
        • Компания
        • О компании
        • Реквизиты
        • Партнеры
        • Клиенты
        • Вакансии
      • Блог
      • Информация
        • Информация
        • Гарантия на товар
        • Возврат товара
        • Политика конфиденциальности
        • Договор-оферта
        • FAQ
      • Контакты
        • Контакты
        • Как до нас добраться
      8 (800) 500-45-93отдел продаж Россия
      • Телефоны
      • 8 (800) 500-45-93 отдел продаж Россия
      • 8 (495) 565-35-93 отдел продаж Москва
      • info@3d-diy.ru — отдел продаж

        support@3d-diy.ru — тех. поддержка

      • Москва, Павловская улица, 27с7
        м. Тульская
      • пн – пт 11:00—19:00
        8.05 – 11.05 не работаем
      Главная
      Блог
      Проекты
      GSM-сигнализация на Arduino

      GSM-сигнализация на Arduino

      GSM-сигнализация на Arduino
      Проекты

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

      Содержание

      • Введение
      • Выбор основного источника питания
      • Выбор резервного источника питания
      • Выбор реле контроля питания
      • Блок зарядки аккумуляторной батареи
      • Элементы шины питания
      • Светодиодная индикация
      • Звуковая индикация
      • Устройство ввода (клавиатура)
      • Блок контроля охранных шлейфов
      • Объединение всех блоков в единую схему
      • Подготовка GSM-модуля
      • Первое подключение и проверка работоспособности
      • Подготовка звуковых сообщений для загрузки в память SIM800L
      • Загрузка звуковых файлов в память SIM800L
      • Техническое задание


      1. Введение

      Широкая популярность аппаратно-программного комплекса Arduino порождает ежедневный рост всевозможных проектов, созданных на её основе. Большинство разработок, которые можно встретить в сети, собраны в обучающих целях начинающими программистами и сводятся к применению простейших алгоритмов или банальному миганию светодиодом. Но есть и такие темы, которые привлекают к себе внимание. И одной из них является охранная сигнализация с возможностью оповещения по мобильной связи. В данной статье я постараюсь достаточно глубоко раскрыть этот вопрос на примере построения универсальной GSM-сигнализации, способной контролировать одновременно 4 охранных шлейфа (ОШ).

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

      struktura.jpg

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

      Блок зарядки АКБ будет постоянно подзаряжать аккумулятор в буферном режиме от основного источника, и отключать его от нагрузки при падении напряжения до критической отметки в режиме резервного питания.

      Шина питания должна содержать комплекс устройств, которые обеспечат всех потребителей необходимым уровнем напряжения и тока. Это обусловлено тем, что питание логики, GSM-модема и шлейфов будет отличаться между собой виду их разных технических характеристик.

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

      Центральное устройство управления – это мозг всей системы, в роли которого выступит плата Arduino Nano.

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

      Блок индикации введён для визуального и звукового оповещения о текущем состоянии системы.

      Клавиатура, на мой взгляд, необходима для возможности снятия с охраны объекта путём непосредственного ввода пароля без использования мобильной связи. Это может быть актуально, если в текущий момент у хозяина нет доступа к своему телефону (севшая батарея, утеря и т.п.). Помимо снятия с охраны, на клавиатуру можно навесить ещё несколько дополнительных функций, но про это чуть позже.

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

      Ну и наконец, сами охранные шлейфы имеют в своём составе набор последовательно или параллельно соединённых датчиков плюс оконечное сопротивление, которое загоняет параметры каждого из шлейфов в необходимый диапазон. Любой выход за этот диапазон распознаётся микроконтроллером как сигнал тревоги. Это сделано для повышения уровня безопасности, и исключает ситуацию, когда злоумышленник с целью обмана сигнализации искусственно закорачивает провода у основания шлейфа.

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


      2. Выбор основного источника питания

      Учитывая запросы всех потребителей электроэнергии, предусмотренных мною в проекте, я буду отталкиваться от источника питания, способного преобразовать переменное напряжение бытовой электросети 220В в постоянное напряжение 12V при токе 3А.

      На первый взгляд может быть непонятно, для чего нужен такой относительно немалый запас по току. Конечно, большинство времени система будет потреблять незначительно, однако в некоторых моментах от этого никуда не уйти. Например, для заряда севшего АКБ потребуется около 1А, а GSM-модуль при поиске и регистрации в сети способен проглотить целых 2А. Если при этом учесть аппетит Arduino, обмоток реле, средств индикации и элементов шлейфа, то цифра в 3А просто необходима для функционирования сигнализации без сбоев.

      Напряжение 12V я выбрал исходя из условий питания шлейфов. На мой взгляд, привычные для микроконтроллера 5V будут быстро затухать в длинных проводах с датчиками. К тому же из 12V можно легко получить другие, более низкие уровни напряжения для остальных элементов схемы.

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

      blok-pitaniya.jpg

      В принципе, нет разницы, в каком исполнении или как выглядит этот блок, главное, чтобы он обеспечивал требуемые выходные характеристики (12V, 3А).


      3. Выбор резервного источника питания

      Во многих системах охранной сигнализации, в качестве резервного источника питания, зачастую используют свинцовые аккумуляторные батареи, напряжением 12V. На мой взгляд, они имеют рад недостатков, таких как внушительные габариты, склонность к саморазряду и малый срок эксплуатации. Ниже показан пример одного из представителей АКБ этого рода:

      AKB.jpg

      В своём проекте я решил не использовать свинцовые АКБ, а вместо них применить надёжный LI-ION аккумулятор в распространённом корпусе 18650. Он выглядит следующим образом:

      li-on.jpg

      Ёмкость моего аккумулятора равна 2500мАч, что позволит поддерживать резервное питание сигнализации на протяжении длительного времени. Единственный минус такой концепции – это напряжение АКБ, которое составляет 3,7V при необходимом уровне 12V. Этот минус легко решается путём применения повышающего DC-DC преобразователя MT3608, который способен поднять напряжение с уровня 2V практически до 28V. Соединить модуль MT3608 с аккумулятором не составит никакого труда, но я на всякий случай приведу наглядный пример: 

      MT3608.jpg


      4. Выбор реле контроля питания

      Обмотка реле контроля питания будет подключена к основному источнику, поэтому она должна быть рассчитана на напряжение 12V. Через нормально замкнутый контакт этого реле подаётся аварийное питание от АКБ при условии отключения основного источника. Силовые контакты реле должны выдерживать ток до 3А. Понадобятся ещё пару диодов соответствующей мощности для развязки независимых источников друг от друга. Если всё это слепить воедино, то получиться следующая схема: 

      shema.jpg

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


      5.Блок зарядки аккумуляторной батареи

      Наличие схемы резервного питания влечёт за собой необходимость постоянной подзарядки аварийного аккумулятора. В случае с LI-ION аккумулятором этот вопрос упрощается до максимума, так как существует множество готовых решений в виде законченных модулей. Для этих целей в своём проекте я планирую использовать недорогой и популярный модуль на базе микросхемы TP4056. Они бывают разных модификаций, но в основном отличаются наличием защиты и типом разъёма. У пользователя имеется возможность установить ток зарядки заменой ограничительного резистора. Выглядит и подключается модуль следующим образом:

      tp4056.jpg

      Как видно из вышеприведенного рисунка, разное значение сопротивления резистора R3 соответствует разному зарядному току. Чем меньше будет это сопротивление, тем быстрее будет идти заряд АКБ. Разъём Micro-USB установлен для удобства и в данном проекте использован не будет.


      6. Элементы шины питания

      Шина питания будет содержать два понижающих DC-DC преобразователя на основе микросхемы MP2307DN, настроенных на выдачу напряжений 5V и 3.3V при входе 12V. Первый я решил определить для питания логики Arduino, зарядного устройства TP4056 и обмоток 2-х реле. Второй преобразователь, настроенный на 3.3V предназначен специально для модуля SIM800L. Максимальный ток, выдаваемый каждым из модулей равен 3А. Настройка выходного напряжения производится индивидуально, вращением движка подстроечного резистора. Если перенести всё сказанное на схему, то получиться нижеследующее:

      shina-pitaniya.jpg


      7. Блок индикации

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

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

      Данный вид индикации предназначен для визуального отображения состояния системы путём подачи определённого светового сигнала. Так как я не вижу смысла использовать ЖКИ-дисплей (он здесь просто не нужен), применю вместо него RGB-светодиод. Используя три разных цвета, да ещё и добавив режим мигания, можно закодировать множество сообщений, которые сигнализация хочет довести до пользователя. Какие именно будут сообщения – определюсь позже, в разделе разработки технического задания. На данном этапе приведу схему подключения RGB-светодиода к Arduino Nano, чтобы «застолбить» свободные пины. 

      svetovaya-indikaciya.jpg

      7.2. Звуковая индикация

      Помимо звонков на мобильный телефон оператора будет правильным заложить функцию включения громкоговорящей сирены, которая привлечёт внимание окружающих при срабатывании одного из датчиков в охранном шлейфе. Но так как в некоторых случаях этого не нужно, функция будет настраиваемой, а пока просто остановимся на схемном решении. Итак, в качестве источника звука я буду использовать распространённый пъезоизлучатель, рассчитанный на напряжение 12V. На рынке очень много разновидностей различных сирен, но принцип работы их прост: есть напряжение-есть звук и наоборот. Внешний вид может быть примерно таким:

      zvuk.jpg

      Напрямую к Arduino такой излучатель подключить не удастся, поэтому сделаем это через транзисторный ключ. В моём арсенале есть удобный для этих целей MOSFET IRL540N. Схема подключения имеет следующий вид:

      shema-zvuk.jpg


      8. Устройство ввода (клавиатура)

      Клавиатура в охранных системах является неотъемлемым атрибутом. Как правило, она служит для ввода паролей и настройки различных служебных параметров. Данный проект не является исключением. Я буду использовать матричную мембранную клавиатуру 3х3, с помощью которой пользователь сможет включить или отключить сигнализацию путём ввода секретного пароля доступа. Это очень удобно, так как мобильный телефон может быть разряжен или забыт где-нибудь в другом месте. Возможно, в дальнейшем, повешу на клавиатуру ещё пару-тройку полезных функций – время покажет. А на данном этапе, просто ограничусь схемой подключения:

      klaviatura.jpg


      9. Блок контроля охранных шлейфов

      Перед тем как рассмотреть схемотехнику блока охранных шлейфов, следует определиться с самим понятием охранного шлейфа, типовая структура которого приведена ниже.

      ohrana-shleyfa.jpg

      Итак, сам шлейф представляет собой цепь из последовательно/параллельно соединённых охранных датчиков, имеющих нормально замкнутые или нормально разомкнутые контакты. Система охранной сигнализации в режиме реального времени контролирует сопротивление каждого шлейфа и на основании полученных данных фиксирует факт проникновения.

      Чтобы сделать сигнализацию более устойчивой к обманным действиям злоумышленника (обрезание или закорачивание проводов шлейфа), в конце каждой цепи устанавливается оконечный резистор с фиксированным сопротивлением. Это сопротивление и является эталонным для блока измерения. Любое отклонение от этого параметра будет являться признаком сигнала тревоги. Для своего проекта я выбрал Rок=2k.

      После рассмотрения принципа работы охранного шлейфа, необходимо понять каким методом Arduino Nano будет контролировать его сопротивление? А сделать это можно путём измерения напряжения, если подключить шлейф по схеме классического резистивного делителя, в котором одним плечом будет являться Rок, а другим – согласующая схема блока контроля охранных шлейфов. Данная схема согласования рассчитана исходя из 12-вольтового питания цепи датчиков и идентична для всех четырёх шлейфов. Помимо выше оговоренной функции схема согласования содержит элементы фильтрации помех, которые могут наводиться при внешних воздействиях окружающей среды на охранный шлейф. Учитывая всё вышесказанное, получаем следующую картину:

      blok-kontrolya.jpg

      Как видно из схемы, все 4 каскада согласования идентичны друг другу, поэтому рассмотрим назначение элементов только одного из них, например того, что контролирует 1-й охранный шлейф.

      Итак, напряжение 12V через токоограничивающий резистор R1 подаётся в охранный шлейф с датчиками. Резисторы R2 и R5 образуют делитель напряжения, который согласовывает 12-вольтовый уровень шлейфа с максимальным входным напряжением аналогового входа Arduino Nano, равным 5V. Конденсатор С1 в совокупности с остальными компонентами выполняет фильтрацию помех.

      Учитывая все вышеперечисленные факторы и то, что сопротивление Rок=2k, получаем около 2,43V на аналоговом входе Arduino при 12-вольтовом питании шлейфа. Это как раз середина диапазона встроенного в микроконтроллер АЦП, что позволит удобно отслеживать любые отклонения как в большую, так и в меньшую сторону. Разбег от 2V до 3V буду считать допустимым, как своего рода цифровой фильтр помех. Всё что выйдет за пределы допустимого диапазона будет считаться сигналом тревоги. Иллюстрация ниже визуально отражает ход моей мысли.

      grafik.jpg


      10. Объединение всех блоков в единую схему

      Сколько верёвочке не виться, а конец всё равно должен быть. Это я к тому, что пора все рассмотренные блоки объединить в одну общую электрическую схему. Так как в проекте используется множество законченных модулей, я не стал вырисовывать их прямоугольниками, чтобы окончательно никого не запутать. Вместо этого, я воспользовался распространённой программой fritzing, которая умеет максимально точно отображать внешний вид каждого элемента. Таким образом, приведённая ниже схема обрела более информативный вид, что облегчает её повторяемость.

      obzhaya-shema.jpg


      11. Подготовка GSM-модуля

      Хоть Arduino Nano и является «мозгом» всей охранной системы, тем не менее для SIM800L отведена главная роль в этом проекте. Вследствие этого нужно сосредоточить максимум усилий для его правильной настройки.

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

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

      Для того, чтобы начать работу с GSM-модемом, необходимо выполнить несколько простых действий, а именно:

      • вставить сим-карту;

      • соединить модем с Arduino Nano по вышеуказанной схеме;

      • подать питание и дождаться регистрации модуля в сети (мигание светодиода на плате 1 раз в 3 секунды);

      • Записать в Arduino Nano специальный скетч и приступить к настройке.

      Итак, настройка модема будет происходить через стандартный монитор порта среды разработки Arduino IDE. Для этого необходим следующий скетч:

      #include <SoftwareSerial.h> SoftwareSerial mySerial(11, 10); // RX, TX void setup() { Serial.begin(9600); while (!Serial) {} Serial.println("Serial begin"); mySerial.begin(9600); } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } } 

      Записываем его в плату, подаём питание на модем и запускаем монитор порта. Чтобы убедиться, что всё сделано правильно, в командной строке пишем AT и нажимаем Enter. Если от модема последовал ответ ОК, то всё сделано правильно и можно двигаться дальше.

      zapis.jpg

      11.2. Подготовка звуковых сообщений для загрузки в память SIM800L

      Многие не знают, что GSM-модуль SIM800L имеет свою встроенную память. Объём её невелик, но достаточен для хранения аудиофайлов в специальном сжатом формате. Использование звуковых файлов поможет организовать голосовой диалог между сигнализацией и пользователем при дозвоне. Чтобы узнать доступный объём памяти для SIM800L, необходимо прописать в терминале команду AT+FSMEM. Ответ моего модуля продемонстрирован ниже:

      podgotovka.jpg

      Число 180224 байт – это свободное место на так называемом диске GSM-модуля. Для хранения всех файлов отведена специальная папка C:\User\

      Чтобы прочитать список файлов из этой папки, необходимо подать команду AT+FSLS=C:\User\

      На данном этапе в памяти моего модуля ничего не содержится, поэтому ответ выглядит следующим образом (ОК):

      ok.jpg  

      Звуковые файлы, которые способен транслировать в эфир SIM800L имеют формат AMR. Следовательно, любая звуковая дорожка должна быть перекодирована в этот формат. Сделать это поможет онлайнсервис или программа AMR-Player, внешний вид которой показан ниже:

      AMR-player.jpg

      После установки и запуска программы, появляется незамысловатое окно, в котором понадобится всего одна кнопка (MP3 to AMR). Нажатие этой кнопки приведёт к вызову стандартного диалога выбора файла формате MP3. Файл, который будет выбран в качестве конвертируемого, автоматически сохраниться в той же папке, только уже в формате AMR. Я думаю, что пользование программой не вызовет затруднений и нет смысла расписывать всё в мельчайших подробностях. Двигаемся дальше.

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

      1. Соединение с сигнализацией установлено.

      2. Система поставлена под охрану.

      3. Система снята с охраны.

      4. Внимание. Тревога. Зафиксировано проникновение.

      5. Нагрузка номер один включена.

      6. Нагрузка номер один отключена.

      7. Нагрузка номер два включена.

      8. Нагрузка номер два отключена.

      9. Заряд батареи в норме.

      10. Низкий заряд батареи.

      Когда с текстом покончено, необходимо преобразовать написанное в звуковой файл формата MP3. Для этого есть несколько способов. Можно просто надиктовать фразы на компьютерный микрофон, а можно использовать сторонний сервиссинтезатора речи. Для себя я выбрал второй способ, как наиболее приемлемый в моих условиях. В итоге проделанной работы получился набор из 10 AMR-файлов, которые имеют общий размер 45,6кБ, против 254кБ для формата MP3.

      11.3. Загрузка звуковых файлов в память SIM800L

      Для загрузки AMR-файлов в память модуля нам понадобится специальная программа. Утилита позволяет соединиться с SIM800L по COM-порту с целью передачи списка заранее подготовленных файлов. Внешний вид программы показан ниже.

      zagruzka-zvuka.jpg

      При работе с программой следует закрыть монитор порта среды Arduino IDE, чтобы освободить занятый им СОМ-порт. Также обращаем внимание на скорость обмена данными. Перед записью следует добавить ARM-файлы в центральное окно при помощи кнопки Add. Соответственно, удаление файла из списка осуществляется кнопкой Del.

      После того, как список сформирован, подаём питание на схему, выжидаем 5 секунд, пока инициализируется SIM800L и нажимает кнопку Start. Начинается процесс записи, идущий по цепи: Sim800 Series AmrFile Downloader V1.00 → Arduino Nano → SIM800L. В нижней части окна отображается номер записываемого в данный момент файла и уровень прогресса. На следующей иллюстрации можно наблюдать, как ведёт себя программа в процессе записи.

      zagruzka2.jpg

      После загрузки всех файлов в GSM-модуль, утилита выдаст соответствующее сообщение, как показано на нижеследующем скриншоте. 

      zagruzka3.jpg

      Теперь можно повторно запросить остаток памяти и список файлов SIM800L через AT-команды, рассмотренные в начале раздела. Запускаем монитор порта и последовательно вводим две команды:

      • AT+FSMEM (Enter);

      • AT+FSLS=C:\User\ (Enter);

      В случае успешно проделанной работы ответ должен выглядеть следующим образом:

      otvet.jpg

      Из рисунка видно, что объём свободной памяти уменьшился, а файловая система модуля SIM800L теперь содержит 10 звуковых дорожек. На этом начальная подготовка GSM-модуля окончена и можно приступать к разработке программного кода.

      Где купить датчики и модули для Arduino?Купить датчики Arduino можно в нашем магазине 3DIY с доставкой по всей России!


      12. Техническое задание

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

      Если начальный этап пройден успешно, сигнализация ожидает ввода команды с клавиатуры или звонка с заранее определённого номера.

      Постановка объекта под охрану осуществляется путём нажатия # на матричной клавиатуре или соответствующей клавиши мобильного телефона при установленном соединении. В случае использования матричной клавиатуры, сигнализация станет активной по истечении 20 сек, чтобы человек мог вовремя покинуть охраняемое помещение. Свидетельством того, что объект находиться под охраной, является мигание красного светодиода с периодом 1 раз в секунду.

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

      Любой дозвон на блок сигнализации сопровождается голосовым приветствием. После соединения, помимо постановки и снятия с охраны объекта, пользователь может управлять двумя нагрузками. Включение и отключение первой нагрузки можно выполнить кнопками 1 (включить) и 4 (выключить) на мобильном телефоне. Управление второй нагрузкой осуществляется кнопками 2 (включить) и 5 (выключить). Каждый шаг сопровождается звуковым подтверждением голосового меню.

      Нажатие на телефоне цифры 3 приведёт к измерению напряжения батареи с последующим сообщением результата (в норме/разряжена).

      В случае проникновения, блок сигнализации позвонит на телефон пользователя и сообщит о проникновении на охраняемую территорию.

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

      Для корректной работы скетча понадобится библиотека матричной клавиатуры Keypad.h.

      #include <SoftwareSerial.h> SoftwareSerial SIM800L(11, 10); // RX, TX // Библиотека для работы с матричной клавиатурой #include <Keypad.h> const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; // Ряды матричной клавиатуры byte colPins[COLS] = {5, 4, 3}; // Столбцы матричной клавиатуры Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Макроопределения выводов микроконтроллера #define PIN_LED_RED A2 // Красный цвет RGB-светодиода #define PIN_LED_GREEN A1 // Зелёный цвет RGB-светодиода #define PIN_LED_BLUE A0 // Голубой цвет RGB-светодиода #define PIN_RELAY_1 12 // Реле №1 #define PIN_RELAY_2 13 // Реле №2 #define PIN_BUZZER 2 // Сирена #define PIN_SECURITY_LOOP_1 A3 // Охранный шлейф №1 #define PIN_SECURITY_LOOP_2 A4 // Охранный шлейф №2 #define PIN_SECURITY_LOOP_3 A5 // Охранный шлейф №3 #define PIN_SECURITY_LOOP_4 A6 // Охранный шлейф №4 #define PIN_BAT A7 // Контроль напряжения АКБ // *** ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ *** uint8_t globalState = 0; // Глобальное состояние системы String _response = ""; // Переменная для хранения ответов модуля bool flagAlarm = false; // Флаг наступления тревоги bool securityState = 0; // Фаза постановки объекта под охрану int defaultSL[4]; // Эталонные значания для каждого охранного шлейфа int passwordIndex = -1; // Индекс цифры пароля, с которой мы в данный момент работаем char key; // Переменная для хранения кода нажатой клавиши uint8_t accessPassword[7] = {7, 6, 5, 4, 3, 2, 1}; // Пароль доступа по усолчанию uint8_t tempPassword[7] = {0, 0, 0, 0, 0, 0, 0}; // Массив для временного хранения введённого пароля uint32_t tmpTimer = 0; // *** ФУНКЦИИ *** // Функция ожидания ответа и возврата полученного результата String waitResponse() { String _resp = ""; // Переменная для хранения ответа long _timeout = millis() + 10000; // Переменная для остчёта таймаута (10 секунд) while (!SIM800L.available() && millis() < _timeout) {}; if (SIM800L.available()) { // Если пришёл ответ _resp = SIM800L.readString(); // Сохраняем ответ в переменную } else { // Если наступил таймаут Serial.println("Timeout..."); // Выводим информацию о таймауте в монитор порта } return _resp; // Возврат ответа } // Функция посылки AT-команды модулю SIM800L String sendATCommand(String cmd, bool waiting) { String _resp = ""; // Переменная для хранения результата Serial.println(cmd); // Дублируем команду в монитор порта SIM800L.println(cmd); // Отправляем команду модулю if (waiting) { // Если необходимо дождаться ответа... _resp = waitResponse(); // Ожидаем поступление ответа // Если Echo Mode выключен (ATE0), то эти 3 строки можно закомментировать if (_resp.startsWith(cmd)) { // Убираем из ответа дублирующуюся команду _resp = _resp.substring(_resp.indexOf("\r\n", cmd.length()) + 2); } Serial.println(_resp); // Дублируем ответ в монитор порта } return _resp; // Возвращаем результат. Пусто, если проблема } /* ФУНКЦИЯ ВВОДА ПАРОЛЯ */ bool enterPassword() { if(key == '*') { // Стираем пароль for(uint8_t i = 0; i < 7; i++) tempPassword[i] = 0; passwordIndex = -1; } else if(key == '#') { if(passwordIndex == 6) return 1; } else { if(passwordIndex <= 6) { if(passwordIndex < 6) passwordIndex++; tempPassword[passwordIndex] = (key - 48); // Заносим очередной символ во временный массив } } return 0; } void setup() { // Настройка периферии pinMode(PIN_LED_RED, OUTPUT); digitalWrite(PIN_LED_RED, LOW); pinMode(PIN_LED_GREEN, OUTPUT); digitalWrite(PIN_LED_GREEN, LOW); pinMode(PIN_LED_BLUE, OUTPUT); digitalWrite(PIN_LED_BLUE, LOW); pinMode(PIN_RELAY_1, OUTPUT); digitalWrite(PIN_RELAY_1, LOW); pinMode(PIN_RELAY_2, OUTPUT); digitalWrite(PIN_RELAY_2, LOW); pinMode(PIN_BUZZER, OUTPUT); digitalWrite(PIN_BUZZER, LOW); pinMode(PIN_SECURITY_LOOP_1, INPUT); pinMode(PIN_SECURITY_LOOP_2, INPUT); pinMode(PIN_SECURITY_LOOP_3, INPUT); pinMode(PIN_SECURITY_LOOP_4, INPUT); pinMode(PIN_BAT, INPUT); Serial.begin(9600); SIM800L.begin(9600); _response = sendATCommand("AT", true); // Проверка общего статуса if( _response == "OK") digitalWrite(PIN_LED_GREEN, HIGH); else digitalWrite(PIN_LED_RED, HIGH); _response = sendATCommand("AT+DDET=1,0,1", true); // Включаем DTMF _response = sendATCommand("AT+CLIP=1", true); // Включаем АОН } void loop() { while(1) { key = keypad.getKey(); if(securityState == 1) { // Запоминаем эталонные значения каждого шлейфа defaultSL[0] = analogRead(PIN_SECURITY_LOOP_1); defaultSL[1] = analogRead(PIN_SECURITY_LOOP_2); defaultSL[2] = analogRead(PIN_SECURITY_LOOP_3); defaultSL[3] = analogRead(PIN_SECURITY_LOOP_4); securityState = 2; } else if(securityState == 2) { // Проверка срабатывания сигнализации if((analogRead(PIN_SECURITY_LOOP_1) > defaultSL[0] - 100) || (analogRead(PIN_SECURITY_LOOP_1) < defaultSL[0] + 100)) { digitalWrite(PIN_BUZZER, HIGH); globalState = 3; } if((analogRead(PIN_SECURITY_LOOP_2) > defaultSL[1] - 100) || (analogRead(PIN_SECURITY_LOOP_2) < defaultSL[1] + 100)) { digitalWrite(PIN_BUZZER, HIGH); globalState = 3; } if((analogRead(PIN_SECURITY_LOOP_3) > defaultSL[2] - 100) || (analogRead(PIN_SECURITY_LOOP_3) < defaultSL[2] + 100)) { digitalWrite(PIN_BUZZER, HIGH); globalState = 3; } if((analogRead(PIN_SECURITY_LOOP_4) > defaultSL[3] - 100) || (analogRead(PIN_SECURITY_LOOP_4) < defaultSL[3] + 100)) { digitalWrite(PIN_BUZZER, HIGH); globalState = 3; } if(millis() % 1000 == 0) digitalWrite(PIN_LED_RED, !digitalRead(PIN_LED_RED)); } else if(securityState == 0) digitalWrite(PIN_LED_RED, LOW); if(globalState == 0) { // Контролируем состояние клавиатуры if(key) { if(key == '#') globalState = 10; // Постановка под охрану с клавиатуры } // Контролируем поступления звонка от одного или нескольких разрешённых абонентов if (SIM800L.available()) { // Если модем прислал ответ _response = waitResponse(); // Копируем ответ в переменную _response.trim(); // Выризаем пробелы вначале и конце строки String whiteListPhones = "+380991917261, +380968068008"; // Белый список телефонов if (_response.startsWith("RING")) { // Если обнаружен входящий вызов int phoneindex = _response.indexOf("+CLIP: \""); String innerPhone = ""; if (phoneindex >= 0) { phoneindex += 8; // Извлекаем номер innerPhone = _response.substring(phoneindex, _response.indexOf("\"", phoneindex)); } // Проверяем, чтобы длина номера была больше 6 цифр, и номер должен быть в списке if (innerPhone.length() >= 7 && whiteListPhones.indexOf(innerPhone) >= 0) { sendATCommand("ATA", true); // Если да, то отвечаем на вызов globalState = 1; } else { sendATCommand("ATH", true); // Если нет, то отклоняем вызов } } } } else if(globalState == 1) { // АБОНЕНТ ДОЗВОНИЛСЯ НА ТЕЛЕФОН // Голосовое приветствие SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("1.amr\",1,100"); globalState = 2; } else if(globalState == 2) { // Декодируем код нажатой клавиши if(SIM800L.available()) { _response = waitResponse(); _response.trim(); if (_response.startsWith("+DTMF:")) { String symbol = _response.substring(7, 8); // Выдергиваем символ с 7 позиции длиной 1 (по 8) if(symbol=="1") { digitalWrite(PIN_RELAY_1, HIGH); // Включаем реле №1 SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("5.amr\",1,100"); } else if(symbol=="4") { digitalWrite(PIN_RELAY_1, LOW); // Выключаем реле №1 SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("6.amr\",1,100"); } else if(symbol=="2") { digitalWrite(PIN_RELAY_2, HIGH); // Включаем реле №2 SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("7.amr\",1,100"); } else if(symbol=="4") { digitalWrite(PIN_RELAY_2, LOW); // Выключаем реле №2 SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("8.amr\",1,100"); } else if(symbol=="3") { int adc = analogRead(PIN_BAT); float u = 5.0 * (float)adc / 1023.0; if(u > 3.4) SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("9.amr\",1,100"); else SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("10.amr\",1,100"); } else if(symbol=="#") { SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("2.amr\",1,100"); securityState = 1; } else if(symbol=="*") { SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("3.amr\",1,100"); securityState = 0; flagAlarm = false; } } if (_response.startsWith("NO CARRIER")) { // Если оператор вешает трубку globalState = 0; } } } else if(globalState == 3) { if(key) { if(enterPassword()) { // Проверяем правильность ввода пароля if((tempPassword[0] == accessPassword[0]) && (tempPassword[1] == accessPassword[1]) && (tempPassword[2] == accessPassword[2]) && (tempPassword[3] == accessPassword[3]) && (tempPassword[4] == accessPassword[4]) && (tempPassword[5] == accessPassword[5]) && (tempPassword[6] == accessPassword[6])) { securityState = 0; flagAlarm = false; globalState = 0; digitalWrite(PIN_BUZZER, LOW); } tempPassword[0] = 0; tempPassword[1] = 0; tempPassword[2] = 0; tempPassword[3] = 0; tempPassword[4] = 0; tempPassword[5] = 0; tempPassword[6] = 0; tempPassword[7] = 0; } } // Звоним абоненту для сообщения о тревоге _response = sendATCommand("ATD+380991917261;", true); if(_response == "OK") { // Если модуль зозвонился до абонента SIM800L.print("AT+CREC=4,\"C:\\User\\"), SIM800L.print(1), SIM800L.println("4.amr\",1,100"); globalState = 2; } // Если модуль не смог дозвониться до абонента else if(_response == "NO DIALTONE" || _response == "BUSY" || _response == "NO CARRIER" || _response == "NO ANSWER") { globalState = 3; } } // Ставим под охрану объект только спустя 20 секунд (активация с клавиатуры) else if(globalState == 10) { tmpTimer = millis(); globalState = 11; } else if(globalState == 11) { if((millis() - tmpTimer) > 20000) {securityState = 1; globalState = 0;} } } // while(1) } // loop() 

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

      itog.jpg


      Товары из статьи

      Быстрый просмотр
      Повышающий DC-DC преобразователь MT3608imageimageimage
      290 ₽
      377 ₽
      -23%
      Повышающий DC-DC преобразователь MT3608
      0
      0
      Под заказ
      Быстрый просмотр
      GSM/GPRS модуль SIM800L с антеннойimageimageimage
      390 ₽
      507 ₽
      -23%
      GSM/GPRS модуль SIM800L с антенной
      0
      0
      Под заказ
      Быстрый просмотр
      Эластичная клавиатура 4×4 кнопкиimageimage
      149 ₽
      Эластичная клавиатура 4×4 кнопки
      0
      0
      В наличии
      Быстрый просмотр
      Двухканальное релеimage
      150 ₽
      195 ₽
      -23%
      Двухканальное реле
      0
      0
      В наличии
      Быстрый просмотр
      Arduino Nano 3.0 Arduino Nano 3.0 Arduino Nano 3.0 Arduino Nano 3.0
      820 ₽
      1 066 ₽
      -23%
      Arduino Nano 3.0
      0
      0
      В наличии

      Документы

      gsm_alarm
      13,5 Кб
      Sim800 Series ArmFile Download v1.00
      10,3 Кб
      Звуковые файлы для сигнализации
      277,6 Кб

      Это интересно

      GSM-сигнализация на Arduino
      Проекты
      GSM-сигнализация на Arduino
      Система беспроводного доступа RFID
      Проекты
      Система беспроводного доступа RFID
      Электронная мишень
      Проекты
      Электронная мишень
      Часы из часов
      Проекты
      Часы из часов
      Бесконтактный температурный сенсор (GY-906 на базе MLX90614)
      Проекты
      Бесконтактный температурный сенсор (GY-906 на базе MLX90614)
      Беспроводные колонки с ферромагнитной жидкостью
      Проекты
      Беспроводные колонки с ферромагнитной жидкостью
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Все публикации248
        • 3D принтеры38
        • 3D печать57
        • ЧПУ10
        • Датчики27
        • Модули38
        • Arduino механика6
        • Arduino платы8
        • Дисплеи6
        • Кейсы1
        • Компоненты13
        • Мировые новости35
        • Проекты7
        • Сопутствующие2
      Связаться с нами
      8 (800) 500-45-93
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Москва, Павловская улица, 27с7
      м. Тульская
      Магазин
      Бренды
      Акции
      Каталог
      Услуги
      Компания
      О компании
      Реквизиты
      Партнеры
      Клиенты
      Вакансии
      Информация
      Гарантия на товар
      Возврат товара
      Политика конфиденциальности
      Договор-оферта
      FAQ
      Помощь
      Условия оплаты
      Условия доставки
      Товары под заказ
      Гос. закупки
      Как сделать заказ
      Вопрос-ответ
      2013 - 2025 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
      Конфиденциальность
      Оферта
      ГлавнаяКаталог0Корзина0ИзбранныеКабинет