RaspberryPi + Node-RED
2019.12.02
RaspberryPiに接続したセンサーからの値をSlackに通知するのはできたので、今度はSlackからRaspberryPiに指示を送ってみたい。
そうすることで、RaspberryPiを遠隔操作ができ、エアコン点けたり、LEDライト点けたり、写真撮ったりが可能。
■実現イメージ
方法は多々あるであろうがNode-REDを採用。
処理の内容をプログラムを書くのではなく、処理のテンプレートを繋げて定義し(JSON形式)、デプロイするだけなのが手軽でよい。
(1)Slackから通知を受け取り、mqttを送信するフローを作成し、デプロイ
(2)mqttを受信し、受信内容(payload)からGPIOに接続したLEDライトをon・offするフローを作成し、デプロイ
通常は(1)はサーバで、(2)はRaspberryPiになるが、
今回は技術調査なので、便宜上(1)(2)のフローの両方をもRaspberryPiにデプロイした。
■準備
・SlackのAPPで「BOTS」を追加し、トークンを取得しておく
・RaspberryPiにnvmをインストールし、nodeのバージョンを「10.17.0」にした
・npmをインストール
・node-redをインストール
・node-red-contrib-slack、node-red-node-pi-gpio をインストール
■結果
・slackから「1」を送信。点いた。
・slackから「0」を送信。消えた。
■感想
・その他の方法として「enebular+AWSIoT」を使ったり、Slackで入力を受け取りhookの設定でサーバにPOSTしたり・・という方法も試してみたが、今回試した方法が一番簡単であった。
今回はLEDライトで試してみたが、赤外線送信機をつければエアコン・照明・テレビの操作ができ、スマートホームができそう。
・各所に配置したデバイスから一斉に観測データを報告させるとか可能。カメラがあれば画像もアップさせる。
・enebular+AWSIoTを使ってみて、それぞれのサービスの理解が深まった。
最新記事
- APIサービスをどう作るか
- C++による組込みプログラミング
- CUDAでGPUプログラミング
- BERTでチャットボット
- 脆弱性チェックツール
- Flutterでデスクトップアプリ
- MMPoseを使って姿勢推定(骨格検知)
- Laravel Livewire3を使ってみる
- Lineミニアプリ
- RustとPHPのパフォーマンス比較
- ボクシングをモーションキャプチャー
- Virtualbox上のUbuntuにDocker環境を作れ・・・
- AWSでのIPv6対応
- AWSのRDSでブルー/グリーンデプロイ
- 20年ぶりにCOBOL
- フィッシングメールのソースを見る
- GCPのVertex AIの注意点
- Azure AZ-900 に合格
- 数年ぶりにRubyを触る
- Godotはunityの代わりになるのか?