Système de détection de pluie basé sur Raspberry Pi Pico avec alerte WhatsApp

Raspberry Pi Pico Based Rain Detection System with WhatsApp Alert

Ce projet montre comment envoyer des alertes WhatsApp instantanées à partir d’un Raspberry Pi Pico W à l’aide du WiFi et de l’API CircuitDigest Cloud WhatsApp. Le Pico W lit les données d’un capteur de pluie et, lorsque de l’humidité est détectée, envoie une notification directement sur votre WhatsApp. Aucun module GSM, carte SIM ou matériel cellulaire n’est requis et tout fonctionne via une requête HTTPS sécurisée.

Le système fonctionnant entièrement en Wi-Fi, le matériel reste simple, compact et économique. Au lieu de surveiller des tableaux de bord ou des applications, vous recevez instantanément des alertes de pluie dans WhatsApp, comme un message de discussion normal. Dans ce didacticiel, vous connecterez le capteur de pluie, générerez une clé API, téléchargerez le micrologiciel à l’aide de l’IDE Arduino et créerez un système d’alerte WhatsApp complet basé sur le WiFi. Pour plus de didacticiels, explorez notre collection de projets et de didacticiels Raspberry Pi Pico.

  1. Le Pico W se connecte au WiFi et surveille le capteur de pluie.
  2. Lorsque de la pluie est détectée, il envoie une requête HTTPS POST avec l’ID du modèle et les variables d’alerte.
  3. CircuitDigest Cloud valide la clé API et garantit que le numéro du destinataire est vérifié.
  4. La plateforme formate le modèle et transmet instantanément l’alerte à WhatsApp.

Composant utilisé pour envoyer une notification WhatsApp
Système de détection de pluie basé sur Raspberry Pi Pico avec schéma de circuit d'alerte WhatsApp

Capteur de pluie Pico F
VCC 3,3 V
GND GND
DO (sortie numérique) GPIO16

Configuration matérielle du système de détection de pluie basé sur Raspberry Pi Pico

Page de connexion au cloud CircuitDigestOption Clés API dans la page de profilClés API et limites d'utilisation mensuellesOption API de notification WhatsAppLier la page du numéro de téléphoneListe des numéros de téléphone liés

