標(biāo)題: ESP8266的MQTT客戶端搭建教程(基于NONS_SDK_v2.0) [打印本頁]

作者: 小譚1111    時(shí)間: 2019-7-22 21:03
標(biāo)題: ESP8266的MQTT客戶端搭建教程(基于NONS_SDK_v2.0)
luck_horse

前言
MQTT是IBM開發(fā)的一個(gè)即時(shí)通訊協(xié)議,面向M2M和物聯(lián)網(wǎng)的連接,采用輕量級(jí)發(fā)布和訂閱消息傳輸機(jī)制,并且有可能成為物聯(lián)網(wǎng)的重要組成部分。
ESP8266是一款物美價(jià)廉的Wi-Fi芯片,集成Tensilica L106 鉆石系列的32 位處理器和片上SRAM,多達(dá)17 個(gè)GPIO口,并擁有IIC、IIS、UART、PWM、IR遙控等片上資源。
ESP8266還提供官方的軟件開發(fā)開發(fā)包(SDK),目前最新版本是「ESP8266 NONOS SDK V2.0.0」。
這篇文章主要講解如何使用ESP8266(基于NONS_SDK_v2.0)作為MQTT客戶端,并連上在本地電腦搭建的MQTT服務(wù)器。
開發(fā)環(huán)境
首先簡(jiǎn)單說明一下博主的開發(fā)環(huán)境:
提醒
閱讀本教程時(shí),如果有使用esp8266_nonos_sdk_v2.0.0的開發(fā)經(jīng)驗(yàn),會(huì)更輕松的使用本教程。如果遇到代碼編譯出錯(cuò)、燒寫下載不行以及下載后出現(xiàn)異常的問題,請(qǐng)先參考其他資料再繼續(xù)本文。
導(dǎo)入工程
本教程基于ESP8266 IDE 2.0,如果讀者使用一樣的環(huán)境,那么步驟1~4就好理解
在這個(gè)文件中,有幾個(gè)宏定義可能需要修改的:

MQTT_HOST:MQTT服務(wù)器地址
MQTT_PORT:MQTT服務(wù)器端口
MQTT_USER:MQTT服務(wù)器用戶名
MQTT_PASS:MQTT服務(wù)器密碼
STA_SSID:WI-FI帳號(hào)
STA_PASS:WI-FI密碼
注意
還有一個(gè)最重要的宏定義——CFG_HOLDER,因?yàn)檫@個(gè)MQTT示例在ESP8266運(yùn)行過一次后會(huì)把這些信息保存到FLASH中,如果要繼續(xù)修改這些信息,記得要修改CFG_HOLDER這個(gè)宏定義,改成另一個(gè)數(shù)值即可。

CFG_HOLDER作的用是:在CFG_Load函數(shù)中,如果發(fā)現(xiàn)從FLASH讀取出來的CFG_HOLDER數(shù)值和宏定義的不一樣,則會(huì)更新這些信息,并保存到FLASH中。不修改CFG_HOLDER的話可能會(huì)發(fā)覺明明用戶名和密碼都正確但是就是連接不上去。

修改代碼
根據(jù)上面分析,下面我們就可以修改示例代碼:
編譯下載
編譯,查看Console窗口,如果輸出
那說明代碼已經(jīng)編譯成功。另外要注意,ESP8266 SDK v2.0版本生成的eagle.irom0text.bin燒寫起始地址是0x10000,而之前的版本燒寫地址是0x40000;eagle.flash.bin還是0x00000。由于博主使用的是4MB Flash的ESP8266,所以也建議讀者先確定手頭的ESP8266是不是4MB Flash(即32Mbit Flash,注意單位!4MB=32Mbit,F(xiàn)lash一般是以bit計(jì)算!)
另外如果Problems窗口報(bào)Errors的,只要Console窗口編譯通過,就可以不用管。
下載配置,僅供參考:

其他全部資料51hei下載地址:
ESP8266_MQTT.7z (6.09 MB, 下載次數(shù): 105)

作者: jemery1030    時(shí)間: 2019-7-24 11:01
正在做MQTT 謝謝
作者: zmc419    時(shí)間: 2020-2-4 18:01
很好,先謝謝。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1