Errore pin2 in utilizzo wifi

Sto utilizzando la libreria wifi.h per generare un AccessPoint e poi dopo il riavvio un collegamento alla rete WIFI.
dopo alcuni successi di connessione ho cominciato a prendere il seguente errore:
E (1110) phy_comm: gpio[0] number: 2 is reserved

il numero E (nnnn) cambia sempre

Non ho trovato niente in merito.

Avete indicazioni ?

Grazie
SB

Ah dimenticavo sto usando una ESP32

Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Cosa ai collegato ai vari GPIO? Quali sono in uso?

Guglielmo

Ciao a tutti. Ho da poco cominciato a fare programmi su ESP32.
Ho provato a fare delle singole funzioni e tutto è stato ok.
Ho quindi sviluppato un webserver per accedere al file system LittleFS per fare il download e upload dei file e aggiornamento dei parametri salvati nelle preferences, tutto ok.
Poi ho sviluppato uno sketch che si collegava al wifi tramite i parametri settati e aggiornava un DB mysql tramite post php aggiornando una tabella con i valori della temparatura letta da un sensore collegato, fino a qui tutto OK.
Poi ho unito i 2 sketch, prima il webserver per aggiornare i parametri poi dopo un riavvio forzato il secondo avvio deve attivare il WIFI per l'aggiornamento.

Quando attivo il wifi ovvero :

wifi.begin;

ricevo l'errore :

E (1108) phy_comm: gpio[0] number: 2 is reserved

il numero E (nnnn) varia tutte le volte ....

l'errore dopo alcuni tentativi lo prendo sia prima del setup del server:

wifi.softAP;

che prima di

wifi.begin;

A qualcuno di voi è mai capitato ?

Grazie dell'attenzione
S.

@stebi6011: Come da REGOLAMENTO, è proibito aprire più discussioni sullo stesso argomento.

Ho riunito io qui.

Guglielmo

T'ho già chiesto ... QUALI GPIO stai utilizzando per sensori ed altro ???

Guglielmo

"begin" dovrebbe essere un metodo non un attributo...e quindi si dovrebbe scrivere

wifi.begin();

poi l'errore, come ti sta suggerendo Guglielmo, sembra indicare un utilizzo non consentito di un GPIO:

E (1108) phy_comm: gpio[0] number: 2 is reserved

Ho collegato sul D15 il sensore di temperaura DHT11 (oltre che l'alimentazione del sensore sui pin 3v3 e GND la scheda è alimentata con l'USB) e poi niente altro.
l'istruzione wifi in effetti è:

WiFi.begin(ssid, ssidpsw);
come la 
WiFi.softAP(serverwifi, serverpswd);

l'ho solo riportata imcompleta come la

Il GPIO15 nell'ESP32 è uno "strapping pin" che controlla il funzionamento della periferica SDIO slave ed è usato anche dall'interfaccia JTAG per il debug.

Non dovrebbe creare problemi, ma nel dubbio prova a cambiare pin usandone uno per il quale non sono previste funzioni "speciali" tipo il GPIO2 o il GPIO4/5.

Ad ogni modo, se posti anche il codice che stai usando al momento, possiamo avere un quadro più completo della situazione.

Ciao, e grazie dell'attenzione.
Ho ridotto il codice al minimo indispensabile per eseguire un debug più mirato.
Questo è il codice:

#include <WiFi.h>  
String ssid     = "SSB_Home";
String ssidpsw  = "**********";

#include "time.h"
const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 3600;
const int   daylightOffset_sec = 3600;


void setup() {
  // apre una connessione seriale. A scopo di debug inviamo messaggi al monitor seriale 
  Serial.begin(115200);
  delay(2000);

  WiFi.begin(ssid, ssidpsw);
  Serial.println("Connecting " + ssid + " " + ssidpsw);
  int swt = 0;
  while (WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  String pnow = dtLocalTime();
  Serial.println("Data wifi: " + pnow);
}

void loop() {
  // put your main code here, to run repeatedly:

}

String dtLocalTime()
{
  struct tm timeinfo;
  char dtl[15];
  String dtls;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return "19700101000000";
  }
  //Serial.println(&timeinfo, "%A%m%d%H%M%S");
  strftime(dtl, 15, "%Y%m%d%H%M%S",&timeinfo);
  dtls = String(dtl);
  //Serial.println("data: " + String(dtl));
  //Serial.println("datas: " + dtls);
  return dtls;
}

Questo è la serial:

09:24:59.081 -> ets Jul 29 2019 12:21:46
09:24:59.081 -> 
09:24:59.081 -> rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
09:24:59.081 -> configsip: 0, SPIWP:0xee
09:24:59.081 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
09:24:59.081 -> mode:DIO, clock div:1
09:24:59.119 -> load:0x3fff0030,len:4888
09:24:59.119 -> load:0x40078000,len:16516
09:24:59.119 -> load:0x40080400,len:4
09:24:59.119 -> load:0x40080404,len:3476
09:24:59.119 -> entry 0x400805b4
09:25:01.509 -> E (2119) phy_comm: gpio[0] number: 2 is reserved
09:25:01.549 -> 
09:25:01.549 -> Connecting SSB_Home **********
09:25:02.038 -> ........................

la scheda ESP32 ha solo collegato la porta USB alla porta com3 del PC.
Ha cominciato a farlo da un certo momento in poi.
Anche su 2 schede diverse.

Sembra quasi che la libreria wifi.h si sia corrotta... !!!

E' mai successo a qualcuno ???

Grazie
Stefano

ciao...sorry...a me compila e funziona senza problemi...

Mah ... se ben ricordo, quelle sono delle informazioni che ESP32 da sempre all'avvio, prima di far partire il programma e non un messaggio di errore :roll_eyes:

Guglielmo

cancellato

Ciao,
ho fatto ulteriori prove:

  • eseguendo
WiFi.softAP(serverwifi, serverpswd);

il Webserver funziona ma il led 2 blu sulla scheda è spento (non lampeggia come faceva prima).

  • eseguendo:
WiFi.begin(ssid, ssidpsw);

mi da l'errore e poi non si connette al wifi il led 2 sulla scheda è spento

Mi sembra che mentre eseguivo la connessione al WIFI il led 2 blu sulla scheda lampeggiava.
Ho provato a settare il led a LOW perchè lo volevo tenere spento e da quel momento ha cominciato ad avere i problemi.

Come posso resettare la scheda alla situazione di fabbrica? si puo?

p.s. Ho ripetuto il post avevo fatto confusione.