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

 找回密码
 立即注册
查看: 799|回复: 12

[硬件DIY] 服务器CRPS电源取电板通过esphome接入homeassistant

[复制链接]

43

主题

325

帖子

2724

积分

论坛DIY达人

积分
2724
金钱
2394
HASS币
50
发表于 2024-8-28 10:04:39 | 显示全部楼层 |阅读模式
本帖最后由 shadowba 于 2024-11-2 20:25 编辑

手头有一个富裕的服务器电源,想做个取电板,百度了一下有大神做的是CSRS通过I2C接入esphome,本人尝试了一下利用CRPS上的I2C接入,失败了!不通用,而且本人编程小白,所以还是果断放弃,另辟蹊径
本板可以实现两路电源的通断控制;
3路电源输出电流、电压、功率、电能、监测;
温度监测
预留CRPS电源I2C接入接口,供后期大神接入
预留内置风扇的PWM控制接口,以便日后对内置控制控制的需求;
上电后延时自动开启电源,开启两路输出(可esphome自定义调整)。
先上效果图:
3D_PCB1_2024-08-28.png

3D_PCB1_2024-08-281.png

加个班,焊接:
IMG_20240827_182211.jpg
IMG_20240827_182201.jpg

IMG_20240827_182249.jpg

装机:
IMG_20240827_182426.jpg

OK啦:
微信图片_20240828094744.png

微信图片_20240828094749.png
打完收工!
附嘉立创打板文件和编程小白的代码,原件参数基本在板子上都标出来了
globals:
  # flash保存昨日抄表数(每天0点更新保存)
  - id: global_yesterday_energy
    type: float
    restore_value: yes
    initial_value: '0.000'
esphome:
  name: "crps-power"
  friendly_name: "crps-power"
  on_boot:
    priority: 600
    then:
      - delay: 5s          
      - switch.turn_on: switch0
      - delay: 1s          
      - switch.turn_on: switch1
      - delay: 1s          
      - switch.turn_on: switch2
  comment: 服务器电源、功率监测、ONU和ROUTER通断控制、温度监测等
esp8266:
  board: esp01_1m
api:
  reboot_timeout: 0s
ota:
  - platform: esphome
    password: "143752f111a57aa407c64a6f10d5f408"
web_server:
  port: 80 # web端口
wifi:
  networks:
  - ssid:  
    password: 
  reboot_timeout: 0s
  ap:
    ssid: "crps-power Fallback Hotspot"
    password: "kp1uMJ8NFcRQ"
captive_portal:
i2c:
   - id: bus_a         
     sda: GPIO4
     scl: GPIO5
     scan: true
time:
  - platform: homeassistant
    id: homeassistant_time
    timezone: UTC-8
    on_time:
      - seconds: 0
        minutes: 0
        hours: 0 
        then:
          - if:
              condition:
                time.has_time: 
              then:
                - lambda: |-
                    id(global_yesterday_energy) = id(CRPS_energy).state;
sensor:
  - platform: ntc
    sensor: resistance_sensor
    calibration:
      b_constant: 3950
      reference_temperature: 25°C
      reference_resistance: 10kOhm
    name: NTC Temperature
  - platform: resistance
    id: resistance_sensor
    sensor: source_sensor
    configuration: DOWNSTREAM
    resistor: 27kOhm
  - platform: adc
    id: source_sensor
    pin: A0
    update_interval: 60s
  - platform: uptime
    name: Uptime Sensor
  - platform: wifi_signal
    name: "CRPS WiFi Signal"
    update_interval: 60s  
  - platform: ina3221
    address: 0x40
    channel_1:
      shunt_resistance: 0.02 ohm
      current:
        id: current1
        name: "CRPS Channel 1 Current"
      power:
        id: power1
        name: "CRPS Channel 1 Power"
      bus_voltage:
        name: "CRPS Channel 1 Bus Voltage"
      shunt_voltage:
        name: "CRPS Channel 1 Shunt Voltage"
    channel_2:
      shunt_resistance: 0.02 ohm
      current:
        id: current2
        name: "CRPS Channel 2 Current"
      power:
        id: power2
        name: "CRPS Channel 2 Power"
      bus_voltage:
        name: "CRPS Channel 2 Bus Voltage"
      shunt_voltage:
        name: "CRPS Channel 2 Shunt Voltage"
    channel_3:
      shunt_resistance: 0.02 ohm
      current:
        id: current3
        name: "CRPS Channel 3 Current"
      power:
        id: power3
        name: "CRPS Channel 3 Power"
      bus_voltage:
        name: "CRPS Channel 3 Bus Voltage"
      shunt_voltage:
        name: "CRPS Channel 3 Shunt Voltage"
  - platform: total_daily_energy
    name: CRPS Channel 1 energy
    power_id: power1
    id: energy1
    unit_of_measurement: 'kWh'
    state_class: total_increasing
    device_class: energy
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: total_daily_energy
    name: CRPS Channel 2 energy
    power_id: power2
    id: energy2
    unit_of_measurement: 'kWh'
    state_class: total_increasing
    device_class: energy
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: total_daily_energy
    name: CRPS Channel 3 energy
    power_id: power3
    id: energy3
    unit_of_measurement: 'kWh'
    state_class: total_increasing
    device_class: energy
    accuracy_decimals: 3
    filters:
      - multiply: 0.001
  - platform: template
    name: Total_Daily_CRPS_Energy
    id: CRPS_energy
    update_interval: 60s 
    unit_of_measurement: 'kWh'
    lambda: 
      return id(energy1).state + id(energy2).state + id(energy3).state;
  - platform: template
    name: CRPS_total_Power
    id: CRPS_power
    update_interval: 60s 
    unit_of_measurement: 'W'
    lambda: 
      return id(power1).state + id(power2).state + id(power3).state;
  - platform: template
    name: CRPS_total_Current
    id: CRPS_current
    update_interval: 60s 
    unit_of_measurement: 'A'
    lambda: 
      return id(current1).state + id(current2).state + id(current3).state;
  - platform: template
    name: Yesterday Energy
    id: yesterday_energy
    accuracy_decimals: 3
    device_class: "energy"
    state_class: "total_increasing"
    icon: mdi:lightning-bolt
    unit_of_measurement: kWh
    update_interval: 60s
    lambda: 
      return id(global_yesterday_energy);
