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

 找回密码
 立即注册
12
返回列表 发新帖
楼主: yiwlg

[技术探讨] esphome控制12v-pwm风扇后,如何在homeassistant读取滑块的数值

[复制链接]

20

主题

265

帖子

1852

积分

金牌会员

Rank: 6Rank: 6

积分
1852
金钱
1587
HASS币
0
发表于 2023-5-10 16:17:24 | 显示全部楼层
本帖最后由 kaka0992 于 2023-5-10 16:19 编辑
Anooki 发表于 2023-5-10 10:35
我是小白,老哥再请教一下,vin是指8266的vin脚吗,这个是给8266供电的?我是用usb供电的。没找到vout脚 ...


                               
登录/注册后可看大图
这个是PWM模块,蓝色接线端子是vin(风扇电源)和vout(风扇),左面J1位置的两个针脚,一个接8266上D4还有个接地  
回复

使用道具 举报

22

主题

184

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
金钱
1340
HASS币
10
发表于 2023-5-11 15:35:46 | 显示全部楼层
kaka0992 发表于 2023-5-10 16:17
这个是PWM模块,蓝色接线端子是vin(风扇电源)和vout(风扇),左面J1位置的两个针脚,一个接8266上D4还 ...

那我理解错了,我是主板的风扇,那个也叫pwm风扇。
因为我的黑群的主板风扇无法自动调速,想搞个esp8266,通过读取硬盘和cpu温度,来单独调速(属于曲线救国
回复

使用道具 举报

0

主题

86

帖子

748

积分

高级会员

Rank: 4

积分
748
金钱
662
HASS币
0
发表于 2023-5-16 12:59:04 | 显示全部楼层
Anooki 发表于 2023-5-11 15:35
那我理解错了,我是主板的风扇,那个也叫pwm风扇。
因为我的黑群的主板风扇无法自动调速,想搞个esp8266 ...

搞出来了吗,我还想读一下风扇转速,不知道可否。
回复

使用道具 举报

22

主题

184

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
金钱
1340
HASS币
10
发表于 2023-5-16 13:05:45 | 显示全部楼层
xjol 发表于 2023-5-16 12:59
搞出来了吗,我还想读一下风扇转速,不知道可否。

可以调速,但是转速没有读出来
回复

使用道具 举报

0

主题

86

帖子

748

积分

高级会员

Rank: 4

积分
748
金钱
662
HASS币
0
发表于 2023-5-16 13:38:36 | 显示全部楼层
Anooki 发表于 2023-5-16 13:05
可以调速,但是转速没有读出来

接线和代码能分享一下吗,我也是想用8266直接接PWM 风扇。你是如何通过温度来控制的,指导一下。
回复

使用道具 举报

22

主题

184

帖子

1524

积分

金牌会员

Rank: 6Rank: 6

积分
1524
金钱
1340
HASS币
10
发表于 2023-5-16 20:59:13 | 显示全部楼层
xjol 发表于 2023-5-16 13:38
接线和代码能分享一下吗,我也是想用8266直接接PWM 风扇。你是如何通过温度来控制的,指导一下。 ...

就是抄3楼大佬的代码,我把我完整的代码贴出来
api key、ota password建议重新生成一下
wifi根据实际情况填写
最下面的sensor应该可以删掉,我没有接温湿度传感器
substitutions:
  device_name: "pwmfan"
  speed_low: "20"
  speed_med: "50"
  speed_full: "100"


esphome:
  name: $device_name
  friendly_name: 风扇调速器

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "6szoHt/4a5L8F5t0nRZneOOF0Z866CcDUX/QtK8hk8g="

ota:
  password: "1bb5fc0fbba711303f69620b8a2b14a8"

wifi:
  ssid: ssid  
  password: password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Pwm Fallback Hotspot"
    password: "password123"


output:
  - platform: esp8266_pwm
    pin: GPIO2    #D4
    frequency: 15000 Hz
    id: pwm_output

fan:
  - platform: speed
    id: fan_speed
    output: pwm_output
    speed_count: 100
    name: "${device_name} 开关"
   
number:
  - platform: template
    icon: "mdi:fan"
    id: speed_input
    name: "${device_name} 风速"
    lambda: |-
      return id(fan_speed).speed;
    step: 1
    min_value: 30
    max_value: 100
    unit_of_measurement: "%"
    update_interval: 1s
    set_action:
      then:
        - fan.turn_on:
            id: fan_speed
            speed: !lambda "return x;"
        - component.update: fanmode
        - component.update: sensor_fanspeed

select:
  - platform: template
    icon: "mdi:fan"
    name: "${device_name} 模式"
    id: fanmode
    update_interval: 1s
    lambda: |-
      if(id(fan_speed).speed <= ${speed_low})
        return std::string("Low");
      else if(id(fan_speed).speed == ${speed_med})
        return std::string("Medium");
      else if(id(fan_speed).speed >= ${speed_full})
        return std::string("Full");
      else
        return std::string("Custom");
    set_action:
      then:
        - lambda: |-
            auto call = id(fan_speed).turn_on();
            if(x == "Low")
              call.set_speed(${speed_low});
            else if(x == "Medium")
              call.set_speed(${speed_med});
            else if(x == "Full")
              call.set_speed(${speed_full});
            else
              call.set_speed(id(speed_input).state);
              
            call.perform();
        - component.update: speed_input
        - component.update: sensor_fanspeed
    options:
      - Low
      - Medium
      - Full
      - Custom

button:
  - platform: template
    icon: "mdi:fan-speed-1"
    name: "${device_name} Low"
    id: fanlow
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 20
  - platform: template
    icon: "mdi:fan-speed-2"
    name: "${device_name} Med"
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 50
  - platform: template
    icon: "mdi:fan-speed-3"
    name: "${device_name} Full"
    on_press:
      - fan.turn_on:
          id: fan_speed
          speed: 100
  - platform: restart
    name: "${device_name} 初始化"

sensor:
  - platform: template
    id: sensor_fanspeed
    icon: "mdi:fan"
    name: "风扇速度"
    lambda: |-
      return id(fan_speed).speed;
    update_interval: 1s
    accuracy_decimals: 0
    unit_of_measurement: "%"
  - platform: dht
    pin: GPIO4    #D2
    temperature:
      name: "${device_name} Temperature"
    humidity:
      name: "${device_name} Humidity"
    model: AUTO_DETECT
    update_interval: 5s #获取频率
    


回复

使用道具 举报

0

主题

86

帖子

748

积分

高级会员

Rank: 4

积分
748
金钱
662
HASS币
0
发表于 2023-5-17 20:36:41 | 显示全部楼层
Anooki 发表于 2023-5-16 20:59
就是抄3楼大佬的代码,我把我完整的代码贴出来
api key、ota password建议重新生成一下
wifi根据实际情况 ...

谢谢了,我暂时也用Tasmota 能滑块控制PWM 风扇了,温度我再研究一下。
回复

使用道具 举报

0

主题

86

帖子

748

积分

高级会员

Rank: 4

积分
748
金钱
662
HASS币
0
发表于 2023-5-17 20:40:55 | 显示全部楼层
不知转速怎么读取出来
回复

使用道具 举报

8

主题

69

帖子

553

积分

高级会员

Rank: 4

积分
553
金钱
484
HASS币
0
发表于 2023-9-1 15:35:56 | 显示全部楼层
学习一下
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 22:44 , Processed in 0.285936 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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