Чтение ключа 433 мГц

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Здравствуйте. Если купить вот такой ключ (этому подобный). 433 мГц

Можно ли его считать этим приемником?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, не, Иринка, мой знак вопроса не означал запрос подробноей, он означал лишь, что я тоже хочу знать ответ, вот и запостил, чтобы тема у меня в "Отслеживаемых" была и не потерялась, извини :)

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Как я понимаю, в вышеуказанном мною передатчике (картинка передатчик и приемник 4323 мГц), на вход Data пождается высокий и низкий сигнал?

Можно ли отправить некий код без использования библиотек для ардуино? Хочу сделать передатчик на attiny 13A

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, конечно. Такие передатчик и приёмник у меня есть. Передатчик там тупой как валенок - именно HIGH и LOW ему и пихается.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Поделитесь кодом?  (на языке ардуино)

Код приемника будет с библиотекой?

 

еще же важна длина импульса, длина паузы, как я понимаю.

mixail844
Offline
Зарегистрирован: 30.04.2012

А разве сигнал там как то не шифруется ?  Что бы любой "я у мамки программист" не смог заснифить сигнал а потом его использовать? 

sadman41
Offline
Зарегистрирован: 19.10.2016

В таком дешевом чипе скремблирование? Наврядли... 

ВН
Offline
Зарегистрирован: 25.02.2016

Irinka пишет:
Хочу такой ключ, выкидной, но плата от моей сигнализации туда не влезет.

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

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Я имею ввиду плата от моего штатного ключа не такой формы как этот ключ.

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Почитайте про Keelog. Там всё не так просто. Брелок формирует всегда разную последовательность. И те последовательности которые автосингнализация УЖЕ получила становятся НЕДЕЙСТВИТЕЛЬНЫМИ. По сути перед вами стоит задача взлома сигнализации. Это не так просто.

ВН
Offline
Зарегистрирован: 25.02.2016

Irinka пишет:
Я имею ввиду плата от моего штатного ключа не такой формы как этот ключ.

Вы бы марку авто назвали и год выпуска, вин код авто тоже не помешал бы.   

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

С производителем автомобиля я вроде понимаю - или Киа или Хендай. Приемник должен подойти. А вот с алгоритмом динамического ключа, особенно если он завязан на иммобилайзер скорее всего будут проблемы.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

То, что прочитать этот ключ не получится, я поняла. Хочу в такой брелок поставить передатчик и attiny 13

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Если вопрос так стоит, то да, можно. Надо "просто" :) разработать плату под Ваш брелок на которой будут схема передатчика и attiny 13 с обвязкой.

Можно, конечно, использовать собраный передатчик (если влезет в корпус) и attiny 13 с обвязкой навесным монтажом. Но ИМХО для брелка это нонсенс. Хотя, вру, а кнопки куда девать. Т.е. первый вариант.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

ЕвгенийП, поделитесь кодом приемника/передатчика?)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, Ира, мне не жалко, но у меня самый обыкновенный код с библиотекой. Разве что я переделывал библиотекц, чтобы она на другом таймере работала. Ну, сейчас. найду, минутку.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот здесь есть код на основе библиотеки VirtualWire. Причём, есть версия VirtualWire2 - такая же, но на втором таймере, т.к. первый там был занят библиотекой Servo. Коды приёмника и передатчика никак не зависят от того, что используется VirtualWire или VirtualWire2

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Код приемника

#include <VirtualWire.h>
#define  PIN_DATA 2
int message;

void setup(void) {
Serial.begin(9600);
vw_set_rx_pin(PIN_DATA);
vw_setup(2000);
delay(500);
vw_rx_start();
}

void loop() {
if (vw_get_message((uint8_t *)&message,sizeof(message))) {
Serial.println(message);
}
}

Код передатчика

#include <VirtualWire.h>

int package=1111;
void setup() {
    vw_set_tx_pin(2);
    vw_setup(2000);
    }

void loop() {

vw_send((byte *) & package, sizeof(package));
vw_wait_tx();
delay(1000);
}

Все верно?)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Irinka пишет:

Код передатчика

это на attiny ? если заработает - сообщите плиз.

я не смог после спящего режима МК запустить VirtualWire

VasiliyV
Offline
Зарегистрирован: 09.07.2018

andycat пишет:

Irinka пишет:

Код передатчика

это на attiny ? если заработает - сообщите плиз.

я не смог после спящего режима МК запустить VirtualWire

Не запускается VirtualWire на стороне передатчика или приемника?

Вижу. Передатчика....

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Не запускается

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Irinka пишет:
Не запускается

Есть ещё такая библиотека https://github.com/sui77/rc-switch

