基于物联网控制的街边智能伞设计

2024-01-16 11:30刘佳奇欧阳嘉俊陈微郑勃
电子制作 2023年24期
关键词:主程序伺服电机线程

刘佳奇,欧阳嘉俊,陈微,郑勃

(1.北华大学,吉林吉林,132013;2.吉林石化公司化肥厂,吉林吉林,132021)

1 系统框架及功能设计

本文设计的智能伞控制系统从结构上可分为智能硬件与云平台两部分。智能硬件是一个集成了多种传感器、执行器设备、主控和通信单元的智能大伞。具体而言,智能硬件包括一个可以通过伺服电机控制开合的伞体和底部的物理支撑结构,这样的设计使得伞的开合状态可以方便地通过控制伺服电机来实现。

主控芯片采用Air724UG 模组,其具备了丰富的功能。通过调用多个传感器,主控芯片可以获取不同的环境参数信息,例如温度、湿度、风速等。这些传感器可以对伞附近的使用环境进行实时监测,从而为云平台采集当前节点的天气信息。获取到的传感器数据会被打包成JSON 格式,以便于传输和处理。

值得注意的是,主控芯片还配备了LTE 网络功能,使得伞可以与云服务器进行稳定的通信。主控芯片可以定期采集传感器数据,并通过MQTT 协议将数据发送到云服务器上,实现信息的上传和汇总。同时,主控芯片还能够持续监听云服务器的信息,以实现云服务器对伞的远程控制。这样,用户可以通过云平台实现对伞的远程监控和控制,从而更加方便地管理和使用智能伞。

通过智能硬件与云平台的结合,本文设计的智能伞控制系统能够实现对伞的智能化监测、环境数据上传和远程控制,从而实现了智能化地伞。

通过使用Spring Boot MVC 架构,云平台实现了对伞节点数据的可视化控制,将数据存储在MySQL 数据库中,从而为管理员提供了方便的数据查看和管理方式。管理员可以通过WEB 界面实时监控伞节点的运行状况,并且可以查看历史数据的变化趋势,通过算法进行数据可视化,为管理员提供直观的环境信息展示。同时,管理员还可以通过控制集群或者指定节点来实现对伞的开关操作,并获取实时传感器信息和运行自检信息,从而实现对伞控制系统的灵活管理和控制。

2 硬件系统设计

硬件部分由三个核心单元组成,分别是Air724UG 模组单元、伺服电机、多种传感器。Air724UG 模组核心的作用,主要负责与云平台的通讯,各种传感器信息的采集和对伞体的驱动控制。 模组具备多种硬件通讯协议接口包括I2C,SPI,UART 等,可以同时与多个传感器连接实现数据通讯。同时可以与伺服电机驱动模块连接实现通过PWM 对功率较大的伺服电机进行控制。其系统结构如图1 所示。

图1 硬件系统架构

■2.1 核心模组设计

Air724UG 是一款4G LTE Cat.1 模块,具有低功耗、高集成度、支持多种外设和可二次开发等特点。该模块内部集成了MQTT 和JSON 处理功能,可以作为客户端与云服务器进行通讯和交互。同时,该模块还支持低功耗模式,可以在待机状态下实现较低的能耗。

在本系统中,Air724UG 模块作为主控芯片,负责多个传感器的数据采集、信息打包成JSON 数据以及通过MQTT协议将数据发送到云服务器上进行信息上传汇总。此外,该模块还可以持续监听云服务器的信息,实现对伞的控制。由于Air724UG 模块具有低功耗特性,系统在实现功能的同时也能够有效降低能耗,从而保证系统的高效运行。本系统可以实现智能伞控制系统的各项功能。其低功耗、高集成度和支持多种外设的特点,使得系统具有高度的灵活性和可扩展性。同时,本模块的支持低功耗模式,也有助于减少系统的能耗,从而提升系统的节能性能。因此,本模块是本系统实现功能的理想选择。

