Ir para conteúdo
3DFinder
Entrar

Você está no 3DFinder

Buscamos em Thingiverse, MakerWorld e Printables ao mesmo tempo para te dar o melhor de cada uma.

Buscar mais como este
Modelo 3D Clicky - Smart Button por Geko.3D.Forge no MakerWorld

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
 

MakerWorld

Clicky - Smart Button

Publicado em 23 de jun de 2026

0
Curtidas
1
Downloads
4
Coleções
Categoria Other House Models
Tags
button atom echo M5 m5 m5 stack m5stack stack lite s3 Home Assistant home assistant HA ESP ESP 32 ESPHome esphome smart smarthome
Licença MakerWorld Exclusive License
Ver no MakerWorld (abre em nova aba)

Gostou deste modelo? Crie uma conta grátis para salvar seus favoritos e voltar a eles depois.

Criar conta