Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Connecter compteur eau impulsion
Au risque de me répéter mais je te conseillerai de garder le code qui fonctionne tel quel pour le moment mais utiliser une bonne alim et voir si tu continues de perdre l'ESP de temps en temps.
Cela permettra de confirmer ou d’écarter la piste de l'alim et de voir à l'usage si il y a des points à améliorer avec le code actuel.
Bonne nuit messieurs et à demain pour de nouvelles aventures.
Répondre

bonne nuit également a vous deux et encore merci de votre aide !!!!
Répondre

Bonne nouvelle du petit matin :
De mon côté la page web aussi est figée et ne fonctionne plus mais il y a un gros MAIS
Elle continue à envoyer le mail !!!!
En épurant donc l intérieur du <Body> ça doit fonctionner nickel.
Répondre

(19-11-2025, 07:14 AM)Lolo69 a écrit : Bonne nouvelle du petit matin :
De mon côté la page web aussi est figée et ne fonctionne plus mais  il y a un gros MAIS
Elle continue à envoyer le mail !!!!
En épurant donc l intérieur du <Body> ça doit fonctionner nickel.

Bonjour moi aussi je viens de faire l'essai à l'instant blocage, et pas de mail par contre ???


Pièces jointes Miniature(s)
       
Répondre

Je t envoie un code corrigé après la douche
Répondre

(19-11-2025, 07:54 AM)Lolo69 a écrit : Je t envoie un code corrigé après la douche

Merci bien j'essaie en fin d'après midi. 
Dans l'interface livebox esp apparaît bien déconnecté, peut être une piste ?
Répondre

Compile et charge le programme suivant en remplaçant bien sur tes identifiants
Ne t attends plus à lire quelque chose sur la page WEB elle restera desperement vide mais elle reagira au push de l ecodevice ou au push manuel
laisse tourner l esp et on verra si cela a stabiliser le fonctionnement, en envoyant un push dans quelques heures
Si c 'est OK la mission sera remplie, et tu reviendras vers nous pour faire des demandes d'améliorations eventuelles
J'ai pas mis en place un super suivi de version , mais si tu fais des modifs autres que tes identifiants, mais aussi à jour le numero de version qui est en commentaire de la premiere ligne , ca aidera à savoir de quoi on part plus tard

La premiere des améliorations sera de passer en IP fixe , car il y a un risque qu'elle change lors d'un redemarrage de l esp ou de la box, et donc tu perdrais le push de l ecodevice, mais chaque chose en son temps ;-)


Code :
//Version 1.00 19 11 25 LBE
#include <WiFi.h>
#include <WebServer.h>
#include <Arduino.h>
#include <WiFiClientSecure.h>

#include <ESP_Mail_Client.h>

const char* ssid = "tonssid";
const char* password = "tonpwd wifi";

SMTPSession smtp;
WebServer server(80);

void handleRoot() {
  ESP_Mail_Session session;
  session.server.host_name = "smtp.orange.fr";
  session.server.port = 465;
  session.login.email = "ton_mail_orange@orange.fr";
  session.login.password = "ton_pwd_orange";
  session.login.user_domain = "";

  SMTP_Message message;
  message.sender.name = "ESP32";
  message.sender.email = "ton_mail_orange@orange.fr";
  message.addRecipient("Destinataire", "tondestinataire@domain.fr");
  message.subject = "Test ESP32";
  message.text.content = "Bonjour ! Email envoyé depuis ESP32.";

  smtp.debug(1);


   if (!smtp.connect(&session)) {
    Serial.println("Erreur de connexion SMTP !");
    server.send(200, "text/html", "");
    return;
  }

  if (!MailClient.sendMail(&smtp, &message)) {
    Serial.println("Erreur d'envoi !");
    } else {
    Serial.println("Email envoyé !");

  }

  smtp.closeSession();
  server.send(200, "text/html","");
}
void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("\n");
  WiFi.begin(ssid, password);
  WiFi.setSleep(false); //on evite de mettre l esp en veille
  Serial.print("Attente de connexion ...");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }

  Serial.println("\n");
  Serial.println("Connexion etablie !");
  Serial.print("Adresse IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Serveur web actif");
}

void loop() {
  server.handleClient();
}
Répondre

Quand on utilise le navigateur pour déclencher l'envoi de mail je pense que parfois cela ne fonctionnera pas en raison du cache du navigateur.
Le navigateur va récupérer le contenu de la page depuis son cache et ne fera pas de requête sur l'esp. On peut forcer le chargement via un ctrl +f5.
On peut palier à ça en rajouter un cache-control: no-cache dans le head de la page:

<head>
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
</head>
Répondre

Voici ce que ça donne une fois intégré au code : 
Code :
//Version 1.01 19 11 25 LBE
#include <WiFi.h>
#include <WebServer.h>
#include <Arduino.h>
#include <WiFiClientSecure.h>

