- 积分
- 4795
- 金钱
- 4287
- 威望
- 0
- 贡献
- 0
- HASS币
- 156
论坛元老
佑桑
- 积分
- 4795
- 金钱
- 4287
- HASS币
- 156
|
本帖最后由 chinyaolin 于 2020-12-7 17:00 编辑
一、前言
買了小米延長線(插線板??), 放在天花板上,
利用三個 USB 接口連接了 Z2M妖神板 與 刷了 OpenMQTTGateway 的 ESP32 做藍芽網關
穩定性還不錯, 但偶爾還是會需要拔掉電源重啟設備, 就是拿把梯子爬上爬上可不是我輩資訊人該做的事
雖然利用米家 智能插座 + 變壓器 也能達到同樣的功能, 但本著人不作死怎快活的精神, 還是需要找到最佳解決方案
二、參考資料
三、優點、遇坑、買神器、開工
-
- 尋找了很久, 總算讓我找到這個。這個小東西支援 20V 5A 的電壓與電流, 並且 D+ D- 直通, 代表它可支援目前市場上主流快充協議
- 由參考資料中的圖片可看出, 刷固件用的接點為 1.27mm, 身為焊接苦手的我只能尋求 TB 幫忙
- 找到了這個「测试架PCB 夹子 治具夹具探针下载程序编程烧录2.54 2.0 1.27工装」
- 開工 -> 3v3接3v3 GND接GND RX接TX TX接RX GPIO0接GND
- 至於想刷 tasmota 或是 ESPHome 就看各位的習慣了
四、ESPHome 代碼
- 為了自己方便, 代碼設計為通電即導通
- 為避免誤觸, 代碼設計為按鍵持續一秒要再做繼電器切換
- 因為紅燈與繼電器共用GPIO, 為統一燈光, 繼電器導通時亮紅燈;繼電器斷路時亮綠燈
#################################################################################
# USB繼電器
substitutions: { desc: 供電平板, devicename: xy_wfusb_xxxxxx }
#################################################################################
esphome:
name: $devicename
platform: ESP8266
board: esp01_1m
arduino_version: recommended
#################################################################################
wifi:
ssid: !secret my_wifi_ssid
password: !secret my_wifi_pw
reboot_timeout: !secret my_wifi_reboot_timeout
ap:
ssid: !secret my_wifi_ap_ssid
password: !secret my_wifi_ap_pw
ap_timeout: 3min
logger:
web_server:
ota:
password: !secret my_ota_pw
api:
password: !secret my_api_pw
reboot_timeout: !secret my_api_reboot_timeout
captive_portal:
#################################################################################
# Blue LED
status_led: {pin: {number: GPIO16 }}
#################################################################################
binary_sensor:
# Toggle Button
- platform: gpio
id: btn1
internal: true
pin: {number: GPIO04, mode: INPUT_PULLUP, inverted: True}
on_multi_click:
- timing:
- ON for at least 1s
then:
- switch.toggle: sw1
switch:
# Relay and Red LED
- {pin: GPIO5, id: relay, platform: gpio, internal: true, restore_mode: ALWAYS_ON}
# Green LED
- {pin: GPIO14, id: green_led, platform: gpio, inverted: true, internal: true, restore_mode: ALWAYS_ON}
- {platform: restart, name: '${devicename}_restart', icon: 'mdi:restart'}
# Switch template to link relay and green LED states
# LED is on when relay is off
- platform: template
id: sw1
icon: mdi:usb-port
name: '${devicename}_sw1'
lambda: |-
if (id(relay).state) { return true; } else { return false; }
turn_on_action:
- switch.turn_on: { id: green_led }
- switch.turn_on: { id: relay }
turn_off_action:
- switch.turn_off: { id: green_led }
- switch.turn_off: { id: relay }
# 使用 desc 的設定值做為一個中文名稱的 text sensor, 方便在 web 界面中辨識
text_sensor:
- platform: wifi_info
ip_address:
name: '${desc}'
bssid:
name: '${desc}_BSSID'
五、其他應用
除了放了兩顆在天花板上管理 Z2M 及 ESP32 的電源供應之外,
我也將門口的平板也接了一顆,為寫了簡單的自動化來控制充電
其中電量部份是安裝了 WallPanel APP, 啟用 MQTT 上報功能, 之後接入 HA
|
|