GSM-сигнализация для автомобиля на базе Arduino Uno

в 16:37, , рубрики: arduino, diy или сделай сам, БГУИР, ВМСиС, схемотехника

Предисловие

Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 90-х годов привела к созданию устойчивых групп, специализирующихся на совершении данных преступлений и обладающих отличительными чертами организованной преступности; вы наверняка слышали термин «черный автобизнес». Автомобильный парк европейских государств ежегодно не досчитывается ≈ 2 % машин, которые становятся предметом преступных посягательств. Поэтому мне пришла идея сделать gsm-сигнализацию для своего автомобиля на базе Arduino Uno.

GSM-сигнализация для автомобиля на базе Arduino Uno - 1

Начнём!

Из чего будем собирать

Надо выбрать сердце нашей системе. На мой взгляд, для подобной сигнализации нет ничего лучше, чем Arduino Uno. Основной критерий — достаточное количество «пинов» и цена.

GSM-сигнализация для автомобиля на базе Arduino Uno - 2

Основные характеристики Arduino Uno

Микроконтроллер — ATmega328
Рабочее напряжение — 5 В
Входное напряжение (рекомендуемое) — 7-12 В
Входное напряжение (предельное) — 6-20 В
Цифровые Входы/Выходы — 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы — 6
Постоянный ток через вход/выход — 40 мА
Постоянный ток для вывода 3.3 В — 50 мА
Флеш-память — 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ — 2 Кб (ATmega328)
EEPROM — 1 Кб (ATmega328)
Тактовая частота — 16 МГц

Подходит!

Теперь необходимо выбрать gsm-модуль, ведь наша сигнализация должна уметь оповещать владельца автомобиля. Так, надо «погуглить»… Вот, отличный датчик — SIM800L, размер просто замечательный.

GSM-сигнализация для автомобиля на базе Arduino Uno - 3

Подумал я и заказал его из Китая. Однако всё оказалось не так радужно. Датчик просто отказался регистрировать SIM-карту в сети. Было опробовано всё, что только возможно — результат нулевой.
Нашлись добрые люди, которые предоставили мне более крутую штуку — Sim900 Shield. Вот это уже серьёзный штучка. В Shield-е и разъём для микрофона и для наушников, полноценный телефон.

GSM-сигнализация для автомобиля на базе Arduino Uno - 4

Основные характеристики Sim900 Shield

4 стандарта рабочей частоты 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot класс 10/8
GPRS mobile station class B
Соответствует GSM phase 2/2+
Class 4 (2 W @850/ 900 MHz)
Class 1 (1 W @ 1800/1900MHz)
Управление с помощью AT команд (GSM 07.07 ,07.05 и SIMCOM расширенные AT команды)
Низкое энергопотребление: 1.5mA(sleep mode)
Диапазон рабочих температур: от -40°C до +85 °C

Подходит!

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

Думаю, что GY-521 MPU6050 точно подойдёт. Оказалось, что в нём есть и датчик температуры. Надо бы и его задействовать, будет такая «киллер фича». Предположим, что владелец автомобиля поставил его под домой и ушёл. Температура в салоне автомобиля будет изменяется «плавно». Что же будет, если злоумышленник попытается проникнуть в автомобиль? Например у него получится открыть дверь. Температура в автомобиле начнёт изменяться стремительно, так как воздух в салоне начнёт смешиваться с воздухом окружающей среды. Думаю, что будет работать.

GSM-сигнализация для автомобиля на базе Arduino Uno - 5

Основные характеристики GY-521 MPU6050
Модуль 3-х осевого гироскопа + 3-х осевого акселерометра GY-521 на чипе MPU-6050. Позволяет определить положение и перемещение объекта в пространстве, угловую скорость при вращении. Так же имеет встроенный датчик температуры. Используется в различных коптерах и авиамоделях, так же на основе этих датчиков можно собрать систему захвата движений.

