今朝3時で完全駄目人間の様相を示しているが取り敢えず画像を表示出来るようになったので記するなり。眠いよ。。。
1.ハードウェア構成:
rpi純正カメラ。所謂camera(v2)と呼ばれるフレキで本体に接続するカメラモジュール。
rpi2b+Seeed BaseHAT+pHAT+mcp9808温度センサ+GROVE relayは従来と同じ。
2.ソフトウェア:
camerapi : rpi用cameraで撮影するノード
base64 : Dashboardに表示させるにはcamerapiで撮影したデータをbase64形式に変換する必要がある。その為のノード
ポイントはbase64ノードでcamerapiで取得した画像データを変換する事。Dashboardはhtmlで表示する為templeteノードにその為のtagを書いておく必要がある。
<div>
<img src="data:image/png;base64,{{msg.payload}}">
</div>
これを理解するのに数日掛かってしまった(涙)。
camerapiはbuffered modeに設定する。撮影画像を保存する必要は無いのでこのモードの方が無用な処理が無い分速い筈。
3.結果
やっと表示出来るようになりました。今回のポイントは
・camerapi 0.0.39をbuffered modeに設定
・base64でcamerapiのデータを変換
・templete nodeで表示したい画像のhtml tagを記述する
<div>
<img src="data:image/png;base64,{{msg.payload}}">
</div>
でありました。node-redはhtml直書きする場面が少なくないので忘却の彼方のhtmlタグのリハビリが必要かもしれない。
寝不足なのは自業自得。。。
令和三年長月十日追記:
レイアウトを少し弄ってみた。まあ大して変わらないけれど↓
混沌としてるが心の目でフィルタリングして頂けると幸いです。図中でんぐりがえってるrpi風なモノは待機(休眠)中のrpi3bと思われる。フォーマットはQVGAでVGAだと大きすぎるので最小画像のQVGAとしている。camera(v2)の性能からすると非常に勿体無いのだがこれはあくまでお試しに過ぎないからnode-red系の画像処理ノード(調査中)ではより高解像度を選択した方が望ましいのだろう(あるいは最初から/前処理的に減縮した方が望ましいとか)。
令和三年長月十二日追記:
camerapiにはエフェクト設定があって簡単な効果ぐらいは行える。以下はエンボス効果の例。
rpi純正カメラは令和三年長月現在秋月で3800円程度で入手出来る。財団が提供している機器は利益率を制限されているように見受けられる(特にrpizero)ので競合品との比較が適切かは何とも言い難いがarduino用の1画面fifo付きspiカメラモジュールやuart出力のカメラモジュールと比べると安い。余計な機能や部品が無いから価格差は当然とも言えるが支配的なのは販売数量(と財団の指針)が大きいのだろう。現実問題としてカメラ付きIoT(笑)アプリケーションは強いてarduinoベースでカメラ追加するよりはrpizero+camera(v2)の方が機能的にもコスト的にもシステム構築のしやすさの点からも適しているのだろう。なので折角何個か購入した前記カメラモジュールはお蔵になったのでありました。RPI最強(現時点)であります。