劉孝趙
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院機(jī)電與信息技術(shù)學(xué)院,江蘇蘇州,215009)
基于ESP8266模塊的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
劉孝趙
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院機(jī)電與信息技術(shù)學(xué)院,江蘇蘇州,215009)
文章設(shè)計(jì)一種可以遠(yuǎn)程采集和控制溫度濕度和控制燈光的智能家居系統(tǒng),系統(tǒng)可以把通過ARM芯片采集的溫濕度數(shù)據(jù)發(fā)送到遠(yuǎn)程監(jiān)控的手機(jī)和平板電腦等移動(dòng)終端上,并且用終端反向控制采集端。系統(tǒng)采用C語言和JAVA語言編程,用MDK5和eclipse等軟件進(jìn)行調(diào)試。
數(shù)據(jù)采集;遠(yuǎn)程控制;移動(dòng)終端
隨著現(xiàn)代信息技術(shù)水平的提高,對(duì)遠(yuǎn)程數(shù)據(jù)采集的需求也越來越高,本文將設(shè)計(jì)一個(gè)遠(yuǎn)程溫濕度數(shù)據(jù)采集系統(tǒng),可以用于智慧農(nóng)業(yè)領(lǐng)域,更好的對(duì)農(nóng)作物生長(zhǎng)過程實(shí)時(shí)監(jiān)控。本文采用TCP/IP協(xié)議對(duì)終端溫度和控制碼進(jìn)行傳輸,建立遠(yuǎn)程采集和控制流程,從而實(shí)現(xiàn)智能采集系統(tǒng)。采集端上有一個(gè)溫濕度傳感器(DHT11)和WIFI模塊ESP8266,數(shù)據(jù)使用WIFI模塊通過TCP/IP協(xié)議,將數(shù)據(jù)傳送到云端服務(wù)器的數(shù)據(jù)庫(kù)里,再采用移動(dòng)終端提取數(shù)據(jù)庫(kù)的數(shù)據(jù),并顯示在移動(dòng)終端上,從而實(shí)現(xiàn)(溫度濕度)采集。
WIFI模塊選用的是ESP8266芯片,該芯片是一款高性能的UART-WIFI(串口-無線)模塊,該模塊串口與其他串口設(shè)備通信,內(nèi)置TCP/IP協(xié)議,可以實(shí)現(xiàn)串口與WIFI之間的轉(zhuǎn)換。
ESP8266芯片采用TTL電平,支持與3.3V和5V的MCU控制器進(jìn)行通信,模塊支持串口轉(zhuǎn)WIFI STA、串口轉(zhuǎn)AP和串口轉(zhuǎn)WIFI STA+AP三種模式。其中WIF STA模式相當(dāng)于手機(jī)或者電腦里的無線網(wǎng)卡功能,可以連接到WIFI;AP模式相當(dāng)于手機(jī)開熱點(diǎn),會(huì)生成一個(gè)WIFI熱點(diǎn)供其它設(shè)備鏈接;WIFI STA+AP模式就是WIFI STA模式和AP模式的功能都有,最終通過WIFI STA模式連接一個(gè)有互聯(lián)網(wǎng)訪問的WIFI熱點(diǎn),就可以實(shí)現(xiàn)串口設(shè)備訪問互聯(lián)網(wǎng)。
2.1 系統(tǒng)結(jié)構(gòu)
本文的系統(tǒng)設(shè)計(jì)主要由采集終端,云端服務(wù)器端,移動(dòng)終端組成。采集終端通過MCU對(duì)當(dāng)前溫度濕度進(jìn)行不斷的讀取,并且不斷的通過TCP/IP協(xié)議把數(shù)據(jù)發(fā)送到云服務(wù)器端,云服務(wù)器端把接收到的數(shù)據(jù)按順尋存到云服務(wù)器端的數(shù)據(jù)庫(kù)里,并且把最新的一條數(shù)據(jù)通過jason數(shù)據(jù)的格式顯示在服務(wù)器端的網(wǎng)頁(yè)上,移動(dòng)端獲取云服務(wù)區(qū)端網(wǎng)頁(yè)的數(shù)據(jù),并把數(shù)據(jù)顯示到移動(dòng)端的屏幕上。從而實(shí)現(xiàn)溫濕度的遠(yuǎn)程采集。
2.2 系統(tǒng)功能設(shè)計(jì)
移動(dòng)端要想實(shí)時(shí)顯示數(shù)據(jù)采集端采集的數(shù)據(jù),就必須要實(shí)現(xiàn)兩個(gè)功能,一個(gè)是能采集溫度數(shù)據(jù),另一個(gè)把數(shù)據(jù)存儲(chǔ)在云服務(wù)端的數(shù)據(jù)庫(kù)里。
(1)溫度濕度采集功能,就是通過主控MCU采集到當(dāng)前環(huán)境下的溫度數(shù)據(jù)。
(2)數(shù)據(jù)存儲(chǔ)功能,就是要把采集到的數(shù)據(jù)儲(chǔ)存在云服務(wù)器端的數(shù)據(jù)庫(kù)里,可供隨時(shí)查閱數(shù)據(jù)信息。
2.3 采集端的電路設(shè)計(jì)
采集端電路原理圖如圖1所示,電路主控MCU采用ARM公司的STM32F407芯片, STM34F407芯片是一款高性能的MCU,里面集成了AD采集,DA輸出,串口,IIC,SPI等片上外設(shè)。STM32F407的內(nèi)核帶有FPU的ARM?32位Cortex?-M4CPU,主頻高達(dá)168MHz,具有DSO指令集。并且它有1MB的 Flash,192+4KB的SRMA,可以搭載外部的存儲(chǔ)控制器。它還有12個(gè)16位定時(shí)器,2個(gè)32位的高頻定時(shí)器,每個(gè)定時(shí)器都有4個(gè)輸入捕獲/輸出比較/PWM,或脈沖計(jì)數(shù)器與正交編碼器輸入。
在這個(gè)系統(tǒng)中,通過溫濕度傳感器采集溫濕度,然后用串口和WIFI模塊進(jìn)行連接通信,把溫度和濕度傳給WIFI模塊,并且通過SPI把當(dāng)前溫度濕度信息顯示在液晶彩屏上。
圖1 硬件電路圖
3.1 采集端的軟件設(shè)計(jì)
采集端主要由液晶顯示程序,WIFI模塊程序,溫濕度采集程序等組成。采用C語言編程,MDK5進(jìn)行調(diào)試。ARM上電后,首先執(zhí)行液晶顯示程序,對(duì)液晶進(jìn)行初始化。然后通過串口對(duì)WIFI模塊進(jìn)行操作,單片機(jī)首先選擇WIFI模塊的工作模式,這里我們用的是WIFI STA模式,然后開始連接WIFI,連接成功后再通過TCP/IP協(xié)議和云服務(wù)器建立連接,然后開始等待數(shù)據(jù)。最后通過溫濕度采集程序把數(shù)據(jù)發(fā)給WIFI模塊。
3.2 云服務(wù)器端的軟件設(shè)計(jì)
云服務(wù)器端采用的是阿里云服務(wù)器,服務(wù)器用的是LINUX操作系統(tǒng),并且里面集成了tomcat,mysql和java等環(huán)境。這里采用阿里云服務(wù)器,主要是因?yàn)榘⒗镌品?wù)器可以免費(fèi)選擇操作系統(tǒng)的運(yùn)行環(huán)境,省去了自己配置服務(wù)器的步驟,可以更方便更簡(jiǎn)潔的開發(fā)和調(diào)試代碼。并且阿里云價(jià)格便宜。
云服務(wù)器端由兩個(gè)程序組成,一個(gè)程序由Socket通信和jdbc驅(qū)動(dòng)等組成。另一個(gè)程序主要由jdbc驅(qū)動(dòng)和jason jar包組成。
在第一個(gè)程序中,通過Socket通信把采集端的數(shù)據(jù)接收過來,并且用jdbc的jar包操作云服務(wù)器上的mysql數(shù)據(jù)庫(kù),把接收到的數(shù)據(jù)按照一定的格式存到數(shù)據(jù)庫(kù)中。另一個(gè)程序同樣通過jdbc的jar包操作mysql數(shù)據(jù)庫(kù),把數(shù)據(jù)庫(kù)里的指定數(shù)據(jù)提取出來,通過jason的jar包把數(shù)據(jù)封裝成jason格式,并把它顯示在服務(wù)器的網(wǎng)頁(yè)上。
本設(shè)計(jì)的程序采用JAVA語言編寫,用Eclipse軟件進(jìn)行編譯和調(diào)試。
3.3 移動(dòng)端的軟件設(shè)計(jì)
移動(dòng)端是用安卓編程,運(yùn)行在安卓平臺(tái)的APP。它主要結(jié)合了HTTP協(xié)議和jason數(shù)據(jù)解析,從而實(shí)現(xiàn)了在安卓平臺(tái)上顯示出服務(wù)器端的數(shù)據(jù)。
移動(dòng)端軟件的主流程如圖2所示。先通過HTTP協(xié)議中的get請(qǐng)求,得到服務(wù)器端的網(wǎng)頁(yè)數(shù)據(jù),應(yīng)為的到的網(wǎng)頁(yè)數(shù)據(jù)是jason格式的,所以通過掛載外部的jason jar包來解析jason數(shù)據(jù)。最后把解析到的數(shù)據(jù)顯示在移動(dòng)端的屏幕上。本設(shè)計(jì)部分的程序是采用JAVA和XML語言編寫,用Android studio軟件進(jìn)行編譯和調(diào)試。
本系統(tǒng)是通過Socket通信,HTTP協(xié)議等方法,把單片機(jī)采集到的溫濕度數(shù)據(jù),發(fā)送到安卓平臺(tái),從而初步實(shí)現(xiàn)智慧農(nóng)業(yè)的構(gòu)想。服務(wù)器端采用功能比較多的阿里云平臺(tái),可以大幅度的減少開發(fā)的工作量。在開發(fā)過程中,使用一些jar包,也可以很大程度上降低開發(fā)難度。此套方案,可以滿足智能家居的要求,在開發(fā)過程中,也可以培養(yǎng)學(xué)生對(duì)通信技術(shù),工業(yè)監(jiān)控,物聯(lián)網(wǎng)等方面知識(shí)和興趣。
圖2 數(shù)據(jù)接收端流程圖
[1]鄒曙光.基于Android的嵌入式農(nóng)業(yè)環(huán)境采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].江西農(nóng)業(yè)大學(xué),2016.
[2]邱宏斌.一種基于ESP8266模塊的物聯(lián)網(wǎng)設(shè)計(jì)思路[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--),男,安徽六安人,實(shí)驗(yàn)師,研究方向嵌入式技術(shù)應(yīng)用 。