将普通的PDU 用ESP8266改成智能PDU

本文作者分享了如何利用廉价的普通PDU和ESP12S模块,通过自定义PCB和ESPHOME固件,将其改造为一款能接入HomeAssistant的智能插座,监控电压、电流和功率,实现低成本的机房电力管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

偶然发现机柜的智能PDU卖得非常贵,上千元,简直要飞天了。何不自己改一下呢?

说做就买,先买个普通的PDU

花了点时间画下原理图,

然后嘉立创下单白嫖一下PCB

有6个2.54的排针,用于固件刷入

G是GND

T是TX

R是RX

V是3.3V电源

0是GPIO0 刷固件时需要下拉到GND

R是ESP12S的RST管脚

PCB 3D图

PCB成品完成

刷的ESPHOME固件,接入HOME ASSISTANT

源码如下

substitutions:
  device_name: smartpdu
  friendly_name: smartpdu
  relay_pin: GPIO15   #继电器
  usemac: "true"
  mqtt_name: smartpdu_266706


esphome:
  name: ${friendly_name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: true

esp8266:
  board: nodemcuv2

# Enable Home Assistant API
api:                          ##接入ha
  encryption:
    key: "u5dq18s4BOlFDRzWo7nD0zol61A5Rj7RVNTvQfsJDoE="
  reboot_timeout: 0s        ##没有接入ha时 重启限时,0S为不重启

ota:                  ##ESPhome远程刷固件
  - platform: esphome
    password: "b8765680b840009d6a389a7273b788ca"


# Enable logging
logger:
  baud_rate: 0
  
captive_portal:

mqtt:  ##MQTT 传输协议,不需要可以关闭
  broker: 192.168.3.6 # mqtt服务器ip/域名
  username: homeassistant # 账号
  password: gahngie8kieraibeiMoh7iv7sheethie3fu1ezae7maiPhaiw7ahyoe8geij7out # 密码  
  reboot_timeout: 0s
  topic_prefix: '${mqtt_name}'

web_server:  ## web控制,添加了这2行,就可以在网页输入内网ip即可控制设备以及上传固件升级;
  port: 80   
  local: true

wifi:
  networks:
  - ssid: AP530-2.4G
    password: 'zzc198456'
  - ssid: wushi-2.4
    password: '++0123--'
  manual_ip:
    static_ip: 192.168.3.137    ##固定此设备IP地址;
    gateway: 192.168.3.1        ##路由器、网关地址;
    subnet: 255.255.255.0         ##子网掩码;
    
  # Enable fallback hotspot (captive portal) in case wifi connection fails

  ap:
    ssid: '${friendly_name}_wifi '
    password: "++0123--"
  reboot_timeout: 0s        ##没有接入WIFI时 重启限时,0S为不重启

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 4800
  parity: NONE
  stop_bits: 2

switch:  
  - platform: gpio   #继电器
    pin: $relay_pin
    name: "${friendly_name}_relay"
    id: "${friendly_name}_relay"
    restore_mode: ALWAYS_ON #启动时将初始化为ON

sensor:
  - platform: bl0939
    update_interval: 2s
    voltage:
      name: "${friendly_name}_Voltage"
      id: "${friendly_name}_Voltage"
    current_2:
      name: "${friendly_name}_Current"
      id: "${friendly_name}_Current"
      #filters:
      #  - lambda: return x - 0.32; #校准系数,原始值减这个数得到最终值
    active_power_2:
      name: "${friendly_name}_Power"
      id: "${friendly_name}_Power"
      filters:
        - lambda: return x * -1; # 校准系数,原始值乘这个数得到最终值
    energy_2:
      name: "${friendly_name}_Energy"
      id: "${friendly_name}_Energy"
      filters:
        - lambda: return x * -1; # 校准系数,原始值乘这个数得到最终值
    energy_total:
      name: "${friendly_name}_EnergyTotal"
      id: "${friendly_name}_EnergyTotal"
      filters:
        - lambda: return x * -1; # 校准系数,原始值乘这个数得到最终值
  - platform: uptime
    id: uptime_s
    update_interval: 2s

  - platform: wifi_signal #WiFi信号强度
    name: "${friendly_name}_WiFi_Signal"
    update_interval: 2s

time:
  - platform: homeassistant
    id: homeassistant_time




    

最终成品图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值