工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

心拍数異常をメール&SMSで即時通知 - Arduino Mega+Bolt IoT

必要なパーツと材料

パーツ数量備考
心拍センサーモジュール1出力ピン→Arduino D2
Arduino Mega 25601
Bolt WiFiモジュール1クラウド連携用
ジャンパーワイヤー7本

使用クラウドサービス

プロジェクト概要

24時間心拍監視し、異常値(デフォルト:57未満または100超過)検知時にメールとSMSでアラート通知するシステム。フィットネスバンドのようなウェアラブルに、通知機能を追加したイメージです。

ステップ1:心拍センサー接続

ステップ2:Arduinoスケッチ

10秒ごとにパルス数をカウントし、BPM(拍/分)に換算してシリアル出力。Boltモジュールがこのデータを読み取ります。

ステップ3:Bolt WiFiモジュール接続

シリアル通信でArduinoから心拍データを取得し、Bolt Cloud経由でクラウドに送信。

ステップ4:Mailgun設定(メール送信)

  1. アカウント作成・電話認証
  2. Domains → Add Recipient → 招待メール送信
  3. 生成されたサンドボックスの認証情報(APIキー、SMTP認証情報等)を控える

ステップ5:Twilio設定(SMS送信)

  1. 無料アカウント作成・電話認証
  2. Programmable SMSとPhone Numbersを有効化
  3. プロジェクト作成後、Account SID、Auth Token、発行された電話番号を控える

ステップ6:DigitalOcean VPSで監視スクリプト実行

専用Linuxサーバー(またはVM)でPythonスクリプトを常駐実行。Bolt Cloudから心拍データをポーリングし、閾値判定してアラート送信。

設定ファイル:conf.py

# Twilio認証情報
SID = 'あなたのTwilio Account SID'
AUTH_TOKEN = 'あなたのTwilio Auth Token'
FROM_NUMBER = 'Twilio発行の電話番号'
TO_NUMBER = '通知先電話番号(+81から開始)'

# Mailgun認証情報
MAILGUN_API_KEY = 'MailgunプライベートAPIキー'
SANDBOX_URL = 'MailgunサンドボックスURL'
SENDER_EMAIL = 'test@あなたのSANDBOX_URL'
RECIPIENT_EMAIL = '通知先メールアドレス'

# Bolt認証情報
API_KEY = 'Bolt Cloud APIキー'
DEVICE_ID = 'あなたのBoltデバイスID'

監視スクリプト:heart_rate.py

import conf, json, time
from boltiot import Email, Bolt, Sms

MIN_HEART_RATE = 57   # 下限閾値
MAX_HEART_RATE = 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)  # シリアルポート2から読取
    data = json.loads(response)
    sensor_value = data['value']
    
    try:
        hr = int(sensor_value)
        if hr > MAX_HEART_RATE or hr < MIN_HEART_RATE:
            mailer.send_email("Alert", f"The Current Heart Rate is {hr}")
            sms.send_sms(f"Alert! The Current Heart Rate is {hr}")
    except Exception as e:
        print(e)
    
    time.sleep(10)

実行方法

sudo apt-get update
sudo apt install python3-pip
sudo pip3 install boltiot
sudo python3 heart_rate.py

Arduinoコード

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++;
  }
  // 10秒ごとにBPM出力
  if (millis() - oldMillis >= 10000) {
    oldMillis = millis();
    int bpm = highCounter * 6;
    if (highCounter > 1) Serial.println(bpm);
    highCounter = 0;
  }
}

回路図

心拍数異常をメール&SMSで即時通知 - Arduino Mega+Bolt IoT

注意点

製造プロセス

  1. データとストーリーテリングでメンテナンスプロジェクト承認を勝ち取る方法
  2. 仕事を守りキャリアを加速する9つの実証済み戦略
  3. アンチシーズ潤滑剤がMROで時間・コスト・悩みを解消する5つの理由
  4. 緊急対応:小森28インチオフセット印刷機の突然停止を解決
  5. 産業用切断ブレード購入時に考慮すべき4つの重要要素
  6. 家庭用自動加圧ポンプの選び方:実践ガイド
  7. ネジとボルトの種類を理解して最適な組み立てを実現する
  8. ネジとボルトの違い:種類、用途、選び方のポイント
  9. セールスメール完全攻略:注目を集め、リードを転換させる
  10. 溶剤回収装置(スティル)を最高性能で維持するエキスパートメンテナンスガイド
  11. 採掘現場でショベルとダンプトラックの組み合わせを最適化し、効率と利益を最大化する