牟曉東
在進行科創實驗時,將傳感器數據進行可視化處理(折線圖、雷達圖等),既提高數據解析的可讀性又讓實驗效果更加美觀。通過Python 代碼編程實現數據可視化的難度相對較大,各種函數參數的設置需要根據所引用庫模塊的不同以及呈現要求來進行細致的調整。借助于Mind+ 圖形化編程中的SIoT(針對學校場景的開源免費MQTT 系統),可一鍵創建本地物聯網服務器。我們可以在掌控板上輕松實現物聯網數據可視化,在此以遠程監測一個微型大棚系統的聲音、光線和溫濕度等數據為例。
掌控板主板(2.1.0 版)及擴展板各一塊,DH11 溫濕度傳感器一個,HCSR04超聲波傳感器一個,小型面包板一塊,各種顏色的杜邦線若干。
首先,連接掌控板和擴展板,通過紅色和白色杜邦線將擴展板的電源正負極接入面包板;然后,將溫濕度傳感器和超聲波傳感器的引腳插入面包板,通過兩組紅色和白色杜邦線將電源的正負極分別接至各自引腳的VCC 和GND端;接著,用一根黃色杜邦線將溫濕度傳感器中間的DAT 信號輸出端與擴展板的P0 引腳連接好,再分別用綠色和藍色杜邦線將超聲波傳感器的Trig 信號發射端、Echo 信號回聲端與擴展板的P1和P2 引腳連接好;最后,通過數據線將掌控板與電腦相連,通電待用(如圖1)。
在Mind+ 官網→教程→ 1.7 數據可視化→下載siot-win 壓縮包。解壓后運行其中的“start SIoT.bat”啟動服務,然后到瀏覽器中輸入本機IP 及端口(比如http://192.168.1.101:8080)訪問,在彈出的對話窗口中填寫賬號(siot)和密碼(dfrobot)等信息進行登錄后,點擊“新建主題(Topic)”項,輸入“光線數據”“聲音數據”“溫度數據”“濕度數據”和“超聲波數據”,建立好五個主題,分別對應掌控板自帶的光線傳感器、麥克風、DH11 溫濕度傳感器以及HC-SR04 超聲波傳感器數據主題的訂閱(如圖2)。
使用Mind+(V1.8.0 RC1.0),新建“微型大棚遠程監測”項目,開始圖形化編程:
在點擊左下角的“擴展”按鈕選擇“主控板”下的“掌控板”之后,再將“傳感器”中的“DHT11/22 溫濕度傳感器”和“超聲波測距傳感器”兩項加載,在“網絡服務”中將“MQTT”協議和“Wi-Fi”項加載;接著,在主界面中就會出現“ESP32 主程序”模塊,從左側“網絡服務”-“Wi-Fi”中選擇“Wi-Fi 連接到熱點:'' 密碼:‘'”模塊,將當前所使用的Wi-Fi 名稱(zyyz108)和密碼(zyyz0108)填寫好;再將“Wi-Fi 連接成功?”模塊嵌入至“等待直到”模塊,并且通過“屏幕顯示文字‘ WiFi連接成功! ' 在第2 行”模塊,控制掌控板的OLED 顯示屏的文字信息提示;接著, 從“ 網絡服務”-“MQTT” 中選擇“MQTT 初始化參數”模塊,點擊右側的小齒輪圖標進行各個參數的詳細設置——物聯網平臺:SIoT,服務器地址:192.168.1.101(與之前在瀏覽器中的訪問IP 地址相同),賬號和密碼與新建主題時相同(siot/dfrobot),點擊Topic 主題的加號直至出現0-4 共五個主題參數,分別將“siot/ 光線數據”“siot/聲音數據”和“siot/ 超聲波數據”等依次設置好。
然后,選擇“MQTT 發起連接”模塊,同樣再通過“屏幕顯示文字' MQTT 連接成功! ' 在第3 行”模塊,控制掌控板OLED 顯示屏的文字信息提示;建立“循環執行”結構,通過左側的“變量”-“新建字符串類型變量”建立“光線值”“聲音值”“溫度值”“濕度值”和“超聲波值”五個變量,并且分別將其值設置為:“讀取環境光強度”“讀取麥克風聲音強度”“讀取引腳P0 DHT11 溫度(℃)”“讀取引腳P0 DHT11濕度(%rh)”和“讀取超聲波傳感器距離單位(厘米)trig 為P1 echo 為P2”; 等待1 秒鐘之后,執行一組消息發送操作,均是通過MQTT 發送消息,分別將這五個變量所獲取的數據(字符串型)發送至Topic_0-Topic_4,并保存至數據庫。



保存好程序后,點擊左上角的“連接設備”項,再點擊右上角的“上傳至設備”項將程序上傳至掌控板(如圖3)。
此時,雖然掌控板已經開始監測產生并有數據發送,但還未進行可視化處理。點擊“可視化面板”項,在彈出的“Mind+ 數據可視化”窗口中進行基礎組件、顯示組件以及圖表組件等的設置:
選擇“文字”組件,將“組件標題”設置為“微型大棚遠程監測”,再將“內容”設置為“光線數據、溫度數據、濕度數據、聲音數據、超聲波數據”,字號和顏色均可自定義;再選擇“進度儀表盤”,將“組件標題”設置為“超聲波數據”,主題Topic 選擇對應的“siot/ 超聲波數據”,“組件單位”設置為“厘米”;其余四個主題分別選擇設置為:濕度數據“水波圖”、溫度數據“等級儀表盤”、光線數據“迷你面積圖”、聲音數據“折線圖”,并且分別將對應的主題Topic、數據單位、組件的寬度與高度以及當前顯示數據的數量等設置好,展示出數據可視化的實時效果(如圖4)。


此時,不管是掌控板的板載光線與麥克風傳感器,還是通過擴展板連接的溫濕度傳感器與超聲波傳感器,它們監測獲取的數據通過綁定的對應Topic 主題進行發送與接收,最終在Mind+ 的可視化面板上動態呈現出來。在掌控板的OLED 顯示屏有“Wi-Fi 連接成功!”“MQTT 連接成功!”的實時工作提示信息;同時在瀏覽器的“數據管理”頁面中,五個訂閱的主題也分別顯示有接收和發送的數據總數、最新數據以及對應的時間,可根據情況點擊“查看詳情”“清空數據”或“刪除”項進行對應的操作(如圖5)。