基于云+Android的物联网智能家居软件设计与实现

2023-03-01 08:05范晓红
电子制作 2023年2期
关键词:智能家居界面传感器

范晓红

(山东信息职业技术学院,山东潍坊, 261061)

0 引言

物联网技术可以智能感知生活环境变化、自动控制工业设备、自动检测空气质量等,广泛应用于如智慧农业、智能交通、大数据采集、AIoT、工业互联设备、泛在电力物联网等产业,尤其是在国家“新基建”宏观策略的发展下,物联网技术逐渐融入我们日常生活,例如小米智能家居、海尔智能家居等等,市场上智能家居类产品多样化[1],为家庭生活融入了科技,大大提升了居家生活的舒适性,非常受欢迎。尤其是移动终端的普及,开发一款实用的、便携的智能家居类的APP满足了用户日益增长的使用需求,尤其是对于工作忙碌的年轻人或者行动不便的老人,智能家居的出现,提升了家中的舒适度及居住质量,使得科技与生活融为一体。

本系统提出了基于云+Android的物联网智能家居系统,通过网络将设备、家电、家居等互联,并将家居环境等信息通过互联网上传到云端,通过物联网移动客户端进行智能化控制,配备温湿度监测、烟雾报警、智能电灯开关、智能门禁等等,实现智能化居家体验。

1 系统总体功能设计与实现

■1.1 总体架构

本物联网智能家居系统总体包含四大模块:注册、登录、场景、我的。

图1 功能架构图

注册、登录模块用于用户信息的注册、登录管理。场景主页展示了智能设备在客厅、卧室、阳台、厨房等不同场景的应用。场景中包含四个不同的子场景,可以实现对不同场景下设备进行监测、控制、调节等操作。我的界面包含登录、注册、二维码查看、问题与建议、关于等部分。感知层设备数据经过中心网关上传到新大陆云平台。该软件系统通过网络通信实现与云服务器的信息交互,并完成对家居设备进行监测、控制。

■1.2 硬件设计

本智能家居系统由各类感知层传感器、Zigbee通信模块、智能开关、电灯、空调风扇、路由器、中心网关等设备组成。其中感知层传感器包括温湿度传感器、烟雾传感器、光照传感器等。Zigbee 通信协议是短距离无线通信技术[4],本系统采用的感知层传感器均是通过Zigbee按照Modbus协议进行通信,由Zigbee协调器进行汇聚并通过以太网网络设备,按照TCP协议将采集的数据上传到物联网云端,Android应用程序主要通过访问云端服务器对环境、设备进行监测、预警、控制。

图2 硬件结构图

■1.3 软件系统设计

本物联网智能家居系统总体包含四大模块:注册、登录、场景、我的。

注册、登录模块主要用于新老用户的个人信息注册、登录、个人信息管理。场景模块主要展示了智能设备在客厅、卧室、阳台、厨房等不同场景的应用。场景中包含四个不同的子场景,可以实现对不同场景下设备进行监测、控制、调节等操作。我的界面包含登录、注册、二维码查看、问题与建议、关于等部分。感知层设备数据经过中心网关上传到新大陆云平台,该软件系统通过网络通信实现与云服务器的信息交互,实现在APP中完成家居的智能化控制使用,并完成对家庭环境的监测、控制。该系统的实现主要分为UI设计和功能开发两大部分。图3为软件系统的总体流程图。如果是首次使用系统,则需要完成用户信息注册,否则填写个人登录信息完成系统登录,在登录过程中系统会判断是否自动登录,如果是则自动登录到上次登录的账户中,否则重新输入用户信息完成登录。当登录成功后可以进入到场景界面,场景界面包含四个不同的子场景用于不同室内场景的管理,用户可以选择对应子场景进入并完成室内环境的监测与控制。

图3 软件流程图

1.3.1 功能开发

该应用程序主要功能包括用户信息管理与注册、传感器数据采集与显示、监测数据列表展示、感知层设备控制、网络访问云平台、用户数据存储与读取等模块。

注册登录界面中用户数据是基于SQLite和Shared Preferences进行数据存储与读取。如果用户初次使用,则需要注册,注册信息将会通过SQLite保存在数据库中供登录验证,登录过程中通过输入的用户信息与数据库中的信息进行比对,如果匹配成功则进入主页面,否则提示“用户登录信息错误,请重新登录”。SharedPreferences是Android中一种轻量级的易用存储类,可以实现轻量级数据的存储与处理,尤其是针对一些配置信息等占用内存不大的数据,使用SharedPreferences可以快速、便捷地完成数据的管理。本模块主要使用SharedPreferences对已登录过的账号信息及配置信息进行存储与读取完成快速登录。SQLite数据库是Android集成的轻量级的关系型数据库,适用于手机等移动端的数据存储。使用SQLite对注册的账号、密码等进行管理维护,当用户注册时,会根据用户的注册信息通过调用SQLiteDatabase中的OnCreate(SQLiteDatabase)方法在数据库中创建对应的数据库表结构及初始化信息,便于后期的运行维护及管理。同时还使用了管理数据库的工具类SQLiteOpenHelper,通过调用其中的GetReadableDatabase()、GetWritableDatabase()分别完成数据库的读取及修改等操作。

登录成功后,主页共显示两个Tab页面:“场景”和“我的”,可以通过触摸完成“场景”和“我的”Tab页的切换。由于Activity自身特性限制无法在同一个窗口中完成多个布局的展示,故本应用中的Tab页主要通过Fragment嵌入到Activity中完成多布局切换的效果。

