J'ai fait la chasse au gaspi, mais le résultat n'est pas fameux :
Le croquis utilise 876242 octets (66%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 44848 octets (13%) de mémoire dynamique, ce qui laisse 282832 octets pour les variables locales. Le maximum est de 327680 octets.
Voila mes déclarations de bibliothèques :
#include <Arduino.h>
#include <Wire.h>
#include "I2Cdev.h"
#include "MPU6050.h"
#include <U8g2lib.h>
#include <dummy.h> //for esp32
#include <WiFi.h>
#include <HTTPClient.h>
#include "time.h"
#include "DHTesp.h"
#include "ArduinoJson.h"
// Bus 1 : les 2 écrans
#define SDA1 19
#define SCL1 23
// Bus 2 : l'accéléro
#define SDA2 5
#define SCL2 4
#define LED_PIN 22
#define DHT_PIN 26
U8G2_SH1106_128X64_NONAME_F_SW_I2C display1(U8G2_R0, SCL1, SDA1);
U8G2_SH1106_128X64_NONAME_F_SW_I2C display2(U8G2_R0, SCL1, SDA1);
// U8G2_SSD1306_128X64_NONAME_F_SW_I2C display1(U8G2_R0, SCL1, SDA1);
// U8G2_SSD1306_128X64_NONAME_F_SW_I2C display2(U8G2_R0, SCL2, SDA2);
MPU6050 accelgyro;
DHTesp dht;
#include "Variables.h"
#include "Internet.h"
#include "Affichage.h"
#include "Accelero.h"
et mes variables :
// Accelerometer
byte Orientation;
bool AcceleroSuccess = false;
enum Direction {Xplus, Xmoins, Yplus, Ymoins, Zplus, Zmoins, Unknown};
// Time
int second;
int minute;
int hour;
int day;
int month;
int year;
int weekday;
// Second interval fine adjustment
#define ADJUST_SECONDS 0 // 0 pour ne pas rechercher l'optimum sinon 1
unsigned long nmicro = 1000;
int oldsec;
// Meteo
// Current weather
const char* current_weather_description;
float current_temp;
float current_pressure;
const char* current_PressureTendency_Code;
const char* current_weather_icon;
float current_precip_mm;
int current_humidity;
float current_uv;
// Hourly forecast
#define nbHourForecast 6
byte hourlyHours[nbHourForecast] = {0,1,2,5,8,11};
const char* hourly_weather_description[nbHourForecast];
float hourly_temp[nbHourForecast];
int hourly_weather_icon[nbHourForecast];
int hourly_PreciProba[nbHourForecast];
// Daily forecast
#define nbDayForecast 3
const char* daily_weather_description[nbDayForecast];
const char* daily_weather_icon[nbDayForecast];
const char* daily_date[nbDayForecast];
float daily_mintemp[nbDayForecast];
float daily_maxtemp[nbDayForecast];
float daily_Precip[nbDayForecast];
const char* daily_sunrise[nbDayForecast];
const char* daily_sunset[nbDayForecast];
// Program
bool blinkState = false;
unsigned long chronoD1;
unsigned long chronoAcc;
bool Aff2 = false;
Au passage, quand je compile un code vide (setup et loop vides, pas de variables ni de bibliothèques), j'obtiens quand même :
Le croquis utilise 173740 octets (13%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 13272 octets (4%) de mémoire dynamique, ce qui laisse 314408 octets pour les variables locales. Le maximum est de 327680 octets.
De 13000 à 45000, ça me fait 32000 octets : je ne vois pas où ils sont dans mes variables !