唐道鮮 侯美伊 李慶宇 李躍華
摘 要:針對傳統(tǒng)實驗設(shè)備管理中用戶租借困難、管理費時費力和不能實時維護等問題,設(shè)計一種基于實時操作系統(tǒng)的實驗設(shè)備柜控制器系統(tǒng)。控制器采用Amazon FreeRTOS實時操作系統(tǒng),通過多種傳感器監(jiān)測設(shè)備柜內(nèi)外環(huán)境狀態(tài),并將控制器接入AWS IoT平臺,使用MQTT協(xié)議雙向傳輸數(shù)據(jù)。實際應(yīng)用表明,使用該管理控制系統(tǒng)后,實驗設(shè)備能實現(xiàn)安全、高效地自助借還。
關(guān)鍵詞:FreeRTOS;實驗設(shè)備;MQTT;物聯(lián)網(wǎng);智慧校園
DOI:10. 11907/rjdk. 201709????????????????????????????????????????????????????????????????? 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP319 ? 文獻標(biāo)識碼: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 引言
智慧校園是物聯(lián)網(wǎng)技術(shù)與校園管理的有機融合,實現(xiàn)校園日常管理信息化、數(shù)字化,大大提升管理效率[1-2]。然而傳統(tǒng)的實驗設(shè)備管理依然采用人工登記和維護方式,極大影響智慧校園發(fā)展[3-5]。隨著物聯(lián)網(wǎng)技術(shù)發(fā)展,實驗設(shè)備管理系統(tǒng)有二維碼輔助計算機實驗設(shè)備管理系統(tǒng)、基于RFID技術(shù)的實驗設(shè)備管理系統(tǒng)等。文獻[6]介紹了二維碼在實驗設(shè)備日常管理中的應(yīng)用,雖然提高了實驗設(shè)備管理效率,但二維碼易于損壞,且污損后無法識別,給實驗設(shè)備維護增加了一定難度;文獻[7]將無線射頻技術(shù)應(yīng)用于實驗設(shè)備管理信息化中, 雖然增強了系統(tǒng)抗干擾能力,但未解決用戶自助租借實驗設(shè)備以及管理人員遠程維護問題。本文研究的實驗設(shè)備柜控制器可實現(xiàn)對實驗設(shè)備的實時監(jiān)測、借用歸還等智能化管理。采用Amazon FreeRTOS軟件平臺,使用RFID(Radio Frequency Identification)技術(shù),具有遠程開門、設(shè)備借還、溫濕度傳感器數(shù)據(jù)采集、控制器狀態(tài)監(jiān)測、檢測門鎖狀態(tài)和云端通信等功能。依托AWS(Amazon Web Services)的安全機制和云計算能力,實現(xiàn)安全高效的設(shè)備自助借還管理。
1 技術(shù)簡介
1.1 FreeRTOS簡介
FreeRTOS是Richard Barry 于2003 年發(fā)布的一個輕型開源實時操作系統(tǒng)內(nèi)核,其功能包括任務(wù)管理、時間管理、消息隊列、信號量、中斷管理、軟件定時器、協(xié)同例程管理等[8-11]。Amazon FreeRTOS 相比于FreeRTOS增加了IoT 應(yīng)用組件,比如Secure Sockets和MQTT(Message Queuing Telemetry Transport)協(xié)議便于開發(fā)者連接到AWS云平臺[12]。為保證設(shè)備與AWS IoT平臺安全通信,Amazon FreeRTOS加入證書校驗、Secure Sockets、TLS等保證數(shù)據(jù)傳輸安全[13]。開發(fā)者通過使用Amazon FreeRTOS快速將設(shè)備部署到AWS IoT平臺,并對設(shè)備進行統(tǒng)一管理和部署。
1.2 AWSIoT簡介
AWS IoT是亞馬遜公司于2015年發(fā)布的物聯(lián)網(wǎng)應(yīng)用平臺,它允許已連接的設(shè)備根據(jù)相應(yīng)權(quán)限與AWS云應(yīng)用程序或其它設(shè)備交互,即接入平臺的設(shè)備所傳入的數(shù)據(jù)可使用AWS服務(wù)[14],數(shù)據(jù)到AWS IoT平臺就 “自由翱翔”于各個AWS云服務(wù)中,這是其它物聯(lián)網(wǎng)云平臺尚未完全實現(xiàn)的功能。
1.3 MQTT簡介
MQTT是IBM開發(fā)的客戶端—服務(wù)器發(fā)布(Publish)/訂閱(Subscribe)消息即時通訊協(xié)議[15]。MQTT是一種輕量級消息發(fā)布協(xié)議,以TCP/IP協(xié)議為基礎(chǔ),提供一對多和多對多的消息發(fā)布方式,具有低開銷、開放和易于實現(xiàn)的特點[16]。借助MQTT消息推送功能,開發(fā)者可以實現(xiàn)終端設(shè)備遠程控制和統(tǒng)一管理。將硬件終端連接到同一個MQTT代理服務(wù)器,不僅可以實現(xiàn)人機交互,還可實現(xiàn)物與物交互。
2 硬件系統(tǒng)設(shè)計
2.1 硬件總體設(shè)計
控制器采用ARM Cortex-M4內(nèi)核的STM32L475VGT6 32位微處理器,控制器上運行Amazon FreeRTOS操作系統(tǒng),創(chuàng)建多個任務(wù)按事先設(shè)定的優(yōu)先級順序調(diào)度運行。傳感器組主要負(fù)責(zé)采集板載溫濕度、環(huán)境溫濕度和氣壓數(shù)據(jù),并將采集到的數(shù)據(jù)處理后發(fā)送給控制器。RFID模塊主要包括RC522模塊,用于識別實驗設(shè)備上電子標(biāo)簽ID信息,并將數(shù)據(jù)發(fā)送給控制器。電控鎖模塊包含J02電控鎖和繼電器,主要負(fù)責(zé)驅(qū)動電控鎖開門和門鎖狀態(tài)偵測數(shù)據(jù)反饋。WiFi通訊模塊負(fù)責(zé)接收解析AWS IoT發(fā)來的數(shù)據(jù),并將控制器封裝好的數(shù)據(jù)發(fā)送至AWS IoT平臺。本文實驗設(shè)備柜控制器硬件總體設(shè)計如圖1所示。
2.2 硬件模塊設(shè)計
2.2.1 微處理器
選用ARM Cortex-M4內(nèi)核的STM32L475VGT6 32位微處理器。STM32L475VGT6最高運行主頻可達80MHz,擁有1Mbytes的Flash和128Kbytes的SRAM,擁有UART、TIM、DMA、SPI、Flash等模塊。STM32L475VGT6的配置足夠穩(wěn)定運行FreeRTOS實時操作系統(tǒng),實現(xiàn)本系統(tǒng)所有功能。
2.2.2 RFID模塊
選用RC522模塊,該模塊的RFID芯片支持ISO 14443協(xié)議和MIFARE協(xié)議,且支持13.56MHz頻率下的非接觸式通信方式和協(xié)議[17-18]。使用ISO 14443A協(xié)議并采用SPI協(xié)議驅(qū)動該模塊, 用于電子標(biāo)簽讀寫數(shù)據(jù)。
2.2.3 電控鎖模塊
電控鎖模塊主要實現(xiàn)開啟設(shè)備柜門和監(jiān)測設(shè)備柜門狀態(tài),以及對用戶操作的反饋。四路光耦隔離繼電器模塊驅(qū)動電控鎖,以此保證J02電控鎖通電時間不超過額定時間。此外,J02電控鎖附帶的偵測線還可用于柜門關(guān)閉后觸發(fā)控制器外部中斷,控制RC522模塊對柜門內(nèi)的設(shè)備電子標(biāo)簽進行識別檢測。選用有源蜂鳴器作為用戶借還行為引起的異常報警和開門操作提醒功能。當(dāng)用戶進行遠程開門操作,柜門開啟成功后,蜂鳴器會長鳴提醒。當(dāng)服務(wù)器傳來歸還設(shè)備錯誤指令時,控制器處理消息后會執(zhí)行異常報警功能,對用戶操作行為進行反饋。
2.2.4 傳感器組
實驗設(shè)備控制器選用HTS221溫濕度傳感器和DHT11溫濕度傳感器。精密儀器設(shè)備對存放環(huán)境溫濕度條件有一定要求,前者用于監(jiān)測控制器運行時PCB所處環(huán)境溫濕度,后者用于監(jiān)測柜門外環(huán)境溫濕度。此外,為了更加完整地監(jiān)測設(shè)備柜環(huán)境,選用LPS22HB氣壓計用于監(jiān)測環(huán)境氣壓值。
HTS221是意法半導(dǎo)體(STMicroelectronics)生產(chǎn)的數(shù)字式溫濕度傳感器IC。控制器通過I2C協(xié)議與HTS221溫濕度傳感器通信,其通信地址為0xBE。DHT11是一個包含已校準(zhǔn)數(shù)字信號輸出的溫濕度傳感器[19],內(nèi)部由一個8位單片機控制一個電阻式感濕元件和一個 NTC測溫元件。DHT11采用單總線協(xié)議,只需用一個GPIO便可獲取到數(shù)字化溫濕度數(shù)據(jù)[20]。氣壓計選用ST生產(chǎn)的氣壓傳感器LPS22HB,控制器通過I2C協(xié)議與LPS22HB氣壓計傳感器通信,其通信地址為0xBA。
3 軟件系統(tǒng)設(shè)計
3.1 軟件總體設(shè)計
基于FreeRTOS實時操作系統(tǒng)開發(fā)的實驗設(shè)備柜控制器系統(tǒng)架構(gòu)如圖2所示。將系統(tǒng)功能進行邏輯劃分,創(chuàng)建不同的獨立任務(wù)完成各個功能。利用FreeRTOS實時操作系統(tǒng)的多任務(wù)機制對任務(wù)分配系統(tǒng)資源,并根據(jù)規(guī)定的任務(wù)優(yōu)先級運行調(diào)度。
根據(jù)系統(tǒng)功能需求,建立6個關(guān)鍵應(yīng)用任務(wù):時間同步任務(wù)、數(shù)據(jù)采集任務(wù)、柜門管理任務(wù)、日志管理任務(wù)、運行狀態(tài)監(jiān)測任務(wù)和云端通信任務(wù)。
3.2 FreeRTOS移植配置
使用FreeRTOS前,需要根據(jù)MCU型號和系統(tǒng)功能進行如下初始化配置:①開啟可視化跟蹤調(diào)試;②任務(wù)名字字符串長度;③支持動態(tài)內(nèi)存申請;④日志打印的最大消息長度。
為使傳輸數(shù)據(jù)易于閱讀和幀格式規(guī)范,同時易于解析和生成數(shù)據(jù)幀,本文移植了cJSON包,用于生成和解析JSON格式數(shù)據(jù)。在FreeRTOS中移植cJSON包,需在cJSON.h中將原來申請內(nèi)存函數(shù)malloc修改為pvPortMalloc,釋放內(nèi)存函數(shù)free修改為pvPortFree。
3.3 證書及網(wǎng)絡(luò)初始化
控制器采用WiFi模塊與云服務(wù)器通信,需要配置WiFi網(wǎng)絡(luò)連接信息。接入AWS IoT需要導(dǎo)入身份證書,使用MQTT消息代理需要配置代理地址信息。WiFi網(wǎng)絡(luò)配置需設(shè)置無線網(wǎng)絡(luò)名稱、無線網(wǎng)絡(luò)密碼和無線網(wǎng)絡(luò)安全類型。MQTT代理配置需設(shè)置AWSIoT證書、AWS IoT平臺MQTT消息代理地址、MQTT代理通信端口號以及控制器在AWS IoT平臺上配置的物品唯一名稱。
3.4 任務(wù)優(yōu)先級分配
控制器采用Amazon FreeRTOS實時操作系統(tǒng),利用其多任務(wù)調(diào)度機制實現(xiàn)實驗設(shè)備柜控制器功能需求。將功能進行邏輯分析,對部分功能創(chuàng)建獨立任務(wù)完成,并設(shè)置任務(wù)優(yōu)先級和堆棧大小,由操作系統(tǒng)完成調(diào)度運行。
Amazon FreeRTOS(版本號202002.00)默認(rèn)設(shè)置的最大優(yōu)先級為7,為滿足本文任務(wù)設(shè)計需要,修改FreeRTOSConfig.h配置文件。將任務(wù)最大優(yōu)先級configMAX_PRIORITIES修改為15,任務(wù)最小堆棧configMINIMAL_STACK_SIZE修改為90,系統(tǒng)運行堆棧大小configTOTAL_HEAP_SIZE修改為60*1024。控制器系統(tǒng)中任務(wù)及優(yōu)先級分配如表1所示。
3.5 任務(wù)功能
基于STM32L475微處理控制器及外設(shè)組成實驗設(shè)備柜控制器系統(tǒng),運行Amazon FreeRTOS實時操作系統(tǒng)滿足多任務(wù)和實時響應(yīng)云端指令。任務(wù)功能模塊如圖3所示。
3.5.1 時間同步
基于UDP協(xié)議和SNTP協(xié)議實現(xiàn)時間同步功能,更新RTC時鐘,使實驗設(shè)備控制器本地時間與服務(wù)器同步。最新版Amazon FreeRTOS在協(xié)議層減去UDP支持,需要開發(fā)者自己設(shè)置。在es_wifi.c文件ES_WIFI_StartClientConnection()中增加conn->Type == ES_WIFI_UDP_CONNECTION,以此實現(xiàn)對UDP的支持。
3.5.2 數(shù)據(jù)采集任務(wù)
傳感器包括HTS221溫濕度傳感器、LPS22HB壓力計以及DHT11溫濕度傳感器,前兩個傳感器負(fù)責(zé)采集PCB所處環(huán)境溫濕度和氣壓數(shù)據(jù),保證實驗設(shè)備控制器不受外界環(huán)境干擾。精密儀器設(shè)備對環(huán)境溫濕度條件有一定要求,本文選擇DHT11傳感器用于監(jiān)測實驗設(shè)備存放位置的環(huán)境溫濕度,以便管理人員實時監(jiān)控,避免因環(huán)境因素造成實驗設(shè)備損壞。傳感器數(shù)據(jù)采集流程如圖4所示。
3.5.3 設(shè)備借還
用戶使用借還功能時,控制器會打開柜門并上傳柜門狀態(tài)信息。
當(dāng)控制器收到用戶開門指令時,控制繼電器觸發(fā)吸合打開柜門。圖5所示的是遠程開門操作。用戶在客戶端使用遠程開門功能。終端執(zhí)行開門操作,若成功則柜門打開,控制器向服務(wù)器上傳開門成功信息,反之則開門失敗。
用戶通過客戶端發(fā)送開門指令,控制器接收到指令后執(zhí)行開門操作,并將結(jié)果反饋給用戶。若柜門狀態(tài)是監(jiān)測指令,控制器會直接返回柜門狀態(tài)給用戶。
圖6為租借設(shè)備流程。當(dāng)用戶開啟柜門時,控制器會將相應(yīng)柜門狀態(tài)偵測線的中斷標(biāo)志使能。當(dāng)用戶關(guān)上柜門時,控制器會開啟RC522天線,識別柜門內(nèi)設(shè)備的電子標(biāo)簽ID信息,若未檢測到電子標(biāo)簽ID信息則判定為設(shè)備借出,并將數(shù)據(jù)上傳服務(wù)器,反之,設(shè)備未借出則不需要上傳數(shù)據(jù)到服務(wù)器。
圖7所示的為租借歸還流程。用戶要歸還設(shè)備時,在客戶端使用相應(yīng)功能,終端會收到歸還設(shè)備指令,開啟相應(yīng)柜門。待用戶關(guān)閉柜門后,控制器開啟RC522天線,讀取RFID標(biāo)簽的ID信息并上傳至服務(wù)器,服務(wù)器對上傳設(shè)備id和柜門id進行匹配,判斷是否歸還正確。
3.5.4 運行狀態(tài)任務(wù)
CPU定時或通過指令觸發(fā)采集系統(tǒng)運行信息,其實現(xiàn)邏輯是通過調(diào)度CPU_Task任務(wù),使用vTaskList()獲取任務(wù)優(yōu)先級、剩余堆棧等信息列表,使用vTaskGetRunTimeStats()獲取當(dāng)前任務(wù)占用CPU使用率,使用xPortGetFreeHeapSize()獲取系統(tǒng)剩余堆棧信息。
4 測試與評估
實驗設(shè)備控制器系統(tǒng)啟動時會進行證書校驗和WiFi模塊初始化,并發(fā)送一條消息告知服務(wù)器當(dāng)前設(shè)備在線。當(dāng)系統(tǒng)初始化完成后執(zhí)行時間同步任務(wù),向NTP服務(wù)器發(fā)送SNTP協(xié)議格式數(shù)據(jù),控制器將返回數(shù)據(jù)處理后更新RTC時鐘,實現(xiàn)控制器本地時間與網(wǎng)絡(luò)時間同步,如圖8所示。
用戶使用借還功能時,控制器會打開柜門并上傳柜門狀態(tài)信息。開門指令“order:OD”,控制器接收后進行開門操作并將指令執(zhí)行結(jié)果反饋給服務(wù)器。當(dāng)用戶借用設(shè)備關(guān)門后,控制器會控制RC522模塊識別電子標(biāo)簽,若沒識別到設(shè)備信息則表明設(shè)備借出,設(shè)置state鍵值為1,并將結(jié)果反饋給服務(wù)器。反饋指令“order:CD”需要附帶該實驗設(shè)備所在柜門id,如圖9所示。
5 結(jié)語
本文設(shè)計并實現(xiàn)了一個遠程、高效、自動化和智能化的實驗設(shè)備柜控制器系統(tǒng)。利用FreeRTOS創(chuàng)建多個任務(wù)按事先所設(shè)定的優(yōu)先級順序調(diào)度運行,完成設(shè)備借還、時間同步、遠程監(jiān)控等多個功能;采用MQTT消息傳輸協(xié)議,接入AWSIoT平臺,保證數(shù)據(jù)傳輸安全;服務(wù)器調(diào)取AWS服務(wù)對數(shù)據(jù)進行處理分析,并將結(jié)果呈現(xiàn)給用戶;使用RFID識別技術(shù)實現(xiàn)設(shè)備柜門與實驗設(shè)備相互綁定。
參考文獻:
[1] 王祝華. 智慧思政: 智慧校園環(huán)境下高校思想政治教育的實踐創(chuàng)新[J]. 中國現(xiàn)代教育裝備, 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的高校實驗設(shè)備管理系統(tǒng)的研究[J]. 電子制作, 2020,33(Z1):111-112.
[4] 施琴, 宋阿羚, 徐韋佳,等. 射頻識別技術(shù)在實驗設(shè)備管理中的應(yīng)用研究[J]. 中國電子教育,2019,18(3): 65-69.
[5] 齊增衛(wèi). 超高頻射頻識別無源標(biāo)簽芯片以及片上溫度傳感器的研究[D]. 西安:西安電子科技大學(xué), 2016.
[6] 王明科, 張夢亞. 二維碼在實驗儀器中的管理及應(yīng)用研究[J]. 信息與電腦(理論版), 2019, 31(22): 152-153.
[7] 俞恩軍,吳飛青. 基于RFID的手持式實驗設(shè)備信息讀取終端與系統(tǒng)設(shè)計[J]. 山東農(nóng)業(yè)工程學(xué)院學(xué)報,2018,35(7):33-37.
[8] 朱明輝,趙信廣, 尤星懿. 基于FreeRTOS和MQTT的海洋監(jiān)測網(wǎng)絡(luò)框架[J]. 電子技術(shù)應(yīng)用, 2018, 44(1): 41-44.
[9] 張文亮,田沛,劉暉,等. 基于FreeRTOS的lwip協(xié)議棧的移植與測試[J].自動化技術(shù)與應(yīng)用, 2015, 34(11): 25-29.
[10] 劉迎澍, 楊珂, 丁緯航. 基于FreeRTOS的智能用電監(jiān)控系統(tǒng)[J].電子設(shè)計工程, 2017, 25(21): 157-160.
[11] 鄭洲. 基于FreeRTOS的低成本車載影音系統(tǒng)方案設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用, 2015, 15(6): 22-25.
[12] 何小慶. 三種物聯(lián)網(wǎng)操作系統(tǒng)分析與比較[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的智能圖書分揀系統(tǒng)的設(shè)計[J]. 電子技術(shù)與軟件工程, 2018,17(14):36-39.
[18] 葉晨. 基于RFID的智能門禁系統(tǒng)設(shè)計[J]. 信息系統(tǒng)工程,2018,17(6): 34-36.
[19] 劉錦. 溫室大棚智能監(jiān)測系統(tǒng)[J]. 南方農(nóng)機,2020,51(6):28-29.
[20] 葉俊明. 基于SIM900A的溫濕度采集與傳輸[J]. 數(shù)碼世界, 2016,15(10): 136-141.
(責(zé)任編輯:杜能鋼)