binary_sensor:
  - platform: gpio
    id: button
    pin:
      number: GPIO15
      mode:
        input: true
        pullup: true
      inverted: true
    on_click:
      - min_length: 3s
        max_length: 5s
        then:
          - switch.toggle: switch0
      - min_length: 50ms
        max_length: 350ms
        then:
          - switch.toggle: switch2
  - platform: gpio
    id: button1
    pin:
      number: GPIO0
      mode:
        input: true
        pullup: true
      inverted: true
    on_press: 
      then:  
         - switch.toggle: switch1
switch:
  - platform: gpio
    pin: 2
    id: switch0
    name: CRPS_switch0
  - platform: gpio
    pin:
      number: GPIO14
 #     inverted: true
    id: switch1
    name: ROUTER_switch1
    on_turn_off: 
      then:
        - delay: 
            seconds: 4
        - switch.turn_on: switch1   
  - platform: gpio
    pin:
      number: GPIO13
 #     inverted: true
    id: switch2
    name: ONU_switch2
    on_turn_off: 
      then:
        - delay: 
            seconds: 3
        - switch.turn_on: switch2  



Gerber_PCB1_2024-08-28.zip (147.25 KB, 下载次数: 5, 售价: 5 金钱)
物料清单
BOM_Board1_Schematic1_2024-08-28.xlsx (9.96 KB, 下载次数: 8)

回复

使用道具 举报

9

主题

45

帖子

567

积分

高级会员

Rank: 4

积分
567
金钱
522
HASS币
0
发表于 2024-8-28 10:15:29 | 显示全部楼层
看不懂...觉得很厉害...
回复

使用道具 举报

0

主题

608

帖子

2516

积分

金牌会员

Rank: 6Rank: 6

积分
2516
金钱
1908
HASS币
0
发表于 2024-8-28 10:41:20 | 显示全部楼层
太牛了吧,这板子用料
回复

使用道具 举报

0

主题

39

帖子

289

积分

中级会员

Rank: 3Rank: 3

积分
289
金钱
250
HASS币
0
发表于 2024-8-28 11:54:22 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

6

帖子

40

积分

新手上路

Rank: 1

积分
40
金钱
34
HASS币
0
发表于 2024-8-31 09:09:29 | 显示全部楼层
好厉害啊,真想学这个
回复

使用道具 举报

22

主题

151

帖子

839

积分

高级会员

Rank: 4

积分
839
金钱
688
HASS币
0
发表于 2024-11-10 20:34:31 | 显示全部楼层
你好 !有个 事情 想麻烦一下你!力创打版 羊毛已薅,但是 买元件的时候遇见一个问题 用几个的电容 电阻 都要买几百个 可不可以 把你bom的元件 分一点给我??
可以加我VX:13399855611
回复

使用道具 举报

43

主题

325

帖子

2724

积分

论坛DIY达人

积分
2724
金钱
2394
HASS币
50
 楼主| 发表于 2024-11-10 20:46:49 | 显示全部楼层
tanbobo 发表于 2024-11-10 20:34
你好 !有个 事情 想麻烦一下你!力创打版 羊毛已薅,但是 买元件的时候遇见一个问题 用几个的电容 电阻 都 ...

我也是业余爱好,不专业那总,我一般买一百个那种两元包邮的
回复

使用道具 举报

22

主题

151

帖子

839

积分

高级会员

Rank: 4

积分
839
金钱
688
HASS币
0
发表于 2024-11-10 21:11:41 | 显示全部楼层
shadowba 发表于 2024-11-10 20:46
我也是业余爱好,不专业那总,我一般买一百个那种两元包邮的

关键是 太多了
回复

使用道具 举报

43

主题

325

帖子

2724

积分

论坛DIY达人

积分
2724
金钱
2394
HASS币
50
 楼主| 发表于 2024-11-10 21:21:43 | 显示全部楼层

一百个没多少,常玩电子常用元件不可少
回复

使用道具 举报

16

主题

178

帖子

924

积分

高级会员

Rank: 4

积分
924
金钱
746
HASS币
0
发表于 2024-11-10 21:31:12 | 显示全部楼层
tanbobo 发表于 2024-11-10 20:34
你好 !有个 事情 想麻烦一下你!力创打版 羊毛已薅,但是 买元件的时候遇见一个问题 用几个的电容 电阻 都 ...

。。。100个才一两块,立创还免邮费
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 18:39 , Processed in 0.088850 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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