Construisez un système d’alerte SMS basé sur Raspberry PI à l’aide de l’API Cloud

Raspberry Pi Based SMS Alert System

Composant

Quantité

Raspberry Pi (n’importe quel modèle 3,4,5)

1

Capteur de température DHT11

1

220 ω résistances (pour les LED)

1

LED (rouge, vert)

2

Fils de planche à pain et à cavalier

Au besoin

sudo apt update && sudo apt upgrade -y

Construisez un systeme dalerte SMS base sur Raspberry PI a

sudo pip3 install --break-system-packages Adafruit_DHT

sudo apt installer python3-vev -y

# Installez le package Venv

Python3 -M Venv Myenv

# Créez un nouvel environnement virtuel nommé «Myenv»

Source Myenv / bin / Activate

# Activer l’environnement virtuel

PIP Installer Adafruit_DHT Demandes

# Installez les packages requis à l’intérieur du Venv

Adafruit DHT Install - Python Virtual Environment
Diagramme du circuit du système d'alerte SMS à base de Raspberry PIRaspberry Pi SMS Alerte Système de pièce

Connexions à broches

Épingles de capteur

Broches de Raspberry Pi pi gpio

DONNÉES

GPIO4 (broche 7)

GND

Terrain d’entente

VCC

5V

LED vert

GPIO23 (broche 16)

LED rouge

GPIO24 (broche 18)

Circuit Digest Cloud FonctionsGeolinker Login UIGénération de Geolinker de clé API

Informations

Description

Date d’expiration

Indique quand la clé expirera

Nombre d’utilisation

Montre le nombre de fois que la clé a été utilisée

Copier le raccourci

Vous pouvez cliquer sur l’icône du presse-papiers à côté de la touche pour le copier instantanément dans votre presse-papiers pour une utilisation dans le code

API du numéro de téléphone du numéro de téléphone de liaison

ID de modèle

Type de modèle

Format de message

101

Alerte d’état de l’appareil

