広告

記事

2016年7月17日

【夏休みの自由研究 2016】気温・湿度・気圧の測定(その1)

SparkFun Weather Shield

アルディーノ(Arduino)とSparkFunのウェザーシールドを使って気温・湿度・気圧を測定してみます。

まずは、アルディーとセンサーボード

気象センサー搭載ボード

SparkFunのウェザーシールドは、温度・湿度・気圧センサーが搭載されています、オプションでGPSや雨量・風力・風向センサーを取り付けることができるセンサーボードです。

SparkFun Weather Shield

はじめに、オプション無しの状態で温度・湿度・気圧データの測定を行います。

Arduino UNOとUNO互換ボード

計測するためには、マイコンボードが必要となります。

今回はマイコンボードはアルディーノ(Arduino)を使います。
低価格なマイコンボードですので導入しやすいと思います。

まずは、Arduino UNO純正品です。

純正品ですから安心感はあります、ただし価格が3000円台と夏休みの自由研究で利用するにはちょっと高いと思います。

Arduino UNO
出典:アマゾン−Arduino UNO/価格3240円(2016年7月)

そこで、もっと低価格な「UNO互換ボード」を使います。

互換ボードならかなり安くてにはいります、気象観測に使うので安い方が良いと思います。

waves Arduino UNO互換
アマゾン:waves Arduino UNO互換/価格850円(2016年7月)

アルディーノの開発環境

アルディーノ開発環境

アルディーノのIDE(開発環境)は無料ダウンロードで利用できます。

Arduino IDE

Windows・Mac・LinuxのそれぞれのIDEをダウンロード出来ますので自分のPC環境に応じてダウンロードします。

Windowsの場合は、ダウンロード後にインストールしましょう。
MacOSの場合は、解凍後に起動出来ます。

開発環境を(インストール)して起動すると、ウィンドウが開きますのでその中にプログラムを記述します。

はじめの一歩

LEDをチカチカさせるプログラム

通称「Lチカ」

ファイルメニューの下に「スケッチの例」をたどるとLEDをチカチカさせるプログラムのサンプルが用意されています。

スケッチの例
スケッチの例

Basic
01.Basics

Blink
Blink

oid setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(500);              // wait for a second
}

13番ポートの信号をオン・オフさせてLEDを点滅させるプログラムになっています。 

点滅の待ち時間は500ミリ秒です。(コメントの英文は秒と書いてます)

このプログラムを動作させると、LEDがチカチカします。

点灯時間500ミリ秒、
消灯時間500ミリ秒
ですから1秒に1回点灯するようになっていることがわかります。

アルディーノのボード上には、13番ポートにLEDが接続されている事が多いので、LEDを取り付けなくてもボード上のLEDが点滅するのでわかると思います。(LEDがついてない時はLEDと抵抗を付けてね!)

気象センサーボードも同じように使います!

センサーボードでもLチカと同様にサンプルコードが公開されていますので、少しづつ改良して利用します。

ウェザーシールドのボードのサンプルコードはGithubと呼ぶところで公開されています。

https://github.com/sparkfun/Weather_Shield/blob/master/firmware/Weather_Shield_Basic/Weather_Shield_Basic.ino

Weather Shield

Weather Shield online!
Humidity = 54.54%, temp_h = 31.84C, Pressure 100721Pa, ...

このプログラムを使ってウェザーシールドで測定すると、1秒毎に温度(℃)、湿度(%)、気圧(パスカル)、温度(F)、光度(電圧)、Vin電圧(V)を表示してくれます。

気圧の表示が少し気になりませんか?
100721Pa

気圧(Pressure)の表示はニュースの天気予報で見るhPa(ヘクトパスカル)へ変更して表示させます。

気圧を表示させる部分(93行〜97行)

      //Check Pressure Sensor
      float pressure = myPressure.readPressure();
      Serial.print(" Pressure = ");
      Serial.print(pressure);
      Serial.print("Pa,");

気圧データをhPaとするように100で割って単位をhPaに変更します。

float pressure = myPressure.readPressure() /100;
...
Serial.print("hPa,");

小さな変更ですけどね。

Weather Shield online!
Humidity = 53.17%, temp_h = 32.33C, Pressure 1007.28hPa, ...

こんな感じで必要に応じて少しづつ手直ししてゆきましょう。

次回は測定データとまとめ方を

 次回から、研究レポートを作成することを考えて、どのような形式で気温・湿度・圧力のデータを記録するかを考えてみましょう。

0 件のコメント:

コメントを投稿