Envoyer un e-mail chaque heure

Bonjour ,est -il possible d'envoyer un e-mail chaque heures tous les jours avec l'esp32 ??

Bonjour,
Oui :slight_smile: :slight_smile: :slight_smile:

1 Like

quelle exploitation... Non aux cadences infernales ! :slight_smile:

comment puis je le faire s'il vous plait??

La philosophie du forum est de chercher de ton côté et si tu as des soucis, post ton code pour que la communauté puisse t'aider

1 Like
void IRAM_ATTR onTimer(){
  // Increment the counter and set the time of ISR
  portENTER_CRITICAL_ISR(&timerMux);
  portEXIT_CRITICAL_ISR(&timerMux);
  xSemaphoreGiveFromISR(timerSemaphore, NULL);

}
void initAlarm(int h){
   timerSemaphore = xSemaphoreCreateBinary();

  // Use 1st timer of 4 (counted from zero).
  // Set 80 divider for prescaler (see ESP32 Technical Reference Manual for more
  // info).
  timer = timerBegin(0, 80, true);

  // Attach onTimer function to our timer.
  timerAttachInterrupt(timer, &onTimer, true);

  // Set alarm to call onTimer function every second (value in microseconds).
  // Repeat the alarm (third parameter)
  timerAlarmWrite(timer, h, true);
  timerAlarmEnable(timer);
  }
void monAlarm() {
  if (xSemaphoreTake(timerSemaphore, 0) == pdTRUE) {
    portENTER_CRITICAL(&timerMux);
    portEXIT_CRITICAL(&timerMux);
    //envoye d'e-mail
      Serial.print("execution de l'envoie......");
    envoyeEmail();
    // initAlarm(60000000);
  }
  else {
    // recuperation des information via serial2
    Serial.print("recuperation des données ......");
  }
}

le mail est envoyé par munites . je demande si je pouvais faire tourner cette alarm chaque 12heures (il faut que le mail est envoyé chaque 12heures ).Je doute bien si cet long traitement pourra planter mon esp32

c'est un peu exagéré d'utiliser un timer pour cela.... millis() ira bien

unsigned long dernierEnvoi; 

void envoyerEmail() {
  ...
}

void setup() {
  ...
  dernierEnvoi = millis();
}

void loop() {
  if (millis() - dernierEnvoi >= 43200000ul) { // 43200000 c'est 12h en ms
    envoyerEmail();
    dernierEnvoi = millis();
  }
  // autre chose possible ici
  ...
}
1 Like