RaspberryPIやReTerminalをサーバーとしてUSBカメラのデータを受信するNode-REDフローを作成する場合、USB CAMERAというNode-REDのライブラリーを使うことが多いと思います。
前回のBLE Beacon Scannerを使ったNode-REDフローをOpenBlocks IoTに移植する方法と同じように、現場に納入するサーバーとしてOpenBlocksを使う場合はUSB CAMERAのノードは使えないので、OpenBlocksにUSBカメラを直接接続してスナップショットを取得するフローをご紹介します。
2024/4/23追記 (解決済み)
OpenBlocksの電源を再起動するとUSBカメラを認識しなくなることが判明。詳細はこの記事の一番下に記載しましたが、OpenBlocks IoT VX2はUSBハブを経由してUSBカメラを接続することでこの問題は解決しました。
OpenBlocks IoT VX2のカメラ接続について#
OpenBlocks カメラ機能の設定
ぷらっとホームどきゅめんとのカメラ機能に書いてあるとおりに設定します。
https://docs.plathome.co.jp/docs/openblocks/fw5/service/camera
FPS、画質、ポート番号とプロトコルを設定します。
ストリーミングのURI名を設定します。
OpenBlocks URIプロキシの設定
次はOpenBlocksでURIプロキシの設定を行います。
URIはcamera、IPは127.0.0.1、PORT 8080 で設定。
OpenBlocksに接続したUSBカメラ映像・画像の表示
まずはStream映像(動画)です。
URLは下記の通りとなります。
http://<IPアドレス>:880/<URIプロキシ名>/?action=stream
OpenBlocksのIPアドレスが192.168.1.77の場合は下記のようになります。
http://192.168.1.77:880/camera/?action=stream
また、OpenBlocksのNode-REDから呼び出す場合は
http://127.0.0.1:880/camera/?action=stream
となります。
次に静止画。
OpenBlocksのIPアドレスが192.168.1.77の場合、外部から呼び出す場合はこのようになります。
http://192.168.1.77:880/camera/?action=snapshot
OpenBlocksのNode-REDから呼び出す場合は次のURLとなります。
http://127.0.0.1:880/camera/?action=snapshot
MJPG-Streamer Demo Pages
OpenBlocksのIPアドレスが192.168.1.77、下記のURLを入力すると、MJPG-Streamer Demo Pagesが表示されます。
http://192.168.1.77:880/camera/index.html
ここを見るといろいろわかるのでよいです。
また、Controlのタブをクリックすると、いろんな設定もできるようです。
Node-RED側の設定
Node-REDのサンプルとしてInjectノードを押すとUSBカメラの映像が送られるフローを作成しました。
これはIO-DATAのIPカメラTS-NS410を使った方法をOpenBlocks+USBカメラでできるようにしたものです。
Node-REDからIO-DATAネットワークカメラTS-NS410のスナップショットを読み込んでメールで送信する方法
全体のフローは上記記事を参照してください。OpenBlocks+USBカメラに関係するのは、http-requestノード(USB-CAMERA)なのでこちらを解説します。
OpenBlocksに接続したUSBカメラは認証をする必要がないので、上記の設定でOKです。URLはOpenBlocksで動かすNode-REDの場合は、OpenBlocksに接続されているUSBカメラになるので、127.0.0.1で大丈夫です。
動作確認
このようにOpenBlocksに接続されているUSBカメラの画像がimage previewに表示されメールの添付ファイルとして送ることができました。
OpenBlocksの電源を再起動するとUSBカメラを認識しなくなる件について
OpenBlocksの電源を再起動するとUSBカメラを認識しなくなることが判明しました。
とりあえず、下記の手順で復活します。
1.OpenBlocksは電源OFF状態でUSBカメラの接続を外す
2.電源を入れ、WEBUIでサービス/カメラにアクセス。
3.USBカメラ使用設定を”使用しない”にして保存
4.再度、USBカメラ使用設定を”使用する”にして保存
これで復活しました。
ただ、この方法だと客先で停電などあった場合に対応が難しくなるので他に方法がないか調べてみます。
>>解決しました。
OpenBlocks VX2はUSBに直接USBカメラを接続すると不安定になるようで、USBハブを間にかませてUSBカメラを接続するとこの問題は解決します。下記公式ドキュメントを参照ください。
まとめ
以上、「ラズパイでUSB CAMERAを利用したNode-REDフローをぷらっとホーム社OpenBlocksに移植する方法」をご紹介しました。
弊社スマートライトではNode-REDを使ったアプリケーションの開発を行っております。今まで社内で一人でNode-REDの開発をしていて、外部の技術顧問に開発をサポートして欲しいというお話から、アプリケーション開発の依頼まで、どうぞ、お気軽にご相談ください。