基于WiFi智能小车的远程温湿度测量系统

2021-12-14 02:47刘静琦阮煜婕周振虎刘静波
物联网技术 2021年12期
关键词:数据流温湿度小车

刘静琦,阮煜婕,吴 胜,时 飞,周振虎,刘静波

(南京工程学院,江苏 南京 211167)

0 引 言

温湿度是仓储场所的重要环境参数,对温湿度的测量一般选用传感器进行单点静态测量[1],或在某一个区域内布置多个节点,采用无线网络方式实现多点温湿度测量[2],也有采用一组总线下挂载多个传感器进行测量的方式[3]。这些方法运行成本高,测量点布置工作量大,有线测量方式后期维护改造困难,无线组网多点方式则需要配置若干个无线组网模块与处理器单元,特别是测量点数较多时,造价较高。因此,本系统采用WiFi智能小车作为载具,搭载温湿度传感器,远程控制小车运行,可实时测量数据,并将数据远程传输至OneNET云平台。系统具备远程与超声波避障两种运行模式,可实现对仓储场所动态多点循环测量,把传统静态测量转变为一定范围内的多点动态测量。系统选用OneNET物联网云平台,使小车具备远程控制与数据测量传输功能[4],拓宽其应用范围。

1 系统总体设计

系统由智能小车部分及OneNET物联网云平台控制和数据传输部分组成。

智能小车部分采用STM32F103RCT6作为主控,借助温湿度传感器HDC1080测量温湿度数据。小车组件包括底盘、电机和车轮等。电机驱动采用L298N模块,超声波模块安装于舵机控制单元,实现左、中、右三个方向的避障距离测量。智能小车与云平台之间通过ESP8266模块实现远程控制与数据传输。

OneNET是较成熟的物联网云平台,本系统采用OneNET云平台提供的网页应用控件、命令下发控件等实现了数据接收和远程指令下发等应用。通过网页端和手机APP端的同步应用,可快速方便地构建远程、移动多点智能小车温湿度测量系统。系统运行时,智能小车在远程指令的控制下,实现前进、后退、转弯,同时还会测量温湿度数据,并以间隔5 s的时间传输至云平台,网页和手机APP接收数据。小车动态运行,对仓储场所实现多点测量。通过发送指令,可以将小车切换为超声波避障模式,还可优化避障程序,使小车具有更好的适应性。图1所示为系统结构。

图1 系统结构

2 硬件设计

2.1 OneNET云平台

OneNET是中国移动推出的物联网开放平台,该平台屏蔽了复杂的技术细节,提供多种协议类型,支持多种智能硬件的接入和大数据服务。用户按照OneNET云平台的规范接入平台,上传数据,实现数据传输与存储管理功能,同时平台还支持MQTT、EDP、HTTP等接入协议[5]。用户在官网注册账号后即可进入云平台创建项目。数据上传完成后,用户可以在网页和手机APP端查看数据和对应的变化曲线,也可以下发控制指令,控制智能设备的运行。系统硬件接口电路如图2所示。

图2 系统硬件接口电路

2.2 硬件设计

针对智能小车的分层结构,硬件设计采取模块化设计方法。智能小车系统硬件分为微控制器主控单元、四驱电机驱动模块、舵机模块、超声波单元模块、温湿度测量模块和WiFi模块。图2表示了各单元与主控单元的连接,根据不同模块的应用特点,合理分配主控单元的外设资源,实现对智能小车的硬件资源配置。

智能小车微控制器采用STM32F103RCT6,这是基于Cortex-M3架构的高性能处理器[6],主频达72 MHz,具备48 KB SRAM,256 KB FLASH,2个基本定时器,4个通用定时器,2个高级定时器,5个串口及51个通用I/O口,同时还具有ADC、SPI、DMA控制器等资源,满足了智能小车的应用需求。高级定时器TIME8有4个通道(CH1~CH4)的PWM波形输出,非常适用于智能小车的四轮驱动速度控制。此外,STM32F103RCT6其他定时器也为舵机驱动和超声波信号的产生奠定了基础。

ESP8266是一款高集成度的WiFi模块,其本身是一个32位的MCU单元,可以独立访问网络,也可以搭配其他主控芯片,帮助主控芯片接入互联网[7]。ESP8266提供串口与主控芯片进行数据交换。ESP8266允许配置为热点(AP)、客户端(STA),热点+客户端(AP+STA)等三种模式,本系统把ESP8266配置为STA模式,连接主控芯片的串口2。该模块通过路由器接入网络,实现远程控制与数据传输。

小车车轮电机驱动采用L298N模块,内含两组双H桥驱动器,每个L298N模块可以驱动两组电机,电机驱动的输入信号由使能端EN,输入端IN1和IN2组成。EN端一般接入主控输出的PWM波形,控制电机的转速,IN1和IN2接主控的2个I/O口,控制电机的正反转。因此,选择TIME8高级定时器的CH1~CH4通道配置4个PWM波形,PC6~PC9分别接入L298N四组EN端,电机正反转信号接到主控芯片的I/O端口,如图2表示。舵机接入PA8,这是TIME1的CH1通道输出接口,输出PWM波形控制舵机的运行。

