劉孝趙
(蘇州經貿職業技術學院機電與信息技術學院,江蘇蘇州,215009)
基于ESP8266模塊的遠程數據采集系統設計
劉孝趙
(蘇州經貿職業技術學院機電與信息技術學院,江蘇蘇州,215009)
文章設計一種可以遠程采集和控制溫度濕度和控制燈光的智能家居系統,系統可以把通過ARM芯片采集的溫濕度數據發送到遠程監控的手機和平板電腦等移動終端上,并且用終端反向控制采集端。系統采用C語言和JAVA語言編程,用MDK5和eclipse等軟件進行調試。
數據采集;遠程控制;移動終端
隨著現代信息技術水平的提高,對遠程數據采集的需求也越來越高,本文將設計一個遠程溫濕度數據采集系統,可以用于智慧農業領域,更好的對農作物生長過程實時監控。本文采用TCP/IP協議對終端溫度和控制碼進行傳輸,建立遠程采集和控制流程,從而實現智能采集系統。采集端上有一個溫濕度傳感器(DHT11)和WIFI模塊ESP8266,數據使用WIFI模塊通過TCP/IP協議,將數據傳送到云端服務器的數據庫里,再采用移動終端提取數據庫的數據,并顯示在移動終端上,從而實現(溫度濕度)采集。
WIFI模塊選用的是ESP8266芯片,該芯片是一款高性能的UART-WIFI(串口-無線)模塊,該模塊串口與其他串口設備通信,內置TCP/IP協議,可以實現串口與WIFI之間的轉換。
ESP8266芯片采用TTL電平,支持與3.3V和5V的MCU控制器進行通信,模塊支持串口轉WIFI STA、串口轉AP和串口轉WIFI STA+AP三種模式。其中WIF STA模式相當于手機或者電腦里的無線網卡功能,可以連接到WIFI;AP模式相當于手機開熱點,會生成一個WIFI熱點供其它設備鏈接;WIFI STA+AP模式就是WIFI STA模式和AP模式的功能都有,最終通過WIFI STA模式連接一個有互聯網訪問的WIFI熱點,就可以實現串口設備訪問互聯網。
2.1 系統結構
本文的系統設計主要由采集終端,云端服務器端,移動終端組成。采集終端通過MCU對當前溫度濕度進行不斷的讀取,并且不斷的通過TCP/IP協議把數據發送到云服務器端,云服務器端把接收到的數據按順尋存到云服務器端的數據庫里,并且把最新的一條數據通過jason數據的格式顯示在服務器端的網頁上,移動端獲取云服務區端網頁的數據,并把數據顯示到移動端的屏幕上。從而實現溫濕度的遠程采集。
2.2 系統功能設計
移動端要想實時顯示數據采集端采集的數據,就必須要實現兩個功能,一個是能采集溫度數據,另一個把數據存儲在云服務端的數據庫里。
(1)溫度濕度采集功能,就是通過主控MCU采集到當前環境下的溫度數據。
(2)數據存儲功能,就是要把采集到的數據儲存在云服務器端的數據庫里,可供隨時查閱數據信息。
2.3 采集端的電路設計
采集端電路原理圖如圖1所示,電路主控MCU采用ARM公司的STM32F407芯片, STM34F407芯片是一款高性能的MCU,里面集成了AD采集,DA輸出,串口,IIC,SPI等片上外設。STM32F407的內核帶有FPU的ARM?32位Cortex?-M4CPU,主頻高達168MHz,具有DSO指令集。并且它有1MB的 Flash,192+4KB的SRMA,可以搭載外部的存儲控制器。它還有12個16位定時器,2個32位的高頻定時器,每個定時器都有4個輸入捕獲/輸出比較/PWM,或脈沖計數器與正交編碼器輸入。
在這個系統中,通過溫濕度傳感器采集溫濕度,然后用串口和WIFI模塊進行連接通信,把溫度和濕度傳給WIFI模塊,并且通過SPI把當前溫度濕度信息顯示在液晶彩屏上。

圖1 硬件電路圖
3.1 采集端的軟件設計
采集端主要由液晶顯示程序,WIFI模塊程序,溫濕度采集程序等組成。采用C語言編程,MDK5進行調試。ARM上電后,首先執行液晶顯示程序,對液晶進行初始化。然后通過串口對WIFI模塊進行操作,單片機首先選擇WIFI模塊的工作模式,這里我們用的是WIFI STA模式,然后開始連接WIFI,連接成功后再通過TCP/IP協議和云服務器建立連接,然后開始等待數據。最后通過溫濕度采集程序把數據發給WIFI模塊。
3.2 云服務器端的軟件設計
云服務器端采用的是阿里云服務器,服務器用的是LINUX操作系統,并且里面集成了tomcat,mysql和java等環境。這里采用阿里云服務器,主要是因為阿里云服務器可以免費選擇操作系統的運行環境,省去了自己配置服務器的步驟,可以更方便更簡潔的開發和調試代碼。并且阿里云價格便宜。
云服務器端由兩個程序組成,一個程序由Socket通信和jdbc驅動等組成。另一個程序主要由jdbc驅動和jason jar包組成。
在第一個程序中,通過Socket通信把采集端的數據接收過來,并且用jdbc的jar包操作云服務器上的mysql數據庫,把接收到的數據按照一定的格式存到數據庫中。另一個程序同樣通過jdbc的jar包操作mysql數據庫,把數據庫里的指定數據提取出來,通過jason的jar包把數據封裝成jason格式,并把它顯示在服務器的網頁上。
本設計的程序采用JAVA語言編寫,用Eclipse軟件進行編譯和調試。
3.3 移動端的軟件設計
移動端是用安卓編程,運行在安卓平臺的APP。它主要結合了HTTP協議和jason數據解析,從而實現了在安卓平臺上顯示出服務器端的數據。
移動端軟件的主流程如圖2所示。先通過HTTP協議中的get請求,得到服務器端的網頁數據,應為的到的網頁數據是jason格式的,所以通過掛載外部的jason jar包來解析jason數據。最后把解析到的數據顯示在移動端的屏幕上。本設計部分的程序是采用JAVA和XML語言編寫,用Android studio軟件進行編譯和調試。
本系統是通過Socket通信,HTTP協議等方法,把單片機采集到的溫濕度數據,發送到安卓平臺,從而初步實現智慧農業的構想。服務器端采用功能比較多的阿里云平臺,可以大幅度的減少開發的工作量。在開發過程中,使用一些jar包,也可以很大程度上降低開發難度。此套方案,可以滿足智能家居的要求,在開發過程中,也可以培養學生對通信技術,工業監控,物聯網等方面知識和興趣。

圖2 數據接收端流程圖
[1]鄒曙光.基于Android的嵌入式農業環境采集系統設計與實現[D].江西農業大學,2016.
[2]邱宏斌.一種基于ESP8266模塊的物聯網設計思路[J].電子世界,2017,(07):157.
Design of remote data acquisition system based on ESP8266 module
Liu Xiaozhao
(School of mechanical and electrical and information technology, Suzhou Institute of Trade and Commerce, Suzhou Jiangsu, 215009)
The design of an intelligent Home Furnishing system can remote data acquisition and control of temperature and humidity control system and lighting article, can put through the temperature and humidity data acquisition chip ARM sent to mobile phone and tablet computer and mobile terminal remote monitoring terminal, and reverse control collecting end. The system is programmed with C language and JAVA language,and debugged with MDK5 and eclipse software.
data acquisition; remote control; mobile terminal
劉孝趙(1983.05--),男,安徽六安人,實驗師,研究方向嵌入式技術應用 。