#include <ESP_Mail_Client.h>

const char* ssid = "tonssid";
const char* password = "tonpwd wifi";

SMTPSession smtp;
WebServer server(80);

void handleRoot() {
  ESP_Mail_Session session;
  session.server.host_name = "smtp.orange.fr";
  session.server.port = 465;
  session.login.email = "ton_mail_orange@orange.fr";
  session.login.password = "ton_pwd_orange";
  session.login.user_domain = "";

  SMTP_Message message;
  message.sender.name = "ESP32";
  message.sender.email = "ton_mail_orange@orange.fr";
  message.addRecipient("Destinataire", "tondestinataire@domain.fr");
  message.subject = "Test ESP32";
  message.text.content = "Bonjour ! Email envoyé depuis ESP32.";

  smtp.debug(1);

    String page = "<!DOCTYPE html><html><head><meta http-equiv=\"Cache-Control\" content=\"no-cache, no-store, must-revalidate\"></head><body></body></html>";
    
   if (!smtp.connect(&session)) {
    Serial.println("Erreur de connexion SMTP !");
    server.send(200, "text/html", page);
    return;
  }

  if (!MailClient.sendMail(&smtp, &message)) {
    Serial.println("Erreur d'envoi !");
    } else {
    Serial.println("Email envoyé !");

  }

  smtp.closeSession();
  server.send(200, "text/html", page);
}
void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("\n");
  WiFi.begin(ssid, password);
  WiFi.setSleep(false); //on evite de mettre l esp en veille
  Serial.print("Attente de connexion ...");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }

  Serial.println("\n");
  Serial.println("Connexion etablie !");
  Serial.print("Adresse IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Serveur web actif");
}

void loop() {
  server.handleClient();
}

Avec ça on sera sur que la requête sera effectuée dans tous les cas depuis le navigateur.
Répondre

Et voici la version avec l'IP statique. Il faudra mettre à jour les valeurs pour l'ip, la passerelle etc.
Voici le code : 
Code :
//Version 1.02 19 11 25 LBE
#include <WiFi.h>
#include <WebServer.h>
#include <Arduino.h>
#include <WiFiClientSecure.h>

#include <ESP_Mail_Client.h>

const char* ssid = "tonssid";  // A mettre à jour
const char* password = "tonpwd wifi"; // A mettre à jour

IPAddress local_IP(192, 168, 1, 119); // A mettre à jour
IPAddress gateway(192, 168, 1, 254); // A mettre à jour

IPAddress subnet(255, 255, 255, 0); // A mettre à jour
IPAddress primaryDNS(192, 168, 1, 254); // A mettre à jour
IPAddress secondaryDNS(8, 8, 4, 4); //optional

SMTPSession smtp;
WebServer server(80);

void handleRoot() {
  ESP_Mail_Session session;
  session.server.host_name = "smtp.orange.fr"; // A mettre à jour
  session.server.port = 465; // A mettre à jour
  session.login.email = "ton_mail_orange@orange.fr"; // A mettre à jour
  session.login.password = "ton_pwd_orange"; // A mettre à jour
  session.login.user_domain = "";

  SMTP_Message message;
  message.sender.name = "ESP32";
  message.sender.email = "ton_mail_orange@orange.fr"; // A mettre à jour
  message.addRecipient("Destinataire", "tondestinataire@domain.fr"); // A mettre à jour
  message.subject = "Test ESP32";
  message.text.content = "Bonjour ! Email envoyé depuis ESP32.";

  smtp.debug(1);

    String page = "<!DOCTYPE html><html><head><meta http-equiv=\"Cache-Control\" content=\"no-cache, no-store, must-revalidate\"></head><body></body></html>";
    
   if (!smtp.connect(&session)) {
    Serial.println("Erreur de connexion SMTP !");
    server.send(200, "text/html", page);
    return;
  }

  if (!MailClient.sendMail(&smtp, &message)) {
    Serial.println("Erreur d'envoi !");
    } else {
    Serial.println("Email envoyé !");

  }

  smtp.closeSession();
  server.send(200, "text/html", page);
}
void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("\n");

  if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {
    Serial.println("STA Failed to configure");
  }
 
  // Connect to Wi-Fi network with SSID and password
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  WiFi.setSleep(false); //on evite de mettre l esp en veille
  Serial.print("Attente de connexion ...");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }

  Serial.println("\n");
  Serial.println("Connexion etablie !");
  Serial.print("Adresse IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Serveur web actif");
}

void loop() {
  server.handleClient();
}
Répondre



Atteindre :


Utilisateur(s) parcourant ce sujet :
1 visiteur(s)

Moteur MyBB, © 2002-2025 Melroy van den Berg.