Stránka 1 z 1

ESP jmeno v siti

Napsal: 06 led 2025, 09:58
od pospa
Je možné zařídit, aby bylo ESP na síti vidět pod jménem?
Například mám přehrávač na Raspberry, který se po prvotní istalaci hlásí na síti pod jménem "volumio.local" bez toho abych dělal záznamy v DNS.
Lze toto udělat i u ESP?

Re: ESP jmeno v siti

Napsal: 06 led 2025, 10:55
od martinius96
Ano, musíš mu nastaviť mDNS záznam.
Nič na sieti ako takej nastavovať nemusíš. Nastavíš to iba na strane ESP. Podporuje to ESP8266, i ESP32.
Všetky zariadenia, ktoré ale k tomu mDNS menu pristupujú, musia byť v rovnakej sieti.

Nie som istý ako to je keď ti vyprší IP adresa z lease time na DHCP poole a pridelilo by ti inú, či to nie je potrebné jednorazovo zavolať aj pri zmene IP adresy.

Pre ESP32:

Kód: Vybrat vše

#include <ESPmDNS.h>
const char *host = "esp32"; //pre esp32.local mDNS meno
.
.
//Po pripojeni na WiFi
if (MDNS.begin(host))
      {
        MDNS.addService("http", "tcp", 80);
        Serial.println("MDNS responder started");
        Serial.print("You can now connect to http://");
        Serial.print(host);
        Serial.println(".local");
      }
Pre ESP8266:

Kód: Vybrat vše

#include <ESP8266mDNS.h>
const char *host = "esp8266"; //pre esp8266.local mDNS meno
.
.
//Po pripojeni na WiFi
if (MDNS.begin(host))
      {
        MDNS.addService("http", "tcp", 80);
        Serial.println("MDNS responder started");
        Serial.print("You can now connect to http://");
        Serial.print(host);
        Serial.println(".local");
      }

Re: ESP jmeno v siti

Napsal: 07 led 2025, 09:35
od pospa
Díky,
tohle jsem kdysi zkoušel, ale nefungovalo.
Možná něco divně v mé síti.
Zkusím se do toho ještě zabořit.
Ještě jednou díky ;)

Re: ESP jmeno v siti

Napsal: 07 led 2025, 12:14
od pospa
Takze uz OK, funguje :D
Dikec, neco jsem delal spatne...

Re: ESP jmeno v siti

Napsal: 07 led 2025, 14:30
od pospa
Vzal jsem Mikrotik, udělal jednu izolovanou WiFi bez připojení kamkoliv dál, připojil na WiFi ESP32 a zkoušel telefony a tablety přistoupit k http stránce na adrese "http://led.local" generované ESP32

Funguje, na Apple iOS OK :D
Na Android Samsung S22 (android v.14) mDNS nejde ani v Chrome prohlížeči, ani v nativním Samsung prohlížeči.
Prohlížeč se rozhodne hledat adresu .local v nadřazené síti... :cry:
Přístup přes IP adresu je OK

Re: ESP jmeno v siti

Napsal: 07 led 2025, 15:32
od jankop
Teď jsem dokončil projekt, kde jsem po letech znovu použil mDNS. A na rozdíl od předešlého to i bez bonjour funguje na W10, W11 a také v Androidu 14.
Zkontroluj v Androidu nastavení této položky: Nastavení/Další možnosti připojení/Private DNS nastavit Automaticky.
Moc příjemně mě překvapilo jak to funguje.
Jen mám v úvodu programu ještě pojistku:

Kód: Vybrat vše

const uint32_t mDnsTestPeriod = 300000L;        // 5 minut
uint32_t  mDnsMillisTemp = 0L;
uint32_t OnTime=0L;
const char* mDNSname = "test";
bool mDNSInitialized = false;
	...
setup(){
 	...
	...
 mDNSInitialized = MDNS.begin(mDNSname);
  MDNS.addService("http", "tcp", 80);
}
//-----------------------------------------------------------------
void loop(void) {
  // listen for HTTP requests from local clients
  httpserver.handleClient();
  // testing mDNS initialization ***********************************
  OnTime = millis();
  if ((OnTime - mDnsMillisTemp >= mDnsTestPeriod) && !mDNSInitialized) {
    mDnsMillisTemp = OnTime;
    mDNSInitialized = MDNS.begin(mDNSname);
    MDNS.addService("http", "tcp", 80);
  }
  if (mDNSInitialized) MDNS.update();
 	...
  	...
  }	

Re: ESP jmeno v siti

Napsal: 07 led 2025, 15:52
od jankop
A když na svůj výtvor koukám, tak nejlepší by to bylo

Kód: Vybrat vše

  OnTime = millis();
  if ((mDnsMillisTemp == 0L)||(OnTime - mDnsMillisTemp >= mDnsTestPeriod) && !mDNSInitialized) {
    mDnsMillisTemp = OnTime;
    mDNSInitialized = MDNS.begin(mDNSname);
    MDNS.addService("http", "tcp", 80);
  }
  if (mDNSInitialized) MDNS.update();
a vynechat v setup() tu sekvenci

Kód: Vybrat vše

mDNSInitialized = MDNS.begin(mDNSname);
MDNS.addService("http", "tcp", 80);
jeví se mi to čistší :D

Re: ESP jmeno v siti

Napsal: 09 led 2025, 06:50
od pospa
Takže, na jakémkoli iOS (pět telefonů) naprosto OK (prohlížeče Chrome, Safari...)
Na Win10 naprosto OK (prohlížeče Chrome, Edge...)
Na žádném Androidu to ale nefunguje (zkoušeny čtyři různé telefony) :( (prohlížeče Chrome, Firefox, Samsung...)
Nastavení DNS v tel. upraveno podle rady. :((