Bluetooth温度モニター
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
このチュートリアルでは、Bluetooth接続によってAndroidアプリに値を送信するArduino温度コントローラーを設定する方法を紹介します。
このプロジェクトを構築するために必要な資料から始めましょう:
- Arduinonano。
- NTCサーミスタ、25°Cの抵抗を確認します。これは、ベータ式を使用して温度を正しく評価するためにarduinoコードで必要になるためです。
- 抵抗器、2k、1k、および同じ大きさのサーミスタの1つ。
- HC06Bluetoothモジュール。
- さまざまなジャンパー。
まず、サーミスタに使用する分圧器の組み立てを開始する必要があります。図1は、温度の関数としてサーミスタの未知の抵抗を計算するために必要な接続を示しています。
<図>
図1 サーミスタ抵抗評価用の分圧器。
この回路により、Arduinoは未知の抵抗の後の電圧降下を決定できます。他の抵抗値を使用して、コードの次の部分を使用して未知の抵抗の値を計算できます(図2)。
raw =analogRead(analogPin); if(raw){ratio =raw * Vin; Vout =(比率)/1024.0;比率=(Vin / Vout)-1; R2 =R1 *比率;
図2 サーミスタ抵抗評価用のArduinoコード。
得られた抵抗は、ベータ式を使用して温度に変換されます(図3)。
注:25°CでのサーミスタとRoのベータ値は、サーミスタのデータシートに記載されています。コードを実行する前にチェックしてください!
Temp =Beta / log(R2 /(Ro * exp(-Beta / To))); Temp =Temp -273.15;
図3 温度変換用のArduinoコード。
次に、Bluetoothモジュールをセットアップする必要があります。図4は、このプロジェクトで使用したようなBluetoothモジュールを前のプロジェクトに接続する方法を示しています。 ArduinoのTX1ピンをモジュールのRXピンに接続するには、分圧器が必要です。これは、オンラインの3.3Vを入力として受け入れるためです。
<図>
図4 HC06モジュールを備えたArduino回路図。
次に、シリアルドアを初期化し、必要な値を印刷することにより、Bluetoothモジュールを介してデータを送信できます。この例では、25〜75°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 シリアル初期化および値の印刷ごとのArduinoコード。
ブレッドボードに組み立てられた最終的なデバイスを図6に示します。
<図>図6 ブレッドボード上の完全なデバイス。
最後のステップは、データを視覚化するためにBluetoothモジュールをAndroidフォンに接続することです。シンプルなアプリはMITAppInventor 2を使用してプログラムされています。図7と図8は、それぞれユーザーインターフェイスとプログラミングブロックを示しています。
<図>図7 AppInventor2で作成されたユーザーインターフェイス。
<図>
図8 AppInventor2のプログラミングブロック。
提案されたアプリは、次のリンクのApp Inventorギャラリーで入手できます:http://ai2.appinventor.mit.edu/#5876233188016128
とにかく、アプリの発明者のシンプルで直感的なブロックプログラミングシステムを使用して、他の多くのアプリを構築して、必要な目的を達成することができます。たとえば、測定を実行し、75°Cで5分後に加熱サイクルが完了したことを通知するために、温度が25°Cを下回った場合に音で通知するアプリが必要でした。
オプション:最後のステップは、コンポーネントのはんだ付けと、パーツをまとめるためのボックスの3Dプリントです。図9は、そのようなアプローチの結果を示しています。
<図>
図9 完全なデバイスを使用する準備ができています。
ミニUSBケーブルでArduinoに電力を供給するために、このボックスの側面に穴が開けられています。サーミスタとデバイスの他の部分との間の距離を広げるために、赤と黒の長いケーブルが追加されました(溶液の温度をチェックするためにサーミスタが必要なので、可能な限り電子部品が必要でした)。
>
この簡単なプロジェクトが、Bluetoothモジュールとのシリアル通信の基本を理解し、これを自分のプロジェクトに適用するのに役立つことを願っています。
エラーを見つけた場合、または単に何か質問したい場合は、私に知らせてください。
編集:Bluetoothモジュールに必要な分圧器の回路図面の配線にエラーが見つかりました。解決しました。
編集2:ボードへのコードのアップロードで問題が発生した場合は、Bluetoothモジュールを切断してみてください。
コード
- Bluetoothモジュール付きの温度モニター
Bluetoothモジュール付き温度モニター Arduino
NTCサーミスタの抵抗を計算するために、ほぼ同じ大きさ(この例では10kΩ)の既知の抵抗と直列に5Vが印加されます。アナログピンA0を介して、直列抵抗から作成された分圧器の電圧が計算され、1つの抵抗の既知の値を使用して、NTC抵抗が計算されます。次に、この値はベータ方程式を使用して温度に変換され(ベータを使用しているものに変更します)、Bluetoothモジュールを使用してAndroidアプリに送信されます。コードを変更して特定の温度範囲を監視できます。この例では、25〜75°Cで監視し、より高い温度で5分間待機する必要がありました。
// bluetoothmoduleint analogPin =0; intrawを使用した温度モニター=0; int Vin =5; float Vout =0; float R1 =10000; //システムフロートに変更Ro =10000; //システムに変更しますfloatR2 =0; float ratio =0; float Temp =0; float Beta =3694; //システムフロートに変更To =298.15; //サーミスタは25°Cで10kから移動します。参照抵抗を選択します。voidsetup(){Serial.begin(9600);} void loop(){raw =analogRead(analogPin); if(raw){ratio =raw * Vin; Vout =(比率)/1024.0;比率=(Vin / Vout)-1; R2 =R1 *比率; 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は、使用するサーミスタの抵抗に応じて変更する必要があります。温度読み取りの誤差はバイアスとともに増加します(Runknow-R2)。 製造プロセス