Международный школьный научный вестник
Научный журнал для старшеклассников и учителей ISSN 2542-0372

О журнале Выпуски Правила Олимпиады Учительская Поиск Личный портфель

МОТОСИГНАЛИЗАЦИЯ НА ARDUINO

Бородин М.Р. 1
1 п. Среднесибирский, «МКОУ «Среднесибирской СОШ», 11 класс
Бородина Т.М. (п. Среднесибирский, педагог-организатор, п. Среднесибирский, «МКОУ Среднесибирской СОШ»)
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.

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

В начале 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

bor1.tif

Перехват сигнала с брелока сигнализации

Приложение 2

bor2.wmf

Блок-схема алгоритма для самодельной мотосигнализации

Приложение 3

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

#include <SoftwareSerial.h>

#include <OneWire.h>

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<2; k++){// Запускаем цикл перебора ключей

if(aaa[k][0] == addr[0] && aaa[k][1] == addr[1] && aaa[k][2] == addr[2] // Сравниваем побайтно массивы

&& aaa[k][3] == addr[3] && aaa[k][4] == addr[4] && aaa[k][5] == addr[5] && aaa[k][6] == addr[6] && aaa[k][7] == addr[7]){ m=1;}} // Если ключ есть увеличиваем значение указателя

if (m > 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

bor3.tif

Подключение датчика удара

Приложение 5

bor4.tif

bor5.tif

bor6.tif

bor7.tif

Фотографии устройства


Библиографическая ссылка

Бородин М.Р. МОТОСИГНАЛИЗАЦИЯ НА ARDUINO // Международный школьный научный вестник. – 2018. – № 2. ;
URL: https://school-herald.ru/ru/article/view?id=471 (дата обращения: 21.11.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674