DIY物联网应用 4-遥控器控制风扇

有请本章的主角们:玩具小风扇、红外接收器和一个红外遥控器(空调、电视遥控都行)。本章我们的目标是实现用遥控器控制风扇。

红外协议

我们知道,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm,比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线,红外是一种人的眼眼看不到的光线,利用红外波来传递信息,传递的规则就成为红外协议。红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直接线数据传输。为了使各种设备能够通过一个红外接口进行通信,红外数据协议(InfraredDataAssociation,简称IRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准。
红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。
简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器

红外信号录制

利用红外接收设备可以接收到红外波的信号,红外接收器接收到红外线光波,经过解调电路转换成二进制数据。把接收的到数据记录存储下来的过程叫做录制。利用 Ruff 套件中的红外接收器录制空调遥控器的信号,存储下来,然后使用红外发射器发生出去,你就可以实现 Ruff 来控制空调了,想想是不是很有趣?还有更有趣的,Ruff 连接网络,你就可以远程操控你们家空调。你还可以利用温度传感器写一个程序根据温度范围自动调节你们家空调。

控制风扇

说了原理,开始实践吧!
在上一章《我的第一个物联网应用3》 中,我们知道怎么使用继电器控制风扇了,这一章很简单,在上一章的基础上,我们结合红外设备,使用红外设备控制继电器来控制风扇。说了一堆的红外原理,其实我们这里利用的很简单,我们只要接收到红外信号即可,不需去解读信号的意义,收到信号时如果继电器关闭状态就打开,反之就关闭。

  • 添加红外接收器
  rap device add irr

我们把设备 ID 定为 "irr", 添加成功以后我们去 Ruff 官网软件仓库中查看下红外接收器的驱动提供了什么方法。

 $('#<device-id>').on('data', function(data) {
      console.log('received data', data);
  });

只有一个方法:监听数据,我们所以我们写一个监听数据的方法:

 $('#irr').on('data', function(data) {
        console.log('received data', data);
      //控制继电器
      controlRelay();
  });

再写一个控制控制继电器的方法:

var relayOpen = false;
function controlRelay(){
    relayOpen = !relayOpen;
    if (relayOpen) {
         $('#relay').turnOn(function () {
               // 打开继电器成功的回调函数
                console.log('turn on');
          });

    } else {
        $('#relay').turnOff(function () {
                  // 关闭继电器成功的回调函数
                 console.log('turn off');
         });
    }
}

完整代码:index.js

var relayOpen = false;
function controlRelay(){
        relayOpen = !relayOpen;
        if (relayOpen) {
             $('#relay').turnOn(function () {
                   // 打开继电器成功的回调函数
                    console.log('turn on');
          });
    } else {
        $('#relay').turnOff(function () {
                  // 关闭继电器成功的回调函数
                 console.log('turn off');
         });
    }
}
$.ready(function (error) {
    if (error) {
        console.log(error);
        return;
    }
    $('#irr').on('data',function(data) {
         //控制继电器
           controlRelay();
    });
});
$.end(function () {
    $('#relay').turnOff(function () {
                 console.log('turn off');
         });

});

部署看看吧,也许你的风扇噪音会对红外信号造成干扰,一旦干扰你的红外接收器就会不断接收到信号(实际是风扇噪音信号),如果出现这种情况,建议你把风扇和红外接收器的距离离远一些。

时间: 2024-09-12 16:44:38

DIY物联网应用 4-遥控器控制风扇的相关文章

DIY物联网 5 - 手机控制风扇

在<DIY 物联网 4 - 遥控控制风扇>中实现了用空调遥控来控制一台普通的风扇,沿着上一章的基础,这一章我们来一个更酷的:用手机控制风扇. 开发板和手机通讯的方式 上一章我们实现遥控控制风扇,实际上是根据遥控红外信号指令控制连接风扇的继电器开关,现在我们要实现手机控制风扇,把遥控红外指令换成 手机发出的指令就能控制风扇了.我们能想到的几种方式: 蓝牙通讯: 利用手机的蓝牙功能,连接开发板,发送蓝牙信号,但是有个缺点是不好扩展,不能实现远程控制. 网络通讯: 利用开发板的网络访问能力,实现和手

DIY物联网应用 1-学习计划

上周我花一个下午的时间完成的了一件看起来很酷的事情:用家里的空调遥控器和 Ruff 开发板成功控制一台普通小风扇. 首先说明的是,我不是搞硬件的,但是我的确只花了一个下午完成了上面的事,可见 Ruff 开发硬件之简单. 话说什么是 Ruff ? Ruff 是一个搭载了 JS 运行环境的开发板,同时还提供了一套完善的 SDK 和开发文档.你一定听过树莓派或 Arduino 吧,我们来简单做个对比: 开发版 上手难度 功能 Ruff 开发版 最简单,不用了解硬件知识,会js就能上手 单片机,搭载 J

android properties-android机顶盒 使用遥控器控制listview时滚动速度太快,如何控制listview滚动速度

问题描述 android机顶盒 使用遥控器控制listview时滚动速度太快,如何控制listview滚动速度 android机顶盒项目的节目列表,如果一直按着遥控器下键,则listview一直快速滚动,速度太快了,怎么去控制listview的滚动速度? 解决方案 这个只能控制遥控器的按键逻辑,可以按住超过5秒的话,只响应一次.

沾了物联网的光遥控器要卖7000元

记者 黎莹婷 7000元一个的遥控器,可以控制家里所有的家电,作为物联网应用之一的智能家居整体解决方案,靠着高利润的支撑,已快步走入http://www.aliyun.com/zixun/aggregation/31698.html">民营经济领域. 作为重庆创新型企业,中感科技的智能遥控器计划3月面市. "只需要加装转换器.插线板.开关等,一套100平米左右的四居室,大概6000到7000元."中感科技商务总监杨健称,"智能家居作为物联网的应用之一,可以说在

DIY“物联网”——自己动手处理传感器数据

[编者按]传感器已经大量部署于实际生产中,涉及航空.电力.医疗.教育各个行业的传感器形成大规模的工业物联网,各式各样的传感器产生了大量的数据,如何去分析这些数据,作者用Raspberry Pi和四个Tinkerforge传感器DIY了一个办公室"物联网",模拟了现实生产中传感器应用,为我们带来了一些有益的借鉴,下面是作者的精彩分析. 以下为译文: 当前的一个客户项目和一般工业大数据项目的有趣性质(数据产生于传感器)给了我启发,我决定自己动手处理传感器数据,我想通过这个小实验,了解具体如

DIY物联网应用 2-ruff 介绍

搭建开发环境 上一章简单介绍了 Ruff,假设你看完了上一篇文章<我的第一个物联网应用 1>, 并拿到了 Ruff 开发板,那我们就开干吧!这章我们来一起搭建 Ruff 的开发环境,看过官网起的安装教程,或者已经完成开发环境搭建的可以跳过这个章节. 下载 Ruff SDK 先到官网下载地址下载,最新的 SDK ,根据你的系统,下载相应的 Ruff SDK ,官网提供了压缩包和安装包的方式,本人使用的是 1.6 版本.mac 开发环境,我使用压缩包方式,先将压缩包下载下来. 把下载下来的压缩包解

51单片机之蓝牙控制风扇

这个是我大二才学51单片机的时候做的一个项目,其实这个项目比较简单,只不过是我们自己把它想得太难了,下面我来总结一下具体设计过程,我会上传代码和研究报告:点击这里! 首先买一个蓝牙模块,我买的是HC-06,在手机上下载一个蓝牙串口调试助手,等同于单片机的UART串口通信,利用BUFF来获取接受到的数据,这里只需要重视一个问题,就是测试编码,如果APP发送0xFF,(APP蓝牙串口调试助手已经支持手动设置按钮名字和发送的字符了)但是蓝牙模块很有可能接受到的是0xF8,0xF2,0xFE.所以这里我

2016 技术总结

记得去年写年终总结的时候,我还在去看老友的火车上,那时对新一年充满了无数期许,虽已是争分夺秒,但是当宣布 game over 的那一刻,这一年的收获.成长.遗憾.失落已经定格. 内容提要 MVP 架构 App 浮窗组件开源 NodeJs 全栈开发 App web 化发展趋势 年度博客总结 MVP 架构 App 针对项目中结构混乱,分层不清晰,提出 MVP 架构的想法,经过内部分享,试点实践,最终于五六月份在 MVP 的基础加上 EventBus 全面重构. 架构的收益是持续的,去掉了耦合在各个层

电脑CPU风扇转速如何自己控制?

要想调节CPU风扇转速,那么首先就要CPU风扇支持调节,可控速的CPU风扇必须是4pin线缆的CPU风扇,市面上很多CPU风扇是3pin的是不支持转速控制的.   一般情况下,原装的风扇都是4pin线缆口,这个是可以调节的,我们可以改变BIOS中的选项来控制风扇的转速. 在主板和CPU风扇都具备自动调速的情况下,我们要进入主板Coms中进行一定的设置,在PC Health Status单元里面有一个CPUFAN1 Mode Setting选项,这个选项就是控制CPU风扇的. 分别有三个模式The