@Renat871

Почему esp8266 не находит другую плату по mDNS?

Делаю устройства для измерения температуры в разных частях дома. В теории эти точки должны подключаться к 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 отваливается, или база просто не правильно работает
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
@SunTechnik
Устройства в спящий режим не уходят?

mDNS - он же на периодически опрашивает устройства. Не дождались ответа - вернули что не найдено устройство.

Попробовать делать несколько попыток запроса..
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы