温度および湿度データロガー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
このプロジェクトの内容
私はArduinoマイクロコントローラーを数週間実験していて、LEDなどを使って単純な回路を構築しただけです。何かをするのに役立つ最初のプロジェクトを作りたかったので、温度と湿度のデータロガーを作ることにしました。これはかなり単純な回路ですが、コードはかなりトリッキーになる可能性があります(私のレベルの誰かにとって。笑)。
どうやってやったのか
最初のステップは、Arduino Unoとイーサネットシールドを組み立てて、以下に示すように、コンポーネントを使用して次の回路を構築することです。
<図>回路が完成したら、SDカードがフォーマットされてイーサネットシールドに挿入されていることを確認してください。
これで、以下に示すコードをアップロードできます。 Arduinoとセンサーが温度と湿度の測定を開始します。 ArduinoはSDカードにDATALOGGER.TXTファイルを作成します。電源が切断されると、データロガーは停止し、電源が復旧すると再び続行します。
測定が1時間または2時間より長い場合は、「ACアダプター」などの恒久的な電源を使用して、バッテリーが消耗して重要なデータが失われないようにすることをお勧めします。
コード
- Temp_and_Humid.ino
Temp_and_Humid.ino Arduino
Arduino IDEの例でSDカードデータロガーを使用し、以下のコードに示すようにDHT11センサーのコードを追加します。 SDカードの例では、最大3つのセンサーからのデータをログに記録できます。 57行目の中央セグメントをanalogPin <3からanalogPin <1に変更してください。/ * SDカードデータロガーこの例は、SDライブラリを使用して3つのアナログセンサーからSDカードにデータを記録する方法を示しています。回路:*アナログ入力0、1、および2のアナログセンサー*次のようにSPIバスに接続されたSDカード:** MOSI-ピン11 ** MISO-ピン12 ** CLK-ピン13 ** CS-ピン4が作成されました2010年11月24日TomIgoeによって2012年4月9日に変更このサンプルコードはパブリックドメインにあります。 * /#include#include #include dht DHT; #define DHT11_PIN A0const int chipSelect =4; void setup(){//シリアル通信を開き、ポートが開く:Serial.begin(9600); while(!Serial){; //シリアルポートが接続するのを待ちます。ネイティブUSBポートにのみ必要} Serial.print( "Initializing SD card ..."); //カードが存在し、初期化できるかどうかを確認します:if(!SD.begin(chipSelect)){Serial.println( "カードが失敗したか、存在しません"); //これ以上何もしません:return; } Serial.println( "card initialize。");} void loop(){//ログにデータをアセンブルするための文字列を作成します:String dataString =""; // 3つのセンサーを読み取り、文字列に追加します:for(int analogPin =0; analogPin <1; analogPin ++){int chk =DHT.read11(DHT11_PIN); dataString + =String(chk); if(analogPin <2){dataString + ="、"; }} //ファイルを開きます。一度に開くことができるファイルは1つだけなので、//別のファイルを開く前にこのファイルを閉じる必要があることに注意してください。ファイルdataFile =SD.open( "datalog.txt"、FILE_WRITE); //ファイルが利用可能な場合は、次のように書き込みます。if(dataFile){dataFile.println(DHT.temperature); dataFile.println(DHT.humidity); dataFile.close(); //シリアルポートにも出力します:Serial.print( "Temperature ="); Serial.println(DHT.temperature); Serial.print( "湿度="); Serial.println(DHT.humidity); delay(600000); } //ファイルが開いていない場合は、エラーをポップアップします。else{Serial.println( "erroropening datalog.txt"); }}
回路図
製造プロセス