我对IoT还是很陌生,但是我正在构建一个系统,其中使用ESP8266模块将多个IoT设备连接到家庭中。但是我在任何家中都没有特定的网关。我依靠WiFi路由器。要从互联网向设备传达任何消息,我需要识别特定的设备。我正在使用DDNS作为家庭路由器的IP。但是如何将来自服务器的请求发送到所有连接的设备。
我的ESP8266模块中有此代码。
ESP 1:
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
MDNSResponder mdns;
ESP8266WebServer server(80);
void setup(){
server.on("/esp_unique_01/", [](){
server.send(200, "text/html", webPage);
});
server.on("/esp_unique_01/socket1On", [](){
server.send(200, "text/html", webPage);
digitalWrite(gpio0_pin, HIGH);
delay(1000);
});
server.on("/esp_unique_01/socket1Off", [](){
server.send(200, "text/html", webPage);
digitalWrite(gpio0_pin, LOW);
delay(1000);
});
}
ESP 2:
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
MDNSResponder mdns;
ESP8266WebServer server(80);
void setup(){
server.on("/esp_unique_01/", [](){
server.send(200, "text/html", webPage);
});
server.on("/esp_unique_02/socket1On", [](){
server.send(200, "text/html", webPage);
digitalWrite(gpio0_pin, HIGH);
delay(1000);
});
server.on("/esp_unique_02/socket1Off", [](){
server.send(200, "text/html", webPage);
digitalWrite(gpio0_pin, LOW);
delay(1000);
});
}
这两个ESP模块都具有动态IP。任何线索将不胜感激。
来自MDNS的示例的混合:
char hostString[16] = {0};
sprintf(hostString, "ESP_%06X", ESP.getChipId());
if (!MDNS.begin(hostString)) {
Serial.println("Error setting up MDNS responder!");
}
Serial.println("mDNS responder started");
// Start TCP (HTTP) server
server.begin();
Serial.println("TCP server started");
// Add service to MDNS-SD
MDNS.addService("http", "tcp", 80);
因此,您将拥有针对node1的http服务描述。在另一个端口上运行第二个节点的Web服务器并对其进行定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句