|
Cur: 2021-06-15 (Tue) 11:06:01 nao-pon  |
| + | #navi |
| + | RIGHT:&rsslink(../); |
| + | #boxdate |
| | | |
| + | * ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った :-D [#i7d337be] |
| + | RIGHT:&tag(WiFi,ESP-32,DIY,HomeAssistant,Hass.io,ESPHome); |
| + | |
| + | Google Home や Alexa と HomeAssistant を統合しているので、声で大体のことはできる・・・けど。 |
| + | 声を発声して、アシスタントに認識させるのが、面倒くさいと感じる。なんてわがままな! :lol: |
| + | だって、正しく認識してくれないと、もう一度言い直したり、見当違いのスイッチを ON/OFF されたり・・・ |
| + | |
| + | そこで、やっぱり物理ボタンですよ! |
| + | |
| + | ちょうど手元にミンティアとESP-32が転がっていて・・・。ん?これ入るんじゃね?って思ったところ。 |
| + | |
| + | おぉー!やっぱりピッタリじゃないですか!厚みが若干きついけど。 |
| + | |
| + | で、結果こうなりました。やっぱりボタンで操作できるのは快適です。USB電源はいるけどね。 |
| + | |
| + | &ref(site://modules/xelfinder/index.php/view/10/DSC_3857.JPG,left,mw:180,mh:180);&ref(site://modules/xelfinder/index.php/view/8/DSC_3856.JPG,left,mh:180); |
| + | |
| + | #clear |
| + | ボタンの穴あけを少し失敗したけど、今度作るときはもう少しきちんと作ろう! |
| + | |
| + | ボタンを押すと青いLEDが光ります。 |
| + | |
| + | ** いるもの ((価格は購入時のもの)) [#ibd9ea71] |
| + | - [[ESP-32 モジュール:https://ja.aliexpress.com/item/32823593448.html]] 474円 ((Aliexpress で買ったけど、技適マークはついていました。)) |
| + | - [[タクトスイッチ:https://www.marutsu.co.jp/pc/i/599871/]] 10円 × 6 |
| + | - ミンティアの空き容器 |
| + | - 適当なユニバーサル基板 |
| + | - 2mmポリウレタン銅線 適宜 |
| + | |
| + | ** ESPHome の設定 [#j6fe7996] |
| + | |
| + | esp32_ble_tracker は、手元に Qmote-S があったので、うまく使えないかな?と思って試してみたけど、検知範囲が狭くてほぼ使えなかった。残念。 |
| + | |
| + | #code(yaml){{ |
| + | substitutions: |
| + | devicename: switch_box_11 |
| + | |
| + | esphome: |
| + | name: $devicename |
| + | platform: ESP32 |
| + | board: wemos_d1_mini32 |
| + | on_boot: |
| + | - priority: 1000 |
| + | then: |
| + | - while: |
| + | condition: |
| + | not: |
| + | api.connected: |
| + | then: |
| + | - switch.turn_on: led |
| + | - delay: 500ms |
| + | - switch.turn_off: led |
| + | - delay: 500ms |
| + | |
| + | wifi: |
| + | networks: !include common/wifi.networks.yaml |
| + | # Enable fallback hotspot (captive portal) in case wifi connection fails |
| + | ap: !include common/wifi.ap.yaml |
| + | |
| + | manual_ip: |
| + | static_ip: 192.168.1.xx |
| + | gateway: 192.168.1.1 |
| + | subnet: 255.255.255.0 |
| + | |
| + | captive_portal: |
| + | |
| + | # Enable logging |
| + | logger: |
| + | |
| + | # Enable Home Assistant API |
| + | api: |
| + | |
| + | ota: |
| + | |
| + | esp32_ble_tracker: |
| + | id: ble_tracker |
| + | |
| + | on_ble_manufacturer_data_advertise: |
| + | - mac_address: 88:4A:XX:XX:DE:52 |
| + | manufacturer_id: 004C |
| + | then: |
| + | - lambda: |- |
| + | if (id(qmote_de52_click).state == false) { |
| + | id(qmote_de52_click).publish_state(true); |
| + | id(qmote_de52_click).publish_state(false); |
| + | } |
| + | - mac_address: 88:4A:XX:XX:99:BB |
| + | manufacturer_id: 004C |
| + | then: |
| + | - lambda: |- |
| + | if (id(qmote_99bb_click).state == false) { |
| + | id(qmote_99bb_click).publish_state(true); |
| + | id(qmote_99bb_click).publish_state(false); |
| + | } |
| + | - mac_address: 88:4A:XX:XX:9F:03 |
| + | manufacturer_id: 004C |
| + | then: |
| + | - lambda: |- |
| + | if (id(qmote_9f03_click).state == false) { |
| + | id(qmote_9f03_click).publish_state(true); |
| + | id(qmote_9f03_click).publish_state(false); |
| + | } |
| + | |
| + | binary_sensor: |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO23 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn1" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO19 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn2" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO18 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn3" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO33 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn4" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO05 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn5" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO26 |
| + | inverted: True |
| + | mode: INPUT_PULLUP |
| + | name: "$devicename btn6" |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: template |
| + | id: qmote_de52_click |
| + | name: "$devicename Qmote de52 Click" |
| + | filters: |
| + | delayed_off: 800ms |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: template |
| + | id: qmote_99bb_click |
| + | name: "$devicename Qmote 99bb Click" |
| + | filters: |
| + | delayed_off: 800ms |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | - platform: template |
| + | id: qmote_9f03_click |
| + | name: "$devicename Qmote 9f03 Click" |
| + | filters: |
| + | delayed_off: 800ms |
| + | on_press: |
| + | then: |
| + | - switch.turn_on: led |
| + | on_release: |
| + | then: |
| + | - switch.turn_off: led |
| + | |
| + | sensor: |
| + | - platform: wifi_signal |
| + | name: "$devicename WiFi" |
| + | update_interval: 60s |
| + | unit_of_measurement: "%" |
| + | filters: |
| + | - lambda: x = 2 * (x + 100); if (x < 0) {x = 0;} else if (x > 100) {x = 100;} return x; |
| + | |
| + | switch: |
| + | - platform: restart |
| + | name: "$devicename Restart" |
| + | - platform: gpio |
| + | pin: |
| + | number: GPIO2 |
| + | name: "$devicename LED" |
| + | id: led |
| + | }} |
| + | |
| + | RIGHT:&font(90%){&page_comments;}; |
| + | #navi |