智能家居控制系统设计与实现——软件部分.docx

上传人:温桑 文档编号:49457887 上传时间:2022-10-08 格式:DOCX 页数:36 大小:2.30MB
返回 下载 相关 举报
智能家居控制系统设计与实现——软件部分.docx_第1页
第1页 / 共36页
智能家居控制系统设计与实现——软件部分.docx_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《智能家居控制系统设计与实现——软件部分.docx》由会员分享,可在线阅读,更多相关《智能家居控制系统设计与实现——软件部分.docx(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、页眉设置 论文编号: 广州商学院本科毕业论文(设计)题 目:智能家居控制系统设计与实现软件部分 姓 名:尹家欢学 号:201508030015学 院:信息技术与工程学院专业班级:电子信息科学与技术应电1501指导教师:周巨青2019年5月11日本科毕业论文(设计)原创性声明本人郑重声明:所呈交的毕业论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律结果由本人承担。作者签名: 日期: 年 月 日本科毕业论文(设计)版权使

2、用授权书本论文(设计)作者完全了解学校有关保留、使用毕业论文(设计)的规定,同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权广州商学院可以将本论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文(设计)。本论文(设计)属于1保密,在_年解密后适用本授权书。2不保密。(请在以上相应方框内打“”)作者签名: 日期: 年 月 日指导老师签名:日期: 年 月 日智能家居控制系统的设计与实现摘要 自从迈进了21世纪,人民的生活水平得到了很大的提高,再也不用温饱问题,人们关注的焦点已转移到交通的便利

3、性和家庭生活的质量上。普通的家居生活方式已经难以满足人们快节奏的生活需求,而安卓智能家居的诞生是一种以家居生活为基础而打造的智能产品,旨在改善人们生活的质量。对于智能家居系统,其主要是通过移动通信终端实现家用设备的控制管理,例如灯、门、窗帘等家用设备。本次智能家居系统的设计是基于Android和云服务器结合Bomb云开发平台实现的。通过在云平台上搭建服务器,使用MQTT通讯协议与移动终端上的Android APP建立通信。MQTT服务器用作中继站,负责接收所有带有标识的数据,并将这些带有标识的数据下发给对应的设备和移动终端,完成数据获取和控制功能,而Bomb负责实现存储用户数据的功能。通过本次

4、智能家居控制系统的设计,可以实现通过移动终端来控制灯的开关、窗帘的升降、烟雾报警以及温湿度检测的功能。关键词:Android;智能家居;服务器;MQTTAbstract Since entering the 21st century, peoples living standards have been greatly improved, and there is no need to worry about food and clothing. The focus of peoples attention has shifted to the convenience of transport

5、ation and the quality of family life. The ordinary home lifestyle has been difficult to meet peoples fast-paced life needs, and the birth of Android smart home is a smart product based on home life, aimed at improving the quality of peoples lives, changing peoples lifestyles, and promoting Safe, eff

6、icient and convenient living concept.For the smart home system, it mainly realizes the control management of the household equipment through the mobile communication terminal, such as household equipment such as lamps, doors, curtains, and the like. The design of this smart home system is based on A

7、ndroid and cloud server combined with Bomb cloud development platform. By setting up a server on the cloud platform, the MQTT communication protocol is used to establish communication with the Android APP on the mobile terminal. The MQTT server is used as a relay station, and is responsible for rece

8、iving all the data with the identification, and transmitting the data with the identification to the corresponding device and the mobile terminal to complete the data acquisition and control functions, and Bomb is responsible for realizing the function of storing the user data. Features. Through the

9、 design of this smart home control system, it is possible to control the function of the switch of the lamp, the lifting and lowering of the curtain, the smoke alarm and the temperature and humidity detection through the mobile terminal.Key words: Android; service; Smart home; MQTT目录摘要IAbstractII目录I

10、II1绪论11.1课题研究背景及意义11.2国内外研究情况11.2.1国外研究现状11.2.2国内研究现状21.3研究内容22相关技术32.1开发平台的选择32.2通信协议的选择32.2.1HTTP通信协议32.2.2MQTT通信协议32.3Bmob后端云服务平台的介绍42.3.1注册Bmob账号42.3.2网站后台创建应用42.3.3SDK导入42.3.4配置AndroidManifest.xml52.3.5初始化BmobSDK53系统分析与设计63.1需求分析63.2概要设计63.2.1基于STM32的硬件设计63.2.2基于Android Studio的软件设计63.3详细设计73.3.

11、1用户登录注册73.3.2灯的控制73.3.3窗帘的控制83.3.4温湿度检测和控制93.3.5烟雾监测和报警104系统实现124.1MQTT服务器124.2主页面框架的实现124.3注册登录找回密码的实现144.3.1注册登录找回密码界面144.3.2注册登录功能154.4个人信息页面的实现164.4.1个人信息界面的实现164.4.2个人信息功能的实现174.5家居页面的实现174.5.1家居页面界面的实现184.5.2家居页面功能的实现184.6智能页面的实现184.6.1智能页面界面的实现194.6.2智能家居页面功能的实现195系统测试205.1单元测试205.1.1登录页面的测试2

12、05.1.2注册页面的测试205.1.3MQTT功能的测试225.2测试报告226总结23附录24参考文献27致谢28IV1 绪论1.1 课题研究背景及意义智能家居系统的概念起源甚早,早在一百多年前就被提出,但是由于当时并没有实际的成型设计,所以并没有得到发展。我国从2000年左右开始发展智能家居产业,从一开始的概念到现在的“智能家居”成型,智能家居行业的发展经历了一段艰难的过程。智能家居系统就是一个集成了硬件的布线技术,软件的通信技术,自动控制的技术等等的系统,目的是为了构建方便快捷的居家环境,提高住宅的实用性和安全性。它将家中的各种电器比如灯控设备、光控窗帘设备、烟雾报警设备、温控设备等等

13、通过网关进行集中控制。自从迈进了21世纪,人民的生活水平得到了很大的提高,再也不用温饱问题,人们希望自己可以拥有一个智能、高效、快捷、舒适的家居环境。普通的家居生活方式已经难以满足人们快节奏的生活需求,而安卓智能家居的诞生是一种以家居生活为基础而打造的智能产品,旨在改善人们生活的质量,改变人们的生活方式,提倡安全、高效,便捷的生活理念。智能家居不仅仅是通讯技术和自动化控制技术的必定发展,也是人们对家居生活的必然要求。人们对家庭生活质量的品质须要,促进了智能家居的蓬勃发展,使得智能家居的产业不断扩大。随着功能各异的智能设备不断的涌入市场,人们对智能家居这一行业的了解也越来越多,与智能家居相关的设

14、备也开始进入大众的视线,更有甚者已经走进了家居生活中,如智能手环等智能产品。本文设计智能家居系统由4个部分组成:Android端是核心,它提供了与服务器和网关通信的交互界面以及核心控制指令的发送;MQTT服务器用作中继站,负责接收所有带有标识的数据,并将这些带有标识的数据下发给对应的设备和移动终端,完成远程数据采集和控制功能。Bomb云平台是存储器,负责存储用户的相关数据。单片机是家用设备的核心,负责控制传感器和执行相关的控制命令。本文设计使用的Android平台有开源、开放、有着丰富的硬件选择,已经成为最受人们欢迎的安卓开发平台之一。1.2 国内外研究情况近几年来,随着信息科学技术的快速发展

15、,全球智能家居行业各方面都取得了较为不错的成果。智能家居也一直都是各个国家智能化研究的热点内容,下面就智能家居行业的国内外研究现状进行概述。1.2.1 国外研究现状上个世纪70年代,美国的X-10诞生,它是通过家用电线来传输信号,比较容易受到干扰,但这也是一个大的迈进。1984年,美国建成第一栋智能家居系统,使用了消防、安保的监控,应用了家庭电器设备整合化、信息化概念。在这之后,许多等发达国家都针对这一热点问题进行了研究,并提出了许多相关的方案。其中比较有名的是比尔盖茨建于美国华盛顿的“未来之星”,展示了智能与家居生活的融合成果,为智能家居概念的推广起到了引导的作用。目前在发达国家中比较有名的

16、主要有:德国的IB系统及新加坡的系统、美国的X-10系统等。微软、IBM、苹果等知名的公司都看重了这一行业广阔的市场前景,并根据自身的评估进行了不同程度的投资。而韩国推出了一系列基于三星的智能产品,取得了较为不错的效益。美国智能家居行业的有关专家表示智能家居控制行业在未来的10年将持续扩大市场范围,强大的市场需求将会给这一行业带来每年平均增长率为8%的市场价值。1.2.2 国内研究现状与国际的发达国家相比,国内在智能家居这一行业起步较晚。在上个世纪90年代,我国有对智能家居这一行业还处于概念认知阶段,对它还不太了解。在2000年,我国逐渐把目光放在智能家居控制这一行业上。但是在2013年之前,

17、市场上的智能家居,价格高昂,操作不便,具有较大局限性,常用在一些高级场所,例如:别墅、高级酒店、公寓等。普及率很低。在2013年以后,市场也开始细化,智能家居厂家不再研发智能家居的整套设备,而是开始研发单个的智能产品。我国智能家居行业已经进入了高速发展的时期,国内也出现了许多成果的案例,包括以家电为代表的海尔、美的、格力,以通讯技术为代表的华为、中兴,以及以互联网技术为代表的阿里巴巴、腾讯等公司以其自身的技术优势进入到了智能家居市场。进入21世纪,人民的消费观点随着人民生活水平的提高发生了很大的改变。对家居生活环境的要求也会有所改变,人们对于智能家居的需求在不断的扩大,家居的智能化水平也会越来

18、越高,国内智能家居行业的市场潜力巨大。1.3 研究内容本次智能家居系统的设计是基于Android和云服务器结合Bomb云开发平台实现的。通过在云平台上搭建服务器,使用MQTT物联网通信协议与移动终端建立通信。MQTT服务器用作中继站,负责接收所有带有标识的数据,并将这些带有标识的数据下发给对应的设备和移动终端,完成远程数据采集和控制功能并将数据存储到Bomb数据库中。软件设计的主要功能有:可以实现用户的注册、登录功能,每个用户的数据都是独立存储的;可以通过手机来控制灯,开启和关闭都可以用手机上的按键来控制;可以通过手机来控制窗帘,当用户早晨醒来不想起床拉开窗帘的时候,就可以打开手机上的APP,

19、点击其中负责控制窗帘的按钮,窗帘就会自动拉开;还可以通过硬件上的温湿度传感器检测到周围环境中的温湿度,显示在手机上,当空气中的湿度不足时,会喷出水雾提高空气中的湿度,达到适应人体的温湿度;硬件中还有一个烟雾传感器,烟雾数据会显示在界面上,当烟雾浓度过高时,APP上会发送告警通知,提醒用户烟雾浓度过高,可适当开窗处理等。2 相关技术2.1 开发平台的选择Eclipse是经典的Android开发工具,早期的开发者开发安卓程序都是使用这个开发平台进行项目开发。而Android Studio 是Google后来才推出的一个Android集成开发工具,这也是它相比于Eclipse而言最大的优势。Andr

20、oid Studio 提供了集成的 Android 开发工具用于开发和调试。相比与Eclipse,Android有以下优点:Eclipse常常会遇到卡死状态,启动速度、响应速度、内存占用一直被行内诟病。而Android Studio在性能方面有着显著的提升,而且Android Studio使用了单项目管理方式,在启动应用的速度上比Eclipse快。Android Studio不仅拥有了Eclipse的优点,还自带了多设备的实时预览,它有着非常强大的UI界面编辑器,这对于Android开发者而言会方便许多。Android Studio 有着更完善的插件系统,支持各种插件,在安装的时候就自带了如G

21、itHub, Git, SVN等代码管理工具,可以直接对项目进行管理。对于个人而言,使用Android Studio进行开发项目开发较为方便,支持的插件也比较多,性能等方面也比Eclipse优秀,综合各方面的因素,本次关于智能家居的设计使用的开发平台是Android Studio。2.2 通信协议的选择目前在物联网应用中,存在很多通信协议,可以采用的通信协议有的有HTTP、MQTT、XMPP、CoAP等。下面我就对MQTT、HTTP协议做一些介绍。2.2.1 HTTP通信协议HTTP 协议中文名为超文本传输协议,适用于分布式超媒体信息系统,是一个面向应用层的面向对象的协议。HTTP通信协议是一

22、个基于TCP/IP通信协议来传输数据的协议,这之中的数据可包括HTML文件、图片、文件等等。它的特点是简单快捷,客户端只需要传输请求方法和路径就可以向服务器发请求,所以它的速度很快。HTTP通信协议对于传输的数据类型没有做限制,可以传输任意类型的数据。由于 HTTP 协议开放程度高,使用HTTP协议的开发成本低,所以对物联网系统进行开发时,很多开发者都是选择基于HTTP 协议进行开发。2.2.2 MQTT通信协议MQTT是一种轻量级基于发布/订阅模式的即时通信协议。MQTT运行与TCP/IP之上,稳定性、安全性较高。它的特点是小型传输、功耗小、开源免费、消耗的网络流量低,并且能有效分配与传输最

23、小数据包;MQTT 协议在手机终端的应用较为广泛,是物联网重要的通信协议之一。综合以上3种协议的优缺点对比,MQTT 协议的通用性高、可扩展性强、功耗小和消耗的流量小,对网络要求也不高,而且还开源免费,对比其他协议,在智能家居应用领域有着明显的优势。而且 MQTT 传输协议使用的发布订阅消息方式在多对多的通信场景中能发挥极大的作用,可以使得智能家居控制系统中处于不同局域网中的智能设备可以直接通信,提供更好的用户体验。故而本次智能家居的设计使用的是MQTT协议作为通信选择。2.3 Bmob后端云服务平台的介绍对于很多开发者而言,想要开发一个应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌

24、握一门开发的编程语言语言,每开发一款应用,就必须开发、维护对应的服务器。这对于开发者而言是一件漫长的维护过程。而Bmob后端云服务平台的诞生,就很好的处理了这个问题。Bmob后端云服务平台可以轻松实现应用“云与端”的数据连通,因为它为开发者提供了实时数据与文件存储功能。除了在传统应用中存储文本信息外,数据存储还可以存储图片、视频、音频、地理位置等信息。本次家居控制系统软件部分的设计中有一个用户登录注册的功能,使用的就是Bmob后端云服务平台。具体实现如下。2.3.1 注册Bmob账号打开浏览器,输入Bmob的地址或者搜索Bmob后端云开发平台,进入Bmob的首页,点注册一个开发者账号,激活Bm

25、ob账户成功后,开发者就可以用Bmob轻松开发应用了。2.3.2 网站后台创建应用登录开发者账号进入后台,点击后台界面左上角“创建应用”,在选择完要开发的应用类型,输入应用的名称之后点击创建应用按钮确认,就拥有了一个等待开发的可以使用Bmob数据库的应用。创建应用成功后,进入设置/应用密钥,点击复制,即可得到Application ID2.3.3 SDK导入在Project的build.gradle文件中添加Bmob的maven仓库地址,如图2-1所示图2-1 SDK导入在app的build.gradle文件中添加compile依赖文件,如图2-2所示。图2-2 添加依赖2.3.4 配置And

26、roidManifest.xml在你的应用程序的AndroidManifest.xml文件中添加相应的权限,权限太多,这里就不配详细的图了。2.3.5 初始化BmobSDK在你应用程序启动的Application的onCreate()方法中初始化Bmob功能。代码如下所示:Bmob.initialize(this, Your Application ID);在完成了上面的步骤之后,就可以使用Bmob来实现用户注册登录的功能了。3 系统分析与设计3.1 需求分析自从迈进了21世纪,人民的生活水平得到了很大的提高,再也不用温饱问题,人们关注的焦点已转移到交通的便利性和家居生活的质量上。普通的家居生

27、活方式已经难以满足人们快节奏的生活需求,而智能家居的出现顺应了这个要求。本次设计的智能家居控制系统也是如此,可以通过手机APP控制家里面的灯、窗帘,大大的方便了人们的生活;而温湿度检测和烟雾报警体现了家居生活的智能化,提高了生活的质量。3.2 概要设计3.2.1 基于STM32的硬件设计硬件部分使用是STM32芯片,相比于51单片机而言,它的性能更强、功耗更低、成本也比较低。故而我们最终选择了STM32单片机作为本次设计的核心处理器。而在本次智能家居硬件部分的设计中负责和软件部分负责通信的是ESP8266 模块。主要是通过STM32单片机来控制各个模块工作,再将收集到的数据通过ESP8266模

28、块与MQTT云服务器共同订阅一个主题进行通信,最后将收集到的数据显示在APP上面。其中STM32可以控制灯的开关、窗帘的升降、温湿度传感器、烟雾传感器等。3.2.2 基于Android Studio的软件设计在云服务器上搭建完MQTT代理服务器之后,在Android Stuido上建立一个项目,使用Bmob实现用户注册登录并存储数据的功能,使用MQTT物联网通信协议与设备进行远程通信,实现实时控制灯的开关、窗帘的升降、温湿度传感器、烟雾传感器等功能。其软件设计流程图如下图3-1所示。开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器图3-1 软件设计流程图开始灯登录注册是否已

29、经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登

30、录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器开始灯登录注册是否已经注册否是绑定设备成功温湿度传感器窗帘烟雾传感器3.3 详细设计3.3.1 用户登录注册在本次智能家居控制系统中,主要使用Bomb后端云服务平台进行开发。让用户先登录才可以对设备进行相对应的操作,是考虑的数据的安全性问题,如果不登录就可以直接使用,即使是非用户本人也可以使用,会影响用户体验,故而设计了用户登录注册的功能,其中用户登录注册原理的流程图如下下图3-2所示。图3-2 登录注册原理流程图注册界面登录界面Bmob数据库主页面将用户信息存储对比

31、用户信息查询成功查询失败开始要实现用户的登录注册功能,实现要确认已经注册了Bmob的开发者账号,将需要配置的SDK导入,添加对应的权限、依赖。还要记得在应用的onCreate()方法中初始化Bmob功能。在进行了以上的操作之后,就可以开始开发了。首先先创建一个注册的页面,上面包含有用户名、密码等注册信息,在用户输入用户名、密码并按下确定注册按钮之后,将用户的用户名、密码传到Bomb的数据库存储起来。再创建一个注册页面,用户输入用户名、密码等信息后,将该信息与Bmob数据库存储的注册信息进行对比,若是能查找到对应的信息,则返回允许登录,若是发现只有用户名正确或者用户名、密码都不正确,则返回登录失

32、败。再后面的开发中也可以增加用户若是忘记密码可以使用手机验证码来找回密码的功能,提高该安卓应用的易用性。3.3.2 灯的控制灯是家居生活中不可或缺的一部分,而智能家居的发展也变得越来越智能化。当你回到家中,打开门发现大厅是一片黑漆漆的时候,你想要在黑暗中摸索灯的开光将灯打开;当你半夜醒来,卧室一片黑暗时,你也需要在黑暗中找到灯的开关才能开灯,但是有了智能灯之后,只需要用手机就可以开灯。本次智能家居系统的设计中,可以通过手机APP远程控制灯的开启和关闭。其中灯的控制流程图如下图3-3所示。图3-3 灯的控制流程图主页面绑定设备MQTT灯的控制云服务器MQTT开始登录首先,进入灯的控制页面,上面会

33、显示对应位置的灯,找到你想要控制的灯,点击灯图标下方的按钮,这时候灯的图标会由灭变成亮,此时APP端会向云服务器发送一个带有控制灯亮的数据,云服务器接收到之后,会向订阅同一主题的设备传递灯亮的数据,设备在接收到相关命令之后就会控制灯变亮,从而实现控制灯的开关的目的。3.3.3 窗帘的控制随着智能家居行业的发展,与人们日常生活密切相关的家居用品大都向着智能化的方向发展,窗帘也不例外。普通的手拉式窗帘已经满足不了人们对家居生活质量的要求,智能窗帘才能满足人们对智能生活的要求,智能窗帘主要由电机驱动,不需要人手动去拉就可以自己拉开和关闭,本系统中的智能窗帘模块就是这样。可以通过手机APP实现窗帘的开

34、关。其窗帘的控制流程图如下图3-4所示。主页面绑定设备窗帘的控制MQTTMQTT云服务器开始登录图3-4 窗帘的控制流程图想要实现控制窗帘的开启和关闭和不是使用人手动去拉开和关闭,实现窗帘已经不是普通的窗帘,而是一个电动的窗帘了,它由一个电机来控制窗帘的打开和关闭,当绑定设备之后,在APP上窗帘的控制页面点击打开窗帘按钮,此时APP端会向云服务器发送一个带有窗帘开启控制的数据,云服务器接收到之后,会向订阅同一主题的设备传递窗帘开启控制的数据,设备在接收到相关命令之后,就会控制电机的运转,从而达到控制窗帘开启的目的,实现家用窗帘智能化。3.3.4 温湿度检测和控制温湿度检测和控制是智能家居控制系

35、统中重要的一环,关系到家居生活的质量,而本次智能家居控制系统的设计中就包含由温湿度检测和控制的功能,具体流程图如下图3-5所示。图3-5 温湿度检测与控制流程图温湿度传感器控制页面开始登录主页面Stm32是否接收到指令是否获取温湿度传感器的数据将数据和告警信息发送给服务器判断温湿度是否过高将数据发送给服务器是是将数据或告警信息显示在界面上在设计中主要是由移动终端实现对温湿度传感器的控制。首先,要在单片机上面编写程序驱动温湿度传感器工作。其次,在登录到设备页面,确定已经绑定了设备之后进入温湿度传感器的控制页面,点击获取数据的按钮,通过MQTT服务器将该获取数据的指令转发到STM32单片机上,ST

36、M32单片机在获取到该指令之后,通过编写的硬件程序获取温湿度上面检测到的室内的温湿度数据,同时判断该温湿度数据是否过高,过高就推送一个告警数据,最后将该告警数据和获取到的温湿度数据一起通过MQTT服务器传输到移动终端,实现温湿度检测和控制的功能。3.3.5 烟雾监测和报警烟雾报警功能是家居环境监测的重要组成部分,当监测到特定烟雾浓度时通过远程发送数据的方式将报警信息及烟雾浓度信息发送至中央控制单元系统。在设计中主要是由移动终端实现对烟雾传感器的控制。首先,要在单片机上面编写程序驱动烟雾传感器工作。其次,在登录到设备页面,确定已经绑定了设备之后进入烟雾传感器的控制页面,点击获取数据的按钮,通过M

37、QTT服务器将该获取数据的指令转发到STM32单片机上,STM32单片机在获取到该指令之后,通过编写的硬件程序获取烟雾传感器上面检测到的室内的烟雾数据,同时判断该烟雾数据是否过高,过高就发出声音报警同时推送一个告警数据,最后将该告警数据和获取到的温湿度数据一起通过MQTT服务器传输到移动终端,将告警信息推送给用户并显示烟雾数据在手机界面上。如果烟雾浓度正常,则直接将烟雾数据发送到MQTT服务器在转发到移动终端最后显示在界面上,实现温湿度检测和控制的功能。其主要的系统流程图如下图3-6所示。图3-6 烟雾检测和报警流程图获取烟雾传感器的数据烟雾传感器控制页面开始登录主页面Stm32是否接收到指令

38、是否将数据和告警信息发送给服务器判断烟雾浓度是否过高将数据发送给服务器是是将数据或告警信息显示再界面上4 系统实现4.1 MQTT服务器MQTT服务器提供了数据中转的功能,在云服务器上安装了MQTT服务器之后,就可以设置这个服务器的IP地址和端口号,然后设备和通信终端都去连接这个服务器。连接成功之后,就可以发送数据了。在MQTT的协议中,规定了在发送数据的时候在数据上面加上标识,如“123”,然后再MQTT服务器上转发出去,数据的接收方就可以根据收到的标识为“123”的数据,来执行对应的操作。由开发者本身来规定什么标识对应执行什么命令,可以再MQTT上面设置接收多个带有标识的数据,当然这一切的

39、前提的设备和通信终端上发布/订阅的是同一个主题。MQTT协议的工作原理如下图4-1所示。移动终端MQTT服务器家用设备发送标识为“123”的数据发送标识为“b”的数据接收标识为“b”的数据接收标识为“123”的数据采集数据通过网络发给手机和监控设备查看设备并控制设备图4-1 MQTT协议工作原理STM32芯片收集数据通过MQTT服务器发送到带有标识的数据到移动终端,移动终端接收到带有标识的数据就可以将收集到的数据显示再界面上,实现通过MQTT服务器远程查看设备的功能,而移动终端想要控制设备的时候,只需要发送对应的带有标识的数据到MQTT服务器,服务器转发到设备中,设备接收到对应的代表控制的带有

40、标识的数据,STM32单片机就开始控制对应的设备工作,如控制开灯,拉开窗帘等等,实现智能家居查看设备与控制设备的功能。4.2 主页面框架的实现首先在build.gradle文件中implementation com.android.support:design:27.1.1依赖,然后初始化Views,代码如下图4-2所示。图4-2初始化View然后初始化数据,代码如下图4-3所示图4-3 初始化数据最后初始化点击Tab的事件,其核心代码如下图4-4所示。图4-4 点击Tab事件最后实现的大概效果图如下图4-5所示,有3个页卡,下图中显示的是选择家居页卡的效果。图4-5 主页面框架效果图4.3

41、注册登录找回密码的实现4.3.1 注册登录找回密码界面首先创建一个xml文件,整体布局使用的是ConstraintLayout,这个是Android Studio更新版本之后有的功能,可以更好的调整每一个控件的位置,方便设计。为了方便操作,我使用PS事先弄好了一张设计图,并将其设置Activity的background。其中登录页面我放入了2个EditTex,分别表示用户名、密码。在代表密码的框框下面放了一个TextView,它是用来跳转到注册页面的控件。还在下方放入了一个Button,这里面的Button我使用的是椭圆形的按钮,这里参考的是网上的一个代码,直接将这个Button的backgr

42、ound设置为下面代码所在的xml文件就可以实现了。注册页面的设计也是同样的原理。设计效果如图4-6所示,登录注册找回密码页面的运行效果图如图4-7所示: 图4-9实际效果图图4-6 设计效果图图4-7 登录注册找回密码页面4.3.2 注册登录功能注册部分我实现了以下几个功能:判断用户是否已经被注册、判断输入是否为空、判断2次的密码输入是否一致、判断密码输入是否少于6个字符。查询Bmob中的User表是否有在代表用户名那一栏获取的用户名信息,对此进行判断,如果有查询到,则提示错误,重新输入。如果没有查询到,则继续进行下一步的判断。也就是判断输入是否为空、判断2次的密码输入是否一致、判断密码输入

43、是否少于6个字符等条件。因为代码过长,这里放入部分代码如图4-9示.登录部分较为简单,直接获取Edittext中的用户名和密码这2个信息,与Bmob中的信息对比,有该用户则跳转到主页面即可,没有则提示登录失败部分核心代码如下图4-8示。图4-8注册部分核心代码图4-9登录部分核心代码4.4 个人信息页面的实现4.4.1 个人信息界面的实现创建一个xml文件,整体布局使用的是ConstraintLayout,里面再包含了3个LinearLayout和一个RelativeLayout,在第一个LinearLayout中加入一个TextView和ImageButton,在第二个LinearLayout中加入2个ImageView和一个TextView,再在第三个LinearLayout中加入2个ImageView和一个TextView。最后根据实际美观调整位置即可,设计效果如图4-10所示,设计效果图如图4-11所示。图4-10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com