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

 找回密码
 立即注册
查看: 22460|回复: 29

[进阶教程] 用树莓派连接红外二极管来控制空调,并将其加入ha

  [复制链接]

10

主题

270

帖子

2261

积分

超级版主

Rank: 8Rank: 8

积分
2261
金钱
1971
HASS币
61

教程狂人

QQ
发表于 2017-8-15 14:03:24 | 显示全部楼层 |阅读模式
本帖最后由 893399065 于 2017-8-16 17:14 编辑

为什么我不用博联?因为太贵了。。。这样做是因为自己有树莓派,二极管也不值钱的,所以才出此下策。但是我觉得sonoff上也能接上红外二极管,因为成本低那就可以每个需要的房间的弄一个,那么红外控制信号覆盖全家基本不成问题了。

这是面包板上的连接情况
QQ图片20170815121006.png

这是加入homeassistant的效果
QQ图片20170815115011.png
(模式选择:加热、制冷、自动、关闭, 温度调控范围:20~30℃)

下面是实现过程
  • 硬件条件准备:树莓派、红外接收头、红外发射二极管、4KΩ电阻、三极管

                               
登录/注册后可看大图

  • 红外接收头连接到树莓派,从左到右依次连接   GPIO.4(BCM 23)、0V、5V

                               
登录/注册后可看大图
  2. 三级管连接平的那面面对自己,从左到右依次连接  0V、GPIO.3(BCM 22)、3.3V。 GPIO.3与三极管基极间串联一个4KΩ电阻, 3.3V与三极管集电极间串联红外发射管二极管


  • 搞定这两样物理条件就准备好了,下面进行软件准备(软件准备我就不写了,我贴个网址,它那里有详细的介绍,照着上面操作没问题):

  • 安装设置LIRC
  • QQ截图20170815132016.png
  • 你照着上面的做,做到“Testing the IR receiver"这里能得到数据就行了,就不用再继续照着上面的做了
  • 然后照着空调录制这个帖子来录制空调码
  • 录制成功后你再尝试在树莓派上调用命令,看能不能控制空调(这个步骤遇到问题了可以留言,我会来解答的)
       PS:空调码是组合码(你发送一次的红外信号它包含了空调的所有信息,什么风速啊,模式啊,温度啊,灯光········),组合码怎么解我不知道,所以我用的录制的码是空调:在制冷模式下温度20~30℃的码、在制热模式下温度20~30℃的码、关机码和一个自动模式的码。你想要更多模式的控制你就再多学一些,然后添加进去就行了。


  • 树莓派上弄好了,再在homeassistant上添加控制
  • 请参考我在configuration.yaml下的设置:
      
shell_command: !include shell.yaml
# 输入选项
input_select:
  ac_setting:
    name: '空调设置'
    icon: mdi:air-conditioner
    options:
      - AUTO
      - COOL
      - HEAT
      - 0FF

# 输入滑竿
input_slider:
  air_conditioner_temp:
    name: '空调温度'
    icon: mdi:ray-vertex
    initial: 25
    min: 20
    max: 30
    step: 1



    2. 我在shell.yaml下的设置(这是为了在homeassistant里添加服务)

    ac_open: irsend send_once /home/homeassistant/lircd.conf KEY_OPEN
    ac_close: irsend send_once /home/homeassistant/lircd.conf KEY_CLOSE
    cool_20: irsend send_once /home/homeassistant/lircd.conf KEY_0
    cool_21: irsend send_once /home/homeassistant/lircd.conf KEY_1
    cool_22: irsend send_once /home/homeassistant/lircd.conf KEY_2
    cool_23: irsend send_once /home/homeassistant/lircd.conf KEY_3
    cool_24: irsend send_once /home/homeassistant/lircd.conf KEY_4
    cool_25: irsend send_once /home/homeassistant/lircd.conf KEY_5
    cool_26: irsend send_once /home/homeassistant/lircd.conf KEY_6
    cool_27: irsend send_once /home/homeassistant/lircd.conf KEY_7
    cool_28: irsend send_once /home/homeassistant/lircd.conf KEY_8
    cool_29: irsend send_once /home/homeassistant/lircd.conf KEY_9
    cool_30: irsend send_once /home/homeassistant/lircd.conf KEY_A
    heat_20: irsend send_once /home/homeassistant/lircd.conf BTN_0
    heat_21: irsend send_once /home/homeassistant/lircd.conf BTN_1
    heat_22: irsend send_once /home/homeassistant/lircd.conf BTN_2
    heat_23: irsend send_once /home/homeassistant/lircd.conf BTN_3
    heat_24: irsend send_once /home/homeassistant/lircd.conf BTN_4
    heat_25: irsend send_once /home/homeassistant/lircd.conf BTN_5
    heat_26: irsend send_once /home/homeassistant/lircd.conf BTN_6
    heat_27: irsend send_once /home/homeassistant/lircd.conf BTN_7
    heat_28: irsend send_once /home/homeassistant/lircd.conf BTN_8
    heat_29: irsend send_once /home/homeassistant/lircd.conf BTN_9
    heat_30: irsend send_once /home/homeassistant/lircd.conf BTN_A


    PS:这个有个问题要注意,你空调录制得到的conf文件教程上不是把它复制到了 /etc/lirc/lircd.conf 吗?要对/etc/lirc/lircd.conf进行一点修改
