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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5901|回復: 2
收起左側

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

[復制鏈接]
ID:583158 發表于 2019-7-22 21:03 | 顯示全部樓層 |閱讀模式
luck_horse

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

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

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

修改代碼
根據上面分析,下面我們就可以修改示例代碼:
  • 把STA_SSID和STA_PASS修改為自己的WiFI名和密碼;
  • 修改MQTT_USER和MQTT_PASS為對應的MQTT服務器的用戶名和密碼,Apollo服務器默認是admin和password;
  • 修改MQTT_HOST和MQTT_PORT為MQTT服務器IP和PORT,目前是使用本地的MQTT服務器,所以是修改為自己電腦的IP和61613端口,PORT是整型值;
  • 根據MQTT服務器的協議不同,可能需要使用MQTT v3.1.1版本,所以把PROTOCOL_NAMEv31注釋掉,使用PROTOCOL_NAMEv311。源碼的PROTOCOL_NAMEv311前面沒有#define,自己加上就行。
  • 最后,修改CFG_HOLDER,以讓這些配置生效,直接給原來CFG_HOLDER定義的數值加1即可。
編譯下載
編譯,查看Console窗口,如果輸出
那說明代碼已經編譯成功。另外要注意,ESP8266 SDK v2.0版本生成的eagle.irom0text.bin燒寫起始地址是0x10000,而之前的版本燒寫地址是0x40000;eagle.flash.bin還是0x00000。由于博主使用的是4MB Flash的ESP8266,所以也建議讀者先確定手頭的ESP8266是不是4MB Flash(即32Mbit Flash,注意單位!4MB=32Mbit,Flash一般是以bit計算�。�
另外如果Problems窗口報Errors的,只要Console窗口編譯通過,就可以不用管。
下載配置,僅供參考:

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

全部資料51hei下載地址:
ESP8266_MQTT.7z (6.09 MB, 下載次數: 105)
回復

使用道具 舉報

ID:585455 發表于 2019-7-24 11:01 | 顯示全部樓層
正在做MQTT 謝謝
回復

使用道具 舉報

ID:137736 發表于 2020-2-4 18:01 來自觸屏版 | 顯示全部樓層
很好,先謝謝。
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人成人在线视频 | 毛片毛片毛片毛片毛片 | 黄色三级av | 免费av网址在线观看 | 成人在线小视频 | 91麻豆精品视频 | 亚洲免费播放 | 日韩精品第一页 | 中文字幕精品在线观看 | 美女福利视频 | 中文字幕免费视频 | 国产一区在线播放 | 秋霞一区二区 | 国产乱码一区二区三区 | 日韩在线观看 | 免费色视频 | 免费三片在线观看网站v888 | 欧美国产一区二区 | 亚洲一区二区久久 | 久久草视频 | 日韩www | 精品日韩一区二区三区 | 麻豆影音| 视频一二区 | 欧美成人免费在线视频 | 亚洲精品视频免费观看 | 日本免费黄色网址 | 国产精品日韩欧美 | 免费a网站 | 91精品国产色综合久久不卡98 | 亚洲综合一区二区三区 | 欧美一区二区在线播放 | 国产精品午夜视频 | 色综合天天综合网国产成人网 | 日韩av在线网站 | 日韩不卡免费视频 | 欧美精品成人一区二区在线观看 | 欧美精品网 | 日本免费中文字幕 | 国产精品成人国产乱一区 | 久久久麻豆|