Alertes Email/SMS instantanées pour fréquence cardiaque anormale
Composants et fournitures
| Composant | Quantité |
|---|---|
| Capteur pouls (module détection battement) | 1 |
| Arduino Mega 2560 | 1 |
| Module WiFi Bolt IoT | 1 |
| Fils de connexion | 7 |
Services cloud
- Bolt Cloud - Communication Arduino ↔ Cloud
- DigitalOcean VPS (ou VM Linux) - Exécution script Python surveillance
- Mailgun - Envoi emails automatisés
- Twilio - Envoi SMS
À propos du projet
Les bracelets cardio 24/7 sont courants. Et si le vôtre vous alertait par SMS/email en cas d'anomalie ? Ce projet montre comment faire simplement.
Étape 1 : Capteur pouls → Arduino
- Sortie capteur → Pin 2 Arduino
- VCC capteur → 5V Arduino
- GND capteur → GND Arduino
Étape 2 : Code Arduino (calcul BPM)
unsigned long highCounter = 0;
int pulse = 0, lastPulse = LOW;
unsigned long oldMillis = 0;
void setup() {
pinMode(2, INPUT);
Serial.begin(9600);
}
void loop() {
pulse = digitalRead(2);
if (pulse != lastPulse) {
lastPulse = pulse;
if (pulse == HIGH) highCounter++;
}
// Publication toutes les 10 secondes
if (millis() - oldMillis >= 10000) {
oldMillis = millis();
int bpm = highCounter * 6; // 10s → 60s
if (highCounter > 1) Serial.println(bpm);
highCounter = 0;
}
}
Compte les fronts montants sur 10s, multiplie par 6 = BPM. Envoie via série au Bolt WiFi.
Étape 3 : Bolt WiFi → Arduino
- 3V3 Bolt → 3.3V Arduino
- TX Bolt → RX Arduino
- RX Bolt → TX Arduino
Alimente le Bolt et établit liaison série.
Étape 4 : Mailgun (email)
- Créer compte → Vérifier téléphone
- Domains → Add Recipient → Invite New Recipient → Votre email
- Nouveau sandbox généré → Cliquer son ID
- Copier : API Key, Sandbox URL, Sender Email (test@sandbox), Recipient Email
Étape 5 : Twilio (SMS)
- Twilio → Get Free API Key → Inscription
- Vérifier votre numéro
- Products → Activer « Programmable SMS » + « Phone Numbers »
- Project Info → Copier Account SID + Auth Token
- Programmable SMS → Get Started → Get a Number → Choose → Copier le numéro
Étape 6 : DigitalOcean VPS (script Python surveillance)
Alternative : machine Linux dédiée ou VM.
- Créer droplet Ubuntu → Accès SSH (PuTTY)
sudo apt-get -y updatesudo apt install python3-pipsudo pip3 install boltiot- Créer
conf.pyavec TOUTES les clés (Twilio, Mailgun, Bolt) - Créer
heart_rate.py(voir code) sudo python3 heart_rate.py
Codes
Arduino (identique étape 2)
// Voir ci-dessus
conf.py (configuration)
# Twilio
SID = 'VOTRE_SID_TWILIO'
AUTH_TOKEN = 'VOTRE_AUTH_TOKEN'
FROM_NUMBER = '+1XXXXXXXXXX' # Numéro Twilio
TO_NUMBER = '+33XXXXXXXXX' # Votre numéro avec indicatif
# Mailgun
MAILGUN_API_KEY = 'VOTRE_CLE_API'
SANDBOX_URL = 'VOTRE_SANDBOX.mailgun.org'
SENDER_EMAIL = 'test@' + SANDBOX_URL
RECIPIENT_EMAIL = 'votre@email.com'
# Bolt
API_KEY = 'VOTRE_BOLT_API_KEY'
DEVICE_ID = 'VOTRE_DEVICE_ID'
heart_rate.py (surveillance)
import conf, json, time
from boltiot import Email, Bolt, Sms
MIN_BPM = 57
MAX_BPM = 100
mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
mailer = Email(conf.MAILGUN_API_KEY, conf.SANDBOX_URL, conf.SENDER_EMAIL, conf.RECIPIENT_EMAIL)
sms = Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)
while True:
response = mybolt.serialRead(2)
data = json.loads(response)
try:
bpm = int(data['value'])
if bpm > MAX_BPM or bpm < MIN_BPM:
mailer.send_email("Alerte", f"Fréquence cardiaque anormale : {bpm} BPM")
sms.send_sms(f"Alerte ! FC = {bpm} BPM")
except Exception as e:
print("Erreur:", e)
time.sleep(10)
Schéma de câblage
Processus de fabrication
- Comment Utiliser Data et Storytelling pour Obtenir l'Approbation de Vos Projets Maintenance
- Neuf stratégies éprouvées pour sécuriser votre emploi et accélérer votre carrière
- Guide expert : maintenance de votre alambic de récupération de solvants pour performance optimale
- Réponse rapide : comment nous avons résolu un arrêt brutal sur presse offset Komori 28″
- Optimiser les associations pelle-tombereau pour une efficacité et un profit maximum dans l'exploitation minière
- 4 facteurs clés pour choisir vos lames de coupe industrielles
- Choisir le bon surpresseur automatique pour votre maison : guide pratique
- Comprendre les types de vis et boulons pour un assemblage optimal
- Vis vs Boulon : différences clés, types et applications