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

 找回密码
 立即注册
查看: 1500|回复: 14

[硬件DIY] 制作一个esphome焊接风扇及氛围灯控制器,联动控制HA设备

[复制链接]

16

主题

269

帖子

2817

积分

论坛DIY达人

积分
2817
金钱
2533
HASS币
60
发表于 2024-7-15 17:44:54 | 显示全部楼层 |阅读模式
本帖最后由 花落花空 于 2024-7-17 13:48 编辑

7.17 更新一个开源广场链接焊接排风扇和桌面氛围灯控制器缝合怪 - 嘉立创EDA开源硬件平台 (oshwhub.com)

之前买了个暴力风扇做焊接排风扇,开启直接起飞,风扇是支持pwm信号调速的。然后最近想给桌子来个RGB。那么想想直接把这俩的控制缝合起来。

在当前的DIY环境下,直接画PCB是个不错的选择。嘉立创每个月都能免费打样两次。程序上对接HA当然ESPhome是最优解。
那么直接开始画原理图:
先说说思路:主控我使用了手头就有的ESP32-C3-MINI ,然后需要一个EC11旋钮编码器来进行操作,考虑到安装方式,我使用的是卧式的。
然后我觉得还需要一个显示,本来准备用ssd1306这种屏,但考虑到需要直观,且1306这种屏不是很好固定,
还是选用了4位数码管。配合ESPhome直接支持的TM1637芯片。
风扇是12V的,然后后续要接的灯带应该也是12V,那么直接DC接口供电。烧录程序使用type-c直接连接c3的usb-jtag。
考虑到都使用type-c了,那加个PD受电很合理吧,遂抄了个ch224k的电路。
tm1637需要5v供电,esp需要3.3V。那么电压转换必不可少。开源广场翻了下,选择了mt2492的dcdc芯片转5V,然后使用me6210a进行5V转3.3V。
和风扇的连接本来准备和灯带一样用kf128座子,但后来想直接在风扇上也加个编码器。这样就需要起码6根线,用端子接就不很友好。
最后看到了家里闲置的USB3.0线,想想这东西就很合适,遂使用usb3.0的母座连接排风扇。

下面直接贴上原理图:
一个排风扇及桌面氛围灯控制器-原理图.png
原理图解决了。接下来就是PCB部分的排列和拉线了。。。直接贴完成的图

一个排风扇及桌面氛围灯控制器-正面2D预览.png
2D预览
一个排风扇及桌面氛围灯控制器-正面3d预览.png
3D预览

                               
登录/注册后可看大图

板子到手


                               
登录/注册后可看大图

焊接好的状态


                               
登录/注册后可看大图

注入灵魂


下面附上演示视频
自制ESPhome焊接排风扇及桌面氛围灯控制器_哔哩哔哩_bilibili


ESPhome的配置文件稍长,通过附件来吧
192.168.2.31 desk-rgb (1).yaml (18.09 KB, 下载次数: 10, 售价: 1 金钱)

关于控制HA中的设备,需要通过自动化。
微信图片_20240715172739.png
这个东西在HA中有上面这些实体,自动化通过编码器值的变化,结合设备选择来进行控制。
下面贴个我自己的,注意,这是HA的自动化
旋转的控制:
alias: 工作室氛围灯控制器旋钮
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.desk_rgb_1_2
condition: []
action:
  - if:
      - condition: state
        entity_id: select.desk_rgb_1
        state: 外部灯1
    then:
      - service: light.turn_on
        metadata: {}
        data_template:
          brightness_pct: "{{ states('sensor.desk_rgb_1_2') | int }}"
          entity_id: light.yeelink_lamp22_e014_light
  - if:
      - condition: state
        entity_id: select.desk_rgb_1
        state: 外部风扇1
    then:
      - service: fan.turn_on
        metadata: {}
        data:
          percentage: "{{ states('sensor.desk_rgb_1_2') | int }}"
        target:
          entity_id: fan.bigger_fan
mode: single


然后是按下的控制:
alias: 工作室氛围灯控制器按钮
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.desk_rgb_0_2
    to: single_clicked
condition: []
action:
  - if:
      - condition: state
        entity_id: select.desk_rgb_1
        state: 外部灯1
    then:
      - service: light.toggle
        metadata: {}
        data: {}
        target:
          entity_id: light.yeelink_lamp22_e014_light
  - if:
      - condition: state
        entity_id: select.desk_rgb_1
        state: 外部风扇1
    then:
      - service: fan.toggle
        metadata: {}
        data: {}
        target:
          entity_id: fan.bigger_fan
