ESP8266 nodeMCU 12...

Salve a tutti, sto usando l'ESP in oggetto e tramite uno sketch, che vi allego, definisco e salvo in EEPROM l'SSID la Password della rete WiFi che voglio utilizzare. Tutto funziona egregiamente. Adesso per ovvi motivi ho esteso la memorizzazione anche dell'IP in modo da farlo attestare in rete non tramite il DHCP ma un IP a me noto, appunto statico. Ma ho un problema, quando recupero dalla EEPROM il valore dell'IP precedentemente memorizzato e lo passo alla classica istruzione che poi lo setta, l'IDE si incazza! Penso che il problema sia dovuto al passaggio del valore tramite variabile:

IPAddress ip(eip); la variabile eip contiene un IP * IPAddress gateway(192,168,8,1); //Gateway* * IPAddress subnet(255,255,255,0); //Subnet*

  • WiFi.begin(esid.c_str(), epass.c_str());*
  • WiFi.config(ip, gateway, subnet);*

l'errore che mi restituisce l'IDE è:

no matching function for call to 'IPAddress::IPAddress(String&)'

Come posso risolvere? Grazie a tutti

IPAddress ip;
ip.fromString (eip);

Ti ringrazio infinitamente, funziona!!!

Ciao, purtroppo pensavo di aver risolto ma così non fu. In pratica io scrivo nella eeprom dell'ESP8266 i seguenti dati: IP, Gateway e Subnet. Una volta recuperati faccio come mi hai detto, ovvero: IPAddress ip; //IP Cliente ip.fromString(eip);

IPAddress gateway; //Gateway Cliente gateway.fromString(egateway);

IPAddress subnet; //Subnet Cliente subnet.fromString(esubnet);

WiFi.begin(esid.c_str(), epass.c_str()); WiFi.config(ip, gateway, subnet);

Ma se stampo sul monitor seriale l'IP con il quale mi sono connesso tramite l'istruzione:

Serial.println(WiFi.localIP());

A quanto pare se ne frega e mi si connette con l'IP: 192.168.8.100 anche se io ho memorizzato 192.168.8.169

Cosa sbaglio?

Ciao, la WiFi.config va fatta prima della WiFi.begin.

Ah ok, provo e faccio sapere…
Intanto grazie mille!

Ho provato ma non cambia nulla. Sto provando con un Router 4G mobile quindi potrebbe essere un problema?

Si, in effetti rileggendo bene qui sembra che puoi richiamare la WiFi.config anche dopo. Scusa per l'errore! Io proverei ad aggiungere delle Serial.print per verificare che ip, gateway e subnet siano corretti (non è che hai memorizzato l'ultimo IP usato e cioè il 100?)

No questo lo escluderei perchè leggo e visualizzo prima dalla EEPROM e vedo ciò che poi viene configurato.
Sto impazzendo, non capisco dove prende sto IP

Scusa, ma che libreria stai usando? Da quello che leggo la sintassi è questa:

WiFi.config(ip);
WiFi.config(ip, dns);
WiFi.config(ip, dns, gateway);
WiFi.config(ip, dns, gateway, subnet);

tu invece fai WiFi.config(ip, gateway, subnet). Che sia questo il problema?

Utilizzo la Libreria “#include <ESP8266WiFi.h>”, considera che sto usando un ESP8266.

Si, ma se non ho capito male dovrebbe essere derivata dalla libreria standard. Comunque purtroppo gli ESP non li conosco granché... non saprei come aiutarti.