ESP jmeno v siti

Odpovědět
pospa
Příspěvky: 11
Registrován: 19 led 2022, 07:51

ESP jmeno v siti

Příspěvek od pospa » 06 led 2025, 09:58

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?

martinius96
Příspěvky: 584
Registrován: 01 srp 2017, 19:29
Bydliště: Poprad
Kontaktovat uživatele:

Re: ESP jmeno v siti

Příspěvek od martinius96 » 06 led 2025, 10:55

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");
      }

pospa
Příspěvky: 11
Registrován: 19 led 2022, 07:51

Re: ESP jmeno v siti

Příspěvek od pospa » 07 led 2025, 09:35

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 ;)

pospa
Příspěvky: 11
Registrován: 19 led 2022, 07:51

Re: ESP jmeno v siti

Příspěvek od pospa » 07 led 2025, 12:14

Takze uz OK, funguje :D
Dikec, neco jsem delal spatne...

pospa
Příspěvky: 11
Registrován: 19 led 2022, 07:51

Re: ESP jmeno v siti

Příspěvek od pospa » 07 led 2025, 14:30

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

jankop
Příspěvky: 1048
Registrován: 06 zář 2017, 20:04
Bydliště: Brno
Kontaktovat uživatele:

Re: ESP jmeno v siti

Příspěvek od jankop » 07 led 2025, 15:32

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();
 	...
  	...
  }	

jankop
Příspěvky: 1048
Registrován: 06 zář 2017, 20:04
Bydliště: Brno
Kontaktovat uživatele:

Re: ESP jmeno v siti

Příspěvek od jankop » 07 led 2025, 15:52

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

pospa
Příspěvky: 11
Registrován: 19 led 2022, 07:51

Re: ESP jmeno v siti

Příspěvek od pospa » 09 led 2025, 06:50

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. :((

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host