ESP32 e Thingspeak - char[] to const char *

Buongiorno, sto lavorando ad un progetto e mi sono bloccato su un particolare.
Uso [GitHub - tzapu/WiFiManager: ESP8266 WiFi Connection manager with web captive portal] per gestire la connessione ed alcuni valori personalizzati tra cui API e channel di Thingspeak (inseribili dall'utente in due campi di un form).
In particolare la API per scrivere su Thingspeak viene "catturata" dal form come
char ch_TSapi[19];
e sto cercando di passarla alla variabile
const char * myWriteAPIKey;
come da libreria Thingspeak.
Nel programma avevo scritto

char ch_TSapi[19];
  EEPROM.get(address,ch_TSapi);
  address+=19;
  myWriteAPIKey = (const char *)ch_TSapi ;

ma evidentemente non funziona.

Ho cercato su internet e qui sul forum come trasformare la variabile char[] in const char* ma nessuno dei consigli trovati funziona perchè il servere risponde con errore 302 (che è un errore generico).
Se nella riga
int xTS = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
inserisco manualmente la mia API key il programma funziona.

La variabile che identifica un vettore è già un puntatore, sono i singoli elementi che sono del tipo dichiarato. Prova un po' a scrivere:

int xTS = ThingSpeak.writeFields( myChannelNumber, ch_TSapi );

... e vedi se funziona o riporta esattamente l'errore che ti da.

Guglielmo

Funziona! :sweat_smile:

Ho perso giornate intere e la soluzione era così facile.
Ho dichiarato la variabile come globale (portandola in cima al programma) e funziona come da consiglio.

Grazie !!!

OT - leggendo il forum ho visto che lei è dappertutto, l'apporto al forum è enorme, grazie.

:slight_smile:

... beh ... sai com'è ... sono il moderatore della sezione Italiana :grin:

Guglielmo