本帖最后由 zbsyouran 于 2024-9-27 23:25 编辑
论坛里这个哥们儿发的这个转到帖子里的半成品插座,现在可以刷ESPHome或者tasmota来实现所有功能了,插座开关,USB开关,按键控制,计量功能,灯光指示等都正常使用,目前闲鱼有一家卖10元包邮,并且还有16A型号可选,16A那个本身带hlw8012计量芯片,但是原厂PCB没有布置走线,但升级官方固件后却支持计量功能,只是不显示,推测是后续版本硬件做了改进以适应计量固件,这个16A要想实现计量功能需添加一个光耦飞线即可,还有一家是库存完整包装的12元5个包邮,东西不贵,玩玩还行,我把改造方法发出来大家改着玩。
先附上半成品照片:
具体的引脚在论坛里另一个哥们儿的帖子里写了,我复制过来:USB口对着自己的方向,8266小板的8pin弯针从左到右依次是:
第一排:RX(GPIO3)、GPIO13、 GND、 3V3
第二排:TX(GPIO1)、 GPIO0、GPIO15、GPIO16
按钮引脚是GPIO4,继电器是GPIO15,USB通断是GPIO13、蓝灯GPIO5、橙灯GPIO12。
改造说明:
只需从GPIO16(图中红圈位置)飞线到背面的一个焊盘(图中箭头位置),此焊盘为GPIO14,替代GPIO16来检测HLW8012的波形。
为了安全起见,可以外接5V供电来给esp8266供电,防止220V触电,接线位置在下图中标出来了,红圈接5V,蓝圈接GND。
另外我只实现了功能,至于计量校准没有做的太精准,大家可以自行参考HLW8012手册校准,这个插座的电压分压电阻是1991,已经写在ESPHome的yaml里了,检流电阻的话,PCB上丝印是R560,应该是位号,实际阻值应该是1mΩ;Tasmota不太清楚怎么更改,有时间的可以研究下。
刷机方法:(直接复制网友的)
刷机方法如下:
RX或者TX可以选择按GPIO去连,3V3和GND也一样,刷机时把IO0接地,就可以进入刷机模式。比较省事的办法是这个USB口也可以用,找一个USB线剪掉一截,把USB中间两条分别接RX和TX,GND接GND,5V不要接,这样只需要另外从IO0手扶一根线接到GND,上电就可以进入刷机模式(220V操作有风险,请谨慎)。
ESPHome:
yaml:
web_server:
port: 80
substitutions:
voltage_divider: "1991"
current_resistor: "0.001"
#current_multiply: "1.0"
sensor:
- platform: hlw8012
current_resistor: ${current_resistor}
voltage_divider: ${voltage_divider}
sel_pin: GPIO2
cf_pin: GPIO14
cf1_pin: GPIO0
#current:
# name: "HLW8012 Current"
#voltage:
# name: "HLW8012 Voltage"
power:
name: "HLW8012 Power"
update_interval: 10s
#initial_mode: CURRENT
#change_mode_every: "never"
#
switch:
- platform: gpio
id: relay
pin: GPIO15
name: "继电器"
on_turn_on:
- output.turn_on: blue_led
- output.turn_off: yellow_led
on_turn_off:
- output.turn_off: blue_led
- output.turn_on: yellow_led
- platform: gpio
id: usb
pin: GPIO13
name: "USB"
output:
- platform: gpio
id: blue_led
pin: GPIO5
- platform: gpio
id: yellow_led
pin: GPIO12
binary_sensor:
- platform: gpio
id: pwm
pin:
number: 16
mode:
input: true
- platform: gpio
pin: GPIO4
id: button
on_press:
then:
- switch.toggle: relay
Tasmota固件:
把GPIO14设置成HLW8012 CF就能使用计量功能了,另外在tasmota下如何校准HLW8012我不太清楚,其他的像继电器、按键、led啥的直接在相应引脚选择功能就可以了。
16A那个插座还没搞,但跟10A插座使用的同款8266小板,改改参数就能直接用。
|