APP下载

基于物联网技术的寝室智能化系统设计与实现

2023-07-05洪政李自豪王瑜琳钱欣丽

科技风 2023年18期
关键词:物联网技术

洪政 李自豪 王瑜琳 钱欣丽

摘 要:通信技术以及互联网的不断发展,对整个物联网应用行业起到了重要的支撑作用,物联网技术的应用不仅改变了人们的生活方式,而且对社会经济发展起到了重要的推动作用。本文提出了基于物联网技术寝室智能化系统,以网关模块、传感器模块、执行器模块、门禁模块4个硬件模块作为环境数据的实时采集和上报,MQTT服务器作为传感器数据传输、存储,前后台软件系统作为服务,进行功能展示验证,实现了寝室的智能化,提升了学生住宿环境的智能化水平。

关键词:物联网技术;硬件模块;MQTT服务

1 概述

随着通信技术以及互联网的不断发展,通信的质量和速率都在快速提高,而通信传输技术对于整个物联网应用行业起到了重要的支撑作用,物联网不管是对整个社会经济的发展还是对个人的生活,都体现了重要的作用。而物联网中的通信技术众多,如ZigBee通信、4G通信、NBIOT通信、WiFi通信等,这些都可以应用到物联网的各个行业。现如今,各高校寝室的智能化水平普遍偏低,寝室中的灯光、门禁等设施采用传统的手动开启方式,没有智能化的控制功能,基于上述问题,我们设计了一款基于物联网技术的寝室智能化系统,进行对寝室环境数据的实时采集和上报,利用WiFi通信将数据传输到云平台中,用户可以通过APP学生端实时查看寝室的状况,同时对寝室的灯光进行远程控制,对寝室的大门进行远程控制。

2 系统架构

基于物联网技术的寝室智能化系统的整体架构分为感知层、网络层、基础设施平台层、应用层,如图1所示。

感知层主要是使用MCU通过各种传感器对环境数据进行实时采集,并通过传感器网络上传至网关;网络层主要是运用多种通信协议,将感知层所采集的环境数据传输至后端服务器,其中主要的协议为MQTT协议和HTTP协议,MQTT适合物联网数据传输,而HTTP协议适合一般业务功能的访问;基础设施平台层主要是后端所运用的软件基础设施和微服务;应用层主要是Webpages、Android。管理前台运用的就是Webpages,而学生移动端使用的是Android。

3 硬件设计

整个寝室智能化系统硬件设备分为传感器模块、网关模块、执行器模块、门禁模块4个硬件模块,实现对寝室环境数据的实时采集和上报。

3.1 傳感器模块

传感器模块启动后会初始化各个传感器,初始化完成后将以每隔1.5秒的间隔采集各个传感器的数据,每采集一个传感器的数据就将数据通过Zigbee发送至网关模块,交由网关模块进行处理。传感器模块中包括的设备有MCU(主控为Atmega328P)、HCSR505人体红外传感器、BH1750FVI光照度传感器、DHT11温湿度传感器、CN3052A电源管理IC、CC2530Zigbee模块。

3.2 网关模块

网关模块的功能主要是将各个硬件设备节点的数据发送到服务器,并且还要能接收服务器的执行器控制指令。网关模块启动时会自动连接到预设的WiFi,使其具备网络访问功能,然后连接到MQTT服务器。通过Zigbee实时接收传感器模块发送过来的传感数据,并对数据进行校验,数据校验无误通过WiFi模块发布传感器数据到MQTT。所以网关模块在整个硬件系统当中起一个数据校验、数据中转的作用,相当于是硬件系统和后台软件系统之间的一座桥梁。网关模块中包括的设备有MCU(主控为Atmega328P)、CN3052A电源管理IC、CC2530Zigbee模块、ESP01S WiFi模块。

3.3 执行器模块

