MLX90614とArduino Nanoで作る高精度非接触体温計(COVID-19対策)
部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| MLX90614 非接触赤外線温度センサー | 1 | |
| Arduino Nano R3 | 1 | |
| ジャンパーワイヤー(メス-メス) | 1式 | |
| OTGアダプター | 1 | |
| USB Mini - USB Microケーブル | 1 | |
| Android端末 | 1 | 表示・電源用 |
使用アプリとオンラインサービス
- Arduino IDE
- Serial Monitor Androidアプリ
プロジェクト概要
非接触体温計
継続的な体温モニタリングは、新型コロナウイルス感染者を検出する方法の一つです。市場には様々な体温計がありますが、一般的な接触式体温計では患者の体温測定時にウイルスを拡散させるリスクがあります。この特殊な状況下では非接触体温計(温度ガン)が有効です。主要な製造国は中国ですが、ロックダウンとパンデミックの影響で生産が追いついていません。
しかし、入手しやすい部品で非接触体温計を自作することができます。
仕組み
この非接触体温計の核心部品はMLX90614非接触温度センサーです。センサーの出力をArduino Nanoに接続し、Serial Monitor Androidアプリを通じてスマートフォンに温度を表示します。外部電源は不要で、Arduinoとセンサーはスマートフォンから給電されます。
MLX90614赤外線温度センサー
MLX90614は非接触温度測定用の赤外線温度センサーで、I2Cインターフェースでマイクロコントローラーと通信します。ここではArduino Nanoをマイクロコントローラーとして使用します。このセンサーは物体に触れずに温度を測定でき、広い温度範囲で±0.5℃の精度を持ちます。
製作手順
ステップ1:Arduino IDEでスケッチ作成
- Arduino IDEを開き、新規ワークスペースを作成
- スケッチ > ライブラリをインクルード > ライブラリを管理から「Adafruit MLX90614」を検索してインストール
- Arduino IDEを再起動
- ヘッダーファイル
Adafruit_MLX90614.hとWire.h(I2C通信用)をインクルード - 変数
mlxを定義し、Adafruit_MLX90614()で初期化
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
ステップ2:setup()部分のコーディング
シリアル通信を9600bpsで開始し、mlx.begin()でセンサーを初期化します。
void setup() {
Serial.begin(9600);
mlx.begin();
}
ステップ3:loop()部分のコーディング
摂氏と華氏の両方で温度を取得・表示し、500msごとに更新します。
void loop() {
Serial.print("Temperature : ");
Serial.print(mlx.readObjectTempC());
Serial.println(" Celsius");
Serial.print("Temperature : ");
Serial.print(mlx.readObjectTempF());
Serial.println(" Fahrenheit");
Serial.println();
delay(500);
}
コーディング完了後、Arduino Nanoにアップロードしてください。完全なコードは記事末尾のコードセクションにあります。
ハードウェア接続
| Arduino Nano | MLX90614 |
|---|---|
| A4 | SDA |
| A5 | SCL |
| 3.3V | Vcc |
| GND | GND |
上記の接続表または回路図に従って配線してください。Arduino Nanoとセンサーをケースに収め、センサー用とUSBケーブル用の穴を開けます。USBでArduinoとスマートフォンを接続し、Serial Monitorアプリをインストールしてボーレートを9600に設定すれば完成です。
完全なコード
// Sketch created by Akshay Joseph
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
mlx.begin();
}
void loop() {
Serial.print("Temperature : ");
Serial.print(mlx.readObjectTempC());
Serial.println(" Celsius");
Serial.print("Temperature : ");
Serial.print(mlx.readObjectTempF());
Serial.println(" Fahrenheit");
Serial.println();
delay(500);
}
回路図

STAY HOME, STAY SAFE, STAY CREATIVE. 感染の連鎖を断ち切りましょう。
製造プロセス
- コンタクトレンズ:歴史、素材、未来の革新
- 温度計:ガリレオの温度スコープから現代デジタルセンサーまで
- Bluetooth操作のArduinoスパイボットを自作する
- FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
- 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
- Arduinoと1Sheeldで作る万能Androidリモコン──IR制御で家電を一括操作
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- ArduinoとAndroidでRoomba Create 2をリモコン操作 ─ Bluetooth経由のステップバイステップガイド
- Android連携の低コスト携帯型非接触体温計(MLX90614+Arduino Nano)