DIY智能家居和乐联网开放平台对接(arduino+zigbee+openwrt)

说明:此文于2013年6月份发表在其他论坛,由于后续的文章也准备放在csdn上并与此文有很大的关联性,故将此文在此也发布一份,阅读时请注意^_^。


打造自己的智能家居有木有!!!

请先看三个视频(csdn无法嵌入视频,请单击链接查看-_-):
DIY 智能家居 v2.0 操作演示
http://v.youku.com/v_show/id_XNTY5MzcwNzMy.html 
乐联网手机 APP 和微信操作演示
http://v.youku.com/v_show/id_XNTY5NjUwODQ4.html
乐联网管理平台操作演示,注意下自定义微信命令
http://v.youku.com/v_show/id_XNTY5NjI2OTky.html

大家好,我叫无用在这里我主要介绍下DIY智能家居系统开发经历和同乐为物联管理平台的对接方案。
注:无用技术有限,文中难免有错误,如有错误,欢迎拍砖 ^-^
查看乐联网已经对接上的设备
先上图:
这是我在乐联网上公开的家里温度、空气质量和湿度传感器的实时数据曲线图,是不是很酷 ^-^


通过手机微信绑定个人账户后查看室内传感器实时信息

通过微信命令打开/ 关闭家里的设备

通过手机端APP 应用查看传感器实时信息

登录乐联网官方网站查看传感器实时信息

数据对比分析

通过网页控制家里的设备

看到这些心动的有木有!!!我对乐联网简直是一见钟情啊,当然还有很多好玩的等着我们一起去探索,
点这里查看更多信息 http://www.lewei50.com/dev/docList
看到这里很多朋友可能开始好奇了,怎么实现的这些功能呢?下面一步一步来解开这些疑问。
当然乐联网已经为爱好者提供了非常快捷的解决方案,使用它你可以快速搭建传感器数据上传和设备控制,
点这里查看更多信息  http://www.lewei50.com/dev
不过无用有自己的一套解决方案,在遇到乐联网之前已经在用啦,碰到乐联网后毫无压力的与乐联网开放平台对接到了一块。
上架构图:

是不是有点智能家居的味道了,呵呵。
1版的诞生(v1.0)
故事的开始, 2012 年北京的冬天(在北京的兄弟们都知道这年冬天特别的冷),我家暖气出现了故障,整个冬天停止供暖 -_- 。后来我和我老婆实在坚持不住了,去家电城买了个电暖气,这才缓解受冻之苦。但是问题又来了,每天下班到家在打开暖气等到屋里暖起来还是要等好长一段时间的。 有一次突然灵机一动,为何不自己动手做一套简单的系统呢:在下班回家的路上用手机提前把电暖气打开,让它先暖着屋里,提前打开饮水机,回到家就能喝上暖暖的开水 ^_^ , 提前打开热水器,回到家就可洗个热水澡,在加个温度传感器方便查看电暖气的效果, Oh Yea  说干就干,于是 DIY 智能家居的第 1 个版本( v1.0 )就这样诞生了。上设备图:

Db120  路由器,刷 Openwrt  系统(之前拿来上网用的 49RMB)

433 无线模块( 25RMB)

每个终端设备一个 arduino pro mini  占用空间特小 (18RMB)

继电器模块(5RMB)

DS18B20温度传感器(4.5RMB)

开关电源模块 5v 700ma  稳定性很强 (5RMB)
路由器改造:

将433 模块接到路由器的串口上
饮水机改造:

因为是放到饮水机内部使用,就不做美化了,呵呵。
插排改造:


美化一下,呵呵。
使用 db120 openwrt  作为家庭网关,
使用 433  做为无线网络模块,由于 433  只支持半双式,两个模块同时发数据会造成数据混乱 , 一个模块发送数据其它模块都能收到,所以使用了请求回应的方式, openwrt  上的 433 模块作为逻辑上的主模块,数据请求由它发起并带上一个地址,接收方收到数据时判断这个地直址如果是自己就作出回应,整个网络中不会使用重复地址,为了不会使数据混乱 openwrt  上的程序负责保证同时只有一个请求通过 433  发送出去。
继电器、温度传感器和 433 无线使用一个 arduino  放到饮水机内部( 虽然这样做饮水机打开时会影响正常测温,但是当时为了节省开支只好这样了),另一个继电器、 433 无线和 arduino 都塞进一个插排里面,这样做不仅可以控制电暖气,而且还可以控制其它电器。
串口指令结构如下:
0x11 0x22 [ ] +  设备地址  +   功能标识  附加数据
Arduino  中的代码片段:

Openwrt  程序使用 c++ 编写,主要负责提供中间层的作用,它不处理业务,通过 433 无线模块同其它 arduino  设备通讯,并以 tcp  协议方式对外提供接口。
C++ 代码片段:

