ブログ

Armadillo-640:USBカメラで撮影した画像を定期的にダッシュボードに表示してみた(Node-RED)

at_yukari.hara
2021年3月25日 19時58分

以下の動画のように、 Armadillo-640で、USBカメラで撮影した画像をNode-REDを使って定期的にダッシュボードに表示してみました。

今回Node-REDの設定はNode-RED でカメラを使う(Simple Webcam pic と image-output)を参考にさせていただきました。

使用したもの

手順

1. 事前準備

Armadillo-640:USB Video Class(UVC)を有効にするを参照して、USB Video Class(UVC)を有効化してください。

2.必要なパッケージのインストール

下記コマンドを実行して、fswebcamをインストールしてください。

root@armadillo:~# apt-get update && upgrade
root@armadillo:~# apt-get install fswebcam

以下のコマンドを実行し、「test.jpg」というUSBカメラで撮影した画像が保存できていればOKです。

root@armadillo:~# fswebcam -i 0 -d v4l2:/dev/video0 -r 640x480 --jpeg 85 test.jpg

3. Node-REDのインストール

Node-REDをArmadillo-IoT G3で動かしてみたを参照して、Node-REDをインストールしてください。

4.モジュールのインストール

Armadillo上のNode-REDでシリアル(RS232C, UART)からのデータを受け取る
「2. node-red-node-serialportのインストール」を参考にして、「node-red-contrib-usbcamera」「node-red-node-base64」「node-red-dashboard」モジュールをインストールしてください。

5.ノードの追加

まず、「inject」、「usbcamera」、「base64」、「template」をキャンバスに配置して以下の図のように接続してください。

6.injectノードの設定

injectノードをダブルクリックし、繰り返しを「指定した時間間隔」に設定し、時間間隔を3秒に設定します。

7.usbcameraノードの設定

まずusbcameraのノードをダブルクリックし、ファイルモードをBufferに設定し、Image Resolutionを任意のサイズに設定します。

8.node-red-node-base64ノードの設定

node-red-node-base64ノードをダブルクリックし、動作を「バッファ<->Base64の変換」に設定します。

9.templateノードの設定

templateノードをダブルクリックし、HTMLコードを以下のように記載します。

<div>
      <img src="data:image/png;base64,{{msg.payload}}">
</div>

10.ダッシュボードの確認

デプロイをしてダッシュボードを確認すると、 3秒ごとにUSBカメラで撮影を行い、撮影した画像をダッシュボードで確認する事が出来ました。