Você está no 3DFinder
Buscamos em Thingiverse, MakerWorld e Printables ao mesmo tempo para te dar o melhor de cada uma.
Descrição
Clicky - Smart Button è una custodia da montaggio pulita, ultra-compatta e minimalista, progettata specificamente per l'M5Stack ATOM S3 Lite. Trasforma la tua scheda di sviluppo in un interruttore domotico elegante e funzionale, capace di integrarsi perfettamente in qualsiasi ambiente.
Può essere posizionato ovunque in base alle tue esigenze di automazione:
- A parete: Come un classico interruttore o pulsante di controllo a muro.
- Da scrivania: Come un pratico controller da tavolo sempre a portata di mano.
- Sotto il tavolino: Posizionato in modo discreto o nascosto (ad esempio sotto una scrivania o un tavolino da caffè) per un controllo invisibile.
La custodia presenta uno scasso su misura nella parte inferiore per il collegamento del cavo USB-C, garantendo un posizionamento perfetto e ordinato su qualsiasi superficie.
Caratteristiche Principali
Questo pulsante intelligente è ideale per qualunque tipo di automazione domestica. Integrato con Home Assistant tramite ESPHome, espone un'unica entità di evento in grado di rilevare diversi tipi di tocco:
- Tocco Singolo (Single Click): Completamente personalizzabile per attivare o disattivare qualsiasi dispositivo o scenario.
- Pressione Prolungata (Long Press): Utile per una seconda funzione indipendente.
- Doppio Tocco (Double Click): Per una terza automazione a tua scelta.
La matrice LED RGB interna (4x WS2812) fornisce un feedback visivo immediato e colorato in base all'azione eseguita, oltre a fungere da indicatore luminoso per lo stato della connessione (WiFi e API di Home Assistant).
Consigli per la Stampa 3D
- Materiale: Può essere stampato sia in PLA che in PETG.
- Montaggio: Progettato per essere fissato facilmente a pareti, mobili o superfici lisce utilizzando del semplice nastro biadesivo.
- Gestione del Cavo: Include uno scasso preciso sul fondo per il passaggio del cavo di alimentazione USB-C.
Codice di Configurazione ESPHome
Di seguito trovi il codice di configurazione pronto all'uso per ESPHome.
esphome:
name: smart-wall-button
friendly_name: Pulsante Smart Configurabile
comment: M5Stack Atom S3 Lite - Pulsante multi-click con feedback LED
on_boot:
priority: -100
then:
- script.execute: update_status_led
esp32:
board: esp32-s3-devkitc-1
variant: esp32s3
framework:
type: esp-idf
wifi:
ssid: "IL_TUO_WIFI_SSID"
password: "LA_TUA_WIFI_PASSWORD"
fast_connect: true
power_save_mode: none
ap:
ssid: "Hotspot di Emergenza Pulsante Smart"
password: "PasswordIniziale123"
api:
ota:
- platform: esphome
logger:
baud_rate: 0
level: INFO
captive_portal:
# ---------------------------------------------------------------------------
# Configurazione LED RGB (Matrice 4x WS2812 sotto il pulsante, GPIO35)
# ---------------------------------------------------------------------------
light:
- platform: esp32_rmt_led_strip
id: status_led
name: "LED di Stato"
internal: true
pin: GPIO35
num_leds: 4
rgb_order: GRB
chipset: ws2812
restore_mode: RESTORE_DEFAULT_OFF
effects:
- pulse:
name: slow_pulse
transition_length: 500ms
update_interval: 500ms
min_brightness: 10%
max_brightness: 40%
# ---------------------------------------------------------------------------
# Integrazione Eventi Home Assistant (Entità singola con trigger multipli)
# ---------------------------------------------------------------------------
event:
- platform: template
name: "Evento Pulsante Smart"
id: button_event
device_class: button
event_types:
- single_click
- double_click
- long_press
# ---------------------------------------------------------------------------
# Configurazione Pulsante Fisico (GPIO41)
# ---------------------------------------------------------------------------
binary_sensor:
- platform: gpio
id: atom_button
internal: true
pin:
number: GPIO41
inverted: true
mode: INPUT_PULLUP
filters:
- delayed_off: 20ms
on_multi_click:
# Configurazione pressione prolungata
- timing:
- ON for at least 800ms
then:
- event.trigger:
id: button_event
event_type: long_press
- script.execute: led_feedback_long_press
# Configurazione doppio click
- timing:
- ON for at most 400ms
- OFF for at most 300ms
- ON for at most 400ms
- OFF for at least 300ms
then:
- event.trigger:
id: button_event
event_type: double_click
- script.execute: led_feedback_double
# Configurazione click singolo
- timing:
- ON for at most 400ms
- OFF for at least 300ms
then:
- event.trigger:
id: button_event
event_type: single_click
- script.execute: led_feedback_single
on_press:
- script.execute: led_long_press_hold
on_release:
- script.execute: led_long_press_release
# ---------------------------------------------------------------------------
# Script per i Feedback Visivi del LED
# ---------------------------------------------------------------------------
script:
- id: led_feedback_single
mode: restart
then:
- light.turn_on:
id: status_led
brightness: 60%
red: 0%
green: 100%
blue: 0%
effect: none
- delay: 200ms
- script.execute: update_status_led
- id: led_feedback_double
mode: restart
then:
- light.turn_on:
id: status_led
brightness: 80%
red: 0%
green: 0%
blue: 100%
effect: none
- delay: 120ms
- light.turn_off: status_led
- delay: 80ms
- light.turn_on:
id: status_led
brightness: 80%
red: 0%
green: 0%
blue: 100%
effect: none
- delay: 120ms
- script.execute: update_status_led
- id: led_feedback_long_press
mode: restart
then:
- light.turn_on:
id: status_led
brightness: 70%
red: 100%
green: 50%
blue: 0%
effect: none
- id: led_long_press_hold
mode: restart
then:
- delay: 800ms
- if:
condition:
binary_sensor.is_on: atom_button
then:
- light.turn_on:
id: status_led
brightness: 70%
red: 100%
green: 50%
blue: 0%
effect: none
- id: led_long_press_release
mode: restart
then:
- script.execute: update_status_led
- id: update_status_led
mode: restart
then:
- if:
condition:
and:
- wifi.connected
- api.connected
then:
# Verde fisso a bassa intensità quando è connesso correttamente
- light.turn_on:
id: status_led
brightness: 15%
red: 0%
green: 100%
blue: 0%
effect: none
else:
- if:
condition:
wifi.connected
then:
# Verde pulsante se connesso al WiFi ma manca l'API di Home Assistant
- light.turn_on:
id: status_led
brightness: 20%
red: 0%
green: 100%
blue: 0%
effect: slow_pulse
else:
# Rosso fisso se completamente disconnesso dal WiFi
- light.turn_on:
id: status_led
brightness: 40%
red: 100%
green: 0%
blue: 0%
effect: none
# ---------------------------------------------------------------------------
# Controllo dello Stato della Connessione (Verifica ogni 10 secondi)
# ---------------------------------------------------------------------------
interval:
- interval: 10s
then:
- script.execute: update_status_led
Gostou deste modelo? Crie uma conta grátis para salvar seus favoritos e voltar a eles depois.
Criar conta