黃伊凡,廖順鑫,鄧大路,胡晉瑋,許 浩,李蘭英
(哈爾濱理工大學 計算機科學與技術學院,哈爾濱 150080)
隨著網絡和嵌入式技術的飛速發展,日常生活中的各種設備都逐漸接入網絡,在家中、辦公室和大街上各種智能網絡終端隨處可見。伴隨著新技術不斷涌現,新的網絡終端設備也在不斷更新。當今流行的很多終端設備或是功能全面但是價格高昂,或是只能通過手機操控,自身無信息顯示途徑。具體而言,各個產品的操縱入口較為分散,場景模式較為碎片化,子系統之間沒有聯通性,從而容易導致用戶對于設備智能化的體驗感不佳[1]。
本文研究的智能互聯終端輸入通過姿態控制,顯示技術受到了谷歌眼鏡啟發,選用分光棱鏡作為透明顯示屏。將天氣預報、相冊、視頻播放等多種用戶定制功能進行集成。為用戶提供一個人機界面設計新穎且用戶操作體驗良好的物聯網終端設備的新選擇。
本文所設計的姿態控制智能網絡終端設備是一款基于ESP32 處理器、LVGL 的小型終端系統,其硬件部分是一個具有顯示屏的桌面終端。該系統的開發由上位機和網絡終端2 部分組成。該終端設備可通過板載的ESP32 芯片進行網絡連接,獲取信息,然后通過分光棱鏡折射顯示屏顯示用戶所需信息。通過MPU-6050進行輸入操作控制,即終端設備通過晃動切換不同的應用界面。上位機與網絡終端通過串口通信連接,通過該上位機向硬件燒錄固件,進行固件更新。
姿態控制多功能智能網絡終端硬件系統設計包括2 部分:主板模塊和顯示模塊,主板模塊和顯示模塊各為一塊PCB 板。硬件系統結構如圖1 所示。

圖1 硬件系統結構框圖
樂鑫公司開發的ESP32 單片機具有高性能、超低功耗、高度集成、性能穩定且外設豐富等特點,其片上集成了Wi-Fi 和低功耗藍牙,不需要外加通信擴展模塊便可完成網絡通信。另外最高運行速度可達到240 MHz,擁有雙核處理器,在處理浮點數的運算方面具有很大的優勢[2]。ESP32 芯片還可以通過CP2102USB 轉UART 橋接器與PC 端進行串口通信,實現固件更新?;贓SP32 的強大性能,主板模塊采用ESP32 作為主控芯片,負責主邏輯處理、獲取姿態控制數據、網絡連接等。
獲取姿態控制數據由MPU-6050 傳感器實現。MPU-6050 傳感器體積小、靈敏度高、功耗低,同時MPU-6050 檢測精度高,因此通過MPU-6050 傳感器可以感知微小的動作變化[3],用于檢測本設備的運動信息。MPU-6050 集成了三軸陀螺儀和三軸加速度計。陀螺儀可測范圍±250、±500、±1 000、±2 000°/s,加速度計可測范圍為±2、±4、±8、±16 g。MPU-6050 數據寄存器的輸出范圍是-7FFF~7FFF,也即是-32767~32767[4]。通過測量得到加速度、角度信息,計算得出當前設備的運動姿態,進行輸入操作控制。
姿態控制多功能智能網絡終端設備以2.4 G Wi-Fi通信網絡為基礎,依托ESP32 自帶的Wi-Fi 模塊實現網絡連接。Wi-Fi 技術具有眾多優點:建設便捷,無線電波覆蓋范圍廣,傳輸速度快、可靠性強、健康安全且穿透性強[5]。
顯示模塊包含屏幕PCB、分光棱鏡,通過分光棱鏡折射IPS 顯示屏,使其營造出浮空效果。IPS 顯示屏是一款1.33 寸TFT 顯示屏,分辨率為240×240,由ST7789V 芯片驅動。
姿態控制多功能智能網絡終端軟件開發包括上位機和下位機2 部分??赏ㄟ^上位機向ESP32 燒錄固件,ESP32 可以通過網絡獲取數據,將信息顯示到顯示屏上。系統軟件設計包括3 部分:固件程序、上位機程序和多任務控制程序。
該網絡終端設備的固件程序為在ESP32 上所運行的固件程序。在PC 端編寫完代碼后,通過上位機程序將編譯后的二進制程序燒錄到ESP32 的板載Flash存儲器上。這樣設備即可在通電后自動運行其二進制程序,并完成所設計的功能。固件程序包含驅動層、數據處理層和定制化功能3 部分。
綜上所述,通過本文針對玉米大壟雙行密植高產栽培技術的分析,能夠進一步提高農民種植玉米的整體水平,保證玉米的增產增收,促進農民朋友的收入。
3.1.1 驅動層
驅動層包括MPU-6050 與顯示屏的驅動程序。代碼編寫環境基于VS Code 中的Platform-IO 環境,MPU-6050 類庫基于Arduino MPU-6050 庫、IIC 庫進行的二次開發。根據其需求分析,通過包裝其Arduino庫,創建的函數見表1。

