Оглавление:

Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов
Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов

Видео: Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов

Видео: Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов
Видео: Реверс инжиниринг для начинающих. Что это такое? 2024, Ноябрь
Anonim
Обратный инжиниринг протокола Ritter 8341C для ESP3866
Обратный инжиниринг протокола Ritter 8341C для ESP3866

Всем привет.

Для моей собственной небольшой домашней автоматизации я использую первичные управляемые розетки 433 МГц. У меня есть 3 комплекта с DIP-переключателями для настройки адреса. Они работали нормально. Но какое-то время (год-два) назад я приобрел комплект розеток от "ritter". Раньше я не читал описание, а после распаковки понял, что DIP-переключателей нет, а также библиотека rcswitch для ESP не «говорит» правильный протокол. Поэтому я использовал их только с пультом дистанционного управления.

Сейчас, в отпуске, я начал менять это… и здесь я хочу задокументировать этот проект. Надеюсь, это поможет кому-нибудь еще с той же или подобной проблемой.

Шаг 1. Запись сигналов

Запись сигналов
Запись сигналов
Запись сигналов
Запись сигналов

Для записи сигналов я подключил модуль приемника 433 МГц к ESP8266 (подойдет только источник питания) и подключил свой осциллограф Hantek 6022 к контакту данных.

Затем я нажал кнопку на пульте дистанционного управления и записал сигнальный поезд.

Шаг 2: Измерение импульса / задержки

Измерение импульса / задержки
Измерение импульса / задержки

После записи сигнала я искал начало и конец одного пакета. Обычно пульт дистанционного управления с разъемом отправляет 3 раза одинаковые пакеты, а иногда и до тех пор, пока кнопка нажата.

Теперь я измерил время импульса / задержки и записал его. Я повторил это для всех шести сигнальных поездов (3 раза включено + 3 раза выключено).

Шаг 3: сравните сигналы для разъемов 1, 2, 3 и найдите разницу

Сравните сигналы для разъемов 1, 2, 3 и найдите разницу
Сравните сигналы для разъемов 1, 2, 3 и найдите разницу

После некоторых измерений я сравнил длительности сигналов HIGH и LOW +. Изменения были разными командами. Другие сигналы были чем-то вроде кодов протокола / производителя. Также у каждого пакета была начальная и конечная последовательность.

Сигнал состоит из «СТАРТ + ПОСЛЕДОВАТЕЛЬНОСТЬ НЕ ИЗМЕНИТЬ + КОМАНДА ВКЛЮЧЕНИЯ / ВЫКЛЮЧЕНИЯ + АДРЕС УСТРОЙСТВА + КОНЕЦ».

Шаг 4: напишите код для тестирования

Написать код для тестирования
Написать код для тестирования

Через некоторое время у меня была вся необходимая (теоретическая) информация. Поэтому я создал небольшой тестовый скетч для ESP8266 и передатчика 433 МГц. В цикле все три розетки включаются / выключаются с задержкой между командами.

Шаг 5. Проверьте код с помощью базового отправителя

Протестируйте код с помощью базового отправителя
Протестируйте код с помощью базового отправителя
Протестируйте код с помощью базового отправителя
Протестируйте код с помощью базового отправителя

Я подключил аккумулятор к ESP и пошел в гостиную. 5 из 6 команд работали, и после исправления ошибки записи в последовательности команд все коды работали.

Хорошо, теперь я могу переключить все 12 RC-разъемов (9 с DIP-адресом + 3 новых Ritter) с помощью моего контроллера ESP8266 RC.

Вы можете найти демо-код на GitHub

Рекомендуемые: