姜志憲 張偉 王福虎


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