Микросхема — MPU-6050
Напряжение питания — от 3,5V до 6V (DC);
Диапазон гироскопа — ± 250 500 1000 2000 ° / с
Диапазон акселерометра — ± 2 ± 4 ± 8 ± 16g
Интерфейс связи — I2C
Размер — 15х20 мм.
Вес — 5 г

Подходит!

Также пригодится датчик вибраций. Вдруг автомобиль попытаются вскрыть «грубой силой», ну или на парковке другой автомобиль заденет вашу машинку. Возьмём датчик вибраций SW-420 (регулируемый).

GSM-сигнализация для автомобиля на базе Arduino Uno - 6

Основные характеристики SW-420

Напряжение питания — 3.3 — 5В
Выходной сигнал — цифровой High/Low (нормально закрытый)
Используемый датчик — SW-420
Используемый компаратор — LM393
Размеры — 32x14 мм
Дополнительно — Есть регулировочный резистор.

Подходит!

Прикрутим модуль SD карты памяти. Будем ещё писать лог-файл.

GSM-сигнализация для автомобиля на базе Arduino Uno - 7

Основные характеристики модуля SD карты памяти

Модуль позволяет хранить, читать и записывать на SD карту данные требуемые для работы прибора на основе микроконтроллера. Применение устройства актуально при хранении файлов от десятков мегабайт до двух гигабайт. На плате размещен контейнер SD карты, стабилизатор питания карты, вилка соединителя линий интерфейса и питания. Если требуется работать с звуковыми, видео или другими объемными данными, например, вести журнал регистрации событий, данных датчиков или хранить информацию веб-сервера, то модуль SD карты памяти для Arduino даст возможность применить SD карту для этих целей. С помощью модуля можно изучить особенности работы SD карты.
Напряжение питания — 5 или 3,3 В
Объем памяти SD карты — до 2 Гбайт
Размеры — 46 х 30 мм

Подходит!

И добавим сервопривод, при срабатывании датчиков будет поворачиваться сервопривод с видеорегистратором и снимать видео происшествия. Возьмём сервопривод MG996R.

GSM-сигнализация для автомобиля на базе Arduino Uno - 8

Основные характеристики сервопривода MG996R

— Стабильная и надежная защита от повреждений
— Металлический привод
— Двухрядный шарикоподшипник
— Длина провода 300 мм
— Размеры 40х19х43мм
— Масса 55 гр
— Угол поворота: 120 град.
— Рабочая скорость: 0.17сек/60 градусов (4.8В без нагрузки)
— Рабочая скорость: 0.13сек/60 градусов (6В без нагрузки)
— Пусковой момент: 9.4кг/см при питании 4.8В
— Пусковой момент: 11кг/см при питании 6В
— Рабочее напряжение: 4.8 — 7.2В
— Все детали привода выполнены из металла

Подходит!

Собираем

Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.

В статьях приводится немного больше информации, чем нам надо, но знания ведь лишними не бывают). Фото собранного макета.

GSM-сигнализация для автомобиля на базе Arduino Uno - 9

О, совсем забыл упомянуть о питании, от чего же будет питаться наша система. Питание будет от 12v автомобиля.

GSM-сигнализация для автомобиля на базе Arduino Uno - 10

Тонкие моменты проекта

Фишки на Sim900 Shield должны быть установлены такие образом. Полезность SIM900 Shield.
GSM-сигнализация для автомобиля на базе Arduino Uno - 11
Положение тумблера питания Sim900 Shield.

GSM-сигнализация для автомобиля на базе Arduino Uno - 12

GSM-сигнализация для автомобиля на базе Arduino Uno - 13

GSM-сигнализация для автомобиля на базе Arduino Uno - 14

AT-команды для Sim900 Shield

Итог

GSM-сигнализация для автомобиля на базе Arduino Uno - 15

GSM-сигнализация для автомобиля на базе Arduino Uno - 16

GSM-сигнализация для автомобиля на базе Arduino Uno - 17

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

Автор: Konstantin_Bobrovsky

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js