ESP32開発環境を構築し、GY-906 MLX90614ESF Contactless Temperature Sensorと、MAX30100 Heart-Rate Oximeter Pulse Sensor Pulsesensorの動作を確認します。
ESP32開発環境の構築
Arduino IDEを使ったESP32開発環境の構築の手順を次に示します。
- Arduino IDEを立ち上げて、メニューから「ファイル」→「環境設定」を開き、「追加のボードマネージャのURL」次のデータを設定し、「OK」をクリックします。
- 「ツール」→「ボード」→「ボードマネージャ」をクリックし、「esp」と入力し、「esp by Espressif Systems」をインストールします。最新版の1.04をインストールしました。
- 「ツール」→「ボード」で、「ESP32 Dev Module」を選択します。
- パソコンとESP32ボードをUSBケーブルで接続します。パソコンのデバイスマネージャを開くと、「COM6」に「Silicon Labs CP201x USB to UART Bridge」として自動的に認識されていました。
- 作成したプログラムをESP32 に書き込むために、「EN」スイッチ と「IO0」スイッチを同時に押し、「スケッチ」→「マイコンボードに書き込み」をクリックし、プログラムの転送を待っている状態になると「EN」スイッチを離し、プログラムの転送が始まったら「IO0」スイッチを離します。
https://dl.espressif.com/dl/package_esp32_index.json
ESP32との接続
ESP32ボードのピン配置を次に示します。
次のセンサをESP32ボードに接続します。
- GY-906 MLX90614ESF Contactless Temperature Sensor
- MAX30100 Heart-Rate Oximeter Pulse Sensor Pulsesensor
I2C | MLX90614ESF | MAX30100 | ESP32 |
---|---|---|---|
GND | GND | GND | GND |
VCC | VCC | VCC | 3.3V |
SCL | SCL | SCL | GPIO22(I2C SCL) |
SDA | SDA | SDA | GPIO21(I2C SDA) |
ESP32にMLX90614ESFとMAX30100を接続した画像を次に示します。
「Pro MicroによるOLEDディスプレイ への表示」で作成したi2c_scanner1によりI2 Cのアドレスを確認します。
12:29:56.503 -> 1QOB,⸮бVC0⸮L⸮⸮ !⸮⸮ ⸮ 12:29:56.703 -> I2C Scanner 12:29:56.703 -> 0 1 2 3 4 5 6 7 8 9 A B C D E F 12:29:56.757 -> 00: xx xx xx xx xx xx xx xx -- -- -- -- -- -- -- -- 12:29:56.803 -> 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 12:29:56.857 -> 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 12:29:56.957 -> 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 12:29:57.004 -> 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 12:29:57.057 -> 50: -- -- -- -- -- -- -- 57 -- -- 5A -- -- -- -- -- 12:29:57.104 -> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 12:29:57.158 -> 70: -- -- -- -- -- -- -- -- xx xx xx xx xx xx xx xx 12:29:57.204 ->
【I2 Cのアドレス】
・MLX90614ESF:0x5A
・MAX30100:0x57
MAX30100の動作確認
MAX30100ライブラリのインストール
メニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、
次のように「MAX30100lib」 をインストールします。
MAX30100サンプルスケッチの実行
テストスケッチは 、メニューから[ファイル | →「スケッチ例」→「MAX30100lib」 にある 「MAX30100_Minimal」 を使います。コンパイルして実行すると次のようにシリアルモニタに表示されます。
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0018,len:4 load:0x3fff001c,len:1216 ho 0 tail 12 room 4 load:0x40078000,len:9720 ho 0 tail 12 room 4 load:0x40080400,len:6352 entry 0x400806b8 Initializing pulse oximeter..SUCCESS Heart rate:0.00bpm / SpO2:0% Heart rate:0.00bpm / SpO2:0% Beat! Heart rate:46.77bpm / SpO2:0% Beat! Beat! Heart rate:74.97bpm / SpO2:94% Beat! Heart rate:30.27bpm / SpO2:0% Beat! Beat! Heart rate:94.52bpm / SpO2:95% Beat! Beat! Heart rate:144.03bpm / SpO2:94% Beat! Heart rate:86.23bpm / SpO2:94% Beat! Beat! Heart rate:148.48bpm / SpO2:94%
MLX90614ESFの動作確認
MLX90614ESFライブラリのインストール
メニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、
次のように「Adafruit MLX90614 Library」 をインストールします。
MLX90614ESFサンプルスケッチの実行
テストスケッチは 、メニューから[ファイル | →「スケッチ例」→「Adafruit MLX90614 Library」 にある 「miltest」 を使います。コンパイルして実行すると次のようにシリアルモニタに表示されます。
LJ& ,b(?` <・dafruit MLX90614 test Ambient = 25.31*C Object = 31.63*C Ambient = 77.56*F Object = 88.93*F Ambient = 25.31*C Object = 31.33*C Ambient = 77.56*F Object = 88.39*F Ambient = 25.35*C Object = 30.85*C Ambient = 77.63*F Object = 87.53*F Ambient = 25.39*C Object = 32.31*C Ambient = 77.70*F Object = 90.16*F Ambient = 25.39*C Object = 31.27*C Ambient = 77.70*F Object = 88.29*F