手上有一台美国 vps 外网服务器 (30rmb/ )
通过 ssh  openwrt  提供的端口在 vps  上打通,让 vps  上的 php 程序能直接使用 c++ 提供的端口 .
主要逻辑处理在 php 上,这样开发和修改起来相对容易了很多。
Php 代码片段:


编写网页程序,对外提供操作 UI:

2版(v2.0)的诞生:
在这里非常感谢乐联网老刘的支持,当他看到我用 433 无线模块组装的插排时跟我约稿,鼓励我将制作过程写一份文章发表出来,当时乐联在做 DSM501A  空气颗粒物检测活动,除了送我一个 DSM501A  外,还送我一个设备做为奖励,有老刘的支持才有这篇文章的发表,非常感谢!!! 之前我也一直想把这些分享出来,可是出于时间等原因一直没有去做,这次既然要做就做好一些把功能都完善一下,于时第 2 版出来了(操作演示请查看视频1),主要改进了以下几点:
1.  由于 433  模块很不稳定,有时会出现丢数据的现象,所以使用 zigbee  模块换掉 433 模块。
2.  增加卧室温度检测、湿度检测、空气颗粒物检测( DSM501A ,乐联网做活动送的)、空调控制(夏天到家前可以先打开空调了 ^-^ )。
3. 外网服务器换用国内阿里云主机,包年 690RMB ,国内 ip 速度快!
zigbee 模块( 49RMB  有些小贵):

换掉路由器内部的433 模块

插排里也换一下:

饮水机也换一下:


使用洞洞板集成zigbee 模块、 arduino 、温度传感、温度传感器、 DSM501A  颗粒物传感器和红外学习模块:


美化了下UI操作界面

与乐联网的对接
传感器数据上传
openwrt  上写 php  代码实现 (openwrt  可以装 php 很方便 ) ,代码片段:
上传温度数据

上传DSM501A  颗粒物数据

使用 crontab  定时上传,每 2 分钟执行一次:

控制设备对接
采用乐联网 tcp  长连接方式,不怕防火墙,响应速度快,也是运行在  openwrt 上 ,采用 python  编写,代码片段:
返回网关上的所有控制设备信息

控制某个设备:

远程控制还不够?来点智能的怎么样?
经过一段时间的使用,无用发现远程控制并不是对智能家居的真正需要,比如下班后在路上有时会忘记拿出手机来打开家里的电器,有时感觉这种方式操作起来还有些繁琐。这时乐联网上的定时执行计划功能是个不错的选择,一般下班8 点到家,通过配置 7 点时打开家里的热水器,饮水机:

如果下班后没有按时回家,比如公司加班,朋友聚会,那些这些按时打开的设备不就白白的浪费着国家能源了,无用在这里想到了一个办法:  在离家还有两公里的时候打开家里的设备,离家两公里以外的话关闭已经打开的设备,是不是有点节能的感觉,呵呵,无用已经实现了并且自己在用,体验还不错,这里简单介绍下实现方法:
1.编写一个android 后台程序,类似于微信那种后台程序(android 不熟,硬着头皮边学边做的),通过移动网络每 1 分钟将自己的地理位置上传到外网服务器上,代码片段:

2.编写服务器上的 php 程序,代码片段:

关于开源、下一篇文章和未来
       无用很乐于奉献源代码,首先看下这篇文章的响应情况,如果大家喜欢,准备在下一篇文章里具体介绍下各个功能模块的实现方法和代码细节,顺便整理下源码,将代码在Github上开放,关于未来无用只能继续努力进行探索,随着不断的探索和积累,未来相信智能家居会成为每个普通用户的可能,走进千家万户,真正服务人类,造福人类!!!
好了就到这里了,下篇文章见!!!
  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
【资源说明】 基于Arduino和LabVIEW的智能家居平台+论文+项目说明.zip 基于Arduino和LabVIEW的智能家居系统,是以PC为上位机,以Arduino控制板以及必要的模块为下位机。 完成如下功能: 一,对于家居环境中的温度进行监测; 二,对于家居环境中的煤气浓度进行监控,如果煤气浓度超过阈值可以进行报警; 三,可对是否有非法人员入室进行监控和报警;四,可在PC机上操控空调开关的系统。 该系统的硬件组成部分为:Arduino Uno r3控制板,W5100扩展板,DS18B20数字温度传感器、MQ-2气体传感器、人体感应模块、继电器模块以及PC上位机的支持。该系统的软件组成部分为:Arduino IDE以及LabVIEW。上位机和下位机的连接方式为:下位机通过Arduino+W5100模块接入路由器,实现了远距离网络数据传输,上位机通过LabVIEW的TCP/IP协议函数库实现通讯编程、数据传输等功能。 智能家居系统代替了传统的家庭里的温度计,实现了将家庭里实时监测的数据传入互联网显示在PC机前面板,还实现了非法人员入室报警、远距离操控家电等功能。该研究设计的智能家居系统,可以取代传统家居模式,通过智能设备代替人工,使用方便、可控性强。 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值