Під час створення власного ІЧ‑хаба для Home Assistant першим етапом є зчитування команд штатного ІЧ‑пульта. Без цього неможливо відтворити їх за допомогою ESP32. Хоча ESPHome уміє працювати з ІЧ‑приймачами, на практиці деякі пульти визначаються не повністю або декодуються некоректно. Під час розробки власного ІЧ‑хаба я зіткнувся саме з другим варіантом.
У цій статті покажу надійний спосіб зчитування ІЧ‑команд за допомогою ESP32‑C3 Super Mini та Arduino IDE. Отримані коди ми використаємо у другій частині для створення універсального ІЧ‑хаба на ESPHome.
Що вийде
- зчитати команди практично будь‑якого ІЧ‑пульта;
- визначити використовуваний протокол;
- зберегти команди в зручну таблицю;
- підготувати дані для ESPHome;
- використати їх у Home Assistant.
Компоненти
- ESP32‑C3 Super Mini
- VS1838B
- кілька проводів DuPont
Чому Arduino IDE, а не ESPHome
Під час тестування з’ясувалося, що для деяких пультів ESPHome визначає команди не повністю. Arduino IDE з бібліотекою IRremote показала стабільніший результат, тому саме її використовуємо для зчитування кодів. У наступній статті знову повернемося до ESPHome, слідкуйте за анонсами.
Схема підключення
Скоро буде фото
| VS1838B | ESP32‑C3 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| OUT | GPIO3 |
У статті передбачається, що Arduino IDE вже встановлена, а читач знайомий із встановленням бібліотек через Library Manager. Використовувалася бібліотека IRremote версії 4.7.1.
Для яких пристроїв підійде цей спосіб
- телевізорів;
- кондиціонерів;
- люстр з ІЧ‑пультом;
- ТВ‑приставок;
- медіаплеєрів;
- вентиляторів;
- іншої побутової техніки з інфрачервоним керуванням.
Після прошивки ESP32 скетчем (у кінці статті) ви можете натискати кнопки на своєму пульті, і за допомогою ІЧ‑приймача VS1838B мікроконтролер буде виводити в монітор порту: протокол / адресу / команду, що дозволить створити таблицю команд для їх подальшого відтворення, приблизно такого вигляду:
Зчитуємо команди
Приклад виводу.
Protocol: NEC
Address: 0x00
Command: 0x46
Створюємо таблицю
| Кнопка | Протокол | Адреса | Команда |
|---|---|---|---|
| Power | NEC | 0x00 | 0x46 |
Можливі проблеми
Замість протоколу відображається лише RAW
- Деякі сучасні або малопоширені пульти використовують нестандартні протоколи, які бібліотека не може автоматично розпізнати.
- У цьому випадку в Serial Monitor з’являться лише необроблені (RAW) дані.
- Це не означає, що такий пульт неможливо використати. У більшості випадків RAW‑команди також можна передавати назад, однак обсяг даних значно більший, ніж у стандартних протоколів NEC, Samsung, Sony чи RC5.
Одна й та сама кнопка щоразу видає різні значення
- Деякі пристрої використовують захист від повторного відтворення команд (rolling code) або передають додаткові службові дані.
- Однак більшість побутових пристроїв (телевізори, кондиціонери, люстри, ТВ‑приставки) використовують постійні коди, тому при повторному натисканні однієї кнопки адреса й команда мають збігатися.
- Якщо значення відрізняються незначно, спробуйте натискати кнопку коротко й не утримувати її.
Команди повторюються кілька разів
- Це нормальна поведінка.
- Практично всі ІЧ‑пульти кілька разів надсилають одну й ту саму команду, щоб пристрій гарантовано її прийняв.
- Під час складання таблиці достатньо записати команду один раз.
Після того як усі команди зчитано, можна переходити до створення власного ІЧ‑хаба на ESPHome. У другій статті серії ми завантажимо ці команди в ESP32‑C3 Super Mini та підключимо пристрій до Home Assistant.
Попри те, що ESPHome підтримує роботу з ІЧ‑приймачами, для зчитування команд Arduino IDE з бібліотекою IRremote під час тестування показала стабільніший результат. Тому ми використовуємо кожен інструмент за його сильною стороною: Arduino IDE для отримання кодів, а ESPHome для керування технікою та інтеграції з Home Assistant.



Коментарі до статті
Поки що немає коментарів. Будьте першим!
Додати коментар