基于FreeRTOS的实验设备柜控制器研究与设计
唐道鲜 侯美伊 李庆宇 李跃华
摘 要:针对传统实验设备管理中用户租借困难、管理费时费力和不能实时维护等问题,设计一种基于实时操作系统的实验设备柜控制器系统。控制器采用Amazon FreeRTOS实时操作系统,通过多种传感器监测设备柜内外环境状态,并将控制器接入AWS IoT平台,使用MQTT协议双向传输数据。实际应用表明,使用该管理控制系统后,实验设备能实现安全、高效地自助借还。
关键词:FreeRTOS;实验设备;MQTT;物联网;智慧校园
DOI:10. 11907/rjdk. 201709????????????????????????????????????????????????????????????????? 開放科学(资源服务)标识码(OSID):
中图分类号:TP319 ? 文献标识码:A ??????????????? 文章编号:1672-7800(2020)011-0136-05
Research and Design of Experimental Equipment Cabinet Controller
Based on FreeRTOS
TANG Dao-xian, HOU Mei-yi, LI Qing-yu, LI Yue-hua
(School of Information Science and Technology, Nantong University, Nantong 226019, China)
Abstract: In view of the difficulty in the management of traditional experimental equipment, such as user leasing, time-consuming and laborious management and inability to maintain in real time, an experimental equipment cabinet controller system based on real-time operating system is designed. The controller adopts the Amazon FreeRTOS real-time operating system, monitors the environment and equipment status inside and outside the cabinet through a variety of sensors and it is connected to AWS IoT platform, using the MQTT protocol to transmit data in both directions. Thus a secure and efficient self-servicing and management control system for experimental equipment is realized,and the practical application shows that the experimental equipment can be safely and efficiently borrowed and returned by the self-helping equipment cabinet controller system.
Key Words: FreeRTOS; experimental equipment; MQTT; Internet of Things; smart campus
0 引言
智慧校园是物联网技术与校园管理的有机融合,实现校园日常管理信息化、数字化,大大提升管理效率[1-2]。然而传统的实验设备管理依然采用人工登记和维护方式,极大影响智慧校园发展[3-5]。随着物联网技术发展,实验设备管理系统有二维码辅助计算机实验设备管理系统、基于RFID技术的实验设备管理系统等。文献[6]介绍了二维码在实验设备日常管理中的应用,虽然提高了实验设备管理效率,但二维码易于损坏,且污损后无法识别,给实验设备维护增加了一定难度;文献[7]将无线射频技术应用于实验设备管理信息化中, 虽然增强了系统抗干扰能力,但未解决用户自助租借实验设备以及管理人员远程维护问题。本文研究的实验设备柜控制器可实现对实验设备的实时监测、借用归还等智能化管理。采用Amazon FreeRTOS软件平台,使用RFID(Radio Frequency Identification)技术,具有远程开门、设备借还、温湿度传感器数据采集、控制器状态监测、检测门锁状态和云端通信等功能。依托AWS(Amazon Web Services)的安全机制和云计算能力,实现安全高效的设备自助借还管理。
1 技术简介
1.1 FreeRTOS简介
FreeRTOS是Richard Barry 于2003 年发布的一个轻型开源实时操作系统内核,其功能包括任务管理、时间管理、消息队列、信号量、中断管理、软件定时器、协同例程管理等[8-11]。Amazon FreeRTOS 相比于FreeRTOS增加了IoT 应用组件,比如Secure Sockets和MQTT(Message Queuing Telemetry Transport)协议便于开发者连接到AWS云平台[12]。为保证设备与AWS IoT平台安全通信,Amazon FreeRTOS加入证书校验、Secure Sockets、TLS等保证数据传输安全[13]。开发者通过使用Amazon FreeRTOS快速将设备部署到AWS IoT平台,并对设备进行统一管理和部署。
1.2 AWSIoT简介
AWS IoT是亚马逊公司于2015年发布的物联网应用平台,它允许已连接的设备根据相应权限与AWS云应用程序或其它设备交互,即接入平台的设备所传入的数据可使用AWS服务[14],数据到AWS IoT平台就 “自由翱翔”于各个AWS云服务中,这是其它物联网云平台尚未完全实现的功能。
1.3 MQTT简介
MQTT是IBM开发的客户端—服务器发布(Publish)/订阅(Subscribe)消息即时通讯协议[15]。MQTT是一种轻量级消息发布协议,以TCP/IP协议为基础,提供一对多和多对多的消息发布方式,具有低开销、开放和易于实现的特点[16]。借助MQTT消息推送功能,开发者可以实现终端设备远程控制和统一管理。将硬件终端连接到同一个MQTT代理服务器,不仅可以实现人机交互,还可实现物与物交互。
2 硬件系统设计
2.1 硬件总体设计
控制器采用ARM Cortex-M4内核的STM32L475VGT6 32位微处理器,控制器上运行Amazon FreeRTOS操作系统,创建多个任务按事先设定的优先级顺序调度运行。传感器组主要负责采集板载温湿度、环境温湿度和气压数据,并将采集到的数据处理后发送给控制器。RFID模块主要包括RC522模块,用于识别实验设备上电子标签ID信息,并将数据发送给控制器。电控锁模块包含J02电控锁和继电器,主要负责驱动电控锁开门和门锁状态侦测数据反馈。WiFi通讯模块负责接收解析AWS IoT发来的数据,并将控制器封装好的数据发送至AWS IoT平台。本文实验设备柜控制器硬件总体设计如图1所示。
2.2 硬件模块设计
2.2.1 微处理器
选用ARM Cortex-M4內核的STM32L475VGT6 32位微处理器。STM32L475VGT6最高运行主频可达80MHz,拥有1Mbytes的Flash和128Kbytes的SRAM,拥有UART、TIM、DMA、SPI、Flash等模块。STM32L475VGT6的配置足够稳定运行FreeRTOS实时操作系统,实现本系统所有功能。
2.2.2 RFID模块
选用RC522模块,该模块的RFID芯片支持ISO 14443协议和MIFARE协议,且支持13.56MHz频率下的非接触式通信方式和协议[17-18]。使用ISO 14443A协议并采用SPI协议驱动该模块, 用于电子标签读写数据。
2.2.3 电控锁模块
电控锁模块主要实现开启设备柜门和监测设备柜门状态,以及对用户操作的反馈。四路光耦隔离继电器模块驱动电控锁,以此保证J02电控锁通电时间不超过额定时间。此外,J02电控锁附带的侦测线还可用于柜门关闭后触发控制器外部中断,控制RC522模块对柜门内的设备电子标签进行识别检测。选用有源蜂鸣器作为用户借还行为引起的异常报警和开门操作提醒功能。当用户进行远程开门操作,柜门开启成功后,蜂鸣器会长鸣提醒。当服务器传来归还设备错误指令时,控制器处理消息后会执行异常报警功能,对用户操作行为进行反馈。
2.2.4 传感器组
实验设备控制器选用HTS221温湿度传感器和DHT11温湿度传感器。精密仪器设备对存放环境温湿度条件有一定要求,前者用于监测控制器运行时PCB所处环境温湿度,后者用于监测柜门外环境温湿度。此外,为了更加完整地监测设备柜环境,选用LPS22HB气压计用于监测环境气压值。
HTS221是意法半导体(STMicroelectronics)生产的数字式温湿度传感器IC。控制器通过I2C协议与HTS221温湿度传感器通信,其通信地址为0xBE。DHT11是一个包含已校准数字信号输出的温湿度传感器[19],内部由一个8位单片机控制一个电阻式感湿元件和一个 NTC测温元件。DHT11采用单总线协议,只需用一个GPIO便可获取到数字化温湿度数据[20]。气压计选用ST生产的气压传感器LPS22HB,控制器通过I2C协议与LPS22HB气压计传感器通信,其通信地址为0xBA。
3 软件系统设计
3.1 软件总体设计
基于FreeRTOS实时操作系统开发的实验设备柜控制器系统架构如图2所示。将系统功能进行逻辑划分,创建不同的独立任务完成各个功能。利用FreeRTOS实时操作系统的多任务机制对任务分配系统资源,并根据规定的任务优先级运行调度。
根据系统功能需求,建立6个关键应用任务:时间同步任务、数据采集任务、柜门管理任务、日志管理任务、运行状态监测任务和云端通信任务。
3.2 FreeRTOS移植配置
使用FreeRTOS前,需要根据MCU型号和系统功能进行如下初始化配置:①开启可视化跟踪调试;②任务名字字符串长度;③支持动态内存申请;④日志打印的最大消息长度。
为使传输数据易于阅读和帧格式规范,同时易于解析和生成数据帧,本文移植了cJSON包,用于生成和解析JSON格式数据。在FreeRTOS中移植cJSON包,需在cJSON.h中将原来申请内存函数malloc修改为pvPortMalloc,释放内存函数free修改为pvPortFree。
3.3 证书及网络初始化
控制器采用WiFi模块与云服务器通信,需要配置WiFi网络连接信息。接入AWS IoT需要导入身份证书,使用MQTT消息代理需要配置代理地址信息。WiFi网络配置需设置无线网络名称、无线网络密码和无线网络安全类型。MQTT代理配置需设置AWSIoT证书、AWS IoT平台MQTT消息代理地址、MQTT代理通信端口号以及控制器在AWS IoT平台上配置的物品唯一名称。
3.4 任务优先级分配
控制器采用Amazon FreeRTOS实时操作系统,利用其多任务调度机制实现实验设备柜控制器功能需求。将功能进行逻辑分析,对部分功能创建独立任务完成,并设置任务优先级和堆栈大小,由操作系统完成调度运行。
Amazon FreeRTOS(版本号202002.00)默认设置的最大优先级为7,为满足本文任务设计需要,修改FreeRTOSConfig.h配置文件。将任务最大优先级configMAX_PRIORITIES修改为15,任务最小堆栈configMINIMAL_STACK_SIZE修改为90,系统运行堆栈大小configTOTAL_HEAP_SIZE修改为60*1024。控制器系统中任务及优先级分配如表1所示。
3.5 任务功能
基于STM32L475微处理控制器及外设组成实验设备柜控制器系统,运行Amazon FreeRTOS实时操作系统满足多任务和实时响应云端指令。任务功能模块如图3所示。
3.5.1 时间同步
基于UDP协议和SNTP协议实现时间同步功能,更新RTC时钟,使实验设备控制器本地时间与服务器同步。最新版Amazon FreeRTOS在协议层减去UDP支持,需要开发者自己设置。在es_wifi.c文件ES_WIFI_StartClientConnection()中增加conn->Type == ES_WIFI_UDP_CONNECTION,以此实现对UDP的支持。
3.5.2 数据采集任务
传感器包括HTS221温湿度传感器、LPS22HB压力计以及DHT11温湿度传感器,前两个传感器负责采集PCB所处环境温湿度和气压数据,保证实验设备控制器不受外界环境干扰。精密仪器设备对环境温湿度条件有一定要求,本文选择DHT11传感器用于监测实验设备存放位置的环境温湿度,以便管理人員实时监控,避免因环境因素造成实验设备损坏。传感器数据采集流程如图4所示。
3.5.3 设备借还
用户使用借还功能时,控制器会打开柜门并上传柜门状态信息。
当控制器收到用户开门指令时,控制继电器触发吸合打开柜门。图5所示的是远程开门操作。用户在客户端使用远程开门功能。终端执行开门操作,若成功则柜门打开,控制器向服务器上传开门成功信息,反之则开门失败。
用户通过客户端发送开门指令,控制器接收到指令后执行开门操作,并将结果反馈给用户。若柜门状态是监测指令,控制器会直接返回柜门状态给用户。
图6为租借设备流程。当用户开启柜门时,控制器会将相应柜门状态侦测线的中断标志使能。当用户关上柜门时,控制器会开启RC522天线,识别柜门内设备的电子标签ID信息,若未检测到电子标签ID信息则判定为设备借出,并将数据上传服务器,反之,设备未借出则不需要上传数据到服务器。
图7所示的为租借归还流程。用户要归还设备时,在客户端使用相应功能,终端会收到归还设备指令,开启相应柜门。待用户关闭柜门后,控制器开启RC522天线,读取RFID标签的ID信息并上传至服务器,服务器对上传设备id和柜门id进行匹配,判断是否归还正确。
3.5.4 运行状态任务
CPU定时或通过指令触发采集系统运行信息,其实现逻辑是通过调度CPU_Task任务,使用vTaskList()获取任务优先级、剩余堆栈等信息列表,使用vTaskGetRunTimeStats()获取当前任务占用CPU使用率,使用xPortGetFreeHeapSize()获取系统剩余堆栈信息。
4 测试与评估
实验设备控制器系统启动时会进行证书校验和WiFi模块初始化,并发送一条消息告知服务器当前设备在线。当系统初始化完成后执行时间同步任务,向NTP服务器发送SNTP协议格式数据,控制器将返回数据处理后更新RTC时钟,实现控制器本地时间与网络时间同步,如图8所示。
用户使用借还功能时,控制器会打开柜门并上传柜门状态信息。开门指令“order:OD”,控制器接收后进行开门操作并将指令执行结果反馈给服务器。当用户借用设备关门后,控制器会控制RC522模块识别电子标签,若没识别到设备信息则表明设备借出,设置state键值为1,并将结果反馈给服务器。反馈指令“order:CD”需要附带该实验设备所在柜门id,如图9所示。
5 结语
本文设计并实现了一个远程、高效、自动化和智能化的实验设备柜控制器系统。利用FreeRTOS创建多个任务按事先所设定的优先级顺序调度运行,完成设备借还、时间同步、远程监控等多个功能;采用MQTT消息传输协议,接入AWSIoT平台,保证数据传输安全;服务器调取AWS服务对数据进行处理分析,并将结果呈现给用户;使用RFID识别技术实现设备柜门与实验设备相互绑定。
参考文献:
[1] 王祝华. 智慧思政: 智慧校园环境下高校思想政治教育的实践创新[J]. 中国现代教育装备, 2020,19(11): 24-27.
[2] NASRO M A,SALEH A. Smart campus-a sketch[J]. Sustainable Cities and Society,2020,22(1):59-67.
[3] 吴耀东,吴迪. 基于RFID的高校实验设备管理系统的研究[J]. 电子制作, 2020,33(Z1):111-112.
[4] 施琴, 宋阿羚, 徐韦佳,等. 射频识别技术在实验设备管理中的应用研究[J]. 中国电子教育,2019,18(3): 65-69.
[5] 齐增卫. 超高频射频识别无源标签芯片以及片上温度传感器的研究[D]. 西安:西安电子科技大学, 2016.
[6] 王明科, 张梦亚. 二维码在实验仪器中的管理及应用研究[J]. 信息与电脑(理论版), 2019, 31(22): 152-153.
[7] 俞恩军,吴飞青. 基于RFID的手持式实验设备信息读取终端与系统设计[J]. 山东农业工程学院学报,2018,35(7):33-37.
[8] 朱明辉,赵信广, 尤星懿. 基于FreeRTOS和MQTT的海洋监测网络框架[J]. 电子技术应用, 2018, 44(1): 41-44.
[9] 张文亮,田沛,刘晖,等. 基于FreeRTOS的lwip协议栈的移植与测试[J].自动化技术与应用, 2015, 34(11): 25-29.
[10] 刘迎澍, 杨珂, 丁纬航. 基于FreeRTOS的智能用电监控系统[J].电子设计工程, 2017, 25(21): 157-160.
[11] 郑洲. 基于FreeRTOS的低成本车载影音系统方案设计[J].单片机与嵌入式系统应用, 2015, 15(6): 22-25.
[12] 何小庆. 三种物联网操作系统分析与比较[J]. 微纳电子与智能制造, 2020, 2(1): 65-72.
[13] AMAZON. FreeRTOS user guide[EB/OL]. https://docs.aws.amazon.com/freertos/latest/userguide/what-is-freertos.html,2020-5-10.
[14] AMAZON WEB SERVICES INC. How to use AWS IoT[EB/OL]. https://aws.amazon.com/iot/?nc1=h_ls, 2020-5-10.
[15] GOMES Y F,SANTOS D F S, ALMEIDA H O, et al. Integrating MQTT and ISO/IEEE 11073 for health information sharing in the internet of things[C]. IEEE International Conference on Consumer Electronics, IEEE, 2015:200-201.
[16] OUSMANE S, IBRAHIMA N, CLAUDE L, et al. Lightweight security scheme for MQTT/MQTT-SN protocol[C]. 2019 Sixth International Conference on Internet of Things: Systems, Management and Security (IOTSMS), 2019:119-123.
[17] 夏潤璞, 马明君, 汪立伟. 基于RFID的智能图书分拣系统的设计[J]. 电子技术与软件工程, 2018,17(14):36-39.
[18] 叶晨. 基于RFID的智能门禁系统设计[J]. 信息系统工程,2018,17(6): 34-36.
[19] 刘锦. 温室大棚智能监测系统[J]. 南方农机,2020,51(6):28-29.
[20] 叶俊明. 基于SIM900A的温湿度采集与传输[J]. 数码世界, 2016,15(10): 136-141.
(责任编辑:杜能钢)