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