摘 要:為了突破物聯(lián)網(wǎng)系統(tǒng)構(gòu)建受物聯(lián)網(wǎng)實驗設(shè)備的限制,基于Packet Tracer和OneNET云平臺,規(guī)劃和設(shè)計了基于物聯(lián)網(wǎng)的智慧停車場實驗系統(tǒng)。系統(tǒng)包括車位實時監(jiān)測、停車場環(huán)境監(jiān)測、出入口管理、遠程查看停車場等功能。通過整體規(guī)劃、硬件設(shè)計、軟件編程、云平臺端設(shè)計等環(huán)節(jié),實現(xiàn)了停車場系統(tǒng)的實驗仿真,為物聯(lián)網(wǎng)課程實踐教學(xué)提供了有效、可行的解決思路。
關(guān)鍵詞:物聯(lián)網(wǎng);智慧停車場;仿真實驗;Packet Tracer;OneNET云平臺;車位監(jiān)測
中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:2095-1302(2025)08-0-03
0 引 言
物聯(lián)網(wǎng)是應(yīng)用性、實踐性很強的學(xué)科[1],物聯(lián)網(wǎng)課程教學(xué)經(jīng)常采用項目驅(qū)動的教學(xué)方法[2],即讓學(xué)生通過實際項目來學(xué)習(xí)和應(yīng)用知識,提高動手能力。然而,由于物聯(lián)網(wǎng)涉及內(nèi)容廣、更新速度快、建設(shè)成本高等原因,傳統(tǒng)物聯(lián)網(wǎng)實驗設(shè)備難以滿足日益增長的學(xué)生實踐需求[3]。在此背景下,本文基于Packet Tracer網(wǎng)絡(luò)仿真平臺和OneNET云平臺,探討智慧停車場物聯(lián)網(wǎng)系統(tǒng)的綜合實驗設(shè)計與實現(xiàn),以期為物聯(lián)網(wǎng)實驗教學(xué)提供有效支撐[4-5]。
Packet Tracer是一款網(wǎng)絡(luò)模擬平臺,利用該平臺可以進行網(wǎng)絡(luò)和通信仿真實驗,也可以進行物聯(lián)網(wǎng)仿真實驗[6]。OneNET是中國移動打造的高效、穩(wěn)定、安全的物聯(lián)網(wǎng)開放云平臺,目前支持MQTT、CoAP、LwM2M、HTTP等協(xié)議接入[7]。本文中的Packet Tracer虛擬設(shè)備采用HTTP協(xié)議接入云平臺。首先基于Packet Tracer完成智慧停車場的構(gòu)建、硬件設(shè)計和程序編寫,然后基于HTTP協(xié)議將停車場監(jiān)測數(shù)據(jù)上傳到OneNET云平臺,實現(xiàn)停車場狀態(tài)的遠程查看。
1 實驗系統(tǒng)整體設(shè)計
本實驗系統(tǒng)使用Packet Tracer中的虛擬傳感器和執(zhí)行設(shè)備構(gòu)建了一個智慧停車場系統(tǒng),通過編寫MCU控制器程序?qū)崿F(xiàn)設(shè)備間的聯(lián)動及數(shù)據(jù)上傳,并通過接入OneNET云平臺實現(xiàn)停車場情況的遠程查看。系統(tǒng)由車位實時監(jiān)測模塊、停車場環(huán)境監(jiān)測及報警模塊、停車場出入口管理模塊、OneNET云平臺端遠程查看模塊等組成[8],如圖1所示。
車位實時監(jiān)測模塊能夠?qū)崟r監(jiān)測車位狀態(tài),包括車位空閑情況、被占用時長等,并將車位狀態(tài)上傳到OneNET云平臺。環(huán)境監(jiān)測及報警模塊可以實時監(jiān)測停車場內(nèi)的溫度、濕度、煙霧等環(huán)境參數(shù),并上傳至OneNET云平臺;當(dāng)環(huán)境參數(shù)超出正常范圍時,系統(tǒng)將自動啟動報警裝置發(fā)出警報。停車場出入口管理模塊實現(xiàn)停車場的自動刷卡開門功能。由于停車場車位狀態(tài)及環(huán)境參數(shù)已上傳至OneNET云平臺,用戶可登錄OneNET云平臺遠程查看停車場情況。本實驗系統(tǒng)在上述物聯(lián)網(wǎng)整體架構(gòu)設(shè)計基礎(chǔ)上,在Packet Tracer中進行了系統(tǒng)的硬件設(shè)計、軟件編程,另外進行了OneNET端設(shè)計。
2 實驗系統(tǒng)硬件設(shè)計
2.1 車位實時監(jiān)測模塊硬件設(shè)計
車位實時監(jiān)測模塊的功能是實時監(jiān)測車位空閑狀態(tài)及被占用時長。根據(jù)實驗需求,規(guī)劃了微控制器MCU1、薄膜壓力傳感器、車位狀態(tài)指示燈、LCD顯示屏、車位、車輛等不同的物聯(lián)網(wǎng)對象[9],車位實時監(jiān)測硬件設(shè)計如圖2所示。
本模塊由多組薄膜壓力傳感器監(jiān)測停車位上是否停有汽車。當(dāng)薄膜壓力傳感器監(jiān)測到的壓力數(shù)值大于一定閾值時,系統(tǒng)認(rèn)定車位上停有車輛,并根據(jù)監(jiān)測情況控制相應(yīng)車位指示燈的狀態(tài)。同時,系統(tǒng)會將停車位的編號、監(jiān)測到的壓力、停車時間等信息顯示在對應(yīng)的LCD顯示屏上,并將監(jiān)測到的停車場車位情況上傳到OneNET云平臺。
本模塊中各對象通過不同的端口連接到MCU微控制器的端口,各對象的硬件端口見表1。在Python編程實現(xiàn)過程中,表中的模擬接口可以接收不同的電平數(shù)據(jù),而數(shù)字接口接收的高低電平對應(yīng)1023和0。
2.2 環(huán)境監(jiān)測及出入口管理模塊硬件設(shè)計
環(huán)境監(jiān)測模塊主要規(guī)劃了微控制器MCU0、溫度傳感器、濕度傳感器、煙霧傳感器、LCD顯示屏、報警裝置等不同的物聯(lián)網(wǎng)對象,實現(xiàn)對停車場溫度、濕度、煙霧等環(huán)境參數(shù)的實時監(jiān)測及報警;出入口管理模塊則主要規(guī)劃了微控制器MCU2、RFID閱讀器、控制停車場出入口橫桿的舵機、LCD顯示屏、測試車輛等不同的物聯(lián)網(wǎng)對象,可以實現(xiàn)停車場的自動刷卡開門功能[10]。環(huán)境監(jiān)測及出入口管理模塊的硬件設(shè)計如圖3所示。
本模塊中各對象通過不同的端口分別連接到微控制器MCU0和MCU2,各設(shè)備的硬件端口見表2。
3 實驗系統(tǒng)軟件編程
完成硬件設(shè)計之后,需要對實驗系統(tǒng)進行Python編程,以實現(xiàn)實驗要求[11]。
3.1 車位實時監(jiān)測軟件編程
車位實時監(jiān)測模塊通過MCU編程,實現(xiàn)各設(shè)備間的聯(lián)動及車位情況的遠程查看,程序包括以下部分:
(1)引入模塊,如gpio、time、realtcp、realhttp、requests。
(2)通過RealHTTPClient( )函數(shù)創(chuàng)建HTTP客戶端,定義通過HTTP協(xié)議連接及上傳數(shù)據(jù)到OneNET云平臺的URL、data、header等。
(3)新建多個中斷函數(shù)inputHandler1()、inputHandler2()、
inputHandler3(),……,用于實時監(jiān)測停車場的車位狀態(tài)。中斷函數(shù)讀取薄膜壓力傳感器的數(shù)值,通過相應(yīng)的轉(zhuǎn)換和標(biāo)準(zhǔn)判斷車位上是否停有車輛。
(4)在一個循環(huán)函數(shù)中,根據(jù)監(jiān)測到的車位情況控制車位狀態(tài)指示燈。如果監(jiān)測到車位上停有車輛,則開始計時停車時間。與此同時,將車位編號、車位狀態(tài)、停車時長等信息顯示在LCD顯示屏上,并通過調(diào)用http.postWithHeader(url, data, head)函數(shù)將車位狀態(tài)及停車場位置等信息實時上傳到OneNET云平臺。
(5)在main函數(shù)中,調(diào)用add_event_detect()函數(shù)在相應(yīng)引腳上添加事件監(jiān)測,當(dāng)引腳狀態(tài)發(fā)生變化時觸發(fā)中斷;調(diào)用循環(huán)函數(shù)監(jiān)測車位狀態(tài),并將數(shù)據(jù)上傳到OneNET云平臺。
3.2 環(huán)境監(jiān)測及出入口管理編程設(shè)計
環(huán)境監(jiān)測模塊編程設(shè)計與車位狀態(tài)監(jiān)測編程設(shè)計類似,主要包括以下步驟:
(1)創(chuàng)建HTTP客戶端;
(2)定義通過HTTP協(xié)議連接及上傳數(shù)據(jù)到OneNET云平臺的URL、data、header等參數(shù);
(3)通過中斷函數(shù)獲取監(jiān)測到的環(huán)境參數(shù)數(shù)值;
(4)在循環(huán)函數(shù)中不斷刷新顯示監(jiān)測數(shù)值,并通過調(diào)用http.postWithHeader(url, data, head)函數(shù)將數(shù)據(jù)上傳到OneNET云平臺;
(5)在main函數(shù)中,調(diào)用add_event_detect()函數(shù)在相應(yīng)引腳上添加事件監(jiān)測,并調(diào)用循環(huán)函數(shù)監(jiān)測停車場狀態(tài),同時上傳數(shù)據(jù)到OneNET云平臺。
環(huán)境監(jiān)測模塊的關(guān)鍵代碼及注釋如下:
#創(chuàng)建HTTP客戶端
http = RealHTTPClient()
……
#定義URL、head、data
……
#中斷函數(shù),讀取環(huán)境監(jiān)測數(shù)值
def inputHandler1():
global value1
value1 =" (((analogRead(A0) - 0) * (100 - -100)) / (1023 - 0)) + -100.
……
#循環(huán)函數(shù)
def loop1():
customWrite(0, \"Tem:\"+str(value1)+\" Hum:\"+str(value2)+\"\nsmoke:\"+str(value3))
if value1gt;20 or value2gt;75 or value3gt;15:
digitalWrite(1,HIGH)
else:
digitalWrite(1,LOW)
data = json.dumps({\"id\": \"123\",\"version\": \"1.0\",\"params\": {\"humi\": {\"value\": value2 }, \"Tem\": { \"value\": value1}, \"smoke\": { \"value\": value3},\"location\":{\"value\":{\"lon\":113.65,\"lat\":34.76}}}})http.postWithHeader(url,data,head)
……
#主函數(shù)
def main():
add_event_detect(A0, inputHandler1)
……
http.postWithHeader(url0,data0,head0)
http.onDone(onHTTPDone)
while True:
sleep(5)
loop1()
if __name__ == \"__main__\":
main()
出入口管理編程設(shè)計主要通過RFID閱讀器識別車輛,識別成功后控制舵機開關(guān)門,關(guān)鍵代碼如下:
value=0
def main():
pinMode(1, OUT)
print(\"vehicle Identifying\")
while True:
value=digitalRead(1)
if value==0:
customWrite(0, 1);
print(\"close the door!\")
sleep(3)
else:
customWrite(0, 160);
print(\"open the door!\")
sleep(3)
if __name__ == \"__main__\":
main()
3.3 OneNET云端開發(fā)
OneNET云端開發(fā)主要包括創(chuàng)建產(chǎn)品、添加設(shè)備、定義物模型等步驟[12]。首先,在OneNET云平臺上創(chuàng)建產(chǎn)品和設(shè)備,填寫產(chǎn)品相關(guān)信息時接入?yún)f(xié)議選擇HTTP協(xié)議,數(shù)據(jù)協(xié)議選擇OneJSON。設(shè)備添加成功后,需要記錄所創(chuàng)建的產(chǎn)品名稱、產(chǎn)品ID、設(shè)備名稱、設(shè)備密鑰等信息,這些信息將在設(shè)備接入時使用。
定義物模型在功能定義步驟中完成。單擊設(shè)置物模型,然后單擊添加自定義功能點,在彈出的窗口中進行設(shè)置。功能類型選擇屬性功能,其他按要求填寫。本文建立了多個車位狀態(tài)、停車場位置、溫度、濕度、煙霧濃度等屬性功能。
完成了OneNET云端的開發(fā)之后,Packet Tracer中的虛擬設(shè)備將監(jiān)測到的數(shù)據(jù)信息通過RealHTTP方式上傳到OneNET云平臺進行展示。OneNET云平臺端顯示頁面如圖4所示。
4 結(jié) 語
智慧停車場實驗系統(tǒng)融合了物聯(lián)網(wǎng)系統(tǒng)綜合設(shè)計技術(shù)、硬件構(gòu)建技術(shù)、軟件編程技術(shù),具體包括系統(tǒng)設(shè)計、場景搭建、設(shè)備選擇、接口設(shè)計、通信協(xié)議、設(shè)備接入、數(shù)據(jù)傳輸、代碼編寫、云端開發(fā)、數(shù)據(jù)顯示等內(nèi)容,能夠有效提高學(xué)生的創(chuàng)新應(yīng)用能力,培養(yǎng)學(xué)生的綜合素質(zhì)和實踐能力。
智慧停車場實驗環(huán)境不受實驗物理條件限制,學(xué)生一人一機的實驗條件能夠很好地將課程的示教、開發(fā)與實訓(xùn)相融合,最大限度地拓展學(xué)生的動手能力。同時,該系統(tǒng)具有開放、靈活、二次開發(fā)方便的特點。該系統(tǒng)的擴展性使得該實驗平臺能夠有效培養(yǎng)和提升學(xué)生的實踐創(chuàng)新能力。
參考文獻
[1]周春月,宋明月,陶丹,等.基于CDIO理念的物聯(lián)網(wǎng)技術(shù)課程實驗教學(xué)研究[J].實驗科學(xué)與技術(shù),2024,22(1):52-56.
[2]戚戀,馬雪亮,胡俊.基于虛擬仿真平臺的《物聯(lián)網(wǎng)項目規(guī)劃與實施》課程項目化教學(xué)改革探索[J].電腦知識與技術(shù),2024,20(6):102-104.
[3]朱辰,魏兵,王琳,等.面向卓越工程師培養(yǎng)的物聯(lián)網(wǎng)實踐教學(xué)模式改革與探索[J].實驗室研究與探索,2024,43(4):143-146.
[4]邢藝蘭,李瑛.物聯(lián)網(wǎng)專業(yè)課程的虛擬仿真教學(xué)研究[J].北華航天工業(yè)學(xué)院學(xué)報,2024,34(1):39-41.
[5]申會鵬,武照云,曹毅,等.新工科物聯(lián)網(wǎng)實驗教學(xué)云平臺開發(fā)與應(yīng)用[J].機械工程師,2023(10):20-23.
[6]崔曉龍,邊勝琴,皇甫偉,等.面向智能家居應(yīng)用的物聯(lián)網(wǎng)“場景分解式”實訓(xùn)設(shè)計[J].實驗技術(shù)與管理,2023,40(5):171-175.
[7]唐茂淞.基于OneNET物聯(lián)網(wǎng)云平臺的農(nóng)田環(huán)境監(jiān)測及遠程灌溉系統(tǒng)設(shè)計[J].電子制作,2023,31(5):39-43.
[8]吳蕊,殷婷婷,杜悅,等.基于物聯(lián)網(wǎng)技術(shù)的智能停車場系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2023,13(8):130-132.
[9]彭瑾.基于STM32的智慧停車場管理系統(tǒng)設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2023,19(20):57-59.
[10]張?zhí)m峰,于合寧,劉鑫宇.智慧園區(qū)停車場管理系統(tǒng)設(shè)計[J].無線互聯(lián)科技,2023,20(18):16-18.
[11]彭勇,陶曾杰,林振,等.基于STM32和OneNET的智能家居系統(tǒng)的設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2024,14(2):86-89.
[12]李楠,蘇航,張安莉,等.基于OneNET云平臺的智慧消防遠程監(jiān)控系統(tǒng)的設(shè)計[J].電子設(shè)計工程,2024,32(9):56-60.