Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов
Обратный инжиниринг протокола Ritter 8341C для ESP3866: 5 шагов
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

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