一、前言
分享的很多項目里使用了ESP8266-WIFI模塊,通過WIFI模塊連接了物聯(lián)網平臺,利用MQTT協(xié)議完成數(shù)據(jù)通信。
ESP8266-WIFI模塊 要能夠正常上網,需要上電之后,連接熱點(也就是可以上網的WIFI),然后它才可以連接互聯(lián)網,才可以去連接MQTT服務器。
那么這篇文章就是解決關于ESP8266-WIFI無法連接熱點或者硬件檢測錯誤的問題進行處理。
二、ESP8266問題解決
2.1 ESP8266-WIFI模塊 購買
常見的ESP8266-WIFI就是下面的這款模塊。
2.2 與STM32單片機連線
一般項目里,ESP8266-WIFI模塊與單片機的連線如下說明。
PA2----->ESP8266的RXD
PA3----->ESP8266的TXD
GND----->GND 地
VCC----->5.0V
要認真檢查接線是否正確。
如果接線不正確,或者 模塊壞了。
那么顯示屏上會顯示ESP8266 ERROR
。 或者 卡在WIFI Init
這樣的字樣。
再檢查一下電源模塊的接線,確認電源是否正常:
https://blog.csdn.net/xiaolong1126626497/article/details/146071578
如果最終測試還是不行?
就按下面的視頻去測試下。
【ESP8266-WIFI模塊串口調試過程講解】
ESP8266-WIFI模塊串口調試過程講解
按下面的命令順序配置,測試WIFI的鏈接。 (串口調試助手記得勾選新行)
AT
ATE0
AT+CWMODE=1
AT+RST
ATE0
AT+CWLAP
AT+CWJAP="abc","12345678"
AT+CIPMUX=0
AT+CIPMODE=1
AT+CIPSTART="TCP","117.78.5.125",1883
AT+CIPSEND
以下是每個指令的解釋:
(1)“ATrn”:這是用于測試ESP8266模塊是否正常工作的基本指令。發(fā)送此指令后,模塊應該回復 “OKrn”。
(2)“ATE0rn”:這個指令用于關閉回顯功能。當回顯功能關閉時,模塊不會將接收到的指令發(fā)送回串口?;貜?“OKrn” 表示指令執(zhí)行成功。
(3)“AT+CWMODE=1rn”:這個指令設置ESP8266模塊為STA(站點)模式,即將其配置為連接到現(xiàn)有無線網絡的客戶端。回復 “OKrn” 表示指令執(zhí)行成功。
(4)“AT+RSTrn”:這個指令用于重啟ESP8266模塊。模塊將重新啟動并返回 “readyrn” 表示準備就緒。
(5)“ATE0rn”:同第二條指令一樣,這個指令再次關閉回顯功能。
(6)“AT+CWLAPrn”:這個指令用于查詢附近可連接的無線網絡。模塊將返回一個列表,包含可用網絡的信息。
(7)“AT+CWJAP=“abc”,“12345678”rn”:這個指令用于連接到指定的無線網絡。在此示例中,通過SSID為 “abc” 的無線網絡,并使用密碼 “12345678” 進行連接。回復 “OKrn” 表示指令執(zhí)行成功。
(8)“AT+CIPMUX=0rn”:這個指令用于禁用多連接模式。回復 “OKrn” 表示指令執(zhí)行成功。
(9)“AT+CIPMODE=1rn”:這個指令用于設置傳輸模式為透明傳輸模式。在透明傳輸模式下,ESP8266模塊將直接將串口數(shù)據(jù)發(fā)送到網絡連接中?;貜?“OKrn” 表示指令執(zhí)行成功。
(10)“AT+CIPSTART=“TCP”,“117.78.5.125”,1883rn”:這個指令用于建立與指定TCP服務器的連接。在此示例中,將與IP地址為 “117.78.5.125”、端口號為1883的服務器建立連接。回復 “OKrn” 表示指令執(zhí)行成功。
(11)“AT+CIPSENDrn”:這個指令用于發(fā)送數(shù)據(jù)到已建立的TCP連接。發(fā)送此指令后,模塊將進入發(fā)送模式,并等待用戶輸入要發(fā)送的數(shù)據(jù)??梢酝ㄟ^向模塊發(fā)送數(shù)據(jù)來進行通信。
如果測試也還是不行,就只能重新買新的模塊了。
2.3 熱點如何設置?
ESP8266-WIFI模塊只能連接2.4GHZ的WIFI熱點。
如果你是用手機開啟熱點,那么設置一定要正確。
如果正常設置了還是連接不上。 就按下面的截圖這樣設置。再去測試。
也就是關閉安全性,不要設置密碼(單片機的代碼不用改
)。
2.4 正常的WIFI上電過程如下
ESP8266WIFI+OLED顯示屏演示上云初始化過程
三、ESP8266-WIFI介紹
ESP8266是一款低成本、高性能的Wi-Fi模塊,由樂鑫科技(Espressif Systems)開發(fā)。其核心是一顆集成了32位Tensilica L106微處理器的芯片,主頻可達80MHz或160MHz(超頻模式),同時內置了Wi-Fi通信功能和TCP/IP協(xié)議棧。該模塊支持IEEE 802.11 b/g/n無線標準,工作頻段為2.4GHz,能夠實現(xiàn)STA(客戶端)、AP(熱點)或STA+AP混合模式,適合構建物聯(lián)網設備的無線連接。
模塊通過串口(UART)與主控設備通信,支持AT指令集,可快速實現(xiàn)網絡配置與數(shù)據(jù)傳輸。開發(fā)者也可直接在其上編程,利用豐富的SDK開發(fā)包或第三方平臺(如Arduino、Lua、MicroPython)進行深度開發(fā),無需外接主控芯片。其GPIO、PWM、I2C、SPI等接口擴展了傳感器、顯示屏等外設的連接能力,適用于智能家居、遠程監(jiān)控等場景。
ESP8266的供電電壓為3.3V,典型功耗在持續(xù)工作時約80mA,支持深度睡眠模式(電流低至20μA),適合電池供電設備。模塊尺寸小巧,常見封裝包括ESP-01、ESP-12E等,不同型號對應不同引腳數(shù)量和板載天線設計(如PCB天線或外接天線接口)。
其開源生態(tài)系統(tǒng)和活躍的社區(qū)支持(如ESP-Open-SDK、PlatformIO)降低了開發(fā)門檻。通過OTA(空中升級)功能可遠程更新固件,而內置的Flash存儲器(通常4MB)支持程序存儲與文件系統(tǒng)。盡管存在內存限制和并發(fā)處理能力較弱的問題,但其性價比仍使其成為物聯(lián)網入門級項目的首選方案之一。
四、MQTT協(xié)議
MQTT(Message Queuing Telemetry Transport)是一種輕量級的即時通信協(xié)議,專為低帶寬、高延遲或不穩(wěn)定的網絡環(huán)境設計,尤其適用于物聯(lián)網(IoT)場景。其核心采用發(fā)布/訂閱(Pub/Sub)模式,通過**主題(Topic)**實現(xiàn)消息的過濾與路由,發(fā)布者(Publisher)將消息發(fā)送到指定主題,訂閱者(Subscriber)通過訂閱主題接收相關消息,代理服務器(Broker)負責中轉和管理通信過程。這種機制有效解耦了設備間的直接依賴,提升了系統(tǒng)的靈活性和擴展性。
MQTT協(xié)議定義了三種服務質量等級(QoS):QoS 0(最多一次,不保證送達)、QoS 1(至少一次,需確認)和QoS 2(恰好一次,嚴格確??煽啃裕?,開發(fā)者可根據(jù)場景需求平衡效率與可靠性。協(xié)議頭部極簡,最小僅需2字節(jié),顯著降低了網絡開銷。同時,MQTT支持心跳機制(Keep Alive),用于維持長連接并檢測設備狀態(tài)異常,還提供**遺囑消息(Last Will)**功能,可在設備意外離線時自動通知其他客戶端。
安全性方面,MQTT支持基于SSL/TLS的加密通信,以及用戶名/密碼認證,但需開發(fā)者主動配置以規(guī)避未授權訪問風險。協(xié)議本身無狀態(tài),但可通過Clean Session標志控制是否保留會話信息(如未完成的消息隊列)。其輕量化特性使其廣泛應用于智能家居、工業(yè)傳感器、車聯(lián)網等場景,例如遠程設備監(jiān)控、實時數(shù)據(jù)采集與推送。
MQTT協(xié)議的常見實現(xiàn)包括開源代理服務器Mosquitto、EMQ X,以及客戶端庫如Eclipse Paho。2019年發(fā)布的MQTT 5.0版本新增了會話過期、原因碼、共享訂閱等功能,進一步優(yōu)化了大規(guī)模部署能力。盡管協(xié)議簡單,其設計哲學“以最少資源實現(xiàn)可靠通信”使其成為物聯(lián)網領域事實上的標準協(xié)議之一。