IV Международный конкурс
научно-исследовательских и творческих работ учащихся
«СТАРТ В НАУКЕ»
 
     

МОТОСИГНАЛИЗАЦИЯ НА ARDUINO
Бородин М.Р.
Текст научной работы размещён без изображений и формул.
Полная версия научной работы доступна в формате PDF


Введение

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

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

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

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

  • проанализировать литературу, посвящённую этому вопросу;

  • написать программу (скетч) для работы этого устройства, используя среду Arduino IDE;

  • собрать устройство;

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

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

Методы исследования:

  • моделирование;

  • анализ и обобщение материалов сети интернет;

  • сравнение.

Основная частьТеоретическая часть

Принцип работы обычной радиосигнализации таков: специальный бесконтактный ключ-брелок по специальному радиоканалу передает и получает сигнал от центрального блока управления сигнализацией ТС. Сигналы идут по зашифрованному каналу. Брелок и сигнализация обмениваются короткими сообщениями через заданные короткие промежутки времени.

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

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

По этой причине я решил отказаться от использования радиоканала и использовать для активации и деактивации сигнализации IButton (монетку от домофона).

Обмен данными с IButton производится через интерфейс 1-Wire. Информация в этом интерфейсе передается по единственному проводнику. Питание IButton получает из этого же проводника, заряжая внутренний конденсатор в моменты, когда на шине нет обмена данными.

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

Перехватить информацию с такого устройства без непосредственного контакта невозможно. Кроме того, каждая такая микросхема имеет уникальный регистрационный номер (ID), записываемый в процессе изготовления во внутреннее постоянное запоминающее устройство. Количество комбинаций ID достигает 256 триллионов - этого более чем достаточно, чтобы исключить случайный подбор (по времени это займёт больше 1,5 лет). Также, использование IButton вместо, например RFID-метки, снизит стоимость собираемого устройства (для считывания информации с IButton не нужно никакого дополнительного оборудования, нужна только плата Arduino).

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

  • датчик удара от автомобильной сигнализации;

  • геркон для контроля положения руля;

  • самодельный датчик наклона;

  • кнопка для обнаружения открытия бардачка;

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

Получившееся устройство должно обладать такими функциями, как:

  • реагирование сигнализации на наклон, удар, поворот руля, попытку открытия бардачка;

  • блокировка включения зажигания при активированной сигнализации;

  • включение сирены и отправка вызова на телефон хозяина ТС при попытке угона;

  • невозможность деактивации сигнализации посторонними лицами.

Для осуществления вызовов был использован GSM-модуль SIM900.

Написание программы

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

Сборка устройства

Подключаем GSM-модуль со вставленной внутрь сим-картой при помощи разъёмов к плате ArduinoUNO, датчики и светодиоды подключаем соответственно тому, как они были объявлены в скетче программы. Разъём, управляющий зажиганием, соединяем с разъёмом IN на реле, на разъёмы GND и VCC подаём соответственно GND и 5V с платы Arduino.

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

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

Датчик удара подключается по схеме (см. Приложение 4), штекер для подключения можно использовать от блока питания ПК (через такой подаётся питание на дисковод гибких дисков).

После сборки и установки устройство готово к использованию.

Заключение

Минимальная цена GSM-сигнализации – около 3 – 4 тыс. руб., стоимость сигнализации, собранной в ходе выполнения данной исследовательской работы– около 2,5 тыс. руб. Можно было бы собрать менее дорогую сигнализацию, используя более дешёвые комплектующие (стоимость такой сигнализации приближённо была бы равна 1 тыс. руб.). Преимуществом самособранных сигнализаций также является их уникальность, вследствие которой они менее подвержены несанкционированному вскрытию, чем заводские. Также эта сигнализация надёжнее своих аналогов тем, что не использует для своей работы радиоканал и сигнал с её ключа невозможно перехватить. Ещё одним достоинством этой сигнализации является то, что она имеет практически неограниченный радиус оповещения – везде, где доступна сотовая связь.

Таким образом, в ходе этой работы была собрана полноценная охранная система для мотоцикла в домашних условиях, для сборки которой потребовались базовые знания языка C++ и знание основ схематотехники.

Приложение 1. Перехват сигнала с брелока сигнализации Приложение 2. Блок-схема алгоритма для самодельной мотосигнализации

 

Начало

 

 

Ключ есть

нет

да

 

 

да

Код совпал

 

 

Сигнализация выкл.

 

 

нет

да

 

 

Выкл. сигнализацию, выкл. сирену, вкл. зажигание

Вкл. сигнализацию, выкл. зажигание,

 

 

нет

Сигнализация вкл.

да

 

 

Считывать датчики

 

 

Датчик сработал

