
【Arduino】非接触温度センサ(GY-906)を使う
はじめに この記事では、非接触温度センサGY-906(MLX90614)をArduinoから読み取り、対象物の温度と外気温を取得する方法をまとめます。基本のArduino配線から、M5StickC Plusでの表示、手ブレやノイズを抑えるためのメディアンフィルタまで扱います。温度計の代わりに厳密な測定をするというより、触れないものの温度変化を手軽に見る用途に向いたセンサです。 準備 GY-906ライブラリのインストール Arduino IDEをお使いの場合は、ライブラリマネージャで「Adafruit MLX90614」検索し 「Adafruit-MLX90614-Library」のバージョン1.1.x をインストールします。最新の2.0.0を使うと、本記事のプログラムでは動かない可能性があります。 https://github.com/adafruit/Adafruit-MLX90614-Library Arduinoで非接触温度センサGY-906を使う Arduinoで非接触温度センサGY-906を使ってターゲットの温度と、外気温を取得してみます。 ArduinoとGY-906の配線 ArduinoとGY-906の配線図です。 Arduinoの3.3Vをセンサモジュールへ供給し、SCLとSDAをそれぞれつなぎます。GY-906センサモジュールは、プルアップ抵抗が内蔵されているのでそのまま繋ぐことが可能です。 ソースコード(Arduino版) こちらが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は環境温度、つまり外気温を意味します。センサ自体が熱せられてしまうと、外気温も上がってしまうので注意しましょう。 プログラムでは摂氏温度を取得しましたが、華氏温度で取得したい場合は、readObjectTempFを使ってください。 ...




