,,,,
(濮陽市質量技術監督檢驗測試中心,濮陽 457000)
ESP8266的無線光色電測試系統設計
焦再峰,胡興彬,鞏合春,霍磊,時曉紅
(濮陽市質量技術監督檢驗測試中心,濮陽 457000)
ESP8266是一款高性能無線芯片,在家居自動化、可穿戴設備、工業無線控制等領域都有廣泛的應用。本系統以TFT觸摸屏作為用戶顯示界面,檢測命令和檢測數據在TFT觸摸屏進行顯示,以Arduino Leonardo平臺作為主控模塊,ESP8266作為與功率計和光譜儀的無線通信接口,通過ESP8266進行命令和數據的透傳,解決了檢測設備的無線通信問題。
ESP8266;Arduino;TFT觸摸屏
隨著無線技術的不斷成熟,WiFi技術的應用越發普及,為人們的日常生活提供了極大的便利。樂鑫公司開發的ESP8266對WiFi技術的發展具有強力的推動作用,但是WiFi技術在檢測領域的應用相對滯后,故本文開發了一種基于ESP8266無線光色電測試系統,對檢測設備無線化進行探索。
如圖1所示,本無線光色電測試系統由 TFT觸摸屏、Arduino 主控模塊、 ESP8266模塊、功率計、光譜儀組成。由于本設計中顯示內容為光電參數,且主要為字符,故TFT觸摸屏僅采用了一塊320×240的彩屏,Arduino 主控模塊是本系統的核心部分,負責對功率計和光譜儀下發動作指令,并對功率計和光譜儀上傳的檢測數據進行處理,在TFT觸摸屏上進行顯示。系統整體設計方案如圖1所示。

圖1 系統整體設計方案
Arduino是當下最流行的開源硬件開發平臺,因其簡單的開發過程和較短的開發周期,被廣泛應用在硬件開發上。本系統采用Arduino Leonardo平臺作為主控模塊,Arduino Leonardo是一款基于Atmega32U4的微控制器板,擁有12個模擬輸入引腳、7個PWM 輸出引腳、1個DC接口、1個Micro USB接口、1個ICSP接口。EEPROM空間為1 KB,SRAM空間為2.5 KB,Flash空間為32 KB,其中有4 KB由引導程序占用,時鐘速度為16 MHz。
Arduino Leonardo可以通過Arduino IDE軟件來編程,Arduino Leonardo的Atmega32U4芯片燒寫了bootloader程序,使其不通過外部硬件編程器也可以向Arduino Leonardo上傳新的程序,簡化了開發的過程。
本系統顯示部分采用分辨率為320×240的TFT觸摸屏,該屏采用三星S6D1121控制器,該控制器有1.38 MB的顯示RAM和一整套控制功能,數據口采用8位模式,工作電壓VCC為+3.3 V,由Arduino Leonardo提供,其芯片引腳定義如圖2所示。

圖2 S6D1121引腳定義

