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.
- Le Pico W se connecte au WiFi et surveille le capteur de pluie.
- 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.
- CircuitDigest Cloud valide la clé API et garantit que le numéro du destinataire est vérifié.
- La plateforme formate le modèle et transmet instantanément l’alerte à WhatsApp.


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






| 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();
- 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.
- 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.
- 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.
- 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.


Projets pertinents utilisant 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 :

