中國礦業大學(北京)機電與信息工程學院 羅 章 賈程乾 于津瓔 李佩錦 甘琳巧 劉 帥
該采集終端是為各種變送器配套設計的無線信號采集裝置。主要針對外部變送器采集物理信號后轉換得到的電信號,在ARM系統控制下,借助ESP8266模塊轉換為Wi-Fi信號,通過無線局域網將數據傳送到上位機,最后由上位機相匹配的軟件對數據進行處理。實現了外部物理信號的實時監測。
引言:在工農業生產及日常生活中,對于各種信號(如溫度、濕度、壓力、流量等)的采集非常廣泛。傳統信號采集中采用人工測量及有線傳輸方式有諸多弊病,浪費人力成本,容易出錯,布局布線困難等。針對上述問題,結合信號采集無線化的發展方向,本文設計了基于Wi-Fi模塊ESP8266的信號采集終端,實現了采集信號的無線傳輸。
該信號采集終端結構框圖如圖1所示,主要包括ARM主控芯片、Wi-Fi模塊及電源電路。ARM主控芯片是采集終端的控制中心,負責實現信號的采集、處理與傳輸等,通過UART通用異步收發傳輸器在主控ARM芯片與ESP8266之間進行串口數據傳輸,Wi-Fi模塊實現內部電信號與無線Wi-Fi信號的相互轉換,電源電路為各功能模塊及需要供電的外接傳感器系統供電。

圖1 信號采集終端結構圖
該采集系統的主控芯片選用了STM32F103C8T6,該芯片是一款基于ARM Cortex-M 內核STM32系列的32位的微控制器,程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度為-40°C~85°C。主控芯片外部接有晶振(8MHZ)、復位及輸入輸出電路,如圖2所示。STM32F103C8T6的IO口被其相應的功能占用一部分,外部變送器的OUT端輸出口與STM32F103C8T6未占用的IO口連接,進行ADC模數轉換,圖中A1、A2為兩個模擬量輸入口,D1、D2為兩個數字量輸入口,輸入端(RXD0)與輸出端(TXD0) 兩個串口分別與ESP8266的串口TXD1、RXD1連接,建立數據通信渠道。ADC采樣的參考電壓為3.3V,分辨率為12位,這樣模擬信號就轉換為數字信號。ARM主控芯片又通過硬件UART收發傳輸器將數字量傳輸到ESP8266芯片中。

圖2 STM32F103C8T6接口電路圖
Wi-Fi模塊采用樂鑫公司的ESP8266模塊,ESP8266系列芯片是樂鑫信息科技在2015年推出的Wi-Fi芯片,該芯片憑借其高集成度、低功耗和易用性在物聯網應用領域獲得了肯定,是實現基于Wi-Fi遠程控制最好選擇。ESP8266是一款串口轉Wi-Fi 的透傳模塊,支持soft AP模式、station模式、或者soft AP +station共存模式(曹振民,陳年生,馬強,武凌,武婧.基于ESP8266的無線控制電路設計[J].工業控制計算機,2017,30(01):68-69)。這里采用station模式,即把ESP8266當作一個客戶端,可將其連接到Wi-Fi無線網絡上,進行互聯網或局域網通信,實現聯網功能。ESP8266的接口電路設計如圖3所示,其串口輸入端(RXD1)、輸出端(TXD1)分別與ARM芯片STM32F103的串口輸出端、輸入端連接,其復位端(RST)直接連接至ARM芯片的復位端。

圖3 Wi-Fi模塊接口電路圖
ESP8266的Wi-Fi模塊與無線路由器或者無線熱點連接有兩種連接方式。一種是直接通過軟件編程,在程序中設置無線路由器或者無線熱點的網絡名稱、密匙、網關和掩碼,程序載入運行之后即可連接;另一種是先通過手機連接同一路由器或者無線熱點,再在手機上通過配用的APP軟件給ESP8266的Wi-Fi 模塊發送路由器或者無線熱點的密碼進行智能連接,這樣也可使ESP8266模塊與無線網絡連接起來。
電源電路如圖4所示,3.3V穩壓芯片AMS117-3.3給ARM芯片、Wi-Fi模塊供電,同時留出外接引出端,給外接的需3.3V電壓供電的傳感器系統供電。另外5V穩壓芯片ASM117-5提供了5V電壓,可以給外接需5V電壓供電的傳感器系統供電。整個信號采集終端采用電池供電方式,供電范圍6V~18V之間,可采用鋰電池串聯供電。

