ESP32開発環境を構築し、GY-906 MLX90614ESF Contactless Temperature Sensorと、MAX30100 Heart-Rate Oximeter Pulse Sensor Pulsesensorの動作を確認します。

ESP32開発環境の構築

Arduino IDEを使ったESP32開発環境の構築の手順を次に示します。

  1. Arduino IDEを立ち上げて、メニューから「ファイル」→「環境設定」を開き、「追加のボードマネージャのURL」次のデータを設定し、「OK」をクリックします。
  2. https://dl.espressif.com/dl/package_esp32_index.json
    

     

  3. 「ツール」→「ボード」→「ボードマネージャ」をクリックし、「esp」と入力し、「esp by Espressif Systems」をインストールします。最新版の1.04をインストールしました。
  4. 「ツール」→「ボード」で、「ESP32 Dev Module」を選択します。
  5.  

  6. パソコンとESP32ボードをUSBケーブルで接続します。パソコンのデバイスマネージャを開くと、「COM6」に「Silicon Labs CP201x USB to UART Bridge」として自動的に認識されていました。
  7. 作成したプログラムをESP32 に書き込むために、「EN」スイッチ と「IO0」スイッチを同時に押し、「スケッチ」→「マイコンボードに書き込み」をクリックし、プログラムの転送を待っている状態になると「EN」スイッチを離し、プログラムの転送が始まったら「IO0」スイッチを離します。

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