はじめに
Node-RED と Sonos を組み合わせて MINI LED BADGE に再生している曲名を表示させてみました。
通常、Sonos は PC、または、スマホの Sonos S2 アプリから操作しますが、API が公開されていますので、Node-RED などのプログラムからも操作することが可能です。
Sonos と Node-RED を組み合わせた例は他にも記事にしていますので、参考にしてみてください。
Raspberry Pi Desktop へ enebular agent をインストールして sonospollytts ノードを使ってみた。
Node-RED と Sonos で学校チャイムシステムを作ってみた。
導電布 nüno と ワイヤレススピーカーシステム Sonos をノンコーディングで連携させてみた。
Node-RED Sonos ノードについて調べてみた。
Sonosを操作するツールを調べてみた。
MINI LED BADGE とは
2020年9月に行われた M5Stack Japan Creativity Contest 2020 に応募した作品で、M5Atom lite、または、M5Atom matrix に装着して使用する LED バッジです。
PC、スマホ、ラズパイ等から BLE (Bluetooth Low Energy)、または、Wi-Fi 経由で文字データを送って LED マトリクスにスクロール表示することが可能です。
技術的な詳細については ProtoPedia に記載していますので、参考にしてみてください。
Booth で頒布していますので、もし興味があれば使ってみてください。
構成
Sonos で再生している曲名の情報を Node-RED で取得し、MQTT Broker (今回は Shiftr.io cloud のサービスを使用) 経由で MINI LED BADGE へ送信しています。
Node-RED フロー
ポキオさんが作成した sonos-notify ノードを使用して Sonos で再生している曲名の情報を取得しています。
delay ノードを使用している理由は MQTT Send ノードが MQTT Broker へ接続するのに少し時間を要するためです。デプロイ直後の曲名表示に対応しています。
change ノードは sonos-notify ノードが出力した情報の中から曲名の情報を取得します。
MQTT Send ノードは曲名の情報を MQTT Broker へ送信します。
ノードの追加
sonos-notify ノードの追加方法はメニューを表示して「パレットの管理」→「ノードを追加」→「ノードを追加」→「node-red-contrib-sonos-notifyを入力」→「追加ボタンを押下」で追加することができます。
MQTT
shiftr.io のサービスを使用しました。今回は新サービスの shiftr.io Cloud (自分専用のドメイン名、インスタンスを持つことができます) を使用してみましたが、旧サービスの shiftr.io でも動作上は問題ありません。
まとめ
フローはシンプルだけどノードを組み合わせて機能をパワフルに実装できるのが Node-RED の良いところだと思います。
次回 (12/9) は Jetson Nano とラズパイの両方で使用可能なハードウェア (Jetson & Pi 電力測定ボード) を制御するノードを作成した話を執筆する予定です。
では、良き Node-RED ライフを!