HDC1080温湿度传感器具有高精度、低功耗等特点,可同时进行温度与湿度测量,温度精度为±0.2℃,湿度精度为±2%,采用I2C总线方式与主控芯片连接,SDA和SCL分别接主控芯片的PB11和PB10,其设备地址为0x80(写)和0x81(读)。

3 软件设计

3.1 数据流

智能小车与OneNET间通过MQTT协议传输数据,该协议支持数据双向传输,实时性高,具有长时间稳定连接等优点[8],是为物联网场景而设计的基于TCP的一种轻量级发布/订阅消息传输协议。可用于计算能力有限,低带宽且不可靠的网络远程传感器和控制设备[9]。设备登录OneNET平台后,选择在此协议下创建“智能小车”产品,添加设备后,对智能小车的数据流进行规划。数据流是设备属性,可为设备单项数据属性,也可为设备属性的组合。本系统数据流根据数据传输方向分为两类:

(1)上行数据流,即智能小车测量的数据,主要包括连接于主控芯片I2C接口上的温湿度传感器HDC1080测得的温度和湿度数据。

(2)下行数据流,即网页和手机APP端发出的控制指令,通过OneNET云平台发送给智能小车,控制小车的运行。包括前进、后退、左转、右转、停止,以及运行模式的改变。这些数据流封装为完整的数据包,通过ESP8266发送至OneNET云平台。OneNET为数据流的封装提供了多种形式,本系统采用数据类型3(TYPE=3,JSON格式)模式。

3.2 主程序设计

程序首先对智能小车系统各模块初始化,包括串口初始化、温湿度传感器I2C接口初始化、电机和舵机端口初始化、电机和舵机PWM波初始化。之后,经串口2发送AT指令给ESP8266模块,设置ESP8266为STA模式,连接WiFi后,等待接收OneNET云平台的回应信号,确认连接OneNET服务器。程序按照MQTT协议TYPE3格式对数据流数据进行封装,每5 s便将测量的温湿度数据传输至云平台,同时对接收的云平台控制指令进行解析并执行,控制小车运行。当接收到小车运行模式改变为超声波避障模式的指令后,智能小车执行避障程序。系统主流程如图3所示,数据解析流程如图4所示,超声波避障流程如图5所示。

图3 系统主流程

图4 接收数据解析流程

图5 超声波避障流程

3.3 HDC1080测量程序

HDC1080的测量数据程序按照I2C协议编写。测量函数为u8 Measure_Hdc1080(u8 mode,u16 *temp_value,u16 *humi_value),在调用此函数时,mode为模式参数,mode=0x00时表示转换开始。

完整测量温湿度的过程:启动总线、发送设备写地址0x80、检测器件应答是否正常、发送触发测量命令字(mode)、检测器件应答是否正常、重新启动总线、发送设备读地址0x81、检测器件应答正否正常、读高8位温度字节、主机应答、读低8位温度字节、主机应答、读高8位湿度字节、主机应答、读低8位湿度字节、主机非应答、结束总线,最后把读取的字节组合为完整的温度*temp_value和湿度*humi_value。温湿度字节数据读取后,可以得到实际温湿度数值,具体代码和注释(wendu和shidu是全局变量,用于存放读取的温湿度数据)如下所示:

3.4 可视化用户应用界面设计

OneNET平台为用户提供了数据可视化应用,用户可通过OneNET提供的可视化工具[10],根据自身需求设计用户操作界面。OneNET创建的产品含有应用管理编辑功能,用户可将仪表盘、折线图、开关、命令框等控件拖拽至页面,对每个控件的属性和样式进行编辑,特别是对属性中的数据流刷新频率、数值设置等进行配置。控件与数据流建立关联,待产品创建完成后保存并发布,用户就可在网页和手机APP端访问OneNET平台,接收数据并发送控制指令。本系统创建的可视化应用网页端界面和手机APP端界面分别如图6和图7所示。

图6 网页端可视化界面

图7 手机APP端可视化界面

4 实际测试

智能小车的软硬件系统经过调试,搭建完成后,打开OneNET网页端和手机APP端进行联合运行,小车通过WiFi连接,登录OneNET云平台即可看到设备由离线状态转为在线状态。此时,小车将测量的温湿度数据上传到网页端和手机APP端。

智能小车的模式选择由“模式选择”开关控制,每按一次开关,智能小车切换一次运行模式。系统开机后,默认为远程控制模式。当切换到超声波避障模式时,小车在舵机的控制下,分别测量左、中、右三个方向是否有障碍物,并测量相应的距离,按照最优程序方法选择避开障碍。测试结果表明,传感器采集数据准确,网页和手机APP控制端运行稳定,数据接收和指令下发功能正常。可视化界面可由使用者自行编辑、设计、发布,内容简洁,显示效果良好。

5 结 语

本系统在智能小车上搭载温湿度传感器HDC1080测量数据,通过ESP8266上传数据到OneNET云平台,构建了远程多点、可移动的温湿度测量系统。通过OneNET云平台创建了可视化应用界面,使得数据接收和下发控制指令的远程控制变得简单易操作。系统运行稳定,功能正常,可适用于不同的场合。

猜你喜欢
数据流温湿度小车
温湿度控制器在回收砂冷却系统中的应用
大车拉小车
自制小车来比赛
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
两轮自平衡小车的设计与实现
一种提高TCP与UDP数据流公平性的拥塞控制机制
蒸发冷却温湿度独立控制空调系统的应用
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量