#はじめに
オムロンの非接触温度センサD6T(とgrove変換基板)を手に入れたのでM5stackで遊ぼうと思いました。
OMRON MEMS非接触温度センサD6T-44L-06
4×4で温度がわかるすごいやつ
#ハードウェアについて
GROVE対応の変換基板(4×4非接触温度センサD6T 変換基板)があるのででM5stackにGROVE用のケーブルGROVE - 4ピンケーブル 20cm (5本セット)でつなぐだけで接続はOKです。カンタン!
#公式ライブラリ
GitHubに用意していただいています。スゴイ!
https://github.com/omron-devhub/d6t-grove-arduino
今回はArduino向けのライブラリを使用しました。
※ラズパイ向け(python)のライブラリも用意していただいているので、M5Stackで開発するのであればMicroPythonを使えるようにしてこちらを使うことも可能です。(こちらの方がカンタンだったかもしれません)
#コーディング
M5StackをArduino IDEで使用するところまでは出来ている前提で書いていきます。
Qiitaにめちゃくちゃわかりやすい記事いっぱいあります。
###ライブラリをダウンロード
GitHubから公式ライブラリをcloneするなりZipでダウンロードするなりします。
(ダウンロードしたd6t-grove-arduinoというフォルダはArduino/librariesの中に置けばライブラリとして使用できるようになります。)
このままサンプルを使おうとすると**コンパイルエラー吐いた。**僕だけじゃないよね?
コンパイル出来た人はおめでとうございます。
コンパイル出来なかった人は以下に対策書いてます。
##Arduino向けの公式ライブラリをM5Stackに対応させる
###そのままだと上手くいかない理由
- D6T-44L-06はI2C通信に35byte使う
- ArduinoのI2C通信に使うライブラリ(Wire.h)は32byteまでしか対応していない(ESP32は128byteまでOK)
- オムロンのライブラリはそれに対応するためのライブラリ(WireExt.h)が含まれている
- しかし、そのライブラリ(WireExt.h)がESP32に対応していない
- ライブラリの中で条件分岐で使わないようにしてるみたいだけど何故か反応してコンパイルに失敗する
- 結果そのままでは使えない
###対応させた
(M5StackとArduinoのどちらでも使いたい場合はM5Stack用に編集したことがわかるように名前を変えておくと便利かもしれません。)
d6t-grove-arduino
というフォルダの中の
src
というフォルダにあるWireExt.h
とWireExt.hcpp
を削除します。
これでコンパイル通るようになるハズ。
#まとめ
動いた
sampleはシリアルモニタで見れるハズ
これだとM5Stackでやる意味ないので次回M5Stackの画面に色々表示する編乞うご期待