执行器模块会通过Zigbee与网关模块建立局域网通信,当服务器下发执行器控制命令到网关模块时,网关模块会立即将执行器控制命令发送到执行器模块,执行器模块会立即做出相应的响应动作。在本系统中,执行器模块设有一个5V继电器,通过MCU对继电器进行控制,当MCU对继电器控制成功后会随即发送一个控制成功的指令给网关模块,当网关模块收到指令后不再对执行器模块进行控制,此次任务结束。如果网关模块未收到执行器模块的控制成功指令,那么网关模块会继续以每隔1.5秒的间隔发送控制指令,发送的次数限制在5次,5次控制都没有收到执行器模块的控制成功指令,强行结束此轮控制,控制失败。要是在这期间收到执行器模块的控制成功指令,会中断发送,控制成功。执行器模块中包括的设备有MCU(主控为Atmega328P)、CN3052A电源管理IC、CC2530Zigbee模块、继电器模块。

3.4 门禁模块

门禁模块同样也会通过Zigbee局域网通信的方式与网关模块进行组网通信,并且打开门禁的方式有两种,第一种是通过实时接收来自网关的开门指令,并对指令进行校验,校验成功完成开门动作;第二种是通过门禁模块自带的MFRC522 RFID射频模块读取学生校园卡进行身份识别开门。

开门动作实现原理为MCU控制舵机带动门锁的拉栓做横向往复运动完成开门动作。开门动作完成后门禁模块会发送一个确认完成开门的指令到网关端,当网关模块收到指令后不再对门禁模块进行控制,此次任务结束。如果网关模块未收到门禁模块的控制成功指令,那么网关模块会继续以每隔1.5秒的间隔发送开门指令,发送的次数限制在5次,5次控制都没有收到门禁模块的控制成功指令,就会强行结束此轮开门,开门失败。要是在这期间收到门禁模块的开门成功指令,会中断开门指令的发送,此轮控制成功。门禁模块中包括设备有MCU(主控为Atmega328P)、CN3052A电源管理IC、CC2530Zigbee模块、MFRC522 RFID射频模块、SG90 舵机。

4 软件设计

整个寝室智能化系统软件系统包括微服务组件的配置与实现、中间件的部署配置(RabbitMQ和EMQX)、数据库系统设计与主从配置、后台软件系统微服务具体设计与实现,后台软件则是通过Docker容器技术进行部署。

4.1 Nacos部署配置

Nacos部署在CentOS版本的Linux服务器上,采用Docker容器技术进行部署和管理,安装部署完成后,Nacos服务就可以启动了。

4.2 Gateway配置

Gateway是整个系统请求的唯一入口,请求鉴权和转发,所以它是一个单独的模块,第一步就是新建一个模块,并且添加Gateway的pom依赖,引入依赖后接着在该模块中的application.yml中进行配置,对Gateway配置完成后,由于gateway也需要注册到Nacos中,还需要对Nacos进行配置。可以看到,网关模块的名称为servicegateway,这样后续可以通过这个微服务的名称在Nacos中直接引用。

4.3 OpenFeign配置

在模块中的pom中引入OpenFeign的依赖,除此之外,由于Feign底层默认使用的URLConnection发起HTTP请求,不支持连接池,所以为了达到高性能,在OpenFeign中使用feignhttpclient连接池覆盖默认实现,接着就是对模块的application.yml 进行配置,加入openfeign和httpclient的配置,通过对依赖的引入和对模块的配置,基本的操作已经完成。

4.4 RabbitMQ的部署和 EMQX 的部署

RabbitMQ和EMQX MQTT服务器都是基于Docker部署,首先拉取RabbitMQ和EMQX的docker镜像,使用docker run命令启动rabbitMQ和emqx容器,到此,RabbitMQ和EMQX的安装部署已经完成了。RabbitMQ就可以访问RabbitMQ的管理页面进行配置。在页面中引入RabbitMQ的pom依赖,对模块的application.yml进行配置,添加RabbitMQ的配置。EMQX SpringBoot工程模块中引入MQTT的相关pom依赖,对模块的application.yml进行配置,添加mqtt配置。

4.5 数据库设计

数据库系统使用Mysql数据库,采用主从模式,主写从读,数据库设计为两个,dormitory_biz用于存储业务数据,dormitory_data用于存储传感器数据和执行器操作记录。

4.6 主从搭建

拉取Mysql的docker镜像,使用docker run命令启动镜像,因为是主从结构,所以至少要启动两个Mysql实例,一个Master,一个Slave。接着修改Master和Slave 配置文件,使用docker cp命令,将mysql_master和mysql_slave容器里面Mysql的配置文件my.cnf复制到宿主机,通过vim命令添加配置内容,最后重启mysql_slave容器。

