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

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

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

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

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

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

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

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

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