任森偉 朱麗軍* 李晨浩 薛夢嬌 楊立娜
(嘉興學院,浙江 嘉興 314001)
目前的遠程設備中,應用于教學的數量非常少,并且由于網絡受限等原因,實驗大多是用于珍貴的實驗器材,并沒有大規模進行研發推廣,并且范圍十分受限。基于遠程監控的晾衣架實驗系統的研制,則是在網絡開始不斷發展,5g 的出現,4g 與寬帶網絡的不斷提升,使遠程監控的實驗系統的實驗的研制推廣成為了可能。在經歷著疫情的當今,學校能夠進行遠程實驗[1]培訓能夠在為學生的實驗課程提供更好的環境。我們的選題是對遠程監控的實驗教學系統進行嘗試,對于遠程監控實驗教學系統的研制推廣和教學模式的變化具有重要意義。
我們在PC、樹莓派微型電腦的基礎上,采用TCP/IP 協議,設立PC 為客戶端,樹莓派為服務器。通過內網穿透,使服務器能夠接收到來自不同局域網下的客戶端數據包。PC 與樹莓派兩者間建立TCP 連接,通過socket(套接字),PC 傳輸BIN 文件的數據到樹莓派,進而樹莓派通過串口將文件傳輸到智能晾衣架單片機模塊。再通過網絡攝像頭,對實驗現象進行拍攝,通過RTMP 地址將視頻數據流傳輸給PC。
2.1.1 硬件系統總體設計
基于遠程監控的智能晾衣架實驗系統由PC、樹莓派微型電腦、網絡攝像頭、智能晾衣架單片機模塊組成。整體系統框圖如圖1 所示。
2.1.2 智能晾衣架單片機模塊具體設計
STM32F103C8T6 是一款基于ARM Cortex-M3 內核的32 位的微控制器,采用LQFP48 封裝其程序存儲器FLASH 容量是64KB(64K x 8bit),RAM 容量是20KB(20K x 8bit)。具有優越的FLASH 容量以及處理性能,適合于用于IAP 在應用簡稱,因此將其作為系統的主控芯片。我們采用兩個按鍵、DHT11 溫濕度模塊、光敏傳感器作為系統獲取反饋信息途徑。通過按鍵實現手動控制晾衣架收放的功能,并采用溫濕度模塊與光敏傳感器對濕度和光強度進行反饋從而能夠實現晾衣架受環境變量控制的功能。采用電機來展現實現的具體效果,將木棍與電機結合,使實驗現象更明顯,能夠通過觀察最終木棍指向的角度來展現具體的實驗效果。
PC 為客戶端,設計為各用戶進行交互的界面,實現輸入服務器的IP 地址、端口,TCP 連接,選取文件路徑,傳輸文件,打開網絡攝像頭畫面觀察等功能。滿足用戶能夠進行遠程更新,遠程實時觀察實驗現象效果的需求。
樹莓派為服務器,設計為接收文件和燒錄作用。功能為建設TCP 服務器,Oray 花生殼內網穿透,TCP 連接,接收文件,串口通信傳輸數據進而用于STM32f103 的IAP 在應用編程。
2.2.1 TCP 通訊
傳輸控制協議(TCP,Transmission Control Protocol)是為了在不可靠的互聯網絡上提供可靠的端到端字節流而專門設計的一個傳輸協議。與UDP 不同,TCP 允許發送和接收字節流的數據,進而在發送端和接收端各提供兩個緩沖區,實現全雙工的通信[2]。
設立樹莓派為TCP/IP 服務器,PC 端為TCP/IP 客戶端。兩者通過TCP 協議的socket 進行通信。兩端都建立了一個socket 對象,通過Socket 對象對數據進行傳輸。服務器處于一個無限循環,等待客戶端的連接,兩端進行三次握手來建立連接,之后對數據進行傳輸,再通過四次握手關閉連接。
我們采用Python[3]語言對程序進行設計,采用了Python 的socket 庫來建立socket 對象,客戶端通過connect 函數連接服務器,通過send 函數傳輸文件。服務端采用socket 庫中bind 函數綁定IP 地址與端口,listen 函數設置監聽數,通過accept 函數來接收數據,使用write 函數將文件數據寫入相對應的文件中。之后我們采用商用的Oray 花生殼[4]內網穿透服務將服務端內網穿透,使其客戶端可在不同的局域網中完成向服務器的訪問和文件傳輸,達成可遠程傳輸的效果。
2.2.2 IAP(圖3)

圖3 IAP 更新應用程序過程
IAP 是用戶自己的程序在運行過程中對User Flash 的部分區域進行燒寫。我們通過串口接收樹莓派傳輸過來的bin 文件并對STM32f103 固件程序進行更新。
2.2.3 智能晾衣架模塊
我們采用光敏傳感器、溫濕度傳感器、按鍵、電機來模擬智能晾衣架。在進行了IAP 的程序更新后,我們通過按鍵進行模擬對晾衣架的主動升降控制,通過溫濕度傳感器、光電傳感器,來進行環境參數對晾衣架的自動收回的效果比較。
2.2.4 網絡攝像頭(圖4)
我們采用Python 的Pyqt5 庫和Opencv2 庫對網絡攝像頭的畫面進行顯示。Opencv2 具有可簡易提取視頻圖像幀的框架,可建立一個VideoCapture 對象來提取視頻中圖像幀,采用Pyqt5中的QLabel 將視頻畫面進行播放。
開啟視頻監控,客戶端連接服務器,并傳輸文件。(此時電機在收起區)服務器接收到BIN 文件,將文件通過串口傳輸到單片機中。
燒錄成功后,電機運作,通過光敏傳感器、溫濕度傳感器,改變電機旋轉位置(電機從收起區到晾曬區)。
本實驗系統以TCP 協議和內網穿透實現BIN 文件的傳輸,通過STM32F103 單片機的IAP 功能,讓樹莓派和單片機間傳輸BIN 文件數據,從而完成單片機的再更新,實現遠程燒錄的過程。通過網絡攝像頭,對實驗現象進行遠程觀察并顯示于PC端。本實驗系統對遠程監控的實驗教學系統進行了嘗試,對于遠程監控的單片機實驗教學系統的研制推廣和教學模式的變化具有重要意義。