да

 

 

Вкл. сирену,

Отправка вызова на телефон хозяина

 

Приложение 3. Скетч программы для мотосигнализации.

#include

#include

OneWire ds(10);// Определяем пин подключения к ключу

byte aaa[2][8] = {{0x01,0xEC,0x74,0x28,0x012,0x00,0x00,0x72},// Двухмерный массив известных ключей

{0x01,0xF9,0x24,0x63,0x14,0x00,0x00,0xF2}};// Первое число - количество ключей, второе - количество байт в ключе

byte addr[8], k, m; // Обозначаем массив для чтения ключа из 8 байт

SoftwareSerial gprsSerial(7, 8);

byte udar = 11;

byte rul = 6;

byte bardacek = 5;

byte naklon = 3;

byte trewoga = 12;

byte LEDSIGN = 2;

byte zazihanie = 4;

byte SIGN = 0;

byte valueU = LOW;

byte valueR = LOW;

byte valueB = LOW;

byte valueN = LOW;

byte valueNx = LOW;

void setup() {

//Включаем GPRS Shield, эмулируя нажатие кнопки POWER

pinMode(9, OUTPUT);

digitalWrite(9, HIGH); // Подаем High на пин 9

delay(3000); // на 3 секунды

digitalWrite(9, LOW); // и отпускаем в Low.

delay(5000); // Ждём 5 секунд для старта шилда

gprsSerial.begin(19200);

digitalWrite(naklon,HIGH);

pinMode(naklon,INPUT);

pinMode(trewoga, OUTPUT);

pinMode(udar,INPUT);

pinMode(rul,INPUT);

pinMode(bardacek,INPUT);

pinMode(zazihanie,OUTPUT);

digitalWrite(zazihanie,HIGH);

pinMode(LEDSIGN,OUTPUT);

valueNx = digitalRead (naklon);

}

void loop()

{

m = 0;// Обнуляем указатель наличия ключа

if (ds.search(addr))

{// Если устройство подключено - считываем

for (k=0; k 0)

{// Проверяем значение указателя

delay(1000);

if (SIGN == 0)

{

valueNx = digitalRead (naklon);

SIGN = 1;

digitalWrite(zazihanie,LOW);

digitalWrite(LEDSIGN, HIGH);

}

else

{

SIGN = 0;

digitalWrite(zazihanie,HIGH);

digitalWrite(trewoga, LOW);

digitalWrite(LEDSIGN, HIGH);

digitalWrite(LEDSIGN, LOW);

valueNx = digitalRead (naklon);

}

digitalWrite(13, HIGH);// Зажигаем диод

delay(1000);// Выдерживаем паузу

digitalWrite(13, LOW);}// Гасим диод

for(int i=7; i>-1; i--){// Запускаем цикл печати данных из массива

ds.reset_search();}

if (SIGN == 1)

{

valueU = digitalRead (udar);

if (valueU == LOW)

{digitalWrite (trewoga, HIGH);

delay(1000);

gprsSerial.println("ATD + +79237295909;");}

delay(1000);

valueR = digitalRead (rul);

if (valueR == LOW)

{digitalWrite (trewoga, HIGH);

delay(1000);

gprsSerial.println("ATD + +79237295909;");}

delay(1000);

valueB = digitalRead (bardacek);

if (valueB == LOW)

{digitalWrite (trewoga, HIGH);

delay(1000);

gprsSerial.println("ATD + +79237295909;");}

delay(1000);

valueN = digitalRead (naklon);

if (valueN != valueNx)

{digitalWrite (trewoga, HIGH);

delay(1000);

gprsSerial.println("ATD + +79237295909;");}

delay(1000);

}

else {digitalWrite(zazihanie,HIGH);}

}

Приложение 4. Подключение датчика удара Приложение 5. Фотографии устройства

 

крепление геркона и магнита на раму

 

 

крепление геркона и магнита на раму

внешний вид макета сбоку

внешний вид устройства внутри

 

Список использованной литературы:
  1. http://www.1gai.ru/publ/514181-kak-ugonschiki-ispolzuya-smart-klyuchi-vzlamyvayut-avtomobili.html

  2. https://www.aladdin-rd.ru/catalog/ibutton/

  3. http://eprint.iacr.org/2010/332.pdf

  4. http://www.1gai.ru/publ/513720-kak-vzlamyvayut-mashiny.html

  5. http://cripo.com.ua/print.php?sect_id=7&aid=167917

  6. http://amperka.ru

  7. http://www.platan.ru/library/Maxim_IButton.pdf

  8. http://arduino.ru

  9. http://ugonavto.net/vubor/kak-pravilno-vybrat-luchshuyu-signalizaciyu-dlya-avtomobilya.html