亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

心率异常即时邮件/短信报警:Arduino + Bolt WiFi + 云端 Python 监控

项目概述

基于心率传感器模块采集脉搏,Arduino Mega 计算心率并通过串口透传给 Bolt WiFi 模块上传云端。Python 脚本运行在 DigitalOcean VPS(或任意 Linux 服务器)上,周期性轮询 Bolt Cloud API 获取心率,若超出阈值(默认 57~100 bpm),自动调用 Mailgun 发送邮件、Twilio 发送短信双通道报警。适合远程看护老人、康复患者等场景。

硬件连接

模块引脚Arduino Mega 引脚
心率传感器OUTD2 (外部中断 INT0)
心率传感器VCC/GND5V / GND
Bolt WiFiTXRX0 (D0)
Bolt WiFiRXTX0 (D1)
Bolt WiFi3V33.3V

注意:Bolt 模块 3.3V 供电,TX/RX 直连 Mega 硬件串口 0(与 USB 串口共用),上传代码时需暂时断开 Bolt TX/RX。

心率异常即时邮件/短信报警:Arduino + Bolt WiFi + 云端 Python 监控

Arduino 固件:脉搏计数与心率计算

/* Heart Rate → Serial (for Bolt)
 * D2 接传感器 OUT,上升沿计数,10 秒窗口输出 BPM
 */
volatile unsigned long highCounter = 0;
int lastPulse = LOW;
unsigned long oldMillis = 0;

void setup() {
  pinMode(2, INPUT);
  Serial.begin(9600); // 与 Bolt 通信波特率
}

void loop() {
  int pulse = digitalRead(2);
  if (pulse != lastPulse) {
    lastPulse = pulse;
    if (pulse == HIGH) highCounter++;
  }
  if (millis() - oldMillis >= 10000) { // 10 秒窗口
    oldMillis = millis();
    int bpm = highCounter * 6; // 10 秒 * 6 = 1 分钟
    if (highCounter > 1) Serial.println(bpm); // 仅有效脉搏上传
    highCounter = 0;
  }
}

云端服务配置

1. Mailgun(邮件)

  1. 注册账号 → 验证手机 → Domains → Add Recipient → Invite New Recipient(填收件邮箱)。
  2. 生成 Sandbox 域名,记录:API Key、Sandbox URL、发件地址 `test@sandbox...`。

2. Twilio(短信)

  1. 注册 → 验证手机 → Get Free API Key → 启用 Programmable SMS 与 Phone Numbers。
  2. 获取 Account SID、Auth Token、生成的发件号码(`+1...`)。
  3. 收件号码需加国家代码(如中国 `+86...`)。

3. Bolt Cloud

  1. 注册 Bolt 账号,绑定设备,获取 API Key 与 Device ID。
  2. 确保 Bolt 连上 WiFi,云端显示在线。

4. DigitalOcean VPS(或任意 Linux)

# 部署步骤
sudo apt-get update && sudo apt-get install -y python3-pip
sudo pip3 install boltiot
# 创建配置文件 conf.py
cat > conf.py << 'EOF'
# Twilio
SID = 'your_account_sid'
AUTH_TOKEN = 'your_auth_token'
FROM_NUMBER = '+1xxxxxxxxxx'  # Twilio 分配
TO_NUMBER = '+861xxxxxxxxxx'  # 接收报警手机
# Mailgun
MAILGUN_API_KEY = 'key-xxxxxxxx'
SANDBOX_URL = 'sandboxxxxx.mailgun.org'
SENDER_EMAIL = 'test@sandboxxxxx.mailgun.org'
RECIPIENT_EMAIL = 'your@email.com'
# Bolt
API_KEY = 'your_bolt_api_key'
DEVICE_ID = 'BOLTxxxxxx'
EOF

# 创建监控脚本 heart_rate.py
cat > heart_rate.py << 'EOF'
import conf, json, time
from boltiot import Bolt, Email, Sms

MIN_HR = 57
MAX_HR = 100

bolt = 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:
    try:
        resp = bolt.serialRead(2)  # 读取最近 2 字节?实际应读完整行
        data = json.loads(resp)
        hr = int(data['value'])
        if hr > MAX_HR or hr < MIN_HR:
            msg = f"Alert! Heart rate: {hr} bpm"
            mailer.send_email("Heart Rate Alert", msg)
            sms.send_sms(msg)
    except Exception as e:
        print("Error:", e)
    time.sleep(10)
EOF

python3 heart_rate.py &

关键点与改进建议

效果演示

心率异常即时邮件/短信报警:Arduino + Bolt WiFi + 云端 Python 监控
心率异常即时邮件/短信报警:Arduino + Bolt WiFi + 云端 Python 监控

参考文献

Uddin, M. S., Alam, J. B., & Banu, S. (2017). Real time patient monitoring system based on internet of things. ICAEE 2017. DOI: 10.1109/ICAEE.2017.8255410

制造工艺

  1. 用数据与故事讲获批维护项目的六步法
  2. 九大实证策略:保住工作、加速职业成长
  3. 防卡死润滑剂在MRO中省时省钱防麻烦的5大场景
  4. 柯莫里 28 英寸胶印机急停抢修实录:双板损毁+前次修坏,ACS 3 天双板复活
  5. Bolt IoT + Arduino UNO 实现 6 路 LED 无级调光
  6. 选购工业切割刀片的四大核心指标
  7. 家用自动增压泵选购实战指南:告别水压焦虑
  8. 螺丝螺栓大全:34种类型分类、特性与选用指南
  9. 螺丝与螺栓本质区别:定义、类型、选用与优劣势全解析
  10. 销售邮件制胜指南:抓住注意力、转化线索
  11. 溶剂回收蒸馏器巅峰性能维护指南:三大核心养护支柱
  12. 挖掘机与自卸车黄金搭档:矿山作业效率与利润最大化指南