кодовый иммобилайзеер

velkan
Offline
Зарегистрирован: 27.03.2017

Привет ребята!

С ардуинкой ковыряюсь неделю. Нужда заставила. С электроникой больше 10 лет. Но на дескрете уже некоторые вещи делать кощунство. Приперло осваивать программирование.

По роду деятельности связан с автомобильной электроникой. (Диагност)

Часто имею дела с машинами подвергшимся попытке угона. (Описываю повреждения)

Фирменные иммобилайзеры стоят дороговато для простого обывателя с установкой. Не говорим про владельцев лексусов))).

Призрак u например 3-3,5 тр

Старлайн i93 сняли с производства. остатки распродают от 1,5 до 2,8 тыс.р

Spirit 21 около 2.3 тыс

Клиенты многие спрашивают поставить им, что-нибудь простое и эффективное. На мой взгляд кодовый иммобилайзер имеет преимущества. Не надо таскать с собой метки, батарейки, итд.. Ооборудование для ретрансляции 2.4ГГц мало, но кто знает, что появляется на рынке.

Закончу ликбез, теперь к проекту.

Разрабатываю для себя и  своих знакомых. Когда код откатаю. Освоюсь в программировании, перейду на голые avr.

а

пока

набросал пробный скетч.

если есть желающие дополнить, покритиковать,  милости прошу.

К любой конструктивной критике отношусь с пониманием.

Со врменем прикручу акселерометр, CAN интерфейс можно и блютус модуль. а пока разбираюсь с библиотекой  eeeprom.h

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