4.7 后台软件系统微服务具体实现

寝室智能化设计系统是一个微服务项目,整个微服务可分为权限校验微服务、业务微服务、网关微服务、数据收发微服务、数据存储微服务、搜索微服务。除了以上微服务,还有一个SD_Common模块提供一些通用的工具和实体类。

权限校验微服务负责整个系统的权限验证,主要负责登录功能,并且生成JWT Token,为后面的请求提供令牌。数据收发微服务在本系统中承担着重要作用,它连接到MQTT代理服务器,获取硬件设备上报的传感器数据,并且还会下发控制数据到硬件设备,所以数据收发微服务是连接硬件设备和后台软件系统的桥梁。数据存储微服务同样是本系统的核心,它负责监听数据收发微服务发布到RabbitMQ消息队列中的传感数据,收到数据立即消费并且存储到主(Master)数据库中,当硬件设备接入量大,导致数据收发微服务接收的傳感器数据多时,可以部署多个数据存储微服务对数据进行处理。搜索微服务在本系统中,承担对传感器数据的检索业务,根据之前对性能的设计,搜索微服务连接使用从(Slave)数据库进行SELECT操作,在搜索微服务业务中,提供两个业务模块,分别是传感器信息检索业务、传感数据报表业务。

5 功能展示验证

5.1 管理员前台功能验证

管理员前台的使用者是寝室楼栋的管理人员,每栋寝室楼有不同的管理人员,所以需要对管理人员进行身份验证。本系统采用的方式为传统的用户名和密码登录的方式,登录成功后,自动跳转到首页的数据报表展示页,该页面可对所有的网关设备、传感器设备和执行器设备进行统计查看,以及对一周的设备数据进行展示,包括基本的传感器值的最大值、平均值、最小值的展示,还能对当天的传感器设备数据按小时进行展示。

5.2 学生移动端功能验证

学生移动端定义为学生用户使用,每个宿舍有多个学生,所以也涉及用户的身份校验,身份校验采用用户名和密码的传统的形式进行。在登录页之前会有一个闪屏页,闪屏页会对软件的数据进行初始化,以及对软件的版本更新进行检测,闪屏页过后,将跳转到用户登录界面,如图2所示。用户输入正确的用户名和密码后跳转到移动端主页,主页可对该寝室下的传感器数据进行实时查看,采用环状图的形式展示数据,还可对该寝室下的执行器进行控制,如图3所示。

结语

物联网技术作为新一代信息技术产物,是科技发展的趋势。未来巨大的市场需求一定会为物联网带来难得的发展机遇和广阔的发展空间。本设计是利用物联网技术,在设备硬件端,使用Zigbee通信技术、WiFi通信技术进行节点与节点之间的组网通信,保证数据的稳定和可靠性,设备端运用MQTT协议和微服务后台软件系统进行通信交互。在用户应用端,对管理人员使用前台技术,学生用户使用前台技术,最后进行各个模块的功能展示。

参考文献:

[1]原羿,苏鸿根.基于ZigBee技术的无线网络应用研究[J].计算机应用与软件,2004,21(6):8991.

[2]姚丹,谢雪松,杨建军,等.基于MQTT协议的物联网通信系统的研究与实现[J].信息通信,2016(03):3335.

[3]赵睿林.MQTT协议在智能电力网关中的实现[J].电器与能效管理技术,2021(07):8387.

[4]熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2019,15(36):7677.

基金项目:重庆公共运输职业学院第一批青年骨干教师培养计划

作者简介:洪政(1994— ),男,本科,讲师,研究方向:物联网应用、传感器技术。

猜你喜欢

物联网技术
物联网技术在智能化住宅小区中的应用
物联网技术现状及应用前景展望
物联网技术在仓储物流领域的应用分析与展望
物联网技术在智能车辆管理中的应用探究
基于物联网技术下的高校固定资产清查
物联网技术在设备管理中的应用
基于Arduino的物联网技术下校园路灯控制的实现与应用
基于物联网的汽车生产管理系统设计与应用