🛠 Alerte email : bouton sur la Yún et envoi via sendmail

Arduino Yún · intermediaire · IMG-yun-intermediaire-6-yun-bouton-alerte-mail.svg — Yún avec bouton poussoir sur la pin 2, flèche vers une envelople email sortante et un pictogramme serveur SMTP ; en médaillon, la config SMTP dans la page arduino.local.

Objetivos

Construir una alerta física → email: un botón en un pin del 32U4 dispara el envío de un email desde Linino OS. Se comparan dos vías: la ruta REST /mail/send (cero dependencias) y la biblioteca YunMail (API limpia en el sketch). Configurarás una cuenta SMTP (proveedor o Gmail con contraseña de aplicación) en la página de administración de la placa.

Material

Configuración SMTP

En la página de administración (http://arduino.local, contraseña root), rellena: servidor SMTP, puerto, usuario, contraseña, remitente. Linino OS utiliza un sendmail ligero; los logs SMTP consultables por SSH (logread) ayudan en la depuración.

Código completo

// Alerte email sur appui, avec anti-répetition de 30 s.
#include <Bridge.h>
#include <YunMail.h>

const uint8_t BTN = 2;
const uint32_t PAUSE = 30000;
uint32_t dernierEnvoi = 0;
bool dernierEtat = HIGH;

void setup {
  pinMode(BTN, INPUT_PULLUP);
  Bridge.begin;
  Console.begin;
  Mail.begin;   // YunMail : pilote la file sendmail côté Linux
  Mail.from("alerte@exemple.fr");
  Mail.to("moi@exemple.fr", "Moi");
  Mail.subject("Yun : bouton presse");
  Console.println(F("pret"));
}

void loop {
  bool etat = digitalRead(BTN);
  bool front = (etat == LOW && dernierEtat == HIGH);
  dernierEtat = etat;

  if (front && millis - dernierEnvoi >= PAUSE) {
    dernierEnvoi = millis;
    Mail.println(F("Quelqu'un a appuye sur le bouton."));
    Mail.println(F("Cordialement, votre Yuniste."));
    int id = Mail.send;     // met en file ; l'envoi part côté Linux
    Console.print(F("mail mis en file, id=")); Console.println(id);
  }
  // L'alternative REST, sans YunMail :
  // Process p; p.runShellCommandOnLinux(
  //   "curl -s 'http://localhost/mail/send/moi@example.fr/Alerte/Bouton'");
}

Verificación esperada

Pulsación → unos segundos después, llega el email (el envío es asíncrono: la cola se procesa vía sendmail en el lado Linux). El Monitor muestra el id de encolado. Prueba el fallo: contraseña SMTP incorrecta → no llega nada; entonces revisa logread por SSH en el lado Linux, allí quedan trazados los errores de autenticación. La anti-repetición de 30 s evita el spam en caso de pulsaciones múltiples.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales