81 lines
1.9 KiB
C++
81 lines
1.9 KiB
C++
/*
|
|
ESP8266 mDNS-SD responder and query sample
|
|
|
|
This is an example of announcing and finding services.
|
|
|
|
Instructions:
|
|
- Update WiFi SSID and password as necessary.
|
|
- Flash the sketch to two ESP8266 boards
|
|
- The last one powered on should now find the other.
|
|
*/
|
|
|
|
#include <ESP8266WiFi.h>
|
|
#include <ESP8266mDNS.h>
|
|
|
|
#ifndef STASSID
|
|
#define STASSID "your-ssid"
|
|
#define STAPSK "your-password"
|
|
#endif
|
|
|
|
const char* ssid = STASSID;
|
|
const char* password = STAPSK;
|
|
char hostString[16] = {0};
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
delay(100);
|
|
Serial.println("\r\nsetup()");
|
|
|
|
sprintf(hostString, "ESP_%06X", ESP.getChipId());
|
|
Serial.print("Hostname: ");
|
|
Serial.println(hostString);
|
|
WiFi.hostname(hostString);
|
|
|
|
WiFi.mode(WIFI_STA);
|
|
WiFi.begin(ssid, password);
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(250);
|
|
Serial.print(".");
|
|
}
|
|
Serial.println("");
|
|
Serial.print("Connected to ");
|
|
Serial.println(ssid);
|
|
Serial.print("IP address: ");
|
|
Serial.println(WiFi.localIP());
|
|
|
|
if (!MDNS.begin(hostString)) {
|
|
Serial.println("Error setting up MDNS responder!");
|
|
}
|
|
Serial.println("mDNS responder started");
|
|
MDNS.addService("esp", "tcp", 8080); // Announce esp tcp service on port 8080
|
|
|
|
Serial.println("Sending mDNS query");
|
|
int n = MDNS.queryService("esp", "tcp"); // Send out query for esp tcp services
|
|
Serial.println("mDNS query done");
|
|
if (n == 0) {
|
|
Serial.println("no services found");
|
|
} else {
|
|
Serial.print(n);
|
|
Serial.println(" service(s) found");
|
|
for (int i = 0; i < n; ++i) {
|
|
// Print details for each service found
|
|
Serial.print(i + 1);
|
|
Serial.print(": ");
|
|
Serial.print(MDNS.hostname(i));
|
|
Serial.print(" (");
|
|
Serial.print(MDNS.IP(i));
|
|
Serial.print(":");
|
|
Serial.print(MDNS.port(i));
|
|
Serial.println(")");
|
|
}
|
|
}
|
|
Serial.println();
|
|
|
|
Serial.println("loop() next");
|
|
}
|
|
|
|
void loop() {
|
|
// put your main code here, to run repeatedly:
|
|
MDNS.update();
|
|
}
|