馬媛
(中煤科工集團西安研究院有限公司,陜西西安,710077)
近年來,物聯網技術在工業控制、智能家居、智慧城市及環境監控等領域得到了廣泛應用,融入了人們生活及生產的各個方面[1-3]。其中,WiFi技術具有傳輸距離遠、帶寬高、組網容易等優勢,因此更適合在物聯網技術實際應用場景中使用[4]。ESP8266模塊是樂鑫公司研發的一款WiFi芯片,在成本、功耗、可靠性及傳輸性能等方面具有一定的優勢,非常適合應用在高速數據傳輸、數字通信控制系統中。本文基于該ESP8266平臺設計了一套WiFi無線通信控制系統,可以滿足需要進行大量數據高速傳輸的應用場景。
本系統主要包括基于ESP8266模塊的硬件電路、手機終端及通信控制軟件,ESP8266模塊設置為AP模式,手機終端通過WiFi連接該熱點,運行在手機終端上的APP與無線模組建立服務器連接,從而實現手機終端與ESP8266無線通信模塊的指令配置及數據傳輸,系統設計總體框圖如圖1所示。

圖1 系統設計總體框圖
本系統基于STM32F103C8T6單片機作為硬件主控芯片搭建了最小系統電路,STM32單片機通過SPI接口與ESP8266模塊連接并實現查詢、配置、控制和數據通信的功能,系統同時包含電源電路及傳感器模塊等外圍電路,其設計框圖如圖2所示。

圖2 硬件設計框圖
STM32F103C8T6芯片是一款基于ARM Cortex-M3內核的32位微控制器,采用LQFP48封裝,由意法半導體公司推出,具有高性能,低功耗的特點[5]。內置閃存容量是64KB,SRAM容量是20KB,無需外擴存儲器。2個12bit ADC,37個通用I/O口,4個16bit通用定時器,2個看門狗定時器,2個I2C接口,2個SPI接口,3個USART接口,1個CAN接口,工作電壓2V~3.6V,工作溫度為-40℃~85℃,工作頻率最高可達72MHz,使用時可用內部分頻器生成自己需要的相應頻率。
本設計中主控模塊通過SPI接口與WiFi模塊相連,STM32F103C8T6芯片外部供電電壓3.3V,采用8M外部晶振作為系統時鐘,構成了如圖3所示的最小系統電路。

圖3 STM32F103C8T6最小系統電路
ESP8266是由樂鑫公司開發的一款WiFi芯片,作為高度集成的WiFi SoC解決方案,其低功耗、緊湊設計和高穩定性可以滿足用戶的需求。ESP8266模塊既可以獨立應用,也可以作為從機搭載于其他主機MCU運行。此外,ESP8266模塊只需通過SPI接口或者UART接口即可作為WiFi適配器,應用到基于任何微控制器的設計中[6-7]。
ESP8266模塊的主要特性包括:
(1)支持802.11b/g/n
(2)802.11n(2.4 GHz),速度高達 72.2Mbps
(3)2路虛擬Wi-Fi接口
(4)Beacon自動監測(硬件TSF)
(5)支持基礎結構型網絡Station模式/SoftAP模式/混雜模式
(6)天線分集
ESP8266模塊在低功耗及高集成度方面的特性保證了其典型應用僅需極少的外部電路,因此能將電路印制板的尺寸降到最小。如下表1所示為該模塊的主要技術參數。

表1 ESP8266模塊主要技術參數
本系統中ESP8266模塊供電電壓為3.3V,采用AP模式,由手機終端APP與該模塊連接通信,具體原理如圖4所示。

圖4 ESP8266電路設計原理
由于主控及ESP8266模塊均需3.3V供電,本系統輸入電源為5V,因此利用TPS82140電源芯片設計穩壓電路,為主控及WiFi模塊提供電源,保證系統正常運行,具體原理如圖5所示。

圖5 穩壓電路設計原理
傳感器模塊部分可根據用戶檢測的不同需求進行靈活更換,也可連接高精度AD模數轉換器進行過采樣,以滿足系統分辨率、動態范圍等性能指標的要求。
本系統的軟件部分包括兩方面,一是主控芯片對ESP8266模塊的初始化及配置,另一方面是手機終端APP的設計,主要功能是連接WiFi熱點服務器,完成手機APP與模塊之間的無線數據傳輸。
本系統中的單片機啟動后首先完成與WiFi模塊通信接口的初始化,創建與熱點之間的UDP通信連接,從而完成命令下發數據上傳的工作.整體工作流程如下圖6所示。

圖6 單片機配置8266模塊工作流程圖
本系統的上位機APP運行在基于安卓平臺的手機終端上,采用Android studio 3工具開發,編程語言為Java。該APP能夠通過WiFi熱點與下位機建立UDP點對點數據通信,完成對下位機指令及參數的下發位置,接收來自下位機的數據,實現雙向無線數據通信功能。具體的軟件工作流程如圖7所示。

圖7 手機APP設計流程圖
本文基于ESP8266模塊設計了一套無線通信系統,采用STM32低功耗單片機搭建最小系統電路,與WiFi模塊熱點建立了UDP數據通信,實現了手機APP與單片機之間的無線數據傳輸,本文所設計的無線通信系統能夠實現MCU與終端之間的高速數據傳輸,可以滿足數據采集、無線控制及智慧物聯等多種應用場景。