На ней народ тоже передаёт данные. Может онА на тиньке запустится? Я не пробовал. :(

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Rc-switch запуститься, конкретно эту не пробовал, в теме attiny масса примеров.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Irinka пишет:
Не запускается

А что-нибудь на VirtualWire запускается? Если нет, поищите эту библиотеку для тиньки. Если уж совсем не найдёте - пишите, попробуем работу с таймером перепеисать, наверняка дело в ней.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

В скетче указала только VirtualWire











C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp: In function 'void vw_setup(uint16_t)':

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:390:5: error: 'TCCR1A' was not declared in this scope

     TCCR1A = 0; // Output Compare pins disconnected

     ^

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:391:5: error: 'TCCR1B' was not declared in this scope

     TCCR1B = _BV(WGM12); // Turn on CTC mode

     ^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from C:\UIrinas\Irina\Documents\Arduino\hardware\attiny13\avr\cores\core13/WProgram.h:22,

                 from C:\UIrinas\Irina\Documents\Arduino\hardware\attiny13\avr\cores\core13/Arduino.h:11,

                 from C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.h:146,

                 from C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:31:

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:391:18: error: 'WGM12' was not declared in this scope

     TCCR1B = _BV(WGM12); // Turn on CTC mode

                  ^

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:398:5: error: 'OCR1A' was not declared in this scope

     OCR1A = nticks;

     ^

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:405:5: error: 'TIMSK' was not declared in this scope

     TIMSK |= _BV(OCIE1A);

     ^

In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

                 from C:\UIrinas\Irina\Documents\Arduino\hardware\attiny13\avr\cores\core13/WProgram.h:22,

                 from C:\UIrinas\Irina\Documents\Arduino\hardware\attiny13\avr\cores\core13/Arduino.h:11,

                 from C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.h:146,

                 from C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:31:

C:\UIrinas\Irina\Documents\Arduino\libraries\VirtualWire\VirtualWire.cpp:405:18: error: 'OCIE1A' was not declared in this scope

     TIMSK |= _BV(OCIE1A);

                  ^

exit status 1
Ошибка компиляции для платы ATtiny13 (ATtiny13a).

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, понятно, она ругается на всё, связанное с таймером.

Ира, давайте так, Вы пока поищите библиотеку для 13-ой (например, посмотрите https://github.com/yannickulrich/attiny-RF )

Если совсем никак, то скажете и я в выходные попробую переделать существующую VW под 13-ую. Не уверен, что там какая-нибудь бяка не вылезет, но попытку сделаю. Договорились?

Только если будем делать, то не забудьте сказать в какой она у Вас конфигурации (тактовая частота и т.п.) и как Вы её устанавливаете в IDE.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

ЕвгенийП, спасибо что готовы помогать.

А я вот что увидела:

Так наверное будет намного проще?

130 рублей приемник + передатчик

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Смотрите.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Читаем ЭТУ ветку. В сообщении  № 44 мой код для тиньки-приемника. Передатчик не представляет сложности никакой. Та же есть передатчик для нормальной Ардуинки, он легко ложится на тиньку.

...

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

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Спасибо. Код передатчика мне понятен, на Atttiny13 компилируется.

А как принять используя VirtualWire? (ардуино нано)

"Дефолтные" настройки в коде приемника не читают передатчик.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

А почему вам необходим именно virtualwire? Переходите на например rc switch - вполне рабочее решение.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andycat, сильно от задачи зависит - она не универсальная.

Ира, проблема скорее всего в скорости передачи. Разберитесь и сделайте одинаково, тогда считается.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Не спорю, пробовал пару тройку распространённых библиотек, разницы не понял, выбрал простейшую.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Мне не нужен именно VirtualWire. Ни VirtualWire, ни rc switch у меня не компилируется для тиньки13.

Передатчик.

#define txPin 12
#define Te 320

void setup()
{
  pinMode(txPin, OUTPUT);
}

void loop()
{
  SendCame(1234ul);
  delay(1000);
}

void SendCameBit(byte b)
{
  delayMicroseconds(Te);
  if (!b) digitalWrite(txPin,HIGH);
  delayMicroseconds(Te);
  digitalWrite(txPin,HIGH);
  delayMicroseconds(Te);
  digitalWrite(txPin,LOW);
}

void SendCame(unsigned long Code)
{     
  for (byte i=25;i>0;i--){
  SendCameBit(bitRead(Code, i-1)); 
}
  delay(16);
}

Как я аонимаю скорость передачи это 320?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Нет, один бит отправляется за 320*3 = 960 микросекунд. Значит скорость 1000000/960 = 1042 бита в секунду. Попробуйте установить такую скорость в VW (заодно попродуйте и вокруг - 1041, 1040  и т.п. до 1000 примерно. Где-то должно попасть.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

В теме attiny смотрели примеры? Пробовали? С мобильного сложно ссылки найти мне, но есть рабочие варианты.

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Стесняюсь спросить, может чего не понимаю, что такое:

 01#define txPin 12 ?

12-ый пин это у кого? У тиньки?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

12 пин у уно и нано, т.к. пробую на них, для начала

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Блин! Ближе ночь и меньше толерантности и больше шовинизма в голове!

Обещал же себе - не лезть в девчачьи ветки!!!!! Сорри.... хотя мне пофиг... вобщем....

Короче: ТАМ,  по ссылке, есть МОЙ приемник на тиньке13. НИКАКОЙ ДРУГОЙ не станет нормально работать. Перелопатить его под другие тайминги - ну правда очень просто.

У тиньки 1к программы и всего 64 байта плюс регистры памяти!!!!!

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

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

wdrakula пишет:

Блин! Ближе ночь и меньше толерантности и больше шовинизма в голове!

Обещал же себе - не лезть в девчачьи ветки!!!!! Сорри.... хотя мне пофиг... вобщем....

Короче: ТАМ,  по ссылке, есть МОЙ приемник на тиньке13. НИКАКОЙ ДРУГОЙ не станет нормально работать. Перелопатить его под другие тайминги - ну правда очень просто.

У тиньки 1к программы и всего 64 байта плюс регистры памяти!!!!!

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

Поняла.

Luck2071
Luck2071 аватар
Offline
Зарегистрирован: 01.02.2017

Добрый вечер!

Может подскажите где найти скеч получение кода с одного датчика и в зависимости от кода передать другой код?

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А написать - не вариант?

Luck2071
Luck2071 аватар
Offline
Зарегистрирован: 01.02.2017

Вариант, НО......

Поставлю вопрос по другому,

Сколько будет стоить?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Неправильное место для подобных вопросов. С таким вопросами - вот сюда.

Luck2071
Luck2071 аватар
Offline
Зарегистрирован: 01.02.2017

Спасибо.

А консультация возможна?

Вот что получилось.

 
 
 
Mode(led, OUTPUT);
 
  mySwitch.enableTransmit(10);
}
 
void loop() {
  // Создание переменной для записи кодов кнопок
 unsigned long recive = mySwitch.getReceivedValue();
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    if (value == 0) {
      Serial.print("Unknown encoding");
    } 
    else {
    if (recive == 227982 ) {digitalWrite(led, HIGH ); mySwitch.send(11519233, 24); }
    if (recive == 227973 ) {digitalWrite(led, LOW );  mySwitch.send(11519234, 24); }
 
        delay(100);
        Serial.print("Value (int): ");
        Serial.print( value );
        Serial.print(" Recive: ");
        Serial.println(recive );
        Serial.print(", period duration: ");
 
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
      Serial.print("Value: ");
      Serial.println( value );
      Serial.print("Recive: ");
      Serial.println(recive );
 
    }
   
    mySwitch.resetAvailable();
  }
}

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Для начала надо вставить свой код через {Code}, а потом уже посылать несколько раз.

И, да - 433mhz - это однонаправленный канал коммуникации. Если передатчик послал, но приемник был в это время чем-то занят или радиоволну сбила ворона, то посланный пакет канул в небытие. Нет никаких чудесных способностей у приемника для того, чтобы поймать его спустя полчаса.

Luck2071
Luck2071 аватар
Offline
Зарегистрирован: 01.02.2017

Я не селен в программировании  и ".... Для начала надо вставить свой код через {Code}, а потом уже посылать несколько раз..." мне немного не понятно.

Работает более стабильно

 if (recive == 227982 ) {digitalWrite(led, HIGH ); mySwitch.send(11519233, 24); mySwitch.send(11519233, 24); mySwitch.send(11519233, 24); }

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

можно посылать сигнал с задержкой (пол секунды) в течении полчаса...  Главное чтобы передатчик не сплоховал.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Luck2071 пишет:

Я не селен в программировании  и ".... Для начала надо вставить свой код через {Code}, а потом уже посылать несколько раз..." мне немного не понятно.

Программирование - это внимательность и наблюдательность. Наблюдательность позволила бы вам поднять глаза и увидеть под словом "Комментарий" упомянутый выше элемент. 

Luck2071 пишет:

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

можно посылать сигнал с задержкой (пол секунды) в течении полчаса...  Главное чтобы передатчик не сплоховал.

Можно так, можно сяк. С задержкой или долбить по сотне посылок - решение принимается на основании статистики. Никакого рецепта гарантированной доставки по однонаправленному каналу не существует.
Luck2071
Luck2071 аватар
Offline
Зарегистрирован: 01.02.2017

Спасибо за консультацию!