ID du modèle Catégorie Format des messages
system_error_diagnostics Erreur système Un problème de diagnostic a été signalé par {#var#}. Type d’erreur : {#var#}. Détail de l’erreur : {#var#}. Emplacement : {#var#}. Veuillez inspecter le système.
critique_event_alert Alerte critique Alerte haute priorité de {#var#}. Type d’événement : {#var#}. Valeur enregistrée : {#var#}. Emplacement : {#var#}. Attention immédiate requise.
seuil_violation_alert Violation du seuil Un paramètre surveillé a dépassé les limites sur {#var#}. Paramètre : {#var#}. Valeur mesurée : {#var#}. Limite configurée : {#var#}. Emplacement : {#var#}.
opérationnel_status_update Mise à jour du statut Mise à jour du statut de {#var#}. Statut actuel : {#var#}. Détail : {#var#}. Emplacement : {#var#}. Aucune action requise, sauf inattendue.
commande_execution_confirmation Confirmation de commande {#var#} a traité une commande. Commande : {#var#}. Résultat : {#var#}. Emplacement : {#var#}.
location_movement_update Alerte de mouvement Mise à jour depuis {#var#}. Statut du mouvement : {#var#}. Emplacement actuel : {#var#}. Enregistré à : {#var#}.
service_reminder_notification Rappel de service Rappel de service pour {#var#}. Type de service : {#var#}. Détail d’utilisation : {#var#}. Date de service recommandée : {#var#}.
responsable_contact_information Coordonnées Pour les alertes de {#var#}, contactez {#var#}. Téléphone : {#var#}. Département ou localisation : {#var#}.
String payload =
"{"
"\"phone_number\":\"YOUR_NUMBER\","
"\"template_id\":\"YOUR_TEMPLATE_ID\","
"\"variables\":{"
"\"device_name\":\"YOUR_DEVICE\","
"\"var1\":\"VALUE1\","
"\"var2\":\"VALUE2\","
"\"var3\":\"VALUE3\","
"\"var4\":\"VALUE4\""
"}}";
  • numéro_téléphone – numéro WhatsApp du destinataire avec code pays
  • modèle_id – sélectionne le format d’alerte à utiliser
  • variables – valeurs dynamiques insérées dans le modèle
  • nom_appareil / var1 / var2 / var3 / var4 – toutes les données du capteur ou le texte que vous souhaitez envoyer
"template_id":"critical_event_alert"
"template_id":"operational_status_update"
"template_id":"service_reminder_notification"
#include 
#include 
#define RAIN_PIN 16
#define COOLDOWN_MS 30000
const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASS";
const char* apiKey = "YOUR_API_KEY";
WiFiClientSecure client;
unsigned long lastSent = 0;
Serial.begin(115200);
pinMode(RAIN_PIN, INPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED);
int rainStatus = digitalRead(RAIN_PIN);
if (rainStatus == LOW && millis() - lastSent > COOLDOWN_MS)
sendWhatsApp();
client.connect("www.raspberryme.cloud", 443);
String payload =
"{"
 "\"phone_number\":\"919876543210\","
 "\"template_id\":\"threshold_violation_alert\","
 "\"variables\":{"
  "\"device_name\":\"Rain Monitoring Node\","
   "\"parameter\":\"Rain Status\","
   "\"measured_value\":\"Rain Detected\","
   "\"limit\":\"Dry Condition\","
   "\"location\":\"Terrace\""
 "}"
"}";
client.println("POST /api/v1/whatsapp/send HTTP/1.1");
client.println("Authorization: " + String(apiKey));
client.println(payload);
lastSent = millis();
  1. Installez le support de carte requis : Ouvrez l’IDE Arduino et installez le package de carte Raspberry Pi Pico/RP2040 à partir de Boards Manager. Recherchez « Raspberry Pi Pico » et installez le package officiel d’Earle F. Philhower, III.
  2. Configurez le projet : Connectez le Pico W à l’aide d’un câble micro USB tout en maintenant le bouton BOOTSEL enfoncé, ouvrez le croquis et mettez à jour votre nom WiFi, votre mot de passe, votre clé API et le numéro de téléphone du destinataire dans le code.
  3. Sélectionnez le tableau et téléchargez : Choisissez « Raspberry Pi Pico W » dans Outils -> Carte, sélectionnez le port correct et cliquez sur Télécharger pour compiler et flasher le firmware sur la carte.
  4. Vérifier le fonctionnement: Ouvrez Serial Monitor (115 200 bauds) pour confirmer la connexion WiFi. Testez le capteur de pluie en appliquant de l’eau sur le tampon de détection et vérifiez que l’alerte WhatsApp est envoyée automatiquement.

Démonstration fonctionnelle de la démo de l'API WhatsApp de Raspberry Pi Pico

Capture d'écran de l'alerte WhatsApp

Projets pertinents utilisant Raspberry Pi Pico

  Construisez un tracker GPS en temps réel avec le module GSM Raspberry Pi Pico et SIM800L  Comment interfacer le Raspberry Pi Pico W avec un écran OLED à l'aide de MicroPython ?  Interfacer le module RTC avec Raspberry Pi Pico

Interfacer le module RTC avec Raspberry Pi Pico

Un projet pratique Raspberry Pi Pico démontrant comment interfacer le module RTC DS3231 de haute précision à l’aide d’I²C, afficher l’heure, la date et la température sur un écran LCD I²C, et créer un système de chronométrage fiable adapté aux horloges, aux planificateurs et aux applications d’automatisation.

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video