找回密码
 立即注册
搜索
查看: 88309|回复: 22

[经验分享] ESPHome做了一个万能遥控器

  [复制链接]

17

主题

221

回帖

2610

积分

论坛技术达人

积分
2610
金钱
2352
HASS币
40
发表于 2021-3-20 22:57:21 | 显示全部楼层 |阅读模式
最近闲着无聊做了一个万能遥控器,代替博联的红外遥控,分别用esp8266, esp32做了2个,  8266上连了人体感应,温湿度传感,红外接收和红外发送, 用来测试多些,连线较乱,就不发上来了。 esp32做的红外遥控吧,温湿度探头昨晚刚淘宝,东西还在路上。 说说经验吧,红外接收就普通国产的三脚的接收模块就可以 ,进口的模块灵敏度太高,经常有莫名其妙的红外代码收到。 发射驱动电路
需要好好设计下,不然比较影响发射距离,  我用了8050驱动2个红外发射管,串10欧电阻连3.3V电源大概作用距离在10米左右,基本满足需求。
esphome里设置api的send_raw_command命令,ha可通过调用esphome服务直接发送红外原始码, 配合smartir插件(支持esphome的这个send_raw_command),可很方便地实现红外控制的
fan,climate组件。
很多人说NEC码比较好用,实际上我测试下来,我家里的设备几乎都不适用读取到的NEC码,还是用RAW码最合适,读码成功率高,发送也能全部成功。
成品如下:

QQ图片20210320220846.jpg

QQ图片20210320220901.jpg


esphome 代码如下:

esphome:
  name: esp32irsensor
  platform: ESP32
  board: nodemcu-32s

wifi:
  ssid: "myssid"
  password: "11111111"

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

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "11111111"
  services:
    - service: send_raw_command
      variables:
        command: int[]
      then:
        - remote_transmitter.transmit_raw:
            code: !lambda 'return command;'
            carrier_frequency: 38kHz
    - service: send_nec_command
      variables:
        address: int
        command: int
      then:
        - remote_transmitter.transmit_nec:
            address: !lambda 'return address;'
            command: !lambda 'return command;'

ota:
  password: "11111111"

web_server:  ## 这个是web控制,添加了这2行,就可以打开设备ip,有控制页面
  port: 80

sensor:
  - platform: dht             ## 不能更改
    pin: GPIO13                   ## 使用GPIO-13
    model: DHT11              ## 不能更改
    update_interval: 4s       ## 数据更新时间
    temperature:
      name: "Temperature"      ## 名称可以自定义
      filters:                        ## 下面这些是对温湿度数据进行初始化处理,求平均值上报
        - sliding_window_moving_average:
            window_size: 5               
            send_every: 5
            send_first_at: 5
    humidity:
      name: "Humidity"
      filters:
        - sliding_window_moving_average:
            window_size: 5
            send_every: 5
            send_first_at: 5

remote_receiver:
  pin:
    number: GPIO23
    inverted: True
  dump: raw

remote_transmitter:
  pin:
    number: GPIO21
  carrier_duty_percent: 50%