为了实现设备的功能,我们采用了多线程的逻辑设计。设备在上电开机后,首先对各传感器和执行器进行通讯测试,并通过各部分返回码来确定设备的健康状况。自检工作会在2~3s 内完成。然后设备会注册移动网络,并检测网络功能是否正常连接。一旦网络连接正常,设备将尝试与服务器建立MQTT 连接。连接建立后,我们使用Thread 管理机制来注册多线程。这些线程会间断性地向服务器发送心跳包,并同时监听自定义主题的信息,以用于机动控制。

系统的Thread 包括如下内容:

一个提供网络长连接的线程,主要负责维持MQTT 服务的稳定在设备订阅的主题进行心跳,维持设备的在线状态,并且订阅该设备的执行主题,如果接收到执行数据将数据放到消息队列。

一个消息队列的处理线程,这个线程负责执行消息队列中的各种操作,例如当队列中存在操作开关伞的信息,那么系统会调用开关函数,并将执行结果反馈到对应的主题。

一个安全预警紧急处理线程,这个线程负责监听机电传感器的运行状态,一旦发送错误立刻触发安全机制,例如在开关伞的过程中发生运动性卡死,那么会触发该线程中的紧急停止逻辑,会立刻切断机动部分电源,并产生消息汇报给云平台。

■2.2 传感器单元设计

通过使用I2C 和UART 等通信方式,核心模块能够与各种传感器进行高效的数据交互,以实现对环境数据的采集和处理。其中,大气压力传感器BMP280 模块和数字温度传感器AHT21 模块提供准确的气象信息,如气压和温度,为系统的环境监测功能提供了重要的数据支持。同时,GP2Y1014AU 型传感器实时监测环境中的粉尘污染度,为系统的空气质量监测功能提供了关键的信息。以上所述的传感器系统可通过图2 中的方法来实现。

图2 传感器电路图

此外,通过ADC 采集小电机发电电压的方式,系统能够实时获得风速信息,从而实现对天气条件的监测。这些采集到的环境数据将被主控芯片Air724UG 模块进行处理和打包,并通过MQTT 协议发送到云服务器,实现对环境信息的上传和汇总。这样,系统可以通过这些数据为用户提供实时的天气信息和环境状况,从而为用户提供更加智能化的伞控制体验。

传感器运行步骤如下:

(1)首先在系统上电后,主控芯片会调用BMP280的初始化函数主要包括确定传输传的信息速率,然后调用AHT21 初始化设置传输速率,之后尝试读取它们的采样值,如果不可以正常读取到采样值,将日志和错误信息发送到云服务器。

(2)定时采样每个传感器的值然后打包成数据包通过网络发送到服务器。

■2.3 执行单元设计

执行单元是系统中的关键部件,主要由核心模块驱动的伺服电机组成,用于实现对伞体的控制。伺服电机是一种特殊设计的电机,具有小尺寸、低功耗、高效率等特点,适合用于伞的控制。主控模块通过PWM 信号控制伺服电机运动,可以实现对伞的平滑、快速的开关操作,从而提供良好的用户体验。执行单元作为系统的关键控制部分,能够根据用户在WEB 界面的操作或者系统的自动化算法,控制伞的自动开关,从而实现对伞的实时控制和监测。

3 软件系统设计

系统软件设计主要包括云端和终端两个部分。即云端数据处理,终端设备模块Air724UG 的程序设计。

■3.1 终端设备的程序设计

终端设备主要负责各种传感器信息的采集整理。在系统启动时,主控芯片首先加载系统,并进行必要的初始化操作如文件系统的读取和对各个接口的电平初始化以及与各个外部传感器模块的通信设置。随后,主控芯片会建立多线程,其中包括采集线程、网络线程和守护线程,如图3 所示。

图3 软件系统结构

采集线程承担着轮询各个传感器、获取数据以及将数据存储在芯片的日志区域的任务。这些数据涵盖了大气压力、温度、风速等环境参数,以及其他传感器所采集到的信息。采集线程的高效操作确保了系统对各种环境数据的准确采集和实时更新。

网络线程负责尝试建立与互联网的连接,一旦连接成功,将日志区中的数据通过网络传输至服务器,实现数据的同步传输。此外,网络线程还会监听来自服务器的控制信息,以便随时执行相应的操作。这确保了系统与服务器之间的高效通信,以便依据服务器的指令来控制和操作系统。