表1 MPU-6050 的主要函數功能說明
系統上電后,首先調用Init 函數初始化MPU-6050,調用setOrder,設置當前相對方向。之后在輪詢系統中,調用Update 進行狀態更新。在Update 中調用GetVirtureMotion6,判斷其相對運動狀態。
顯示屏驅動以LVGL 庫和顯示屏的數據文檔,以及Arduino 官方庫中的ST7789 庫為主。即通過數據文檔對LVGL 進行初始化參數設置。通過Arduino 官方庫對顯示屏驅動ST7789 進行初始化和參數設定。顯示類函數見表2。

表2 顯示屏的主要函數功能說明
系統上電后,首先調用Init 函數初始化顯示屏、LVGL 參數,初始化完畢,進入輪詢狀態,重復routine函數,循環顯示當前緩存中存儲的顯示數據。
3.1.2 數據處理層
數據處理層主要為網絡數據處理。例如天氣app的獲取天氣函數為get_weather。其原理是通過樂鑫公司的Arduino espressif32 庫中的HTTPClient 庫進行數據獲取。選用的天氣信息獲取網頁為易客天氣api。請求方法為GET。
3.1.3 定制化功能
姿態控制多功能智能網絡終端設備可以實現多種定制化功能。包括:Wi-Fi 串流投屏功能,天氣預報、空氣質量、時鐘實時顯示功能,電子相冊功能和視頻播放功能等。
Wi-Fi 串流投屏功能的實現需要姿態控制功能切換到投屏軟件。在應用時,打開設備的網絡連接,使其與上位機連接在同一Wi-Fi 網絡中,通過ESP32 端連接與電腦端相同Wi-Fi 網段,ESP32 可開啟TCP 服務,并顯示IP 地址與端口號,與上位機進行連接。采用市面上的開源ESP32TFT 彩屏投屏程序,通過TCP 傳輸其PC 機選定的投屏范圍,采用單張圖片連續發送到顯示屏顯示的方式進行投屏。
天氣預報、空氣質量、時鐘實時顯示功能的實現需要打開天氣顯示軟件界面。進入界面后,設備首先進行網絡連接,與云服務器建立連接,然后獲取當前的IP地址、天氣預報、空氣質量和時間等信息,將獲取的信息顯示在顯示屏上。
電子相冊功能的實現需要將照片存儲到設備的存儲器中,通過姿態控制實現照片的查看。由于屏幕大小比例為1∶1,且分辨率為240×240,所以需要在播放圖片前對其進行分辨率縮放和比例切換。通過LVGL 自帶的圖片轉換工具進行轉換。
視頻播放功能實現終端設備的視頻文件播放。由于屏幕大小比例為1∶1,且分辨率為240×240,所以需要在播放視頻前對其進行分辨率縮放和比例切換。同時將常見的mp4 格式視頻轉換mjpeg 視頻格式。
上位機軟件采用Python 語言進行編寫,通過tkinter 庫進行GUI 設計,利用serial 庫進行串口信息獲取,采用樂鑫官方庫tool_esptoolpy 進行固件燒寫與定制化設計。該上位機基礎功能為串口通信、固件燒寫與消息日志顯示。通過上位機程序將整個固件程序燒寫到ESP32 中,實現定制化功能。
多任務控制系統部分采用樂鑫論壇中的app_controller 開源多任務控制器。通過時間戳形式執行多個事件。實現終端設備的多功能合理切換。多任務調度流程如圖2 所示。在setup 函數中進行app 加載,使控制器獲取app 的應用程序結構體信息,當程序執行到loop 函數時,控制器將運行當前進程。當獲取到進程切換命令,則調用當前函數退出函數,并依次運行下一個應用程序的初始化函數、入口函數,并進入該應用程序運行狀態。

圖2 多任務調度流程圖
該多任務控制器還提供massage 消息傳遞功能。該功能可以使app 通過massage 函數將數據發送到另一個app 中。目前主要通過該功能調用Wi-Fi 通信。即當app 需要調用Wi-Fi 連接網絡進行數據交換時,即可調用其通信函數發送參數。
系統測試包括:串口模塊及上位機測試,顯示屏測試,加速度傳感器測試,應用程序測試等。
首先將固件燒寫到下位機中,然后進行串口測試,結果如圖3 所示。圖3 中通過串口上位機可連續接收到不斷加1 的變量值。

圖3 串口測試結果
天氣app 運行情況測試結果如圖4 所示。顯示屏顯示正常。

圖4 天氣app 測試結果
用戶id 為88587742,用戶密碼為cVQ8Aq1o,版本標識v61,返回值轉義為中文,哈爾濱的城市id 為101050101 則請求鏈接為
https://yiketianqi.com/api?unescape=1&version=v61&appid =88587742&appsecret =cVQ8Aq1o&cityid =101050101
相冊程序測試結果如圖5 所示。

圖5 相冊測試結果
視頻播放測試結果如圖6 所示。圖中截取了幾張連續的圖片。

圖6 視頻測試結果
本文設計與實現了一個姿態控制多功能智能網絡終端設備,提出了一種基于物聯網技術和嵌入式技術的多功能智能網絡終端系統的設計方案,給出了智能網絡終端的軟硬件設計方法。該系統采用新穎的姿態控制功能切換和TFT 浮空顯示,可實現多種定制功能,如查看天氣預報、空氣質量等信息,電子相冊、視頻播放等。測試結果表明:本文所設計的智能網絡終端運行穩定、可靠、用戶體驗良好。