久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5774|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

ESP8266的MQTT客戶端搭建教程(基于NONS_SDK_v2.0)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:583158 發(fā)表于 2019-7-22 21:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
luck_horse

前言
MQTT是IBM開發(fā)的一個即時通訊協(xié)議,面向M2M和物聯(lián)網(wǎng)的連接,采用輕量級發(fā)布和訂閱消息傳輸機制,并且有可能成為物聯(lián)網(wǎng)的重要組成部分。
ESP8266是一款物美價廉的Wi-Fi芯片,集成Tensilica L106 鉆石系列的32 位處理器和片上SRAM,多達17 個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)境
首先簡單說明一下博主的開發(fā)環(huán)境:
  • ESP8266開發(fā)環(huán)境:ESP8266 IDE 2.0
  • ESP8266 SDK版本:esp8266_nonos_sdk_v2.0.0_16_08_10_0
  • MQTT服務(wù)器:Apollo 1.7.1(本地搭建)
  • 操作系統(tǒng):64位 Win10系統(tǒng)
  • ESP8266開發(fā)板:NodeMCU(4MB Flash)
提醒
閱讀本教程時,如果有使用esp8266_nonos_sdk_v2.0.0的開發(fā)經(jīng)驗,會更輕松的使用本教程。如果遇到代碼編譯出錯、燒寫下載不行以及下載后出現(xiàn)異常的問題,請先參考其他資料再繼續(xù)本文。
導(dǎo)入工程
本教程基于ESP8266 IDE 2.0,如果讀者使用一樣的環(huán)境,那么步驟1~4就好理解
  • 在這個文件中,有幾個宏定義可能需要修改的:
    MQTT_HOST:MQTT服務(wù)器地址MQTT_PORT:MQTT服務(wù)器端口MQTT_USER:MQTT服務(wù)器用戶名MQTT_PASS:MQTT服務(wù)器密碼STA_SSID:WI-FI帳號STA_PASS:WI-FI密碼注意 還有一個最重要的宏定義——CFG_HOLDER,因為這個MQTT示例在ESP8266運行過一次后會把這些信息保存到FLASH中,如果要繼續(xù)修改這些信息,記得要修改CFG_HOLDER這個宏定義,改成另一個數(shù)值即可。
    CFG_HOLDER作的用是:在CFG_Load函數(shù)中,如果發(fā)現(xiàn)從FLASH讀取出來的CFG_HOLDER數(shù)值和宏定義的不一樣,則會更新這些信息,并保存到FLASH中。不修改CFG_HOLDER的話可能會發(fā)覺明明用戶名和密碼都正確但是就是連接不上去。
在這個文件中,有幾個宏定義可能需要修改的:

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

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

修改代碼
根據(jù)上面分析,下面我們就可以修改示例代碼:
  • 把STA_SSID和STA_PASS修改為自己的WiFI名和密碼;
  • 修改MQTT_USER和MQTT_PASS為對應(yīng)的MQTT服務(wù)器的用戶名和密碼,Apollo服務(wù)器默認(rèn)是admin和password;
  • 修改MQTT_HOST和MQTT_PORT為MQTT服務(wù)器IP和PORT,目前是使用本地的MQTT服務(wù)器,所以是修改為自己電腦的IP和61613端口,PORT是整型值;
  • 根據(jù)MQTT服務(wù)器的協(xié)議不同,可能需要使用MQTT v3.1.1版本,所以把PROTOCOL_NAMEv31注釋掉,使用PROTOCOL_NAMEv311。源碼的PROTOCOL_NAMEv311前面沒有#define,自己加上就行。
  • 最后,修改CFG_HOLDER,以讓這些配置生效,直接給原來CFG_HOLDER定義的數(shù)值加1即可。
編譯下載
編譯,查看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計算!)
另外如果Problems窗口報Errors的,只要Console窗口編譯通過,就可以不用管。
下載配置,僅供參考:

其他
  • 【MQTT服務(wù)器】MQTT服務(wù)器Apollo下載地址:activemq.apacheorg/apollo/download.html
  • 【ESP8266 IDE]  供大家下載:鏈接:https://pan.baidu.com/s/1c2tBHW8 密碼: qyjs

全部資料51hei下載地址:
ESP8266_MQTT.7z (6.09 MB, 下載次數(shù): 105)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:585455 發(fā)表于 2019-7-24 11:01 | 只看該作者
正在做MQTT 謝謝
回復(fù)

使用道具 舉報

板凳
ID:137736 發(fā)表于 2020-2-4 18:01 來自手機 | 只看該作者
很好,先謝謝。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 伊人二区 | 涩涩视频大全 | 久久久久久久国产 | 久久躁日日躁aaaaxxxx | 日韩精品在线观看视频 | 欧美在线亚洲 | 久久久久亚洲av毛片大全 | 欧美在线视频网站 | 成人国产精品久久久 | 久久久久亚洲精品中文字幕 | 国产精品一区二区三区久久 | 一级免费毛片 | 色黄爽 | 综合精品在线 | 国产美女自拍视频 | 国产精品欧美一区喷水 | 男人天堂手机在线视频 | a视频在线观看 | 视频一区二区在线 | 国产三级精品三级在线观看四季网 | 午夜一区二区三区视频 | 国产69久久精品成人看动漫 | 国产久视频 | 亚洲精品一区中文字幕乱码 | 国产精品久久久久婷婷二区次 | 99久久国产精 | www.国产精品| 日本欧美国产 | 成人福利视频 | 亚洲区一区二区 | 国产1区2区 | www.99热.com | 国产黄色精品在线观看 | 国产 日韩 欧美 制服 另类 | 日韩三级 | 精品久久久久久 | 久久久久久久久久久久久九 | 亚洲a在线观看 | 中国一级特黄毛片大片 | 一区二区三区观看视频 | 国产99久久精品一区二区300 |