找到begin remote下的name, 把name后面的路径修改成/home/homeassistant/lircd.conf


    3. 我在automations.yaml下的设置(这是为了让你在面板上的选项对应相应的服务)

- alias: ac_auto
  trigger:
    platform: state
    entity_id: input_select.ac_setting
    to: 'AUTO'
  action:
    - service: shell_command.ac_open

- alias: ac_off
  trigger:
    platform: state
    entity_id: input_select.ac_setting
    to: '0FF'
  action:
    - service: shell_command.ac_close

- alias: cool_heat
  trigger:
    platform: state
    entity_id: input_slider.air_conditioner_temp
  action:
    service_template: >
      {%- if is_state('input_select.ac_setting', 'COOL') -%}
        shell_command.cool_{{states.sensor.setting_temperture.state}}
      {%- elif is_state('input_select.ac_setting', 'HEAT') -%}
        shell_command.heat_{{states.sensor.setting_temperture.state}}
      {%- endif -%}


  4.我在groups.yaml下的设置(再把这些组件合成一组)
ac_setting:
    view: no
    name: '空调遥控'
    icon: mdi:air-conditioner
    entities:
        - input_select.ac_setting
        - input_slider.air_conditioner_temp
        - sensor.setting_temperture


  • 把这些搞定后,重启homeassistant,看看效果
QQ图片20170815121006.png

评分

参与人数 2金钱 +13 收起 理由
+ 6
lidicn + 7 666!

查看全部评分

回复

使用道具 举报

0

主题

177

帖子

1100

积分

金牌会员

Rank: 6Rank: 6

积分
1100
金钱
923
HASS币
0
发表于 2017-8-15 14:10:00 | 显示全部楼层
才入了一个红外遥控30多元~
回复

使用道具 举报

4

主题

266

帖子

2533

积分

金牌会员

Rank: 6Rank: 6

积分
2533
金钱
2267
HASS币
0
发表于 2017-8-15 16:37:10 | 显示全部楼层
虽然不懂 感谢分享
回复

使用道具 举报

219

主题

1287

帖子

7951

积分

超级版主

Rank: 8Rank: 8

积分
7951
金钱
6634
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2017-8-15 16:39:02 | 显示全部楼层
不错的分享。话说,应该不用搞这么多个自动化。
回复

使用道具 举报

5

主题

91

帖子

375

积分

中级会员

Rank: 3Rank: 3

积分
375
金钱
284
HASS币
0
发表于 2017-8-15 16:54:53 | 显示全部楼层
虽然很复杂, 但还是谢谢您的分享!
回复

使用道具 举报

123

主题

4664

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16442
金钱
11693
HASS币
45
发表于 2017-8-15 17:24:51 | 显示全部楼层
终于有人发贴了,sonoff的贴一直没发,就是电路部分太费劲。既然你写出来了,电路部分我就不弄了
回复

使用道具 举报

219

主题

1287

帖子

7951

积分

超级版主

Rank: 8Rank: 8

积分
7951
金钱
6634
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2017-8-15 18:08:57 | 显示全部楼层
本帖最后由 lidicn 于 2017-8-15 18:10 编辑
Jones 发表于 2017-8-15 17:24
终于有人发贴了,sonoff的贴一直没发,就是电路部分太费劲。既然你写出来了,电路部分我就不弄了
...

你看清楚啊,他的是树莓派接个红外led。你拖更就为了不用弄电路
回复

使用道具 举报

123

主题

4664

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16442
金钱
11693
HASS币
45
发表于 2017-8-15 18:19:46 | 显示全部楼层
lidicn 发表于 2017-8-15 18:08
你看清楚啊,他的是树莓派接个红外led。你拖更就为了不用弄电路

是啊,就是这意思,电路这玩意太复杂,一般人会望而却步。我准备订制一批led发射板。。。然后再发贴~
回复

使用道具 举报

30

主题

997

帖子

4153

积分

论坛元老

Rank: 8Rank: 8

积分
4153
金钱
3151
HASS币
0

活跃会员

发表于 2017-8-15 18:43:44 | 显示全部楼层
如果能支持射频就更好了
回复

使用道具 举报

2

主题

136

帖子

1024

积分

金牌会员

Rank: 6Rank: 6

积分
1024
金钱
888
HASS币
0
发表于 2017-8-15 19:32:53 | 显示全部楼层
Jones 发表于 2017-8-15 18:19
是啊,就是这意思,电路这玩意太复杂,一般人会望而却步。我准备订制一批led发射板。。。然后再发贴~ ...

某宝上不是有红外线串口发射接收板么
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-22 19:36 , Processed in 0.147050 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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