j'ai fait ceci
//char wifiSSIDChar[ wifiSSID.length()+1]; // tableau de char de la taille du String ssid+1 (caractère de fin de ligne)
// wifiSSID.toCharArray( wifiSSIDChar, wifiSSID.length()+1); // récupère le param dans le tableau de char
// Serial.print("nom wifi ");
//Serial.println(wifiSSID); // affiche le tableau de char
//char wifiPassChar[ wifiPass.length()+1]; // tableau de char de la taille du String ssid+1 (caractère de fin de ligne)
//wifiPass.toCharArray( wifiPassChar, wifiPass.length()+1); // récupère le param dans le tableau de char
// Serial.print("nom pass ");
// Serial.println(wifiPass); // affiche le tableau de char
// ssid = wifiSSID;
//password = wifiPass;
ssid = wifiSSID.c_str();
password=wifiPass.cstr();
mais à la compilation j'ai l'erreur suivante :
invalid conversion from 'const char*' to 'char' [-fpermissive]
J'ai fait une version light de mon code (avec seulement ce qui concerne le wifi et la carte sd)
#include <NTPtimeESP.h>
#include <SPI.h> // liaison avec le shield sd card
#include <SD.h> // gestion sd card
#define DEBUG_ON
NTPtime NTPch("pool.ntp.org"); // Choose server pool as required : time.google.com , fr.pool.ntp.org , ch.pool.ntp.org, pool.ntp.org
strDateTime dateTime;
//char *ssid = "xxxxxx"; // Set you WiFi SSID
//char *password = "yyyyyyyyyyy";
#define PIN 12 // GPIO12 correspond à la pin D6 DU WEMOS mini D1 . Envoi les datas vers le ruban de leds
#define NUMPIXELS 144 // 144 leds en série
const int chipSelect = D4; // D4 (GPIO2) pin wemos utilisé pour la carte sd
String wifiSSID, wifiPass,Serveur;
char ssid, password ;
void setup()
{
Serial.begin(9600); // Open serial communications and wait for port to open:
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
// open the file. note that only one file can be open at a time,so you have to close this one before opening another.
File myFile = SD.open("wifi.txt");
// if the file is available, write to it:
if (myFile) {
while (myFile.available()) {
//Serial.write(myFile.read());
wifiSSID = myFile.readStringUntil('\n'); // copie la chaine jusqu'au retour chariot
wifiPass = myFile.readStringUntil('\n');
Serveur = myFile.readStringUntil('\n');
}
myFile.close();
Serial.print("WiFi SSID: ");
Serial.println(wifiSSID);
Serial.print("WiFi Pass: ");
Serial.println(wifiPass);
Serial.print("Serveur NTP: ");
Serial.println(Serveur);
//char wifiSSIDChar[ wifiSSID.length()+1]; // tableau de char de la taille du String ssid+1 (caractère de fin de ligne)
// wifiSSID.toCharArray( wifiSSIDChar, wifiSSID.length()+1); // récupère le param dans le tableau de char
// Serial.print("nom wifi ");
//Serial.println(wifiSSID); // affiche le tableau de char
//char wifiPassChar[ wifiPass.length()+1]; // tableau de char de la taille du String ssid+1 (caractère de fin de ligne)
//wifiPass.toCharArray( wifiPassChar, wifiPass.length()+1); // récupère le param dans le tableau de char
// Serial.print("nom pass ");
// Serial.println(wifiPass); // affiche le tableau de char
// ssid = wifiSSID;
//password = wifiPass;
ssid = wifiSSID.c_str();
password=wifiPass.cstr();
Serial.println(wifiSSID, wifiPass); // affiche le tableau de char
Serial.println(ssid,password);
}
Serial.println();
Serial.println("Boot effectué");
Serial.println("Connection Wi-Fi en cours ");
WiFi.mode(WIFI_STA);
WiFi.begin (ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("WiFi connectée");
} // fin du Setup
void loop()
{
} // fin du void loop