RaspberryPi+Alexa連携模索(Node-Redインストール編)
最近、Nature Remo mini 2を導入した
- Alexaと連携して声でテレビをコントロールできるように!
- 時刻や温度をトリガにした寝室のエアコンの制御が可能に!
ところが問題があって
- 寝室と居間、両方はカバーできない
- かといって、寝室のエアコンを消したら居間に移動するとかは本末転倒
というわけで、
以前からやりたかった[RaspberryPiでの学習リモコン]と連携して居間をカバーできないか、というのが今回の動機
用意したもの
初代RaspberryPi
長いこと引き出しで眠っていたが、最近稼働を再開
- CPU: ARM1コア
- メモリ: 512MB
Node-Red
GUIでのワイヤー接続とプロパティ設定でコーディングなしでいろいろできるやつ。定番?
他の検討サービスは下に挙げているがひとまずこれをいじってみようとしたのだが、
問題発生
- RaspberryPiのCPUアーキテクチャARMv6lに対して、Node.jsがオフィシャルにサポートしているのはv11まで
- Node-RedのインストールにNode.js v12以降が必要
解決策?
調べていたらNodeのUnofficialなビルドがあるとわかりそれを利用してみることに
ARMv6のRaspberry Pi(Gen1, Zero)でも最新版のNode.jsが使いたい! ~nを使って入れてみる~
ラズパイにNode.jsをインストールするときは「n」を使うな
Node-Redインストール手順
- 既存のNode(v10)をアンインストール
- Nodeのアンオフィシャルビルド(v12)をインストール
- Node-Redをインストール
まずNodeのインストールを以下のページの手順に従いUnofficialビルドで進めていく
ARMv6機のRaspbian(Stretch)にnpmコマンドをインストール - Qiita
使用したUnofficialイメージはここから
最初に既存のNodeをアンインストール
sudo apt remove nodejs
アンインストールの表示を見ていたらNode-Redが一緒に削除されていて、あれ~?だったが、 Node-Redのページではaptのパッケージでのインストールは非推奨とあったので気にせずそのまま継続。 (本当はすごく気になっているので余裕があれば確認したい)
Unofficialなビルドをダウンロード・展開
cd /usr/src/ VERSION=v12.22.3 DISTRO=linux-armv6l sudo wget https://unofficial-builds.nodejs.org/download/release/v12.22.3/node-${VERSION}-${DISTRO}.tar.xz sudo mkdir -p /usr/local/lib/nodejs sudo tar xf node-v12.22.3-linux-armv6l.tar.xz -C /usr/local/lib/nodejs vim ~/.profile . ~/.profile
.profileには以下を追記
# Nodejs VERSION=v12.22.3 DISTRO=linux-armv6l export PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH
続いてリンク作成・確認
sudo ln -s /usr/local/lib/nodejs/node-v12.22.3-linux-armv6l/bin/node /usr/bin/node sudo ln -s /usr/local/lib/nodejs/node-v12.22.3-linux-armv6l/bin/npm /usr/bin/npm sudo ln -s /usr/local/lib/nodejs/node-v12.22.3-linux-armv6l/bin/npx /usr/bin/npx node -v npm -v npx -v
Node-Redは公式の通り
Raspberry Piで実行する : Node-RED日本ユーザ会
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
30分くらいかかりインストール完了
node-red-pi --max-old-space-size=256
または node-red
で起動確認
node-red-start はなぜかうまくいかない
今回はインストールまで
その他検討サービス・アカウント作成メモ
IFTTT
定番のサービスをつなぐやつ
ngrok
一時的にグローバルのアドレスを持てる。初めて知った
ngrokが便利すぎる - Qiita