mode: single
然后esphome如果要显示状态,需要配置文件中对应设置如下地方(ESPHOME的配置文件里)
开关状态
binary_sensor: #定义二进制传感器
#以下为导入HA中设备开关状态          
  - platform: homeassistant
    entity_id: light.yeelink_lamp22_e014_light
    id: remote_light_state
    on_state: 
      then:
        - number.to_min:  #归零上次操作的时间
            id: number1               
  - platform: homeassistant
    entity_id: fan.bigger_fan
    id: bigger_fan_state    
    on_state: 
      then:
        - number.to_min:  #归零上次操作的时间
            id: number1 


数值状态,如亮度,风速
#以下为HA中的设备数值
  - platform: homeassistant    #从HA中获取要控制的设备属性值,这里是风扇的风速
    entity_id: fan.bigger_fan  #HA中的实体ID
    id: bigger_fan_speed 
    attribute: percentage      #要获取的属性
    on_value:
      then:
         - number.to_min:  #归零上次操作的时间
             id: number1               
  - platform: homeassistant   #从HA中获取要控制的设备属性值,这里是灯的亮度
    entity_id: light.yeelink_lamp22_e014_light   #HA中的实体ID
    id: remote_light_brightness
    attribute: brightness     #要获取的属性
    filters:  #对数值进行转换
      - lambda: !lambda "return x/255 * 100.00;"

应该就这些了。



评分

参与人数 2金钱 +20 收起 理由
kaka0992 + 10 感谢楼主分享!
book123 + 10 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

0

主题

98

帖子

1316

积分

金牌会员

Rank: 6Rank: 6

积分
1316
金钱
1218
HASS币
0
发表于 2024-7-15 17:56:59 | 显示全部楼层
大佬牛。
回复

使用道具 举报

15

主题

220

帖子

1761

积分

金牌会员

Rank: 6Rank: 6

积分
1761
金钱
1541
HASS币
0
发表于 2024-7-15 18:18:11 | 显示全部楼层
66666666666
回复

使用道具 举报

14

主题

262

帖子

2223

积分

金牌会员

Rank: 6Rank: 6

积分
2223
金钱
1956
HASS币
50
发表于 2024-7-15 20:57:33 | 显示全部楼层
感谢大佬分享!能共享一下立创EDA工程文件吗,想学习一下。谢谢!
回复

使用道具 举报

20

主题

265

帖子

1852

积分

金牌会员

Rank: 6Rank: 6

积分
1852
金钱
1587
HASS币
0
发表于 2024-7-15 21:24:29 | 显示全部楼层
感谢大佬分享!能共享一下立创EDA工程文件吗,想学习一下。谢谢!
回复

使用道具 举报

16

主题

269

帖子

2817

积分

论坛DIY达人

积分
2817
金钱
2533
HASS币
60
 楼主| 发表于 2024-7-15 21:46:07 | 显示全部楼层
book123 发表于 2024-7-15 20:57
感谢大佬分享!能共享一下立创EDA工程文件吗,想学习一下。谢谢!

回头我在开源广场发下。到时候贴连接
回复

使用道具 举报

14

主题

262

帖子

2223

积分

金牌会员

Rank: 6Rank: 6

积分
2223
金钱
1956
HASS币
50
发表于 2024-7-15 23:37:56 | 显示全部楼层
花落花空 发表于 2024-7-15 21:46
回头我在开源广场发下。到时候贴连接

好!
回复

使用道具 举报

0

主题

144

帖子

1154

积分

金牌会员

Rank: 6Rank: 6

积分
1154
金钱
1010
HASS币
0
发表于 2024-7-16 01:16:04 | 显示全部楼层
66666大佬
回复

使用道具 举报

16

主题

269

帖子

2817

积分

论坛DIY达人

积分
2817
金钱
2533
HASS币
60
 楼主| 发表于 2024-7-17 13:47:35 | 显示全部楼层
回复

使用道具 举报

0

主题

608

帖子

2516

积分

金牌会员

Rank: 6Rank: 6

积分
2516
金钱
1908
HASS币
0
发表于 2024-7-17 14:54:14 | 显示全部楼层
有点意思,相当于加了一个桌面调光旋钮
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 13:31 , Processed in 0.238285 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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