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

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

必要な部品と材料

部品数量
Arduino Nano R31
ジャンパーワイヤー1式
HC-06 Bluetoothモジュール1
NTCサーミスタ1
抵抗 10kΩ1
抵抗 1kΩ1
抵抗 2.21kΩ1

必要な工具

使用アプリ・サービス

プロジェクト概要

Arduino NanoとNTCサーミスタで温度を測定し、HC-06 Bluetoothモジュール経由でAndroidアプリにデータを送信する温度モニターシステムを構築します。

必要な材料

1. サーミスタ用分圧回路の組み立て

図1のように、サーミスタと既知抵抗で分圧回路を作り、サーミスタの抵抗値(温度依存)をArduinoのアナログ入力で読み取ります。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図1 サーミスタ抵抗値測定用分圧回路

この回路により、未知抵抗(サーミスタ)の両端電圧降下を測定し、既知抵抗値からサーミスタ抵抗を算出します(図2のコード部分)。

raw = analogRead(analogPin);
if(raw) {
  ratio = raw * Vin;
  Vout = (ratio)/1024.0;
  ratio = (Vin/Vout) - 1;
  R2 = R1 * ratio;
}

図2 サーミスタ抵抗値算出コード

2. β定数式による温度変換

得られた抵抗値をβ定数式で温度に変換します(図3)。

注意: お使いのサーミスタのβ値と25°Cでの抵抗値(Ro)はデータシートで確認してください!

Temp = Beta / log(R2 / (Ro * exp(-Beta/To)));
Temp = Temp - 273.15; // ケルビンから摂氏へ

図3 温度変換コード

3. Bluetoothモジュールの接続

HC-06モジュールの接続は図4の通り。ArduinoのTX(5V)をモジュールのRX(3.3V許容)に接続するため、分圧回路が必要です。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図4 HC-06モジュール接続回路図

4. データ送信とアプリ側処理

シリアル通信で温度データを送信します。この例では25〜75°Cの範囲を監視し、高温(74°C以上)では約300秒カウントしてからメッセージを変更します(図5)。

void setup() { Serial.begin(9600); }
void loop(){
  if(Temp >= 74) {
    for (int i = 0; i <= 30; i++) {
      Serial.print("Temperature >= 74 °C");
      delay(10000);
    }
    Serial.print("Heating Complete");
    delay(10000);
  } else if (Temp <= 26){
    Serial.print("Temperature <= 25 °C");
    delay(10000);
  } else {
    Serial.print("Temperature: ");
    Serial.println(Temp);
    delay(10000);
  }
}

図5 シリアル初期化と値送信コード

5. 完成デバイス

ブレッドボード上での完成品(図6)。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図6 ブレッドボード上の完成デバイス

6. Androidアプリとの連携

MIT App Inventor 2でシンプルなアプリを作成し、Bluetoothでデータを受信・表示します。図7がUI、図8がブロックプログラミングの様子です。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図7 App Inventor 2で作成したユーザーインターフェース

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図8 App Inventor 2のプログラミングブロック

アプリはApp Inventorギャラリーで公開中:https://ai2.appinventor.mit.edu/#5876233188016128

ブロックプログラミングなので、目的に合わせて様々なアプリを作れます。例:25°C以下で音声通知、75°Cで5分経過後に「加熱完了」通知など。

7. オプション:はんだ付けとケース化

部品をはんだ付けし、3Dプリントしたケースに収めると携帯性が向上します(図9)。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

図9 実用化したデバイス

ケース側面に穴を開けてUSBケーブルで給電。サーミスタを長いケーブルで延長し、測定対象(溶液など)から電子部品を離せるようにしています。

このシンプルなプロジェクトが、Bluetoothモジュールを使ったシリアル通信の基礎理解の一助となれば幸いです。エラーや質問があればお気軽にどうぞ。

追記: Bluetooth用分圧回路の配線図に誤りがありました。修正済みです。
追記2: コード書き込み時にエラーが出る場合は、Bluetoothモジュールを外してから書き込んでみてください。

完全なスケッチコード

// Temperature monitor with bluetooth module
int analogPin = 0;
int raw = 0;
int Vin = 5;
float Vout = 0;
float R1 = 10000; // 使用抵抗に合わせて変更
float Ro = 10000; // サーミスタの25°C抵抗値に合わせて変更
float R2 = 0;
float ratio = 0;
float Temp = 0;
float Beta = 3694; // 使用サーミスタのβ値に変更
float To = 298.15; // 25°C = 298.15K

void setup() {
  Serial.begin(9600);
}
void loop() {
  raw = analogRead(analogPin);
  if(raw) {
    ratio = raw * Vin;
    Vout = (ratio)/1024.0;
    ratio = (Vin/Vout) - 1;
    R2 = R1 * ratio;
    Temp = Beta / log(R2/(Ro*exp(-Beta/To)));
    Temp = Temp - 273.15;
    if(Temp >= 74) {
      for (int i = 0; i <= 30; i++) {
        Serial.print("Temperature >= 74 °C");
        delay(10000);
      }
      Serial.print("Heating Complete");
      delay(10000);
    } else if (Temp <= 26){
      Serial.print("Temperature <= 25 °C");
      delay(10000);
    } else {
      Serial.print("Temperature: ");
      Serial.println(Temp);
      delay(10000);
    }
  }
}

回路図

抵抗R2は使用するサーミスタの抵抗値に合わせて変更してください。未知抵抗とR2の差(バイアス)が大きいほど温度読み取り誤差が増加します。

Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視

製造プロセス

  1. Raspberry Pi温度・湿度ネットワークモニター – DIYセットアップガイド
  2. Raspberry PiとBrickPiでThingSpeak温度モニターを構築
  3. Raspberry Piダッシュボードで家庭の温度を監視する
  4. スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
  5. イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
  6. Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
  7. 非接触ジェスチャー錠: APDS-9960とArduinoでセキュアアクセス
  8. Arduino Nanoコンパニオンキット – 電子工作に必須の部品とツールを搭載した多機能IC型デバイス
  9. Arduino Micro/Leonardo用 USB-MIDIアダプタキット – 完全パーツリストと実装ガイド
  10. Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
  11. Arduino UNOで作る精密反応速度テスター