Умные тактильные кнопки стола

Источник:

Компактный настольный блок управления с пятью физическими кнопками, каждая из которых имеет собственную OLED-наклейку, предназначенный для использования с Home Assistant. У него действительно приятное действие кнопок и щелчок.

Требуются навыки сборки и пайки.
Возможно, сделаю более подробную инструкцию или подумаю о продаже полусобранных агрегатов позже, если будет достаточный интерес.

Мой вариант использования

Я сделал этот небольшой кнопочный блок для своей установки Home Assistant, потому что хотел иметь возможность физически запускать все, что захочу, с приятным на ощупь и внешним видом. Светодиод выдвигается вперед с помощью нейлоновой нити и реагирует на триггер или статус.

Интегрируется через ESPHome

Каждая кнопка может запускать:

Объекты Home Assistant

Сцены

Скрипты или автоматизация

Надписи кнопок являются дружественными метками выбранного объекта.

Питание через USB

Вы можете реализовать свои идеи, дайте мне знать об этом в комментариях или оставьте Make.
Хотелось бы услышать об этом!

Инструкции

Простое подключение: шлейфовое зазе��ление для кнопок и заземление 3,3 В для OLED-экранов.

Три прорези внизу предназначены для монет номиналом 5 центов (€) для увеличения веса.

OLEDS-дисплеи вставляются прямо в кнопки, штифты обращены к верхней стороне кнопки.

Части:

5x OLED 64x32

Экран I2C

5x микропереключатель

TCA9548A I2C ИИК

Мультиплексор 8-канальный

5x пружин
Диаметр: 7 мм

Толщина: 0,5 мм

Длина: 20 мм

ESP32-C3 СуперМини

Разное:

1 мм нейлон

Магниты 5x2 мм (2 шт.)

Вырез на резиновых ножках

22AWG-28AWG

кабель

Код:
Конфигурация.yaml:

шаблон:
— двоичный_сенсор:
— имя: «Кнопка 1 на рабочем столе — Кнопка 1 включена»
уникальный_ид: Desk_button_1_button_1_on
состояние: >
{% set ent_id = States('input_text.desk_button_1_target_1') | обрезать %}
{%, если ent_id в состояниях %}
{{ is_state(ent_id, 'вкл') }}
{% еще %}
ложный
{% конечный %}

— имя: «Кнопка 1 на рабочем столе — Кнопка 2 включена»
уникальный_ид: Desk_button_1_button_2_on
состояние: >
{% set ent_id = States('input_text.desk_button_1_target_2') | обрезать %}
{%, если ent_id в состояниях %}
{{ is_state(ent_id, 'вкл') }}
{% еще %}
ложный
{% конечный %}

— имя: «Кнопка 1 на рабочем столе — Кнопка 3 включена»
unique_id: Desk_button_1_button_3_on
состояние: >
{% set ent_id = States('input_text.desk_button_1_target_3') | обрезать %}
{%, если ent_id в состояниях %}
{{ is_state(ent_id, 'вкл') }}
{% еще %}
ложный
{% конечный %}

— имя: «Кнопка рабочего стола 1 — Кнопка 4 включена»
unique_id: Desk_button_1_button_4_on
состояние: >
{% set ent_id = States('input_text.desk_button_1_target_4') | обрезать %}
{%, если ent_id в состояниях %}
{{ is_state(ent_id, 'вкл') }}
{% еще %}
ложный
{% конечный %}

— имя: «Кнопка 1 на рабочем столе — Кнопка 5 включена»
unique_id: Desk_button_1_button_5_on
состояние: >
{% set ent_id = States('input_text.desk_button_1_target_5') | обрезать %}
{%, если ent_id в состояниях %}
{{ is_state(ent_id, 'вкл') }}
{% еще %}
ложный
{% конечный %}

— датчик:
— имя: «Настольная кнопка 1, метка 1»
уникальный_ид: Desk_button_1_label_1
состояние: >
{% set ent = States('input_text.desk_button_1_target_1') | обрезать %}
{% если ent | regex_match('^[a-z_]+\\.[a-z0-9_]+$') %}
{{state_attr(ent, 'Friend_name') или ent }}
{% еще %}
БТН 1
{% конечный %}

— имя: «Настольная кнопка 1, метка 2»
уникальный_ид: Desk_button_1_label_2
состояние: >
{% set ent = States('input_text.desk_button_1_target_2') | обрезать %}
{% если ent | regex_match('^[a-z_]+\\.[a-z0-9_]+$') %}
{{state_attr(ent, 'Friend_name') или ent }}
{% еще %}
Б��Н 2
{% конечный %}

— имя: «Кнопка 1 на столе, метка 3»
уникальный_ид: Desk_button_1_label_3
состояние: >
{% set ent = States('input_text.desk_button_1_target_3') | подрезать

23:02
36
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.