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