『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 7136|回复: 7

使用 XY-WFUSB 刷 ESPHome 接入 HA 来控制 USB 设备供电

[复制链接]

30

主题

493

帖子

4795

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4795
金钱
4287
HASS币
156

教程狂人

发表于 2020-12-7 13:57:19 | 显示全部楼层 |阅读模式
本帖最后由 chinyaolin 于 2020-12-7 17:00 编辑

一、前言
買了小米延長線(插線板??), 放在天花板上,
利用三個 USB 接口連接了 Z2M妖神板 與 刷了 OpenMQTTGateway 的 ESP32 做藍芽網關
穩定性還不錯, 但偶爾還是會需要拔掉電源重啟設備, 就是拿把梯子爬上爬上可不是我輩資訊人該做的事
雖然利用米家 智能插座 + 變壓器 也能達到同樣的功能, 但本著人不作死怎快活的精神, 還是需要找到最佳解決方案




                               
登录/注册后可看大图
baca7fba12e72b40ac44479d63e39c16b6858e58_2_375x500.jpeg 11840758.jpeg

二、參考資料

三、優點、遇坑、買神器、開工

  • Sinilink-WIFI-USB-switch-768x670.jpg wfusb_pinout.jpg 576-1024.jpg
  • 尋找了很久, 總算讓我找到這個。這個小東西支援 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

1207001.PNG 1207002.PNG






ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

34

主题

709

帖子

4693

积分

论坛元老

Rank: 8Rank: 8

积分
4693
金钱
3974
HASS币
50
发表于 2020-12-7 18:22:19 | 显示全部楼层
是个大神...............
学习参考
回复

使用道具 举报

0

主题

3

帖子

40

积分

新手上路

Rank: 1

积分
40
金钱
37
HASS币
0
发表于 2021-8-23 10:06:31 | 显示全部楼层
请教大神,  用的是ch340 还是ftdi  ,   我用340 死活连不上,  谢谢了
回复

使用道具 举报

30

主题

493

帖子

4795

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4795
金钱
4287
HASS币
156

教程狂人

 楼主| 发表于 2021-8-23 10:34:19 | 显示全部楼层
rssjbb 发表于 2021-8-23 10:06
请教大神,  用的是ch340 还是ftdi  ,   我用340 死活连不上,  谢谢了

GPIO0 需接 GND 才會進入 flash 模式
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

0

主题

3

帖子

40

积分

新手上路

Rank: 1

积分
40
金钱
37
HASS币
0
发表于 2021-8-23 10:45:04 | 显示全部楼层
无标题.png

确定已经接地了 , 板子上GND 和 GPIO0 都 接到 ch340 的GND ,

现状是 两个灯常亮 ,   

用串口工具能连上 , 但 at 命令无返回  

麻烦大神帮忙指导
回复

使用道具 举报

30

主题

493

帖子

4795

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4795
金钱
4287
HASS币
156

教程狂人

 楼主| 发表于 2021-8-23 10:57:46 | 显示全部楼层
rssjbb 发表于 2021-8-23 10:45
确定已经接地了 , 板子上GND 和 GPIO0 都 接到 ch340 的GND ,

现状是 两个灯常亮 ,   

我沒有使用過 AT 指令
而是直接以 FTDI 連上後用 tasmota or esphome 燒錄工具刷固件
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

0

主题

3

帖子

40

积分

新手上路

Rank: 1

积分
40
金钱
37
HASS币
0
发表于 2021-8-23 11:00:21 | 显示全部楼层
chinyaolin 发表于 2021-8-23 10:57
我沒有使用過 AT 指令
而是直接以 FTDI 連上後用 tasmota or esphome 燒錄工具刷固件 ...

了解了,  那我赶紧入一个 ftdi  试试,   不知道 ch340 这里是不是有什么坑,
看 外面的  视频或者文章他们貌似都 ftdi
回复

使用道具 举报

5

主题

46

帖子

984

积分

高级会员

Rank: 4

积分
984
金钱
938
HASS币
0
发表于 2023-6-26 17:47:49 | 显示全部楼层
下单学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 10:41 , Processed in 1.097070 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表