Имитация пульта на 433 МГц
- Войдите на сайт для отправки комментариев
Добрый день!
Имеется устройство: пульт на 433МГц с тремя кнопками. Мне нужно имитировать нажатия этих кнопок при помощи передатчика, подключенного к ардуине. Сам пульт я разобрать не могу, т.к. боюсь его повредить (он довольно-таки плотно собран), поэтому не могу посмотреть какой там чип установлен.
Что было сделано: собрал простую схемку из Ардуино Про Мини и приемника mx-rm-5v (подал питание на приемник, а контакт DATA подключил к пину D2 ардуинки). Попробовал несколько разных библиотек типа rc-switch, заливал в ардуинку пробные скетчи из них - толку никакого, похоже протокол нестандартный, библиотеки его не распознают никак. При этом сигнал от приемника при нажатии кнопок поступает в ардуинку, проверил это простеньким осцилографом и выводом digitalRead(2) в плоттер последовательного порта. Причем коды с пульта всегда одинаковые (для каждой кнопки), то есть статические.
Прошу у опытных товарищей помощи: как не разбирая пульта наиболее простым способом повторить его сигналы? Может библиотеку какую-нибудь посоветуете или простую методу?
как не разбирая пульта наиболее простым способом повторить его сигналы?
чем, интересно, вам поможет разборка пульта? Увидите, как электроны на антенну забегают? :)
Единственный способ - подобрать такую библиотеку. чтобы читала сигналы с пульта. Или написать ее самому. Тем более, если вы сигналы уже принимаете и можете выводить в сериал
чем, интересно, вам поможет разборка пульта? Увидите, как электроны на антенну забегают? :)
Просто на форумах советуют разобрать пульт и посмотреть какой чип внутри, а по чипу искать протокол передачи сигналов
А Вы бы сказали поподробнее задачу. Что за пульт? Какого характера сигналы? Если сигналы всегда одинаковые для каждой кнопки, то один разговор, если всегда разные, то свосем другой.
Пульт от рулонных штор, фирма Mosel.
Коды всегда одинаковые (по крайней мере похожи). Выглядят примерно так: сначала серия коротких импульсов, затем один длинный и снова небольшая серия коротких. Похоже на передачу кода устройства (пульт привязывается к конкретному приводу), затем разделитель (длинный импульс) и после этого код кнопки (вверх, вниз или стоп). Скриншоты я ещё не научился делать на осциллографе, поэтому картинку выложить не могу.
Ну, тогда собственно что мешает просто записать сигнал каждой кнопки и, при необходимости, дублировать его?
Ну допустим, что записать последовательность импульсов и пауз между ними, а также их длительность я смогу, например буду это делать с использованием прерываний. Но как передать все это в эфир?
Я бы, для начала, попробовал также точно дёргать за ногу data передатчика FS1000A. Один раз у меня такое прокатило. Я дёргал, он передавал, а незнакомый мне приёмник это скушал.
Спасибо, попробую, возможно тоже прокатит.
Отпишусь о результатах, может кому-нибудь пригодится:
1. Для считывания сигналов с пульта взял отсюда скетч:
С его помощью получил набор цифр - длительность промежутков между высоким и низким уровнем сигнала.
2. Проанализировал полученный набор, нашел в нем повторяющиеся куски. Выяснил, что сначала подается сигнал о начале передачи. Он отличается по длительности от всех остальных: примерно 4775 мс подается высокий уровень сигнала, пауза примерно 1532 мс. После стартового сигнала идет серия коротких импульсов. Единица кодируется импульсом примерно 700мс и паузой 400 мс, ноль - импульс 350 мс и паузой 750 мс. (это все конечно условно, можно и наоборот их назвать). Последний импульс характерен длительностью примерно 700мс и паузой примерно 10064мс.
3. Модифицировал исходный скетч, чтобы получить код нажатой кнопки, состоящий из нулей и единиц. Как оказалось - каждый код передается по 4 раза. При нажатии кнопки "вверх" передается два разных кода (скорей всего это сделано для привязки пульта к приводу). В итоге получил двоичные коды каждой кнопки пульта.
4. Имея на руках коды кнопок - написал простенький скетч для дерганья ноги передатчика (на delayMicroseconds()) в соответствии со строкой из нолей и единиц (ну и добавив начальный и конечный импульсы). В итоге все заработало.
Очень хорошо в этом деле мне помог осцилограф. Без осцилографа или логического анализатора совершенно непонятно работает ли модуль, передает ли что-то в эфир... На модулях нет никакой индикации, нет ни светодиода ни чего-то еще.
Т.е. примерно как я говорил, и получилось? Ну, с Победой!
Выяснил, что сначала подается сигнал о начале передачи. Он отличается по длительности от всех остальных: примерно 4775 мс подается высокий уровень сигнала, пауза примерно 1532 мс. После стартового сигнала идет серия коротких импульсов. Единица кодируется импульсом примерно 700мс и паузой 400 мс, ноль - импульс 350 мс и паузой 750 мс. (это все конечно условно, можно и наоборот их назвать). Последний импульс характерен длительностью примерно 700мс и паузой примерно 10064мс.
Это сколько надо на кнопку жать, если только стартовый инпульс почти 5 сек. длица? А последний импульс паузой в 10 с вапще фееричен
Т.е. примерно как я говорил, и получилось? Ну, с Победой!
Да, именно так, ничего там сложного с этим передатчиком. Благодарю.
Это сколько надо на кнопку жать, если только стартовый инпульс почти 5 сек. длица? А последний импульс паузой в 10 с вапще фееричен
А, да, конечно в микросекундах все импульсы. Ошибочка вышла, спасибо за поправку.
3. Модифицировал исходный скетч, чтобы получить код нажатой кнопки, состоящий из нулей и единиц. Как оказалось - каждый код передается по 4 раза. При нажатии кнопки "вверх" передается два разных кода (скорей всего это сделано для привязки пульта к приводу). В итоге получил двоичные коды каждой кнопки пульта.
Доброго дня!
Скетчем для получения кода кнопки поделитесь, пожалуйста.
Скетчем поделюсь, только это вряд ли поможет, т.к. протокол передачи у всех свой и длительности импульсов (стартовых, например) тоже разные. А код такой же как в посте №9, меняется только обработчик:
После работы данного скетча получаю длинную цепочку из нулей и единиц, которая начинается с 12ти нулей, после этого идёт 32 бита которые меняются от нажатия к нажатию, после них идут 33 бита постоянно повторяющиеся...
Пульт BFt :
Скорей всего это пульт с динамическим кодом, вряд ли удастся заставить его работать просто повторив "посылку".
День добрый товарищи помогите пожалуйста разобраться, есть у меня несколько штор с али, на пультах АС123-01D 433,92Мгц, хотелось бы управлять ими с ардуинки, споткнулся уже на считывания сигнала :(
стандартные библиотеки ничего не перехватывают, вышеуказанный скетч ловит следующие данные:
12:46:41.756 -> 5... 4... 3... 2... 1...
Насколько я понял передача начинается с длительности импульса больше 10000, есть так же выгрузка с анализатора (4 раза нажата кнопка):
Добрый день. Помогите раскопать если сможете. Имеется aruino nano + приемник 433. Воспользовался скетчем палкаподнималка, немного доработал по цифрам Pe. Считываю автомобильный ключ и ловлю 32 бита одних 1. Чтобы это значило? При нажатии на разные кнопки, код один и тот же. Из мыслей только играться со смещениями.
например, что ваш ключ несовместим ни с одним из алгоритмов, заложенных в коде
Да, с библиотеками не работает. Я считываю raw data, и вычисляю импульсы, их анализирую. Нажатия кнопок отсекаются четко, а вот с кодом что-то не так.