Capteur de temperature et d'humidité sauvegarder les données sur la mémoire eeprom

Bonjour,

J'ai en ma possession un capteur de température et d'humidité AM2301 A et j'aimerai sauvegarder les données récoltées par ce capteur dans ma Arduino MEGA sur sa mémoire EEPROM. Puis de celle-ci, convertir ces données récoltées en un fichier excel

Comment puis-je faire ?

Merci d'avance

#include <EEPROM.h> // cette librairie permet d'implantation de la mémoire EEPROM dans le programme
#include <SoftwareSerial. h> // Ce programme permet de faire fonctionner correctement le modem bluetooh
#include <DHT.h> // Cette librairie permet de faire fonctionner correctement le capteur de temperature/humidité

#define DHTPIN A0 // definie la pin A0 pour le capteur de température
#define DHTTYPE DHT21 // définie le type de capteur que c'est

DHT dht(DHTPIN, DHTTYPE); // définie le type et la pin du capteur

float temp; // création de la varibable flottante pour la température
float hum; // création de la varibable flottante pour l'humidité
int i = 0;
int address = 0;
int sensor_pin = 0;
int sensor_reading = 0.0;
byte value;
int acquisition_timer = 2000;
int bytemax = 4096;

SoftwareSerial bluetooth(10, 11); // définie les pins 10 et 11 pour le modem bluetooh

void setup()
{
  Serial.begin(9600); // Fixe le débit de communication en nombre de caractères par seconde
  dht.begin(); // Démarre le début des mesures pour le capteur de température/humidité
  bluetooth.begin(9600); // Fixe le débit de communication en nombre de caractères par seconde
  delay(1);

}

void loop()
{
  hum = dht.readHumidity(); // définie la variable "hum" à la mesure prise par le capteur
  temp = dht.readTemperature(); // définie la variable "temp" à la mesure prise par le capteur

  Serial.print("Humidite: "); // Affiche le texte "Humidité" dans le moniteur série
  Serial.print(hum);// Affiche la valeur prise par le capteur pour l'humidité
  Serial.print("%,  Temperature: "); // Affiche le texte "Température" dans le moniteur série
  Serial.print(temp); // Affiche la valeur prise par le capteur pour la température
  Serial.println(" Celsius"); // Affiche le texte "Celsius" dans le moniteur série
  delay(1);


  bluetooth.print(temp); // Affiche la température sur le téléphone
  bluetooth.print(" *C"); // Affiche le texte "*C" sur le téléphone
  bluetooth.print(";"); //Permet de retourner à la ligne pour chaque valeurs
  delay(2); // Mets une temporisation de deux secondes à chaque mesure
  bluetooth.print(hum);// Affiche l'humidité sur le téléphone
  bluetooth.print(" %"); // Affiche le texte "%" sur le téléphone
  bluetooth.print(";"); //Permet de retourner à la ligne pour chaque valeurs
  delay(2); // Mets une temporisation de deux secondes à chaque mesure}

  value = EEPROM.read(address);
  Serial.println(address);
  
  int sensor_reading = analogRead(sensor_pin);
  int val = sensor_reading / 16;


 address = address + 1;

 if (address == bytemax)
 {
  delay (300000000000000000000000000);
  }

    value = EEPROM.read(address);

  Serial.print(address);
  Serial.print("\t");
  Serial.print(value, DEC);
  Serial.println();
}

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour SaucisseMan
Tu devrais regrouper les données à sauver dans une structure, et sauver cette structure par un EEPROM. put et lire par EEPROM. get.. Ainsi tes données sont sauvées et lues en une opération.

Cordialement
jpbbricole

delay attend un unsigned long. La valeur max est 4 294 967 295. Votre grande valeur est convertie en uint32_t soit si je ne me trompe pas en 2 885 681 152... Bon ça laisse le temps mais si vous voulez bloquer le code, faites

while (true) yield(); // yield() pour éviter sur certaines architectures que le watchdog ne reboot la carte

pour votre question pourquoi utiliser l'EEPROM et pas simplement travailler en SRAM (vous n'avez que 4K d'EEPROM alors qu'il y a 8K de SRAM) ? y-a-t'il un intérêt à avoir ces données conservées dans la durée quand vous éteignez la carte pour les lire au boot ?

PS/ j'ai rajouté les balises de code à votre premier post, dans l'avenir pensez à les mettre SVP.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.