## 随便搞2开关测试下红外发射
switch:         
  - platform: template
    name: "media_fan_power"
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [9018, -4395, 634, -1594, 635, -480, 633, -481, 634, -480, 634, -481, 634, -480, 634, -482, 633, -480, 634, -481, 635, -1593, 634, -1595, 634, -1595, 633, -1595, 634, -1594, 634, -1595, 633, -1599, 631, -1594, 633, -1595, 634, -481, 634,
                 -480, 634, -480, 634, -480, 634, -480, 634, -480, 634, -480, 634, -481, 634, -1594, 634, -1594, 634, -1596, 633, -1594, 634, -1595, 634, -1594, 634, -1595, 634, -1594, 634, -480, 635, -480, 634, -480, 634, -481, 634, -479, 634, -481, 634, -480, 634,
                 -481, 633, -1594, 635, -1594, 635, -1594, 634, -1594, 634, -1595, 634, -1594, 634]
          carrier_frequency: 38kHz

  - platform: template
    name: "media_fan_speed"
    turn_on_action:
      - remote_transmitter.transmit_raw:
          code: [9017, -4392, 635, -1595, 634, -480, 634, -480, 634, -481, 633, -481, 634, -480, 634, -481, 634, -480, 634, -480, 634, -1595, 634, -1595, 634, -1595, 635, -1595, 634, -1595, 634, -1595, 635, -1595, 634, -1595, 634, -1595, 634, -1595, 634,
                 -480, 634, -481, 634, -481, 634, -480, 633, -481, 634, -481, 634, -480, 634, -481, 633, -1595, 634, -1595, 634, -1595, 634, -1595, 634, -1595, 634, -1594, 634, -1595, 634, -1595, 634, -480, 634, -480, 634, -480, 635, -480, 634, -480, 634, -480, 635,
                 -480, 634, -480, 634, -1595, 634, -1594, 633, -1596, 634, -1595, 634, -1595, 634]
          carrier_frequency: 38kHz

评分

参与人数 2金钱 +22 HASS币 +20 收起 理由
cym9007 + 2 感谢楼主分享!
+ 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

2

主题

112

回帖

1045

积分

金牌会员

积分
1045
金钱
931
HASS币
0
发表于 2021-3-20 23:47:18 | 显示全部楼层
厉害了,学习一下
回复

使用道具 举报

43

主题

370

回帖

3879

积分

元老级技术达人

积分
3879
金钱
3461
HASS币
136
发表于 2021-3-21 04:09:38 来自手机 | 显示全部楼层
厉害。方便。学习
回复

使用道具 举报

27

主题

2129

回帖

9191

积分

论坛元老

积分
9191
金钱
7030
HASS币
30

论坛元老

发表于 2021-3-21 18:08:08 | 显示全部楼层
如果8266功耗低点可以用电池就完美了,插电很烦
回复

使用道具 举报

46

主题

595

回帖

4425

积分

元老级技术达人

积分
4425
金钱
3754
HASS币
120
发表于 2021-3-21 19:44:58 | 显示全部楼层
建议加入射频,嘿嘿
回复

使用道具 举报

6

主题

220

回帖

3781

积分

论坛元老

积分
3781
金钱
3555
HASS币
0
发表于 2021-3-21 21:00:11 | 显示全部楼层
厉害 mark一下 回头在弄
回复

使用道具 举报

15

主题

621

回帖

2207

积分

金牌会员

积分
2207
金钱
1571
HASS币
0
发表于 2021-3-22 20:05:44 | 显示全部楼层
大佬,能详细讲解下如何能获得raw码吗?尤其是松下的据说32K的码。。。。
我每次抓raw码,码裤里都有,但是每次send,都没用。。。
感谢大佬。
回复

使用道具 举报

33

主题

280

回帖

1937

积分

金牌会员

积分
1937
金钱
1619
HASS币
40
发表于 2021-4-29 13:42:42 | 显示全部楼层
我家里的飞利浦回音壁,遥控也只能是raw。
请教一下,esphome有没有办法接多个接收和发射针脚,想把射频的433、315接收和发射,红外集合在一个esp32模块中,但esphome好像只能接收设置一个针脚,发射设置一个针脚
回复

使用道具 举报

1

主题

157

回帖

872

积分

高级会员

积分
872
金钱
714
HASS币
0
发表于 2021-5-2 21:05:27 | 显示全部楼层
如何配合smartIR使用啊,指点一下啊
回复

使用道具 举报

0

主题

52

回帖

537

积分

高级会员

积分
537
金钱
485
HASS币
0
发表于 2021-5-25 09:24:56 | 显示全部楼层
抽空做一个
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-7-6 06:44 , Processed in 0.389029 second(s), 12 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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