[Из песочницы] GSM-сигнализация для автомобиля на базе Arduino Uno

Предисловие


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

ffa572e580e94576ba880d3394e5f37d.png


Начнём!

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


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

187587f991b349828aa529f801397302.png


Основные характеристики 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, размер просто замечательный.

512d21df6aa240bd801b3f0bc2998aa3.jpg


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

ac95485e2ca24aa0b201b2a28da9148a.jpg


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

a12395e5f31a4f07a580667bf3e08f4b.jpg


Основные характеристики 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 (регулируемый).

b9703eb7ee3c4b5abff2dc92ec41341e.png


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

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


Подходит!

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

cd0714d183c841e0aafbc70819dd89d9.PNG


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

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


Подходит!

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

eddd85ba974b477fa8a1f5d75bbc4c38.jpg


Основные характеристики сервопривода 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В
— Все детали привода выполнены из металла


Подходит!

Собираем


Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.
В статьях приводится немного больше информации, чем нам надо, но знания ведь лишними не бывают). Фото собранного макета.

747e2e49b0b24d9d97b1357b5904c7d7.jpg

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

dffba0045d1140c1aa6f54dbf9f671c5.jpg


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


Фишки на Sim900 Shield должны быть установлены такие образом. Полезность SIM900 Shield.
57193519c5944132b6f182df94501eaf.jpg
Положение тумблера питания Sim900 Shield.

cacc635e126945f7934f5916f5e36921.jpg

747e2e49b0b24d9d97b1357b5904c7d7.jpg

9620082279cc4d0cb4b473207630cc45.jpg

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

Итог


f878b96c87cf45ff91a540796b0a8c46.jpg

c8e3a6c9938845b8acb85c79b0660d0c.jpg

ea84675d21724c1b9e3cb396065017f1.jpg

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

© Geektimes