Делаю устройства для измерения температуры в разных частях дома. В теории эти точки должны подключаться к Wifi и передавать данные базе. Но просто вписать IPv4 адреса не вариант, поэтому делаю по mDNS.
Код точки:
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
delay(1000);
if (!MDNS.begin(host_name)) { Serial.println("Error setting up MDNS responder!"); }
MDNS.addService("http", "tcp", 80);
delay(1000);
}
void loop() {
MDNS.update();
}
в базе проверяю есть ли устройства с mDNS:
void loop() {
int n = MDNS.queryService("http", "tcp");
Serial.println(n);
if (n == 0) {
Serial.println("not found");
} else {
for (int i = 0; i < n; ++i) {
Serial.println(MDNS.hostname(i));
Serial.println(MDNS.IP(i));
}
}
delay(5000);
}
но проблема в том, что база раз видит точку, раз не видит.
23:12:26.935 -> 0
23:12:26.935 -> no found
23:12:32.945 -> 1
23:12:32.945 -> termpoint.local
23:12:32.945 -> 192.168.1.252
и я думаю или это mDNS отваливается, или база просто не правильно работает