この記事はNode-RED Advent Calendar 2022 17日目の記事です。
はじめに
今回はNode-REDで使用できるカメラの接続できる方法を調べてみました。
ブラウザ上からカメラに接続できることを知ってNode-REDでできるかを調べてみたら色々な方法があったので一覧にしてみました。
node-red-contrib-browser-utils Version: 0.0.11
使用できるノード
cameraノード
画像で見たようにスナップショットになります。クリックした時にカメラに接続し、カメラ映像を切り取ります。
希望としてはinjectをトリガーにして定期的にスナップショットができれば嬉ししい機能でした。
注意としてカメラに接続しっぱなしなのでカメラOFFの手段も併せて考えるといいです。
cameraノードの設定内容
node-red-contrib-usbcamera Version: 0.0.6
USB カメラを使用して Raspberry Pi で写真を撮るためのノードになります。
使用できるノード
usbcameraノード
Raspberry Piに良く使用されるノードですね。injectをトリガーにして定期的にスナップショットができます。
usbcameraノードの設定内容
node-red-node-ui-webcam Version: 0.4.0
node-red-dashboard内で使用できるWebカメラからのライブ画像を表示する UI ウィジェットになります。
ui_webcameraノード
ui_webcameraノードの設定内容
このノードひとつでカメラに接続することができます。
注意としてnode-red-dashboardをインストールしていないとui_webcameraノードの表示が何も表示しません
実行方法の流れはこんな感じです。
- ダッシュボードの場所は、デバッグ表示横にあるメニューを開き、ダッシュボードの項目をクリックします。
- ダッシュボードの表示に移り、矢印の場所をクリックすると、ダッシュボードのブラウザが表示されます。
webcameraの表示はダッシュボードのWebで確認できます。
node-red-dashboard Version: 3.2.3
ダッシュボード(計器盤)が作れる便利な部品が多くあります。 例外としてtemplateを使用して
templateノード
JavaScriptの getUserMedia() を使用してフロントカメラとリアカメラにアクセスする方法があります。
<div>
<video id="video"></video>
</div>
<script>
const video = document.getElementById("video")
navigator.mediaDevices.getUserMedia({
video: true,
audio: false,
}).then(stream => {
video.srcObject = stream;
video.play()
}).catch(e => {
console.log(e)
})
</script>
templateノードの設定内容
上手く取りまとめできていませんが何かの参考にして頂ければ幸いです。
それでは、Node-REDでEnjoyしましょう!!