作者lavender19 (lavender)
看板Programming
標題[請益] NodeMCU ESP8266與EMQX Docker連線
時間Sun Mar 10 14:38:31 2024
各位先進們大家好~
NodeMCU ESP8266 透過Http協定,連線到本機Docker 上面的EMQX,確認Http溝通是否正
常,目前wifi可以正常連線,但HTPP連線失敗?
皆在本機執行,請問那種情況下可能會造成這些錯誤?
https://imgur.com/a/MoFdCC6
以下為程式碼
======================================
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "xxx";
const char* password = "xxx";
WiFiClient wifiClient; // Create a WiFiClient object
HTTPClient http; // Declare the HTTPClient object here
// Replace with your EMQX server URL (without the trailing slash)
//const char* emqx_server = "
http://xxx.xxx.xxx.xxx"; //priviate ip
const char* emqx_server = "
http://xxx.xxx.xxx.xxx"; //public ip?
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Your other setup code here...
}
void loop() {
// Check if WiFi is still connected
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi connection lost. Reconnecting...");
WiFi.reconnect();
}
// Check if HTTP connection is still active
if (!wifiClient.connected()) {
Serial.println("HTTP connection lost. Reconnecting...");
http.begin(wifiClient, "
http://172.17.0.2:18083"); // Use any valid UR
L for testing
int httpCode = http.GET();
if (httpCode == 200) {
Serial.println("HTTP connection re-established.");
} else {
Serial.println("Error reconnecting to HTTP server.");
}
http.end(); // Close the connection
}
// Your other loop code here...
delay(1000); // Adjust the delay as needed
}
因上述問題已苦惱多天
在此請教各位前輩~
非常感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.15.80 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1710052718.A.D5F.html
推 ssdoz2sk: 你手機連同一個wifi 連的到?如果不行, 39.9.138.8 03/12 08:56
→ ssdoz2sk: 檢查一下防火牆,跟 port forwarding 設 39.9.138.8 03/12 08:56
→ ssdoz2sk: 定 39.9.138.8 03/12 08:56
→ shadowjohn: if (!wifiClient.connected()) 這行怪 111.246.106.78 04/07 23:57
→ shadowjohn: 為什麼wifi連線失敗才要連http ? 111.246.106.78 04/07 23:57