未加星标

用树莓派给家用电器加上智能(红外篇)

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
ideas

许多家电是红外控制的,与外界的交互通过一个红外遥控器,我们能否通过编程使其变成智能家居呢,好比我们想做这样一件事: 夏天傍晚下班前,检查室内温度,如果室温高于30摄氏度,则打开空调

要做到上边这件事,我们未必需要购买最新的带app控制的智能空调,利用旧式空调也可以。空调由红外遥控器控制,如果我们能控制红外的收发,模拟发射这些控制信号,我们就可以hack这些旧家电,使其可编程,变成 智能家电

目标 红外线控制 微信控制 自然语言控制(chatbot) blockly编程控制 与其他传感器组合(温湿度) 硬件环境 树莓派(我的当前环境是树莓派3,其他版本也可以) 红外接收器/红外发射器(我用的是这款 红外线扩展板 ,能同时支持红外收发) LIRC

LIRC是我们需要的软件.

LIRC 是 linux Infrared remote control的缩写,是linux系统下开源的软件包。从名字中可知,这个软件让你的Linux系统能够控制红外线信号。

LIRC有个具有图形用户界面的前端,叫做KDELirc

在使用LIRC之前建议了解一下 红外协议 ,这样有助于你理解交互过程和debug

安装

sudo apt-get install lirc

配置 #sudo vim /boot/config.txt #在文件结尾添加 dtoverlay=lirc-rpi gpio_in_pin=18 gpio_out_pin=17 #sudo vim /etc/lirc/hardware.conf #编辑LRIC的配置文件 LIRCD_ARGS="--uinput --listen" DRIVER="default" DEVICE="/dev/lirc0" MODULES="lirc_rpi" # 重启生效 sudo /etc/init.d/lirc restart # irrecord --list-namespace 录制电风扇 # 开始录制 irrecord -d /dev/lirc0 ~/lircd.conf #按照提示操作即可,录制完后会让你输入按键名 sudo cp ~/lircd.conf /etc/lirc/lircd.conf #查看录制好可以使用的按键名 irsend LIST /home/pi/lircd.conf "" irsend SEND_ONCE /home/pi/lircd.conf KEY_POWER 录制空调红外

空调遥控器这种带逻辑控制的比较麻烦.每次发射的都是含有温度、模式、制冷制热等一连串的指令,按照之前irrecord指令生成conf文件,行不通

只能使用raw的原始码,记录也是通过mode2 命令实现

先制作模板:

sudo /etc/init.d/lirc restart irrecord -f -d /dev/lirc0 ~/lircd.conf #制作模板

得到

begin remote name /home/pi/lircd.conf flags RAW_CODES eps 30 aeps 100 gap 19886 begin raw_codes name KEY_OPEN 90 102 331 end raw_codes end remote

接下来开始录制

mode2 -d /dev/lirc0 > /tmp/temp.code # space 10969878 cat /tmp/temp.code | sed -n '2,$p' | grep -o -E "[0-9]+" | xargs echo # 移除第一行,之后把所有数字取出 # 把上述指令写入 ~/lircd.conf 的 KEY_OPEN里 sudo cp ~/lircd.conf /etc/lirc/lircd.conf sudo /etc/init.d/lirc restart # irsend LIST /home/pi/lircd.conf "" #列出指令 irsend SEND_ONCE /home/pi/lircd.conf KEY_OPEN

这是我最后的~/lircd.conf内容:

begin remote name /home/pi/lircd.conf flags RAW_CODES eps 30 aeps 100 gap 19886 begin raw_codes name KEY_CLOSE 9075 4411 731 453 751 1580 730 476 729 477 731 1576 729 478 729 1579 729 460 747 477 729 477 729 476 730 1578 729 477 730 476 731 477 733 472 730 476 731 475 730 477 728 480 728 477 729 1578 731 477 727 477 731 475 730 478 728 477 730 476 730 1578 754 430 753 1577 735 471 730 477 752 1553 756 453 753 19884 756 1551 758 451 754 450 756 451 756 451 754 449 756 451 757 429 777 449 758 449 758 449 756 451 755 450 756 1550 757 428 779 451 755 451 755 450 757 450 755 450 757 428 779 449 757 448 760 447 758 449 757 449 756 451 756 450 756 449 756 1551 757 1550 757 451 756 name KEY_OPEN 9112 4390 724 459 747 1584 725 459 746 1582 727 1582 726 481 724 1583 726 482 729 478 745 459 726 481 745 1564 724 480 725 481 746 459 725 488 741 438 770 457 748 457 749 459 747 459 748 1559 748 436 773 455 750 457 748 459 748 457 750 458 747 1559 749 459 746 1558 750 457 749 458 748 1558 751 455 749 19889 748 1559 750 457 748 458 749 458 750 457 747 458 748 458 749 435 771 458 749 457 748 459 745 461 745 460 747 1561 726 481 729 455 769 458 725 482 725 481 724 483 724 481 726 482 745 460 725 482 725 482 722 482 726 482 725 481 724 480 724 1583 725 1582 727 1583 726 end raw_codes end remote

我把开关机命名为KEY_OPEN/KEY_CLOSE(可以完全自定义)

之后开关机的指令分别为:

#开机 irsend SEND_ONCE /home/pi/lircd.conf KEY_OPEN #关机 irsend SEND_ONCE /home/pi/lircd.conf KEY_CLOSE

测试有效!搞定

之后结合温度传感器或者微信之类的其他功能模块就可以完成丰富的智能控制了

参考 LIRC 使用树莓派遥控空调 红外协议之NEC协议 使用树莓派红外控制空调和风扇 发布树莓派专用红外线扩展板

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

分页:12
转载请注明
本文标题:用树莓派给家用电器加上智能(红外篇)
本站链接:http://www.codesec.net/view/483862.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(205)