点击“场景”Tab标签,进入场景页面。场景模块主要分客厅、卧室、阳台、厨房四个主要的家居应用子场景,子场景主要通过Activity进行场景管理。当感知层设备连接成功后,每个场景页面均可以远程对房间内的设备、环境进行控制、监测,实时获取室内温湿度、光照强度、烟雾数据等信息,并实现灯光控制、风扇空调等的开关。

为了能够及时发现家中的突发情况等,设计过程中添加了自动预警策略,实时对突发情况进行预警处理。预警策略设置如下:

当监测到室内烟雾浓度值大于设定阈值时,进行烟雾浓度过大预警;

当光线较弱并且有人在家时,自动开灯;

当温度过高并且有人在家时,自动开启风扇。

感知层传感器采集的数据可以通过协调器、路由器与手机直接进行socket通信,但是前提是手机与路由器必须在同一个局域网内,如果家庭成员有事外出,家中无人的情况下,手机与家中路由器无法处在同一个局域网内,此时无法通过手机实时查看家中环境情况,由于手机和设备不在同一个局域网内无法直接控制家居设备,为了解决此问题,本应用程序将家庭中采集到的家居环境数据通过网络实时上报到公网中的云平台,并在云平台对数据进行存储、初步分析处理。APP可以随时通过云平台间接获取家居环境数据,实现了在任何有网络的地方都可以查看、访问我们的家居设备及数据,同时通过云平台可以实现对数据的历史记录存储、查阅、统计,并可以结合历史数据对智能家居的环境进行预测,提前预警一些可能出现的异常情况。

室内安装温湿度、烟雾传感器、火焰传感器等对室内环境进行实时监测,尤其是当家中无人的情况下及时通过手机对家居环境进行监测、预警、处理等。采用网络通信对家居环境进行远程控制,HTTP是当前应用程序主流的网络通信协议,OkHttp是基于HTTP设计的网络通信客户端,支持使用GET和POST方式进行网络请求,支持响应缓存避免重复的网络请求,并可以通过连接池极大减少延时。但是OkHttp在使用过程中调用关系较为复杂,请求数据时接口配置较为繁琐,降低了编程的效率。Retrofit将请求参数、返回结果等进行了封装,大大简化了开发者的工作量,故本模块使用Retrofit和OkHttp网络开源框架进行网络访问,使用Retrofit通过接口的形式进行网络的请求及监测结果处理,使用OkHttp对请求的过程进行处理,只需要通过简单的配置可以进行网络请求,大大提高了开发效率。

云平台将数据进行汇聚后,可以在云平台上显示采集的数据的详细信息,并可以通过云平台上的应用项目进行数据管理和控制,手机APP也可以获取云平台服务器中的数据显示在手机应用程序上,并可以通过便携式手机客户端完成设备的控制。本软件使用的是新大陆云平台,它将传感器采集的数据以JSON格式进行封装,并开放给用户使用,JSON格式是一种简单的数据交换格式,层级分明、格式简单、访问便捷,所以在开发过程中我们选用JSON格式对数据进行处理,并采用Gson中的ToJson()和FromJson()方法将数据封装成JSON格式或者将JSON格式数据解析成对象并显示在界面中,当监测到数据产生异常后及时预警,例如当检测到室内烟雾浓度过大有火灾隐患等时,可以发送指令开启报警灯,指令可以通过GSON进行JSON格式封装并上传到云平台,进行预警处理。

JSON是一种轻量级的数据交换格式,由于不同的云平台在网络通信过程中对数据的传输格式有不同要求,本开发平台主要使用新大陆的物联网云平台,数据传输过程中的主要通过传感器标识名、设备ID、传输密钥进行通信,HTTP网络通信过程中数据的上报和下发都是基于JSON格式的,格式如下:

云平台数据上报成功后的效果图如图4所示。

图4 云平台

个人信息“我的”界面主要包括登录信息、二维码展示、设备维修、问题与建议、关于等选项,主要采用List列表及BaseAdapter进行数据展示及适配,当进入“我的”界面时,会自动检测是否已经登录,如果检测到已登录则切换到已登录界面,否则显示未登录,当选择进入任何选项时,均会判断是否已经登录,是则显示已登录,否则显示未登录。设备维修界面主要用于家居环境中的故障设备报修处理,可以通过填写设备报修单将数据上报以待处理。

1.3.2 UI界面设计

界面设计力求简洁、大方。进入APP后首先显示欢迎界面,并设置自动过渡效果,5s后切换到主界面。所在在进行界面开发过程中尽量突出重点功能,主界面主要包括注册、登录、场景、我的四个主要界面以及相关的子界面。界面开发过程中使用了线性布局、相对布局、约束布局等进行了布局的设计,并使用EditText、TextView、Button、CheckBox等控件进行数据展示及控制,并添加按钮的点击事件进行事件响应。

图5 软件展示

2 结语

安装并运行设计程序到手机中,经过多次测试及用户体验,本文设计的应用程序能够成功通过云平台实时获取居住环境中的温湿度、烟雾、火焰等数据,并可以成功通过程序控制电灯、风扇空调及报警系统等。通过云平台增强了系统获取数据的稳定性,并可以通过云平台添加策略进行数据处理、设备控制等,提升了智能家居控制的体验感,为新型居住环境的建设、智能家居的升级、改造提供了软件环境支持。

猜你喜欢
智能家居界面传感器
康奈尔大学制造出可拉伸传感器
国企党委前置研究的“四个界面”
简述传感器在物联网中的应用
基于PLC的智能家居控制系统研究
“传感器新闻”会带来什么
跟踪导练(三)2
基于Zigbee的无线通信技术在智能家居中的应用
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
智能家居发展或将实现弯道超车
电子显微打开材料界面世界之门