#define button 3
#include <Bounce.h>
#define ledPin 13 //buzzer out
#define blockout 4 // блокировка
#define longbutton 5
#define hoodlock 12
#define timeintlong 2000
#define timeint 1000
int pin [3] {2, 2, 2};
unsigned long currentTime = 0;
unsigned long loopTime = 0;
unsigned long currentTime1 = 0;
unsigned long loopTime1 = 0;
bool pin1;
bool pin2;
bool pin3;
byte count = 0;
Bounce bouncer = Bounce(button, 15);
//===================================================================
void setup() {
  pinMode(button, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  pinMode(blockout, OUTPUT);
  pinMode(longbutton, OUTPUT);
  pinMode(hoodlock, OUTPUT);
  Serial.begin(9600);
  pin1 = false;
  pin2 = false;
  pin3 = false;
}
//===================================================================
void loop() {
  if ( bouncer.update() ) {
    //если считано значение 1
    if ( bouncer.read() == LOW) {
      count = count + 1;
    }
  }
  //=============================================================
  if (digitalRead(button) == 0) {
    currentTime = millis();// если кнопка обновляем  переменную с текущим временем.
  }
  loopTime = millis() - currentTime; //cесли кнопка отпущена время идет а переменна не меняется. передаем значение в переменную looptime
  //==============================================================
  if (digitalRead(button) == 1) {//если кнопка отпущена обновляем значение переменно с текущим временем.
    currentTime1 = millis();
  }
  loopTime1 = millis() - currentTime1;//если кнопка отпущена переменная не обновляется, а время идет. вычитаем в переменную.
  Serial.println(loopTime / 100);
  //===============================================================
  if (count == pin[0] && pin1 == false && pin2 == false && loopTime > timeint ) {//если переменная нажатий равна 1 символу в массиве pin и переменные пин1 и пин2 отрицательны и кнопка отпущена1 секунду
    blink (); // то поморгать диодиком
    pin1 = true; count = 0; // обнулим переменную. а первую выставим в 1
  }
  if (count != pin[0] && loopTime > timeintlong) {//если по истечения 3 секунд (переменая тайминтлонг)  не равна 1 символу в масиве пин,
    count = 0;// то сбрасываем на 0
  }
  if (count == pin[1] && pin1 == true && pin2 == false && loopTime > timeint ) {
    if (loopTime > 500) {
      blink();}
    pin2 = true; count = 0;
  }
  if (count != pin[1] && loopTime > timeintlong) {
    count = 0;
  }
  //------------block------------------------------
  if (count == pin[2] && pin2 == true && pin1 == true && loopTime > timeint ) {
    digitalWrite(blockout, HIGH);
    pin3 = true;
    //--------hoodlock----------------------------
    if (loopTime > 5000) {
      digitalWrite(hoodlock, HIGH);
      if (loopTime > 6000) {
        digitalWrite(hoodlock, LOW);
      }
    }
  }
  if (count != pin[2] && loopTime > timeintlong) {
    count = 0;
  }
  if (loopTime > 10000 && pin2 == false) {
    pin1 = false;
  }
  //== handler long button ===========================
  if (loopTime1 > 5000 && pin1 == true && pin2 == true &&  pin3 == true) {// если введен пинкод и нажатие больше 5 секунд.
    digitalWrite(longbutton, HIGH);
    pin1 = false;
    pin2 = false;
    pin3 = false;
    count = 0;
    digitalWrite(blockout, LOW);
  }
  if (loopTime > 7000) {
    digitalWrite(longbutton, LOW);
  }
}


//=========помигать диодиком========================================================================
void blink ()
{
  digitalWrite(ledPin, 1);
  delay(20);
  digitalWrite(ledPin, 0);
}

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

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

MaksVV
Offline
Зарегистрирован: 06.08.2015

если блокировка - обычное реле - проще тогда тумблер поставить, надёжнее. 

 

Valery-M
Offline
Зарегистрирован: 01.04.2017

Нет, тумблер не годится.   Он будет связан проводом с реле. И по этому проводу угонщику  реле очень просто будет найти и сделать обход.

Как я понял, автор собирается управлять реле через радиомодуль 2,4 ГГц. Чем обусловлен выбор этой частоты?

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

Мне кажется разумнее использовать что-то нестандартное  для наших краев. Например, 915 МГц  или 160 МГЦ.

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

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

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

Valery-M
Offline
Зарегистрирован: 01.04.2017

Я тоже думаю, что стабильность по радиоканалу будет далека от желаемой. А сбои в этом деле не допустимы.

Мало приятного, если двигатель будет глохнуть ни с того ни с сего.

evgta
Offline
Зарегистрирован: 02.09.2016
Valery-M
Offline
Зарегистрирован: 01.04.2017

evgta пишет:
так радиоканал используется только для постановки или снятия с охраны,

Ну, там же микроконтроллер будет управлять реле. Читаю тут про радиоуправление, у них постоянно там какие-то сбои.

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

А те иммобилайзеры, которые на радиоканале, как я понимаю, их каждый раз нужно отключать радиопосылкой, а потом включать отдельно от всего. Частота наверняка 433 МГц, на которой все граберы работают. Перехватят посылку, как и от сигнализации, и снимут с охраны.

velkan
Offline
Зарегистрирован: 27.03.2017

Привет. На нано я откатыаю код. Прототип будет на промини. Выхода будут управлять смд полевиками. И миМодуль будет залит герметиком и в термоусадке. Располагатся подкапотом. В салон в зависимости от авто. Будет 1 или 2 провода заходить. Один на кнопку. Другой на буззер. плата сама будет работать по зажиганию. Стабилизатор внешний ''крен'' типа 7805 В d2pak. Все дискретные элементы smd.

Valery-M
Offline
Зарегистрирован: 01.04.2017

Так кодовый сигнал будет передоваться по проводу?

Так такие иммобилайзеры недорогие есть. Будет ли здесь выигрыш в цене? Установка  их больше всего стоит.

velkan
Offline
Зарегистрирован: 27.03.2017

Промини. От robotdyn стоит 86рублей. На 168меге. Обвязка меньше 100 рублей. Реализовывать планирую от 1.5 тр. Установка у меня будет 1.5 тр. Без замка капота. И 2500 с замком. Есесно гарантия. И тп. Откатаю на знакомых.
Код ввводится путем замыкания провода на массу. Штатной кнопкой. или секретной. Почему нет? Или думаешь угонщики будут сниффер ставить ?

Valery-M
Offline
Зарегистрирован: 01.04.2017

velkan пишет:
Установка у меня будет 1.5 тр. Без замка капота. И 2500 с замком.

Значит, 3 тыс руб иммобилайзер с установкой?  Неплохая цена. Блокирвать будете датчики положения коленвала?

Без замка капота это дело бессмысленно. Но замок сам по себе 6000 р стоит. Опять же модуль управления нужен.

velkan
Offline
Зарегистрирован: 27.03.2017

Valery-M пишет:

velkan пишет:
Установка у меня будет 1.5 тр. Без замка капота. И 2500 с замком.

Значит, 3 тыс руб иммобилайзер с установкой?  Неплохая цена. Блокирвать будете датчики положения коленвала?

Без замка капота это дело бессмысленно. Но замок сам по себе 6000 р стоит. Опять же модуль управления нужен.

Откуда такие цены. Страрлайновский замок капота. Штырьевой стоит 2.5тр. Модуль ненужен. Постановка замка от штатного цз. Открытие от иммо. Надо 2 реле.

Valery-M
Offline
Зарегистрирован: 01.04.2017

velkan пишет:
 Страрлайновский замок капота. Штырьевой стоит 2.5тр.

Такого типа у меня два года от силы работали. Потом стали закисать. Гемморой начался постоянный.

Один раз пришлось даже спиливать. Куском ножовочного полотна - 3 минуты. А сколько угонщику с сабельной пилой на это потребуется?

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

Из реално хороших замков видел только у Кондрашова. Но дорогой.

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Valery-M пишет:

Я тоже думаю, что стабильность по радиоканалу будет далека от желаемой. А сбои в этом деле не допустимы.

Мало приятного, если двигатель будет глохнуть ни с того ни с сего.

дак как вы хотите реализовать конечное исполнительное устройство, которое будет блокировать цепь? 

konog
Offline
Зарегистрирован: 17.12.2015

Добрый вечер. Проект умер или жив?