守护线程的任务在于定期检测系统、网络和数据缓存区的状态。一旦发现异常情况,它会记录异常并尝试重新启动相关模块,以确保系统的稳定运行。守护线程的存在有效地监测了系统的健康状态,及时处理异常情况,从而提高了系统的可靠性和稳定性。

■3.2 云平台业务处理设计

云平台作为中控系统,主要负责管理全部智能伞节点,其主要由以下几部分构成:MQTT 服务器、MySQL 数据库和Spring Boot 主程序。

MQTT 服务器作为伞终端设备的接入平台,负责批量处理队列数据,并将数据转发给主程序进行处理。主程序同时具备多任务处理的能力,包括以下几个方面:

数据采集记录服务器:当终端节点发送数据集到服务器时,MQTT 服务器会将这些数据传递给主程序。主程序会对接收到的数据进行解包,并根据数据的ID、时间戳、设备编码等信息对数据进行分类,并将分类好的数据存储到数据库中。其结构如图4 所示。

图4 云平台结构

数据层负责将MQTT 的数据分类存储到不同的表中,实现调取的方便,在数据库中主要记录如下内容:设备连接时间,健康情况,采集到的环境信息:每10 分钟各个传感器的数值,开关伞记录:每次伞体控制都会在这里产生记录,异常记录:当某个传感器发生故障或者开关伞发生异常都会记录到该表中。

业务层采用JAVA 语法负责提供相关接口,包括集群管理:同时对各个设备发送心跳信息,并批量写入到数据库中,数据可视化:为WEB 提供数据,数据分析:对所有的设备上传数据进行分析,采用平均值的方式计算出本地降雨情况。日志查询接口:读取数据库中的日志数据,以方便工程师快速解决修复相关问题。

数据分析:主程序通过对多个节点上报的天气信息进行分析,可以实现简单的降雨预测,并通过与互联网上的天气API 进行结合,实现更加精确的天气变化检测。

控制管理:主程序可以实现对伞节点集群或单一设备的控制管理。管理员可以预先设定分组和控制方案,当系统触发相应条件时,主程序会根据预先设定的控制方案进行操作下发。同时,主程序还可以实时响应前端页面提交的请求,并进行相应的操作。

监听前端操作:主程序通过提供HTTP 服务接口,在用户请求的情况下实现可视化的前端响应服务。主程序能够基于前端请求进行监听并产生相应的响应。

综上所述,云平台作为中控系统,通过MQTT 服务器、MySQL 数据库和Spring Boot 主程序之间的协同工作,实现了对伞终端设备的管理和控制。这包括数据采集、数据分析、控制管理以及前端操作监听等功能,为整个系统的智能化运作提供了强有力的支持。

■3.3 云平台业务执行设计

系统云平台采用分离的异步结构各个模块分别执行不同的操作。

首先服务启动后会激活Mysql 数据库,然后启动MQTTX 服务,此时各节点可以进行上线连接。之后会启动服务主体基于Spring Boot 主程序为前端页面提供接口服务。

4 系统测试

本文设计的智能伞实现了降雨自动开启,晴天自动关闭。其系统状态可以在web 平台上显示。各类传感线信息都可以在平台中进行检索,云下平台的执行器节点也会正确作出响应。

5 结语

本系统作为一项互联网实训项目,在研发实训中取得了显著的成果。通过结合传感器、执行器、微控制器和通信模块,成功实现了智能伞的功能,使其成为一种新型的智慧化城市中的物联网产品。然而,在实际的场景应用中,还需要考虑到规模性、安全性和实用性等多方面的需求。因此,本方案还可以进一步扩展和升级,以满足实际需求。

猜你喜欢
主程序伺服电机线程
专利名称:一种适应压铸环境的伺服电机
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
生产线中的伺服电机定位控制
伺服电机控制技术的应用及发展趋向分析
时光倒流 换回PotPlayer老图标
浅谈linux多线程协作
浅说伺服电机位置控制下的定位问题
基于上下文定界的Fork/Join并行性的并发程序可达性分析*
Linux线程实现技术研究