「AMG8833」でサーモグラフィーをブラウザに表示

非接触温度センサー「AMG8833」を使い、サーモグラフィーをブラウザに表示します。8×8の温度配列を、canvasで描画し、CSSで拡大しています。

「AMG8833」の温度データをブラウザで読み込む

「AMG8833」をラズパイに繋いぎ、非接触で温度を確認します。

開発環境やサーバー側(node.js、Python)は、前回の記事をご確認ください。

今回はフロント側、HTMLのみ書き換えます。

8×8のサーモグラフィーをcanvas描画

「AMG8833」で取得した8×8の温度配列を、canvasでサーモグラフィーのように描画します。

8×8のcanvasを用意して、1pxずつ色を塗ります。

温度によって色を変えるには、hslで色指定をすると簡単です。

h(色相)を温度が高いほど0(赤)。低いほど250(青)に近づけます。

色相環になっているため、hが250を越えていくと赤に近づいき、逆にhがマイナスになると青に近づいてしまいます。

hの値は0~250からはみ出ないように制限は必要です。

これでちっちゃいですが、サーモグラフィーをcanvasで描画することができます。

ブラウザでバイキュービック補間

「AMG8833」の解像度は8×8しかありません。これをブラウザ標準のバイキュービック補間を使って、滑らかな画像にします。

単純にtransform: scale(30);を指定して、30倍にしています。

すると、ブラウザ側で滑らかに補完してくれます。

OpenCVでもできますが、CSSで行うのが最も軽量で簡単だと思います。

最終的なコード

「検温!」ボタンを押したら、0.5秒おきにサーモグラフィーが更新されていくようにしました。

次回、サーモグラフィーと合わせて体温を表示するように改修します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)