





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