m5stack.com に注文していた各種センサーユニット類が到着したので、順次試していきます。
今回は、非接触温度センサー(NCIR ユニット)です。
M5StickC + NCIR ユニットを使って、非接触で体温が測定できるかやってみます。
この NCIR ユニットは、離れたところから人体や物体の表面に赤外線を照射して、そこからの跳ね返りを感知して温度を測定するので、一切モノに触れることなく表面温度を測ることができます。
■ ■ ■
今どきは、新型コロナウイルス感染拡大防止の励行もあったりと、朝晩の体温測定は欠かせないものになっていると思います。
マイコン好きなら、こういう NCIR ユニットを使って、オリジナルな体温管理をやってみるのもいいんじゃないでしょうか。
それと M5StickC には最初から Wi-Fi や Bluetooth の機能も内蔵されているので、測定データをクラウドへ送るのも簡単で、データの保存や分析といった幅広い活用も期待できます。
まぁ、M5StickC を使うイチバンのメリットは、やっぱりマイコンだっていうことでしょうか。
一般的に市販されている非接触型温度計では実現できないような温度管理や、自分の生活習慣に合わせた体温管理など、様々なアイデアがそのまんまプログラムで実現できますからね。
このユニットは M5StickC 専用 Hat で、公式で $19.95 で販売されています。
- 動作電圧:4.5〜5.5V
- 測定対象の温度範囲:-70°C〜380°C
- 周囲温度の範囲:-40〜125˚C
- 室温での測定精度:±0.5°C
- 視野角:90°
NCIR HAT の公式サンプルを試してみる。
プログラムは M5 公式サイトのサンプルを落としてきて、なにも手を加えないで動かしてみます。
docs.m5stack.com
Arduino code サンプル
まずは、Arduino IDE で書き込める .ino サンプルから。
このサンプルをコピペして書き込むだけで、非接触温度計が出来上がります。
ただ、このままでは実際の温度より低めに表示されるので、体温計で計測した値を考慮した補正値をスケッチに追加する必要があります。(実測値+2.7 で補正)
このサンプルでは、物体の表面温度をリアルタイムで表示することしかできませんが、これだけでもしっかり温度計として活用できると思います。
でも、もっとちゃんとした温度計に仕上げたいというなら、ちなみに、5,000円 ほどの Amazon ベストセラー1位の非接触型体温計のような画面構成や機能を参考にしながら自前でプログラムを作ってみるのもオモシロイと思います。
この市販の非接触温度計は、履歴を32個持ってるんですが、これは M5StickC の EEPROM を読み書きすることで実装できるし・・・まずは、市販されている非接触型体温計と同じような機能を作ってから、少しずつオリジナルな機能を追加していく・・・こういうことをやるだけでもプログラミングの勉強になるし、そしてなにしろ楽しめると思います。
UIFlow サンプル
続いて、UIFlow でサンプルを試してみます。
UIFlow を使うためには、まず最初に M5Burner というツールを使って UIFlow で開発できるようにファームウェアを書き直す必要があります。
通信ポートを設定して、"configuration" ボタンを押下します。
わたしは Internet で使うため、Wifi を設定して ”Internet Mode” にしました。
UIFlow
ツールバーの「DEMO」と書かれたボタンを押下して、Examples から NCIR Hat を選択します。
ここではサンプルをそのまま動かしてみるだけなので、ブロックは触らずそのまま M5SticKC へダウンロードしました。
Arduino code サンプルに比べて、この UIFlow は機能が豊富で、温度変化のグラフ表示、最大値と最小値が表示できます。
ちなみに、下段に REC とありますが、このサンプルには REC 機能の実装はありません。
で、実際にこの NCIR Hat を使ったプログラムを書くなら、画面の文字配置や色味など、GUI で画面構成が考えられるこの UIFlow で開発した方が楽なんじゃないかと思います。
■ ■ ■
取得した温度を SDカード に保存できるといいんだけど、この M5StickC には SD カードユニットは内蔵されてませんからね。
まぁ、WiFi や Blutooth が標準で使えるので、今どきはクラウドサービス使うのが当たり前で、それを使えってことなんでしょう。
ということで、Ambient という IoT なデータを可視化するサービスなんかもあるんで、そのうち、そういうクラウドサービスを使って、温度変化を時系列で可視化させてみたいと思います。
今日は、ここまでです。