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

 找回密码
 立即注册
查看: 73400|回复: 22

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

  [复制链接]

15

主题

204

帖子

2366

积分

论坛技术达人

积分
2366
金钱
2142
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

主题

113

帖子

986

积分

高级会员

Rank: 4

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

使用道具 举报

43

主题

412

帖子

3806

积分

元老级技术达人

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

使用道具 举报

27

主题

2143

帖子

8928

积分

论坛元老

Rank: 8Rank: 8

积分
8928
金钱
6780
HASS币
30

论坛元老

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

使用道具 举报

46

主题

641

帖子

4411

积分

元老级技术达人

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

使用道具 举报

6

主题

226

帖子

3723

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

15

主题

636

帖子

2201

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

33

主题

312

帖子

1849

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

1

主题

158

帖子

872

积分

高级会员

Rank: 4

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

使用道具 举报

0

主题

52

帖子

531

积分

高级会员

Rank: 4

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 05:43 , Processed in 1.238650 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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