Przejdź do głównej zawartości

Karuzela dla dziecka

Przyszedł taki moment, że pojawił się w domu nowy członek rodziny, a wraz z nim zaczęło przybywać różnych zabawek. Najpierw była ładna różowiutka nakręcana karuzela, która oczywiście od razu przypadła do gustu młodej artystce.

Po jakimś czasie dostaliśmy w prezencie karuzelę już bardziej na wypasie, z melodyjkami, która sama się kręci, no bajera na całego, ale... no właśnie, człowiek to leniwe zwierzę i nie zawsze chciało się wstawać, żeby ją włączyć.

Postanowiłem trochę ją zmodyfikować, dodać funkcjonalności i wyeliminować okresową wymianę  baterii. Rozkręciłem karuzelę, żeby ocenić w jaki sposób można by tu symulować wciskanie przycisków.

Na początek można spojrzeć na efekt działania (zrób trochę głośniej)
Poniżej trochę opisu jak to wsystko powstało.

Posprawdzałem przejścia, pomierzyłem napięcia i wyszło, że wystarczy podać na przycisk napięcie zasilania. 

Jako główny moduł wybrałem ESP8266 w wersji ESP-12. Posiada on za mało I/O, żeby wysterować wszystkie przyciski, dlatego postanowiłem wspomóc się ekspanderem PCF8574. Między każde wyjście ekspandera a fizyczny przycisk dodałem diodę 1N4148, aby nic ze sobą nie kolidowało. 
Innym rozwiązaniem mogłoby być zastosowanie układu CD4051, jest to 8-kanałowy analogowy multiplekser, co właściwie nawet by uprościło podłączenie. 

Schemat połączeń opisałem sobie na kartce.
Dodatkowo dołożyłem możliwość wyłączenia samego silniczka z maskotkami, przydatna opcja, ponieważ maskotki zawieszone są na mimośrodzie i w pewnych pozycjach następuje gwałtowna zmiana pozycji a co za tym idzie większy hałas. 

W szufladowych gratach znalazłem jakiś mały projektorek zasilany na USB więc aż szkoda go nie wykorzystać, dołożyłem do karuzeli gniazdo USB właśnie pod ten projektor. Był to świetny pomysł, córka jest bardzo zainteresowana efektem na suficie, a dodatkowo w nocy pełni rolę lampki o delikatnym świetle.

Oprogramowanie zostało napisane z wykorzystaniem EspHome 
substitutions: device_name: "carousel" press_time: 500ms esphome: name: ${device_name} platform: ESP8266 board: nodemcuv2 wifi: ssid: "wifiSSID" password: "wifiPASSWD" fast_connect: true logger: api: ota: web_server: port: 80 i2c: sda: GPIO5 scl: GPIO4 scan: True id: bus_a # PCF8574AT A0,A1,A2 -> VCC pcf8574: - id: 'pcf8574_hub' address: 0x3F switch: # Switch on Carousel - platform: gpio id: power pin: GPIO16 name: "${device_name}_power" icon: "mdi:power" on_turn_off: - switch.turn_off: motor - switch.turn_off: projector # Motor - platform: gpio id: motor pin: GPIO13 name: "${device_name}_motor" icon: "mdi:rotate-orbit" # Projector - platform: gpio id: projector pin: GPIO14 name: "${device_name}_projector" icon: "mdi:weather-night" # Random - platform: gpio id: random_song pin: GPIO12 name: "${device_name}_random" icon: "mdi:rotate-3d-variant" on_turn_on: - delay: $press_time - switch.turn_off: random_song # PCF8574 - songs and volume - platform: gpio name: "${device_name}_jazz" id: pcf0 icon: "mdi:music" pin: pcf8574: pcf8574_hub number: 0 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf0 - platform: gpio name: "${device_name}_world" id: pcf1 icon: "mdi:music" pin: pcf8574: pcf8574_hub number: 1 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf1 - platform: gpio name: "${device_name}_nature" id: pcf2 icon: "mdi:music" pin: pcf8574: pcf8574_hub number: 2 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf2 - platform: gpio name: "${device_name}_classic" icon: "mdi:music" id: pcf3 pin: pcf8574: pcf8574_hub number: 3 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf3 - platform: gpio name: "${device_name}_lullaby" icon: "mdi:music" id: pcf4 pin: pcf8574: pcf8574_hub number: 4 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf4 - platform: gpio name: "${device_name}_white_sound" id: pcf5 icon: "mdi:music" pin: pcf8574: pcf8574_hub number: 5 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf5 - platform: gpio name: "${device_name}_volume_up" id: pcf6 icon: "mdi:volume-plus" pin: pcf8574: pcf8574_hub number: 6 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf6 - platform: gpio name: "${device_name}_volume_down" id: pcf7 icon: "mdi:volume-minus" pin: pcf8574: pcf8574_hub number: 7 mode: OUTPUT on_turn_on: - delay: $press_time - switch.turn_off: pcf7 sensor: - platform: uptime name: "${device_name}_Uptime" unit_of_measurement: days update_interval: 300s filters: - multiply: 0.000011574 - platform: wifi_signal name: "${device_name}_wifi_signal" update_interval: 300s

EspHome świetnie nadaje się do prostych rzeczy, prototypowanie jest bardzo szybkie i daje od razu integrację z Home Assistant. Tak wygląda sterowanie bezpośrednio na telefonie właśnie w Home Assistant
lovlace-ui.yaml
- type: custom:vertical-stack-in-card title: Karuzela cards: - type: glance entities: - entity: switch.carousel_power tap_action: action: toggle - entity: switch.carousel_motor tap_action: action: toggle - entity: switch.carousel_projector tap_action: action: toggle - entity: switch.carousel_volume_down tap_action: action: toggle - entity: switch.carousel_volume_up tap_action: action: toggle - entity: switch.carousel_random tap_action: action: toggle columns: 6 show_name: false show_state: false - type: entities entities: - entity: input_select.carousel_song

input_select.carousel_song
carousel_song: name: Karuzela melodia options: - Wybierz melodie - Jazz - World - Nature - Classic - Lullaby - White sound - Losuj icon: "mdi:music"

Integracja z Google asystentem jest zrobiona z wykorzystaniem IFTTT i komponentu webhook.

Komentarze

  1. Jak działa to po stronie asystenta google? Chciałbym dodać u siebie selektory ale nie potrafię ich zaimplementować. A u Ciebie "zmień melodię" działa :D

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Smart Domofon

W tym artykule chciałem pokazać możliwość przerobienia zwykłego i praktycznie dowolnego domofonu na "smart" . Nie ma znaczenia jaki producent oraz czy jest on cyfrowy czy może analogowy. Odpowiednie przerobienie to kwestia analizy płytki PCB posiadanej słuchawki. Jedne słuchawki są bardzo wygodne do przeróbek, a niektóre wymagają więcej pracy.

Tablica Manipulacyjna

W przeróżnych pudełkach zawsze walają się u mnie jakieś przełączniki, pokrętła i innego rodzaju elementy. Córka (3 lata) od zawsze lubiła pstrykać wszelkimi guzikami. Wychodząc z mieszkania to ona zawsze przywołuje windę i wybiera piętro.

Kontroler czujników obecności - EspHome

Prezentowany moduł powstał z potrzeby obsługi wszystkich przewodowych czujników ruchu oraz czujników otwarcia. Sterownik jest zbudowany w oparciu o ESP32 LoLin. Dodatkowo obsługuje on domofon oraz dzwonek do drzwi. Całość jest oprogramowans z wykorzystaniem EspHome z pełną integracją z Home Assistant.