基于Zigbee的智能家居系统

举报
一颗小树x 发表于 2020/12/02 23:31:25 2020/12/02
【摘要】 1)做一个智能家居系统,有底层的Zigbee组网和相关传感器,实现数据采集和传输;使用树莓派作为网关,通过TCP通讯方式和手机APP相互信息交流。手机APP中可以看到不同位置实时的温度、湿度、光敏值、家电的状况等等。手机端记录的信息,会上传到服务器,用于数据分析,让用户有更好的生活质量。 2)...

这是我大三第一学期做得课设,小菜鸟一个,欢迎大家指正和参考

 

目的

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 、继电器、温湿度传感器、光敏传感器

 

二、设计正文

  1. 系统总体设计

  本系统采用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

 

五、测试

  1. 底层传感器能采集数据,通过Zigbee网络进行传输。通过串口调试,查看终端节点成功加入协调器构建的网络,并能收到采集的数据2;
  2. 树莓派和协调器通过串口连接,可以相互传输数据;
  3. 树莓派作为网关,收集到协调器的数据,通过TCP通讯与手机传输信息,树莓派做为服务器端;
  4. 手机端测试正常,实现相关功能(注册新用户、用户登陆、查看实时温湿度、控制灯、反馈信息、查看历史数据)。
  5. 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.

 


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。