圖4 電源電路圖
UDP中文名是用戶數據包協議,是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,即一種簡單的網絡通訊協議(黃玉金,楊越,薛偉,張天成.無線模塊的AT指令UDP透傳設計[J].電子產品世界,2018,25(01):34-36+33)。
ESP8266的UDP傳輸方式分為兩種:UDP限定透傳、UDP自由傳輸。UDP自由傳輸不能使用透傳模式,但是可以給任意UDP主機發送數據,改變設定的UDP主機端口號即可。UDP限定透傳可以使用透傳模式,但是只能限定一個遠程UDP主機,事先設定好端口號不能更改,因此不能給其他的UDP主機發送,即一對一的數據傳輸方式。
UDP傳輸模式的基本框圖如圖5。通過將ESP8266模塊與上位機連入同一個路由器中,ESP8266模塊與上位機構成一個小型的無線局域網,這樣就搭建好了數據通訊的環境,可以實現上位機與ESP8266直接進行數據傳輸。

圖5 無線局域網傳輸模式示意圖
云服務器是一種簡單高效、安全可靠、處理能力可彈性伸縮的計算服務,其管理方式比物理服務器更簡單高效。當上位機或手機無法與開發板連接到同一路由器上時,UDP傳輸模式就無法再發揮作用,此時我們可以選用云服務器模式來實現異地遠程的數據傳輸。
該采集終端選擇的云服務器有Yeelink云服務器和OneNet云服務器,基本結構框圖如圖6所示。云服務器模式的數據傳輸中,先將ESP8266的Wi-Fi模塊與路由器或無線熱點連接,再在軟件編程中用void Load_Net_Parameters(void)這個函數設置網絡參數以及工作模式,選用好合適的參數后下載到數據采集終端的ARM主控芯片中。接著我們要聯網的上位機登錄相關的云服務器,注冊并登錄自己的賬號,在賬號中添加自己需要的設備信息并且建立一個接受上傳數據的設備,這樣我們就可以看到上傳數據的圖表了。

圖6 云服務器傳輸模式示意圖
該采集終端連接的上位機軟件,可以根據外部采集的物理信號進行相應的設計,按照用戶需求定制界面,本文不做詳細介紹。這里主要介紹作為下位機的采集終端內針對ARM主控芯片和Wi-Fi模塊的軟件編程。

圖7 軟件設計流程圖
下位機軟件通過Keil 軟件進行編寫調試和燒錄。主體程序流程圖如圖7所示。該采集終端軟件編程中,首先設置好ESP8266的協議(UDP)和工作模式,配置Wi-Fi連接的信息,設置好相應的主機IP地址,連接好網絡后就能進行數據傳輸了。軟件中按照設置好的采樣間隔觸發定時器中斷,然后對輸入的模擬信號利用ARM主控芯片進行ADC采樣,獲取模擬輸入端口采集到的數據信號,最后通過串口讀寫將數據發送到ESP8266模塊,按照Wi-Fi模式向上位機或云服務器進行無線傳輸。
通過實驗測試,按照上述方法構建的采集終端性能穩定,可靠地實現了多路變送器物理信號的實時采集與無線傳輸。由于采用了通用無線路由器進行網絡連接,設備組網靈活,可根據需要進行本地數據采集,或云端遠程傳輸。通過采用更高主頻的ARM主控芯片還可進一步提升數據采集速度,并在采集終端完成一些數據分析處理功能。可見這種無線信號采集終端簡便易行,穩定可靠,有著很好的應用前景。