GY-906 (赤外線温度センサ MLX90614) を Arduino で利用する方法
このページでは非接触温度センサモジュールの GY-906 を利用する方法を説明します。
GY-906 は赤外線温度センサ MLX90614 を利用しています。
MLX90614 にはバリエーションがありますが、ここでは MLX90614ESF-BAA です。
ESF-BAA の意味は次の通りです。
E → 動作温度範囲 -40°C から 85°C
SF → TO-39 パッケージ
B → 3V 動作電圧
A → シングルゾーン (サーモパイル)
A → スタンダードパッケージ
動作電圧については、GY-906 では内部電圧レギュレータが搭載されているので、 MLX90614 "B" ではありますが 3-5V の範囲で利用可能とのことです。
Arduino Uno との接続
MLX90614 のピン配置及び Arduino Uno との接続は次のようになります。
TO-39 パッケージの突起から反時計回りに SCL、SDA、VDD、GND です。GY-906 モジュールでは既にボードにハンダ付けされていて、ピン名の記載がありますので簡単です。
I2C インターフェイス (SCL, SDA) は 10kΩ のプルアップ抵抗が必要です。
Arduino Uno R3 では SDA、SCL はそれぞれ、A4、A5 が割り当てられています。利用する Arduino のボードに合わせて、ピン配列を確認してください。
さらに今回は温度測定結果を LCD モジュール 1604A に表示するので、その接続も必要です。LCD については「Arduino を用いて LCD に文字を表示」をみてください。
以上で配線は終了です。引き続き Arduino のソフトウェア (スケッチ) を作成しましょう。
MLX90614 モジュール
Arduino から MLX90614 を利用するためのモジュールとして、Adafruit 社が提供している Adafruit MLX90614 Library があります。今回はこれを利用します。
Arduino IDE のメニューから Sketch » Include Library » Manage Libraries... を選択します。
するとライブラリの管理画面が出てきますので、この画面の上部の検索部で "906" 等と入れると次のように、 ライブラリ一覧が表示されます。ここから必要なライブラリをインストールします。リスト項目を選択すると、右側に Install (インストール) ボタンが表示されます。
それと LCD を利用する LiquidCrystal ライブラリと組み合わせ、次としました。
#include <Adafruit_MLX90614.h>
#include <LiquidCrystal.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
LiquidCrystal lcd(4,6,10,11,12,13);
void setup() {
mlx.begin();
lcd.begin(16,2);
lcd.clear();
}
void loop() {
String line1, line2;
line1 = String(mlx.readObjectTempC(), 1);
line1 += "[C]";
line2 = "Ambient: ";
line2 += String(mlx.readAmbientTempC(), 1);
line2 += "[C]";
lcd.clear();
lcd.setCursor(0,0);
lcd.print(line1);
lcd.setCursor(0,1);
lcd.print(line2);
delay(3000);
}
Arduino Uno を USB ケーブルで PC と接続して、スケッチをアップロードすれば準備完了です。
実際に動作している様子は次のようになります。
温度センサに手をかざすと直ちに温度が上がり、手を話すとまたもとの温度に下がっていることがわかります。