améliration du code

This commit is contained in:
Nicolas Schmauch 2024-06-14 17:07:29 +02:00
parent 0b04918e65
commit cce2fb3629

View file

@ -17,6 +17,7 @@
using namespace std; using namespace std;
// Variable pour accéder et gérer les préférences de l'application
Preferences preferences; Preferences preferences;
// Array of DHT sensors with their respective pins and types // Array of DHT sensors with their respective pins and types
@ -132,6 +133,8 @@ void setupWIFI(const char *wifi_name, const char *password)
cpttry--; cpttry--;
if (cpttry == 0) if (cpttry == 0)
{ {
Serial.print("\n Connexion impossible au Wi-Fi, les données serons enregistrées en local et envoyées une fois le connexion rétablie.\n");
Serial.print("wifi: 10 try go to sleep"); Serial.print("wifi: 10 try go to sleep");
sleep(); sleep();
} }
@ -152,6 +155,8 @@ void reconnect(void)
cpttry--; cpttry--;
if (cpttry == 0) if (cpttry == 0)
{ {
Serial.print("\n Connexion impossible au MQTT, les données serons enregistrées en local et envoyées une fois le connexion rétablie.\n");
Serial.print("Mqtt: 10 try go to sleep"); Serial.print("Mqtt: 10 try go to sleep");
sleep(); sleep();
} }
@ -245,7 +250,7 @@ unsigned long getTime()
synctime.tv_usec = 0; synctime.tv_usec = 0;
if (settimeofday(&synctime, NULL) != 0) if (settimeofday(&synctime, NULL) != 0)
std::cout << "error\n"; std::cout << "error\n";
// TimeClient.forceUpdate(); //cet ligne crée un bug avec l'heure quand on est connecté au réseau du fablab // TimeClient.forceUpdate(); // cette ligne crée un bug avec l'heure quand on est connecté au réseau du fablab.
vTaskDelay(1000); vTaskDelay(1000);
if (!getLocalTime(&timeinfo)) if (!getLocalTime(&timeinfo))
{ {
@ -269,6 +274,7 @@ unsigned long getTime()
*/ */
void writeMessage(char *txt, float *temp, float *hum, int number) void writeMessage(char *txt, float *temp, float *hum, int number)
{ {
// time_t rawtime = TimeClient.getEpochTime();
int chargelvl1 = Battery.getBatteryChargeLevel(); int chargelvl1 = Battery.getBatteryChargeLevel();
int chargelvl2 = Battery.getBatteryChargeLevel(); int chargelvl2 = Battery.getBatteryChargeLevel();
int chargelvl3 = Battery.getBatteryChargeLevel(); int chargelvl3 = Battery.getBatteryChargeLevel();
@ -280,34 +286,34 @@ void writeMessage(char *txt, float *temp, float *hum, int number)
int chargelvl9 = Battery.getBatteryChargeLevel(); int chargelvl9 = Battery.getBatteryChargeLevel();
int chargelvl10 = Battery.getBatteryChargeLevel(); int chargelvl10 = Battery.getBatteryChargeLevel();
/*début de l'enregistrement des données */ //-------------------- Début de l'enregistrement des données --------------------//
preferences.begin("chargelvl-hum-temp", false); preferences.begin("chargelvl-hum-temp", false);
int chargelvl = preferences.getInt("chargelvl", 1); int chargelvl = preferences.getInt("chargelvl", 1);
for (int i = 0; i < 5; i++) // debut de la boucle pour récuperer les valeur dans le tableau puis les enregistrer // Boucle pour récupérer les valeurs dans le tableau puis les enregistrer.
for (int i = 0; i < 5; i++)
{ {
char Temp[5]; char Temp[5];
char Humi[5]; char Hum[5];
float newTemp = preferences.getFloat(Temp, temp[i]); float newTemp = preferences.getFloat(Temp, temp[i]);
float newHum = preferences.getFloat(Humi, hum[i]); float newHum = preferences.getFloat(Hum, hum[i]);
preferences.putFloat("temp", newTemp); preferences.putFloat("temp", newTemp);
preferences.putFloat("hum", newHum); preferences.putFloat("hum", newHum);
Serial.printf("temp: %0.2f\n", newTemp); // print pour vérifier si les valeurs enregistrées sont les bonnes Serial.printf("temp: %0.2f\n", newTemp); // print pour vérifier si les valeurs enregistrées sont les bonnes.
Serial.printf("hum: %0.2f\n", newHum); Serial.printf("hum: %0.2f\n", newHum);
} }
chargelvl = (chargelvl1 + chargelvl2 + chargelvl3 + chargelvl4 + chargelvl5 + chargelvl6 + chargelvl7 + chargelvl8 + chargelvl9 + chargelvl10) / 10; // Calcul de la moyenne du niveau de charge de la batterie chargelvl = (chargelvl1 + chargelvl2 + chargelvl3 + chargelvl4 + chargelvl5 + chargelvl6 + chargelvl7 + chargelvl8 + chargelvl9 + chargelvl10) / 10; // Calcul de la moyenne du niveau de charge de la batterie.
// time_t rawtime = TimeClient.getEpochTime();
Serial.printf("chargelvl: %d\n", chargelvl); // print pour vérifier si les valeurs enregistrées sont les bonnes Serial.printf("chargelvl: %d\n", chargelvl); // print pour vérifier si les valeurs enregistrées sont les bonnes.
preferences.putInt("chargelvl", chargelvl); preferences.putInt("chargelvl", chargelvl);
preferences.end(); preferences.end();
/* Fin de l'enregistrement des données sur le micro-controleur*/ //-------------------- Fin de l'enregistrement des données sur le micro-controleur --------------------//
delay(2000); delay(2000);
@ -470,7 +476,6 @@ void setup()
TestBoot(REFRESHMEMBOOT); TestBoot(REFRESHMEMBOOT);
} }
preferences.end();
// // ######### test time part ######### // // ######### test time part #########
// Serial.println('\n'); // Serial.println('\n');
// Serial.println(hours,DEC); // Serial.println(hours,DEC);
@ -519,12 +524,13 @@ void loop()
// Serial.println(day,DEC); // Serial.println(day,DEC);
// Serial.println('\n'); // Serial.println('\n');
now = getTime(); now = getTime(); // affiche le temps
lenght = sprintf(date, "%s", ultoa(now, date, 10) /* "|%d-%d-%d ", year, month, day */); lenght = sprintf(date, "%s", ultoa(now, date, 10) /* "|%d-%d-%d ", year, month, day */);
sprintf(date + lenght, time); sprintf(date + lenght, time);
sprintf(date + strlen(date), msg); sprintf(date + strlen(date), msg);
MqttClient.publish(TOPIC, date); MqttClient.publish(TOPIC, date);
preferences.clear();
Serial.println("-----------------DeepSleep---------------------"); Serial.println("-----------------DeepSleep---------------------");
delay(2000); delay(2000);