极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Alexie

用乐联网控制智能开关

[复制链接]
发表于 2013-6-9 10:57:43 | 显示全部楼层 |阅读模式
本帖最后由 Alexie 于 2013-6-9 11:18 编辑


之前论坛里有不少关于Yeelink和乐联网控制的例子,一般都控制个LED什么的,现在稍微改下,我们来让他们直接控制墙面上的开关,实现对家里灯光的开关 - 当然,前提是你加的墙面开关支持无线通讯。

这款ITEAD智能开关是使用433MHz的无线模块进行通讯的,所以我们需要在IBoard上加上一个433MHz的发射模块,这样就能用于向开关发送指令控制家里的灯光了。具体的433MHz无线控制协议,可以参考这篇帖子:http://www.geek-workshop.com/thread-4577-1-1.html

每一个智能开关都有一个独立的IDKEY,但是这组IDKEY并没印刷在产品上而只在出厂代码里,所以我们需要先读取要控制的开关的IDKEY。我们可以使用上次介绍的ITEAD Intelligent Swtich Protocol的库来简单实现。
TEAD Intelligent Swtich Protocol库中是使用D2中断引脚来作为433MHz接收模块的数据输入脚,在Iboard上对应nRF24L01接口的IRQ引脚,把IRQ引脚接到433MHz接收模块的DATA脚上。连接图入下


打开ITEAD Intelligent Swtich Protocol库中的demo程序,下载到Iboard上去。然后我们可以用AccessPort这样的串口监视器软件来读取串口输出的数据(串口的波特率为115200)。按一下智能开关的触控按钮,听到“滴”声代表开关已发出当前的开关信息,接着我们可以在软件监视器窗口看到IBoard接收到的信息。在本例子中,该智能开关的返回值为“0x07000403”,头八位数据为当前的开关状态,“0x06”表示状态为开,“0x07”表示状态为关。我们需要的是后24位数据,“0x000403”才是该智能开关的IDKEY。



接着我们需要给IBoard连接上433MHz的发射模块,Iboard通过向433MHz发射模块的data引脚发送高低电平就实现无线传输数据命令,当智能开关接收到对应的IDKEY的开关信息时,就会相应地改变当前的开关状态,并向外发出当前开关状态的信息。在本例子中,我们将会用到A0作为433MHz发射模块的输出引脚。插上网线,并与路由器进行连接。实际的电路图如下图所示:


我们选择以乐联网为例来做这个远程控制,关于了乐联网的使用在有很多详细的教程,就不重复了,为了连接乐联网进行以太网控制,我们需要下载乐联网相关的Arduino代码,其下载地址如下:https://github.com/lewei50/leweiclient

接着下载我们为控制智能开关提供的Demo程序。

跟教程里介绍过的一样,注册用户后,修改代码里的用户 key和对应网关的信息、传感器的信息。网站上的内容设置完毕后,用Arduino IDE打开控制智能开关的demo程序。将“LW_USERKEY”的值替换成用户KEY;把”LW_GATEWAY“的值替换成网关的标识值;把”MY_NAME“的值替换成网关的名称值;把”MY_DESC“的值替换成网关的名称值;把定义智能开关的ID值替换成控制设备的缩写值。
上面的这些操作跟使用IBoard控制LED的例子是一样的,我们就不重复介绍了。

另外,我们用到IBoard的A0去控制433MHz发射模块,所以还需要把代码中TX_PIN的值替换为“A0”。并把之前那我们通过窗口读取到的智能开关的IDKEY值替换代码中“IDKEY”对应的数值,此为“0x00000403”。



编译程序通过后,通过Foca将程序下载到IBoard。
由于控制智能开关的例程需要跨网段实现,我们还需对路由器进行一些配置,配置方法还是可以参考这篇文章。
配置完成后,进入乐联网的“用户中心”,点击“我的物联设备”目录下的“我的设备”按钮,在“控制设备”列表中的“控制”列下我们可以看到智能开关的图标,每次切换图标,它的颜色状态就会改变。开关图标的颜色为蓝色时表示开关为开启状态,即开启智能开关;开关图标的颜色为红色时表示开关为关闭状态,即关闭智能开关;开关图标的颜色为灰色时表示开关为开启状态,即表示Iboard还未连接。





我们还可以通过乐联网的手机软件实现控制智能开关,手机软件的下载地址为http://www.lewei50.com/home/sitecontent/downloads 。安装手机软件后,点击手机上“乐联网”的图标,进入登录界面,输入注册时的账号和密码之后,点击“登录”按钮。接着,屏幕出现控制的界面,点击“反向控制”图标,手机会自动搜索可控的设备,跳到“可控设备列表”中。在列表中我们可以看到定义的智能开关“dummy-da”的选项,右边的图标表示开关的状态,颜色为灰色表示开关断开,颜色为蓝色表示开关闭合。点击该图标就可以改变智能开关的状态。


由于乐联网和Yeelink的方向控制功能,也只提供了单向的控制,而不支持双向的反馈机制,所以我们可以通过网页去开关家里的智能开关,当时智能开关状态却无法同步到对应的这个页面位置,这会造成如果你是手动关闭了智能开关的,页面上仍然会显示为原来的状态 – 当然,我们可以在乐联网上新建一个传感器来监视家里各个开关的状态。希望将来乐联网能提供一个双向接口,即可让网页去控制一个设备,又能同时接收设备的反馈并同步状态。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +1 收起 理由
幻生幻灭 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-6-9 11:36:40 | 显示全部楼层
来个沙发,竟然都用上了亚克力折弯。。
回复 支持 反对

使用道具 举报

发表于 2013-6-9 17:21:26 | 显示全部楼层
必须要顶啊
回复 支持 反对

使用道具 举报

发表于 2013-6-9 18:11:11 | 显示全部楼层
一直想做这个东西呢,先看到了,顶起来
回复 支持 反对

使用道具 举报

发表于 2013-7-16 10:17:01 | 显示全部楼层
必须要顶的,非常棒的开源开关,与其买现成的,不如DIY。
回复 支持 反对

使用道具 举报

发表于 2013-8-16 09:42:24 | 显示全部楼层
非常棒的开源开关
回复 支持 反对

使用道具 举报

发表于 2013-10-19 20:29:16 | 显示全部楼层
确实双向接口很重要
回复 支持 反对

使用道具 举报

发表于 2013-11-20 07:57:38 | 显示全部楼层
非常棒~~
回复 支持 反对

使用道具 举报

发表于 2014-6-6 15:42:45 | 显示全部楼层
看到了去年发的这个帖子。路漫漫其修远兮,吾将上下而求索~与大家共勉了!
回复 支持 反对

使用道具 举报

发表于 2014-8-4 15:42:18 | 显示全部楼层
顶啊,这是好东西啊
回复 支持 反对

使用道具 举报

发表于 2015-3-18 12:48:55 | 显示全部楼层
666666666666
回复 支持 反对

使用道具 举报

发表于 2015-3-18 22:13:27 | 显示全部楼层
挺好,要是有无线连接设备就好了
回复 支持 反对

使用道具 举报

发表于 2015-4-18 12:29:32 | 显示全部楼层
有人试过成功了么
回复 支持 反对

使用道具 举报

发表于 2017-5-12 08:30:47 | 显示全部楼层
你用的是以太模块还是无线模块
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-28 17:53 , Processed in 0.045653 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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