基于Zigbee的智能家居系统
这是我大三第一学期做得课设,小菜鸟一个,欢迎大家指正和参考
目的
1)做一个智能家居系统,有底层的Zigbee组网和相关传感器,实现数据采集和传输;使用树莓派作为网关,通过TCP通讯方式和手机APP相互信息交流。手机APP中可以看到不同位置实时的温度、湿度、光敏值、家电的状况等等。手机端记录的信息,会上传到服务器,用于数据分析,让用户有更好的生活质量。
2)针对树莓派应用方面,结合TCP通讯、Zigbee组网、Android应用开发、Bmob云数据库、传感器技术,实现一个基于树莓派的智能家居系统。
3)Android手机应用程序会用到数据库编程、网络编程、界面编程等等。
4)熟悉树莓派的基本概念、基础知识和基本应用。
5)培养程序设计能力,增强项目实践经验。
主要内容
1.在树莓派上,烧写操作系统,搭建python开发环境,安装相关的库;然后,编写程序,来实现一个网关功能。树莓派与手机端通TCP的方式来通讯;树莓怕做为服务器,接收协调器(Zigbee网络)的数据,传输到手机端。
2. 使用4个Zigbee CC2530设备,构建一个局域网,在用户家中;其中,有一个协调器,三个终端节点。终端节点分别布置在:房间、厨房、客厅中。协调器构建好这个局域网,让3个终端节点加入;然后收集3个终端节点的传感数据。终端节点可以通过与其相连的温湿度传感器、光敏传感器等来采集温度、湿度、光敏值的数据;终端节点还连接着继电器,用来控制灯、和家电。
3. 开发手机APP,手机端的功能有:能实时显示家中不同的位置的温度、湿度、光敏值的数据;能控制灯、家电;能查看历史数据;能用户登陆、注册;接收用户体验的反馈信息
4. 注册Bmo云数据库,建立一个应用,获取到使用应用密钥,建立相关的数据表格。其中,表格包括温湿度表、光敏数据表、控制记录表、用户注册表、用户登陆表、用户体验反馈表等等;建立表格,为后面存储数据做准备。
摘要
本系统使用Zigbee CC2530设备构建一个局域网,来作为底层通信;这个局域网由1个协调器、3个终端节点组成;终端节点会采集温湿度传感器、光敏传感器的数据,然后传输到协调器;终端节点上连接着继电器,可以控制不同位置的灯和家电。树莓派作为一个网关,通过串口与协调器连接,并相互数据传输。树莓派与手机端通过TCP方式通信,其做为服务器,手机端做为客户端;树莓派会把温度、湿度、光敏值等数据发送到手机端;手机向树莓派发送指定的指令,可以控制不同位置的灯、家电。手机端可以实时查看家中的温度、湿度、光敏值等数据,同时手机端也会把这些实时数据上传到Bmob云数据库中,通过智能家居数据分析,用户可以更好的查看历史数据,知道家里的情况;并结合建议,进行优化家里的状况;提高用户的生活质量,感受智能家居的美好。
关键词: Zigbee组网、树莓派、TCP通信、Bmob云数据库、手机APP 、继电器、温湿度传感器、光敏传感器
二、设计正文
- 系统总体设计
本系统采用Zigbee组网技术、结合温湿度传感器、光敏传感器、人体红外感应传感器、继电器设备等,来采集相关数据,实现智能控制。通过Zigbee协议栈技术来构建协调器、终端节点1(放置在客厅)、终端节点2(放置在厨房)、终端节点3(放置在卧室)组成的局域网。
Zigbee协调器和树莓派是通过串口来传输数据的。树莓派把收集到的温度、湿度、光敏值等数据,传输到手机APP端,可以实时数据显示。
系统框图:
图2 系统框图
手机端在接收相关数据信息的同时,也会把相关的数据信息上传到Bmob云数据库中。然后,用户可以用手机APP查看历史数据,这里会结合相关智能家居分析模型,帮助用户了解家里的情况,知道那些可以优化的,然后协助用户去优化家里的环境。
手机APP程序流程图:
图3 手机APP程序流程图
终端节点设计:
图3 终端节点设计图
三、详细设计
1)传感层
传感层包括温湿度传感器、光敏传感器、人体红外传感器。
1.温湿度传感器(DHT11模块)
温湿度传感器是传感器其中的一种而已,是把空气中的温湿度通过一定检测装置,测量到温湿度后,按一定的规律变换成电信号或其他所需形式的信息输出,从而采集到温度、湿度的数据。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。
DHT11通信时序:
电路图:
实物图:
2.光敏传感器
光传感器不只局限于对光的探测,它还可以作为探测元件组成其他传感器,对许多非电量进行检测,从而采集到家里的光敏数据。
光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等;模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平;DO输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的光线亮度改变;DO输出端可以直接驱动本店继电器模块,由此可以组成一个光控开关。
电路图:
实物图:
3人体红外传感器(HC-SR501模块)
3.1 人体红外传感器,人体都有恒定的体温,一般在37度,所以会发出特定波长10UM左右的红外线,被动式红外探头就是靠探测人体发射的10UM左右的红外线而进行工作的。人体发射的10UM左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。 红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。
3.2 热释电效应:当一些晶体受热时,在晶体两端将会产生数量相等而符号相反的电荷。这种由于热变化而产生的电极化现象称为热释电效应。
3.3 触发方式:L不可重复,H可重复。可跳线选择,默认为H。
A. 不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。 B. 重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。
3.4可调封锁时间及检测距离调节:
1、 调节检测距离
2、 封锁时间:感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(默认封锁时间2.5S)
注:
1、调节距离电位器顺时针旋转,感应距离增大(约 7 米),反之,感应距离减小(约 3 米)。
2、调节延时电位器顺时针旋转,感应延时加长(约300S),反之,感应延时减短(约 0.5S)。
3.5光敏控制:
模块预留有位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能,出厂时未安装光敏电阻。
3.6模块优缺点:
优点:本身不发任何类型的辐射,器件功耗很小,隐蔽性好。价格低廉。
缺点:精度一般,感应距离近。
人体红外传感器(HC-SR501模块)硬件电路图:
人体红外传感器(HC-SR501模块)实物图:
2)网络层(Zigbee组网数据传输)
1)Zigbee组网优势
ZigBee不仅只是IEEE802.15.4的名字。IEEE仅处理低级MAC层和物理层协议,而ZigBee联盟对其网络层协议和API进行了标准化。 ZigBee联盟还开发了安全层。
简单概括:
几种无线通信技术参数对比:
相比之下采用Zigbee技术来传输数据,是比较好的。
- ①低功耗 ②低成本
- ③ 低速率 ④近距离
- ⑤短时延 ⑥高容量
- ⑦高安全 ⑧免执照频段
2)本项目通过Zstack协议栈把4个Zigbee cc2530设备进行组网。
Zstack组建的网络类型:网状网(mesh网)
本项目由一个协调器,和3个终端节点组成的网络。
其中协调器与终端节点之间,采用广播的方式来无线网络中数据通信:
广播:
3)Zigbee cc2530硬件电路
cc2530核心板电路图:
cc2530 GPIO电路图:
cc2530 供电板电路图:
cc2530底板电路图:
总体概况:CC2530 是集成了8051内核的mcu和2.4G的无线射频模块,该芯片具有21个IO引脚,P0、P1、P2;一般来说P2口的P2.2和P2.1加上芯片上的VDD、GND、RESET_N五个引脚作为下载调试接口用,P0口集成有AD输入功能。该芯片有两个外接晶振,一个32.726Khz;一个32Mhz,32Mhz的晶振主要是2.4G无线收发模块使用,布线是尽量靠近其引脚,周围敷铜会减少晶振高频信号对其他信号的音响,特别是RESET_N管脚的走线要稍微原理晶振走线。RF_P、RF_N是无线发送接收引脚,其出来的电路是巴比伦电路,PCB布线是两线尽量粗(减少阻抗衰减)、对称,两边最好有完整的地线覆盖,布线处理不好会影响CC2530的收发距离。
4)CC2530实物图
终端节点图:
协调器与树莓派连接(两者是通过串口连接的):
三、手机APP端设计
1)打开手机APP,首先来到登陆界面,注册了的用户,其信息会保存在表login 中;用户输入的用户名存在时,并且密码正确时,才会提示登陆成功,进入Zigbee智能家居控制界面。
2)如果用户没注册的,可以点击右下角的注册新用户按钮,然后来到如下界面:
3)当用户登陆成功后,进入连接设备的界面:
4)点击连接按钮,会进入实时数据显示界面:
5)点击控制灯按钮,会进入控制家电的界面:
当你点击一下对应的灯,就会从点亮了;点击多一下,灯会从明亮到熄灭的。还可以控制空调,和热水器,只需按一下按钮就可以了。
6)点击返回,来到实时数据显示界面,点击图标,就会来到用户信息反馈了界面。
7)来到用户信息登记界面,这是为了方便和用户沟通交流,解决相关问题,优化APP.
8)填写好相关信息后,开到这个界面:
填写好相关信息后,点击按钮 写好了,就成功提交信息到bmob数据库了。
9)用户在APP上查看历史数据
四、Bmob云服务器端
首先在Bmob云注册账户,创建应用。
1)在Bmon云平台创建应用,本项目的应用名为:大三_安卓 。然后,获取应用key,进行开发。
2)创建数据库的表格:login , wenshidu, feedback
其中,表login是存储用户信息的;表 wenshidu 是存储温度、湿度、位置、采集时间等信息的;表feedback 是存储用户对手机APP 的体现分享或建议的。
3)表login
4)表 wenshidu
5)表feedback
五、测试
- 底层传感器能采集数据,通过Zigbee网络进行传输。通过串口调试,查看终端节点成功加入协调器构建的网络,并能收到采集的数据2;
- 树莓派和协调器通过串口连接,可以相互传输数据;
- 树莓派作为网关,收集到协调器的数据,通过TCP通讯与手机传输信息,树莓派做为服务器端;
- 手机端测试正常,实现相关功能(注册新用户、用户登陆、查看实时温湿度、控制灯、反馈信息、查看历史数据)。
- Bmob云服务器正常。
六、课程设计总结或结论
这是我第一次自己做一个完整项目,虽然做的时候遇到了好的问题;如制作手机端时:HashMap出现死循环的原因,ActivityLifecycleCallbacks 怎么使用;除了用Intent 去启动一个Activity,还有其他方法吗;Android Service与Activity之间通信的几种方式?等等;多数的问题解决不了时,都是百度、看博客、问论坛,然后一步一步的做了起来;会花时间去继续做,不断完善的。然后就,当解决了之前遇到的问题后,是很开心的,感觉收获很多。
智能家居这个项目,总结为5层,传感层(温湿度、光敏、人体红外传感器),zigbee组网传输底层数据,树莓派网关层,Bmob云数据库层,手机APP应用层。一步一步地做好每一层,接着做下一次层,真不容易,也遇到许多问题,最后解决好,收获许多,这些付出是值得的。当5层基本做好后,就开始各层之间连接起来,zigbee网络和各个传感器连接起来,能传输采集数据;zigbee网络和树莓派网关层通过串口连接起来;手机APP和树莓派网关层通过TCP通讯方式来相互通信;手机APP和Bmob云数据库连接起来。系统总体连同后,进行不断调试,测试稳定性。
这次是做智能家居,应该对从用户需求方面去考虑,为用户服务。目前,用户可以用手机控制厨房、客厅、房间等不同位置的灯,可以控制空调、热水器的开关。后其还会加入语音识别,人脸识别等功能,让用户更舒适地使用。
七、参考文献
[1]杨云君.Android的设计与完成[M].北京:机械工业出版社,2013:5-65.
[2]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013:12-87.
[3]陈最.基于Android平台挪动终端通明加密零碎的研讨与完成[D].重庆理工大学,2012:108-150.
[4]李骏,陈小玉,Android驱动开发与移植实战详解,北京:人民邮电出版社,2012:87-105.
[5]王毅。 Android平台并行计算研究[J]. 电子制作,2015,24:26.
[6]简靖韡。 Android智能手机信息安全问题与对策分析[J]. 通讯世界,2015,24:33.
[7]石翠。 PS制作Android智能手机界面技巧解析[J]. 电脑编程技巧与维护,2015,24:53-54+66
[8]王庆磊。 Android移动数据安全探析[J]. 福建电脑,2016,03:101+109.
[9]陈屴。 Android云终端的系统备份与还原方案[J]. 福建电脑,2016,03:130-131+157.
- 点赞
- 收藏
- 关注作者
评论(0)