Кнопочный концентратор ESPHome
ПРОЕКТ:
Мне всегда хотелось иметь центральный центр управления моими светильниками, который позволял бы мне легко включать и выключать их, а также получать обратную связь об их статусе. Это было также желание, потому что моим родителям очень трудно включать или выключать свет с помощью мобильного телефона. Поэтому я создал концентратор с 16 кнопками и 16 светодиодами, который взаимодействует с Home Assistant.
Требования к программному обеспечению:
Запустите Home Assistant;
Узнайте, как настроить ESPHome на вашем компьютере;
Некоторые знания ESPHome и HomeAssistant;
Требования к оборудованию:
ESP32-S3-DEVKITC1 + Плата расширения (для лучшего крепления кабелей);
Любой кабель USB C для питания платы ESP32;
16 кнопок мгновенного действия диаметром 16 мм и высотой 18 мм;
16 светодиодов 3,3 В (опционально);
Провод AWG 22 для подключения (или любой другой подходящий кабель)
Винты с внутренним шестигранником 9 x 3 x 10 мм (для крепления верхней части коробки)
5 винтов с шестигранной головкой 3 x 3 мм для крепления платы ESP (вы можете использовать более длинные и просто обрезать их до нужной длины или использовать с гайками и шайбами, чтобы плата крепилась правильно)
Вы можете использовать другое оборудование, совместимое с ESPHome, которое поддерживает 32 GPIO или 16, если вы не хотите использовать светодиоды. Возможно, вам придется изменить код, если вы используете только кнопки. Вам также понадобится паяльник для припаивания кабелей к светодиодам и кнопкам.
ИСПОЛЬЗУЕМЫЕ ЧАСТИ:
Итак, вот ссылки на детали, которые я использовал (это партнерские ссылки, и я получаю от них небольшую комиссию, но вы можете покупать детали где угодно :) )
Продукты, которые я купил и протестировал:
ESP32-devkitC1 (купить вместе с платой расширения)
Провода
Кнопки
Вставки с подогревом
USB-кабель C
Продукты, которые я не купил, потому что у меня что-то лежало:
Светодиоды 3,3 В
ПЕЧАТЬ:
Вам нужно распечатать 3 части:
Коробка (куда будет крепиться ESP)
Панель коробки (куда будут прикреплены кнопки и светодиод)
Держатель кабеля (держите кабель USB C)
Печатал все с соплом 0,6 мм.
Включите глажение верхних пове��хностей панели коробки. После печати во все отверстия вставил вставки с подогревом 3мм.
Вы можете заметить, что на фотографиях посередине имеется отверстие для винта. Я удалил эту дыру из финальной версии, т.к. в ней не было необходимости.
ЭТИКЕТКИ:
Для каждого прямоугольника сбоку от кнопки я сделал метку, указывающую, что делает кнопка. Для этого я создал ярлыки в Power Point. Каждый прямоугольник имеет размер 20х50 мм.
Я распечатал все этикетки на клейкой фотобумаге и распылил на них УФ-защиту.
СБОРКА:
Поместите все кнопки в детали, напечатанные на 3D-принтере;
Вставьте светодиоды в отверстия и зафиксируйте их горячим клеем;
ПРОВОДКА:
Это может занять много времени из-за всей пайки, которую вам придется выполнить, но на самом деле все просто:
У каждого светодиода одна ножка должна быть подключена к 3,3 В, а другая — к PIN-коду GPIO;
У каждой кнопки одна ножка должна быть подключена к GND, а другая — к PIN-коду GPIO;
Не следует подключать светодиод и кнопку к одному и тому же GPIO;
Всего Вы подключите 32 GPIOS.
Будьте осторожны, чтобы ничего не закоротить при пайке (вы можете использовать изоляционную ленту или горячий клей, чтобы предотвратить замыкание при закрытии коробки);
Оставьте достаточную длину для провода, чтобы вы могли открывать и закрывать корпус (помните, что внутри коробки есть место для размещения провода дополнительной длины).
Ниже приведена таблица с используемыми мной GPIO (здесь вы можете использовать любые GPIO, но следите за тем, какие GPIO вы используете):
Светодиодный переключатель контакта GPIO. Контакт GPIO
LED_1 20 SW_1 19
LED_2 47 SW_2 21
LED_3 45 SW_3 48
LED_4 35 SW_4 0
LED_5 37 SW_5 36
LED_6 39 SW_6 38
LED_7 41 SW_7 40
LED_8 2 SW_8 42
LED_9 13 SW_9 14
LED_10 11 SW_10 12
LED_11 9 SW_11 10
LED_12 3 SW_12 46
LED_13 18 SW_13 8
LED_14 16 SW_14 17
LED_15 7 SW_15 15
LED_16 5 SW_16 6
ПРОВЕРОЧНЫЙ КОД ЭЛЕКТРОПРОВОДКИ:
Итак, чтобы проверить правильность всей проводки, я написал код Arduino, который заставит каждый светодиод включаться при нажатии кнопки рядом со светодиодом. Если все загорается, значит, можно перейти к коду ESPHome. Это видео помогло мне настроить IDE Arduino для платы.
#define LED_1 20
#define LED_2 47
#define LED_3 45
#define LED_4 35
#определение





























