姜志憲 張偉 王?;?/p>
摘 要:設(shè)計(jì)一款由STM32+ESP8266組成的物聯(lián)網(wǎng)控制器,通過TCP/IP網(wǎng)絡(luò)協(xié)議與OneNET平臺完成通信傳輸。STM32采集并發(fā)送控制指令給ESP8266,完成與OneNet平臺的相互訂閱。最終手機(jī)端APP達(dá)到查看并控制設(shè)備狀態(tài)的功效。
關(guān)鍵詞:STM32;ESP8266;OneNET;控制器
近年來,隨著計(jì)算機(jī)技術(shù)、嵌入式技術(shù)、網(wǎng)絡(luò)通信技術(shù)的發(fā)展,物聯(lián)網(wǎng)也越發(fā)變成社會的討論的焦點(diǎn)。萬物互聯(lián)已經(jīng)成為未來社會發(fā)展的趨勢,智能交通、人工智能、工業(yè)自動化及某些公共服務(wù)設(shè)備都可以通過網(wǎng)絡(luò)成為有機(jī)的整體。物聯(lián)網(wǎng)正在改變?nèi)藗兊纳?,改變著整個(gè)世界[1]。
1 總體設(shè)計(jì)
控制器主要由ESP8266模組和STM32兩部分組成,ESP8266與OneNet平臺信息交互是基于MQTT協(xié)議的。STM32通過UART與ESP8266完成通信,確保物聯(lián)網(wǎng)控制器接入網(wǎng)絡(luò)并接入OneNet平臺。最終,手機(jī)APP端與控制器通過OneNet平臺完成相互訂閱,進(jìn)行信息轉(zhuǎn)換發(fā)送。物聯(lián)網(wǎng)控制器的總體設(shè)計(jì)框圖如圖1所示。
2 硬件設(shè)計(jì)
2.1 主控芯片選型
主控芯片采用意法半導(dǎo)體的STM32芯片,該芯片工作電壓為3.3V,其I/O接口多達(dá)64個(gè),驅(qū)動電壓為3.3V、5V,支持IIS、JTAG/SW、FSMC、PWM等外圍設(shè)備,豐富的外設(shè)不但滿足本次開發(fā)的需求,也滿足后期設(shè)備升級換代的空間[2]。
2.2 通信模塊
該控制器的通信模塊采用岳鑫的ESP8266的WIFI模塊,ESP8266是一款物聯(lián)網(wǎng)芯片,因?yàn)閮r(jià)格較低,性能穩(wěn)定等受到很大關(guān)注。該芯片可工作于三種種模式下,分別是:AP模式,station模式以及混合模式,通過常用的AT指令進(jìn)行控制。STM32與ESP8266就是通過AT指令完成控制的,并使得控制器最終完成聯(lián)網(wǎng)[3]。
3 軟件設(shè)計(jì)
控制器的軟件部分主要是對STM32芯片進(jìn)行編程,主控芯片通過AT指令控制ESP8266完成控制器聯(lián)網(wǎng)并接入OneNet平臺??刂破魃想姾筮M(jìn)入初始化階段完成各項(xiàng)參數(shù)的初始化,控制器可以通過APP完成聯(lián)網(wǎng),同時(shí)實(shí)時(shí)回傳數(shù)據(jù)到服務(wù)器,APP可以及時(shí)查看相關(guān)的數(shù)據(jù),同時(shí)通過APP也能遠(yuǎn)程向ESP8266發(fā)送信息,控制系統(tǒng)軟件流程如圖2所示。
系統(tǒng)調(diào)試。系統(tǒng)調(diào)試主要完成物聯(lián)網(wǎng)控制器和手機(jī)端APP在OneNet端完成互相訂閱,以保證雙方的通信可以正常完成。物聯(lián)網(wǎng)控制器端與OneNet端建立鏈接初始化程序如下:
void OneNetIoT_Parameter_Init(void)
{
memset(ClientID,128,0);//緩沖區(qū)清零
sprintf(ClientID,"%s",DEVICEID);//構(gòu)建客戶端ID
ClientID_len = strlen(ClientID); //計(jì)算客戶端ID的長度
memset(Username,128,0); //用戶名的緩沖區(qū)全部清零
sprintf(Username,"%s",PRODUCTID); //構(gòu)建用戶名,并存入緩沖區(qū)
Username_len = strlen(Username); //計(jì)算用戶名的長度
memset(Passward,128,0); //用戶名的緩沖區(qū)全部清零
sprintf(Passward,"%s",AUTHENTICATION); //構(gòu)建密碼,并存入緩沖區(qū)
Passward_len = strlen(Passward); //計(jì)算密碼的長度
memset(ServerIP,128,0);
sprintf(ServerIP,"%s","183.230.40.39"); //構(gòu)建服務(wù)器域名
ServerPort = 6002; //服務(wù)器端口號6002
}
初始化完成后,通過手機(jī)APP完成與OneNet建立鏈接,調(diào)試結(jié)果證明物聯(lián)網(wǎng)控制器和手機(jī)端APP可以完成相互信息的傳遞,效果較好。
4 結(jié)語
本文介紹了由STM32+ESP8266構(gòu)成的物聯(lián)網(wǎng)控制器,設(shè)計(jì)主要從軟件和硬件兩個(gè)方面入手,控制器的改進(jìn)空間還很大,還需要繼續(xù)研究?;谖锫?lián)網(wǎng)平臺的設(shè)備會越來越受到大家的重視和認(rèn)可,因此應(yīng)用前景還是十分廣闊的。
參考文獻(xiàn):
[1]羨慧竹.基于物聯(lián)網(wǎng)的智能網(wǎng)關(guān)系統(tǒng)研究與實(shí)現(xiàn)[D].北京工業(yè)大學(xué),2014.
[2]楊歡歡.基于STM32的溫室遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)[D].杭州電子科技大學(xué),2015.
[3]范興隆.ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(09):52-56.