圖3 ESP8266外圍電路
S6D1121與Arduino Leonardo連接的引腳定義代碼如下:
#define LCD_CS A3 //片選
#define LCD_RS A2 //寄存器選擇
#define LCD_WR A1 //寫命令
#define DB0 8 #define DB1 9 #define DB2 10 #define DB3 11
#define DB4 4 #define DB5 13 #define DB6 6 #define DB7 7
2.3.1 設計思路
本系統設計采用無線通信方式實現設備互聯,ESP8266是一個完整而且自成體系的 WiFi單片網絡解決方案,即ESP8266一個芯片集成了單片機+WiFi兩部分功能。
ESP8266具有強大的數據存儲和處理能力,一般情況下,采用ESP8266開發產品或設備有兩種設計思路:第一種,ESP8266模塊僅用作網絡通信接口,完成信息的無線傳輸,ESP8266模塊與外部單片機通過串口TXD/RXD進行通信,外部單片機向ESP8266模塊發送AT命令,對ESP8266模塊進行操作;第二種,在ESP8266模塊上直接進行二次開發,ESP8266內部集成單片機,通過I/O口直接控制MOS開關管、傳感器、繼電器等外圍器件或電路。第一種設計思路開發周期短、擴展能力強,適用于通信較為復雜的系統,但成本相對較高;第二種設計思路,適用于控制電路簡單、設計要求低成本的情況,但用戶開發難度大,本系統設計采用第一種設計思路。
2.3.2 工作模式
ESP8266支持AP、station、AP+station三種工作模式。AP即無線接入點,具備無線至有線的橋接功能的設備稱為接入點,例如路由器、Station即無線終端,配備無線網絡接口的設備都可作為終端,例如手機、筆記本電腦等。故利用ESP8266可以靈活地實現設備之間的互聯互通。本系統設計采用圖1所示的無線連接方式,即與Arduino Leonardo連接的ESP8266作為AP,功率計和光譜儀作為station。
2.3.3 透傳功能
透傳即透明傳輸。本系統中,Arduino Leonardo通過UART將命令發給ESP8266,ESP8266再通過無線網絡將數據傳出去;ESP8266通過無線網絡接收到的數據,同理通過UART傳到Arduino Leonardo。此過程中,ESP8266作為數據傳輸的媒介,負責將數據傳到目標地址,不對數據進行處理。
2.3.4 電路設計
ESP8266外圍電路如圖3所示。
ESP8266與Arduino Leonardo直接通過串口進行連接,即8266TXD/8266RXD分別與Arduino Leonardo的RXD/TXD連接。為了節約開發成本和縮短開發時間, ESP8266與功率計和光譜儀的連接在功率計和光譜儀原本的基礎上進行改造,功率計和光譜儀原本的通信接口為Type-B USB母頭,故ESP8266與功率計和光譜儀連接時,CH340G外圍電路如圖4所示,USB接口采用與功率計和光譜儀相配套的Type-B USB公頭,USB轉串口采用CH340G芯片,CH340G芯片的TXD/RXD分別與8266RXD/8266TXD連接。PL3500外圍電路如圖5所示,LDO芯片采用PL3500,為CH340G和ESP8266提供+3.3 V工作電平。

圖4 CH340G外圍電路

圖5 PL3500外圍電路
TFT觸摸屏提供人機交互界面,對光譜儀下發命令的操作界面如圖6所示。光譜儀和功率計反饋的檢測數據在TFT觸摸屏上進行顯示,檢測數據顯示界面如圖7所示。

圖6 下發命令操作界面

圖7 檢測數據顯示界面
Arduino Leonardo把ESP8266設置為AP模式,SSID設為ESP8266-Arduino,密碼為12345678,模塊本身IP地址為192.168.4.1,其端口號設置為8266,設置AP模式的程序如下:
voidwifi_set_apmode(){
Serial.begin(115200); //波特率
Serial.flush();
Serial.println("AT");
delay(10);
Serial.println("AT+CIPMODE=2"); //AP模式
delay(10);
Serial.println("AT+CWSAP="ESP8266-Arduino","12345678",11,0"); //AP模式
delay(10);
Serial.println("AT+CIPMUX=1"); //多鏈接
delay(10);
Serial.println("AT+CIPSERVER=1,8266");//設置端口號
delay(10);
}
功率計和光譜儀作為station,在原有程序的基礎上增加wifi_set_stationmode()函數,此函數功能是功率計和光譜儀對ESP8266發送AT指令,將其設置為station工作模式,然后根據上述AP模塊的SSID、密碼設置station接口配置參數,并接入上述AP,主要命令為:
wifi_set_CIPMODE1();
wifi_set_SSID();
wifi_set_password();
wifi_set_IP();
本文設計了基于ESP8266的無線光色電測試系統,以Arduino Leonardo平臺作為主控模塊,ESP8266作為無線通信接口,結合透傳功能,在原功率計和光譜儀的基礎上完成了檢測設備的無線化改造。該系統在實際檢測過程中,實現了對功率計和光譜儀的無線控制以及檢測數據的無線傳輸,對WiFi技術在檢測領域的應用具有
DesignofWirelessColorLightElectricalMeasurementSystemBasedonESP8266
JiaoZaifeng,HuXingbin,GongHechun,HuoLei,ShiXiaohong
(Puyang Quality and Technical Supervision Inspection and Testing Center,Puyang 457000,China)
The ESP8266 is a high-performance wireless chip,which is widely used in home automation,wearable equipment,industrial wireless control and other fields.The system uses a TFT touch screen as a user interface,on which testing commands and data can be displayed.The Arduino Leonardo platform is used as the main control module.The ESP8266 works as the interface of the power meter and the spectrometer,and testing commands and data can be transfered through the ESP8266 to solve the wireless communication problem of the testing equipment.
ESP8266;Arduino;TFT touch screen
TP393
A