Arduinoで非接触温度センサGY-906

Arduinoで非接触温度センサGY-906
Arduinoで非接触温度センサGY-906

この記事では、Arduinoで非接触温度センサGY-906を使った温度測定の方法を解説してきます。非接触温度センサGY-906は、赤外線センサーのMLX90614を搭載したセンサモジュールです。Arduinoなどのマイコンとは、I2C通信を使ってデータのやり取りが可能となっています。

GAOHOU GY-906 MLX90614非接触赤外線温度センサモジュールIICインタフェース
GAOHOU GY-906 MLX90614非接触赤外線温度センサモジュールIICインタフェース
Amazon

I2C通信と言っても、Adafruitから出ているGY-906のライブラリを使えばカンタンに温度データを読み取れます。また、センサモジュールにはあらかじめプルアップ抵抗がついていますので、そのままArduinoで使うことができます。

この記事の内容ならば、おおげさではなく10分程度で温度測定ができると思います。ぜひご参考になさってみてください。

開発環境

この記事で使用した開発環境は次のとおりです。

項目バージョン
ArduinoデバイスArduino Uno Rev3
非接触温度センサGY-906(MLX90614)
統合開発環境Visual Studio Code x Platform IO
パソコンmacOS Big Sur 11.0.1

今回は「Arduino Uno Rev3」を使用しましたが、他のArudino互換機などでも同じ内容で動作するとおもいます。また、Platform IOを使ってArduinoスケッチを書きましたがArduino IDEで構いません。

Arduino Uno Rev3 ATmega328 マイコンボード A000066
Arduino Uno Rev3 ATmega328 マイコンボード A000066
Amazon

M5StickC PLUSを使ったバージョンも記事にしましたので、よかったらご参考になさってみてください。

ArduinoとGY-906の配線

ArduinoとGY-906の配線
ArduinoとGY-906の配線

ArduinoとGY-906の配線はとても簡単です。上図のように、Arduinoの3.3Vをセンサモジュールへ供給し、SCLとSDAを繋いでください。冒頭で述べた通り、GY-906センサモジュールにはプルアップ抵抗がハンダ付されてますので、プルアップ抵抗の必要はありません。

GY-906ライブラリのインストール

「Adafruit MLX90614ライブラリ」を使うと、ArduinoでGY-906をとても簡単に扱うことができますのでインストールしましょう。

Adafruit MLX90614ライブラリ
Adafruit MLX90614ライブラリ

今回は「Visual Studio Code」と「Platform IO」を使ってArduino開発したので、画像のような画面になってますが、Arduino IDEを使う場合も、ライブラリマネージャーから「Adafruit MLX90614」で検索すればカンタンにライブラリをインストールできます。

非接触温度センサで温度測定プログラム

それでは非接触温度センサGY-906で温度を測定するプログラムの紹介です。ほとんどAdafruitのサンプルプログラムのままです。ちなみにGY-906センサは、室内外の温度とターゲットの物体の温度を同時に測定可能です。

#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600);
  mlx.begin();  
}

void loop() {
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); 
  Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
  // Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempF()); 
  // Serial.print("*F\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");

  Serial.println();
  delay(1000);
}

プログラムの中で、Objectが対象物の赤外線から得た温度となります。また、Ambientが「環境温度」ですから外気温そのものになります。

Arduinoで非接触温度センサGY-906
Arduinoで非接触温度センサGY-906

このように手を近づけると温度が測定できました。ただし、赤外線センサなので測定物をセンサにかなり接近させないと正確な温度が測れないようです。もしかしたら、こちらのようにケースで覆われている方が扱いやすく精度が良いかもしれないので検討してみてください。

KKHMF GY-906-BCC MLX90614ESF-BCC IR 赤外線温度測定センサーモジュール
KKHMF GY-906-BCC MLX90614ESF-BCC IR 赤外線温度測定センサーモジュール
Amazon
GAOHOU GY-906 MLX90614非接触赤外線温度センサモジュールIICインタフェース
GAOHOU GY-906 MLX90614非接触赤外線温度センサモジュールIICインタフェース
Amazon
dretec(ドリテック) 体温計 非接触 医療機器認証取得 スピード 正確 液晶色で分かる結果 おでこ こめかみ 電子 3秒 測定 赤ちゃん
dretec(ドリテック) 体温計 非接触 医療機器認証取得 スピード 正確 液晶色で分かる結果 おでこ こめかみ 電子 3秒 測定 赤ちゃん
Amazon

Arduinoで人気の周辺パーツ

サインスマート(SainSmart) 8チャンネル 5V リレーモジュール for Arduino DSP AVR PIC ARM
サインスマート(SainSmart) 8チャンネル 5V リレーモジュール for Arduino DSP AVR PIC ARM
Amazon
KKHMF 10個 TTP223 静電容量式 タッチ スイッチ ボタン セルフロック モジュール 「国内配送」
KKHMF 10個 TTP223 静電容量式 タッチ スイッチ ボタン セルフロック モジュール 「国内配送」
Amazon
DSD TECH 2 PCS OLED 0.91インチディスプレイ  I2C
DSD TECH 2 PCS OLED 0.91インチディスプレイ I2C
Amazon
OSOYOO(オソヨー) DIY センサーモジュール キット
OSOYOO(オソヨー) DIY センサーモジュール キット
Amazon

人気のArduino互換機

ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P
ELEGOO Arduino用 Nanoボード V3.0 CH340/ATmega328P
Amazon
HiLetgo ESP32ワイヤレススティックLora + WiFi + BLE開発ボード LoRaWAN 868 / 915MHz、0.49インチOLEDディスプレイ
HiLetgo ESP32ワイヤレススティックLora + WiFi + BLE開発ボード LoRaWAN 868 / 915MHz、0.49インチOLEDディスプレイ
Amazon
M5Stack M5StickC Plus ESP32-PICO
M5Stack M5StickC Plus ESP32-PICO
Amazon
M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサー
M5Stack Core2 開発キットデュアルコア32ビット240Mhz LX6プロセッサー
Amazon

Arduinoのオススメ参考書

電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
KindleAmazon
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Amazon
ESP32&Arduino 電子工作 プログラミング入門
ESP32&Arduino 電子工作 プログラミング入門
KindleAmazon
記事に関するご質問などがあれば、ぜひTwitterへお返事ください。