Votre {# var #} est actuellement à {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

102

Alerte de température

La température dans {# var #} a atteint {# var #} ° C. Veuillez prendre les mesures nécessaires.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

103

Motion détectée

Motion détecté par {# var #} dans le {# var #}. Enquêter immédiatement.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

104

Alerte basse batterie

Le niveau de batterie de {# var #} est extrêmement bas à {#var #}%. Rechargez immédiatement.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

105

Rappel périodique

Votre {# var #} est actuellement à {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

106

Rappel de service

Il est temps de servir votre {# var #}. Le dernier service était sur {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

107

Notification d’erreur

Erreur {# var #} a été détectée dans {# var #}. Veuillez dépanner immédiatement.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

108

Statut de porte / fenêtre

Le {# var #} est actuellement {# var #}. Veuillez assurer la sécurité.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

109

Redémarrage du système

Le système {# var #} a été redémarré à {# var #}. Vérifiez la fonctionnalité.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

110

Suivi de l’emplacement

Le périphérique {# var #} est actuellement situé à {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

111

Achèvement de la tâche

La tâche {# var #} a été terminée avec succès à {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

112

Alerte perdue de connexion

La connexion avec {# var #} a été perdue à {# var #}. Veuillez vérifier le réseau ou l’appareil.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

113

Entretien nécessaire

Le {# var #} nécessite une maintenance. Problème détecté: {# var #}.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

114

Alerte de surcharge

Le {# var #} connaît une surcharge. Charge actuelle: {# var #}. Veuillez réduire l’utilisation.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

115

Accès non autorisé

Accès non autorisé détecté dans {# var #} à {# var #}. Vérifiez immédiatement.

Propulsé par CircuitDigest pour les ingénieurs et les fabricants de l’Inde. Visitez www.raspberryme.com.

Clé API

Disponible sur votre page Circuit Digest Cloud Profile.

ID de modèle SMS

Choisissez-en un dans la liste des modèles fournis.

Variable 1

Une valeur personnalisée (jusqu’à 30 caractères alphanumériques; caractères spéciaux non autorisés).

Variable 2

Une autre valeur personnalisée (également jusqu’à 30 caractères alphanumériques; caractères spéciaux non autorisés).

URL de base

https://www.raspberryme.cloud/send_sms

Méthode HTTP

POSTE

Paramètre de requête

ID – Spécifie l’ID de modèle (par exemple, 101)

Autorisation

Votre clé API

Type de contenu

Application / JSON

Interfacage TMC2209 Conducteur de moteur pas a pas avec Arduino

import time
import requests
import adafruit_dht
import board
import RPi.GPIO as GPIO
from datetime import datetime
These are the essential libraries used in the script. time is for delays, requests handle HTTP API calls, adafruit_dht and board are used to interface with the DHT11 sensor, RPi.GPIO controls the GPIO pins, and datetime is used to fetch the current time for SMS content.
API_KEY = 'xxxxxxxxxx' # Your API Key
TEMPLATE_ID = '102'
MOBILE_NUMBER = '91xxxxxxxxxx' # Target Mobile Number
LOCATION = 'Home'
TEMP_THRESHOLD = 33             # °C: Trigger SMS if temp exceeds this
READ_INTERVAL = 10              # Seconds between sensor reads
COOLDOWN_TIME = 60              # Seconds to wait after sending SMS
API_URL = f'https://www.raspberryme.cloud/send_sms?ID={TEMPLATE_ID}'
DHT_PIN = board.D4              # GPIO4 = Pin 7
GREEN_LED = 23                  # GPIO23 = Pin 16 (Success)
RED_LED = 24                    # GPIO24 = Pin 18 (Failure)
GPIO.setmode(GPIO.BCM)
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)
dht = adafruit_dht.DHT11(DHT_PIN)
def led_feedback(success):
   if success:
       GPIO.output(GREEN_LED, GPIO.HIGH)
       time.sleep(1)
       GPIO.output(GREEN_LED, GPIO.LOW)
   else:
       GPIO.output(RED_LED, GPIO.HIGH)
       time.sleep(1)
       GPIO.output(RED_LED, GPIO.LOW)
def send_sms(temp):
   current_time = datetime.now().strftime("%I:%M %p")
   var1 = f"{LOCATION} at {current_time}"
   var2 = f"{temp}"
   payload = {
       "mobiles": MOBILE_NUMBER,
       "var1": var1,
       "var2": var2
   }
   headers = {
       "Authorization": API_KEY,
       "Content-Type": "application/json"
   }
   try:
       response = requests.post(API_URL, headers=headers, json=payload)
       if response.status_code == 200:
           print(f"[OK] SMS sent: {var1}, Temp = {var2}")
           print("Response:", response.json())
           led_feedback(True)
       else:
           print(f"[ERROR] SMS failed. Status: {response.status_code}")
           print("Response:", response.text)
           led_feedback(False)
   except requests.exceptions.RequestException as e:
       print("Connection error:", e)
       led_feedback(False)
print("Monitoring temperature... (Press Ctrl+C to stop)")
try:
   while True:
       try:
           temperature = dht.temperature
           humidity = dht.humidity
           if temperature is not None:
               print(f"Temperature: {temperature}C | Humidity: {humidity}%")
               if temperature > TEMP_THRESHOLD:
                   send_sms(temperature)
                   time.sleep(COOLDOWN_TIME)  # Prevent repeated alerts
           else:
               print("Sensor read failed.")
       except Exception as sensor_error:
           print("Sensor error:", sensor_error)
       time.sleep(READ_INTERVAL)
except KeyboardInterrupt:
   print("Script terminated by user.")
finally:
   GPIO.cleanup()

Problème

Solution

SMS non reçus

Assurez-vous que le numéro de mobile est vérifié dans votre compte Circuit Digest.

L’installation de la bibliothèque échoue

Utilisez «- les packages de rupture-système» ou créez un virtualenv comme discuté.

Erreur de délai d’expiration ou de connexion du réseau lors de l’envoi de la demande

Assurez-vous que le PI est connecté à Internet et que DNS fonctionne correctement. Essayez de ping www.google.com pour confirmer la connectivité.

La broche GPIO ne répond pas ou les LED ne clignotent pas

Vérifiez les numéros de broches (BCM vs numérotation physique)

Erreurs de lecture du capteur

Normal pour DHT11 – Système RÉPUTALEMENT

La température dans la maison à 12 h 45 a atteint 34 ° C. Veuillez prendre les mesures nécessaires.

  API SMS libre pour Arduino R4, Nodemcu, ESP32, Raspberry Pi et autres cartes SOC intégrées (Inde uniquement)Comment envoyer des SMS en utilisant ESP32

Comment envoyer des SMS en utilisant ESP32

Apprenez à envoyer des SMS à partir d’ESP32 à l’aide d’une API SMS gratuite sans carte SIM ou module GSM. Une méthode simple basée sur HTTP idéale pour les notifications IoT.

Comment envoyer des SMS avec Arduino Uno R4 via Internet?Comment envoyer des SMS à partir de nodemcu sans utiliser le module GSM?

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

YouTube video

  • SUNFOUNDER AI Fusion Lab Kit pour Raspberry Pi 5/4/3B+/Zero 2w, Multi-LLMs ChatGPT-4o/Gemini/Grok, OpenCV & MediaPipe, Python, cours vidéo pour les ingénieurs en herbe
  • Raspberry Pi® Build HAT Carte d'extension compatible avec (kits de développement) : Raspberry Pi, LEGO®