Andoroid端末上でNode.jsアプリを実行してみた
概要
コロナの関係で妻と二人在宅勤務を実施中。2階で仕事をしている妻が送ったメッセージ(コーヒーが飲みたい、など)を1階リビングのgoogle homeに喋らせるシステムをNode.js、Node-REDで作成した。自宅にRaspberry Piが無いためPC上でシステムを動作させていたが、PCの変わりにスマホ上で動作させられないかと考え、本対応を実施。
環境
- 端末
- Android 9
- Androidにインストールしたアプリ
-
Termux:Android上でLinuxターミナルを実行するためのアプリ。root化不要。無料アプリ。
-
WiFi Keyboard:PCのキーボードでスマホの入力が可能。
-
Termux:Boot:Nodeアプリ、Node-REDの自動起動に利用。有料アプリ。
- Termux上でインストールしたアプリ
- Node V14.0.0
- npm 6.14.4
- Node-RED
構成
- Android 9
- Termux:Android上でLinuxターミナルを実行するためのアプリ。root化不要。無料アプリ。
-
WiFi Keyboard:PCのキーボードでスマホの入力が可能。
-
Termux:Boot:Nodeアプリ、Node-REDの自動起動に利用。有料アプリ。
- Node V14.0.0
- npm 6.14.4
- Node-RED
Termuxにnode.js、npm、Express、Node-REDをインストール。
Node-REDのnode-red-contrib-cast
ノードを利用しPOSTしたメッセージをgoogle homeに喋らせるWEB APIを作成。
Expressでメッセージ入力用の簡単なページを作成し、入力されたメッセージをWEB API経由でgoogle homeに送信する。
実施内容
必要なアプリのインストール
- Termux
Android上でNode.jsを動作させるため、初めはDory - node.jsを試したが、Node.jsのバージョンがv6と古く、アップデートする方法がわからなかったため断念。v6だとNode-REDがインストールできない。Termuxは最新のNode.jsがインストールでき、Node-REDも問題なくインストールできた。ちなみにNode-REDの公式ページでもTermuxを利用することが推奨されている。
- Node、npm、Express
Termuxのターミナルから通常の手順でインストール可能。WiFi Keyboardを利用するとコマンド入力が楽になる。
- Node-RED
公式ページ掲載の手順でインストール。フローの編集はPCのブラウザからhttp://スマホのIPアドレス:1880
にアクセスして実施
- Termux:Boot
Google Playからインストール(有料)。インストール後、アプリの説明欄に従い、ホームディレクトリは以下に~/.termux/boot/
の様にディレクトリを作成。このディレクトリに後ほど自動起動用のスクリプトを作成する。
Node-REDでgoogle homeへのメッセージ送信APIを作成
Android上でNode.jsを動作させるため、初めはDory - node.jsを試したが、Node.jsのバージョンがv6と古く、アップデートする方法がわからなかったため断念。v6だとNode-REDがインストールできない。Termuxは最新のNode.jsがインストールでき、Node-REDも問題なくインストールできた。ちなみにNode-REDの公式ページでもTermuxを利用することが推奨されている。
Termuxのターミナルから通常の手順でインストール可能。WiFi Keyboardを利用するとコマンド入力が楽になる。
公式ページ掲載の手順でインストール。フローの編集はPCのブラウザから
http://スマホのIPアドレス:1880
にアクセスして実施Google Playからインストール(有料)。インストール後、アプリの説明欄に従い、ホームディレクトリは以下に
~/.termux/boot/
の様にディレクトリを作成。このディレクトリに後ほど自動起動用のスクリプトを作成する。基本的な手順は以下のページを参考に実施。
https://qiita.com/dozensofdars/items/6cec7db44636374b5382
今回Node.jsアプリからPOSTできるようにするため、node-red-contrib-castノードの前後をhttp in
ノードとhttp response
ノードで挟めばOK。http response
ノードを設定しないと、APIを呼び出したままアプリがだんまりになってしまうので注意。アプリからはmessage
パラメタにgoogle homeに喋らせたい文言をセットしてPOSTするよう実装する。
メッセージ入力用ページの作成
Expressでメッセージ入力ページ、メッセージ送信結果表示ページを作成。詳しい説明は割愛。
Termux:Bootの設定
NodeのアプリとNode-REDの自動起動のためTermux:Bootの設定を実施。~/.termux/boot/
ディレクトリ配下に任意の名前でファイルを作成し、以下の様にコマンドを記載。これでスマポ起動時に自動的にNode-REDとNodeアプリが実行される。
node-red
node (Nodeアプリ配置フォルダ)/bin/www
以上
Author And Source
この問題について(Andoroid端末上でNode.jsアプリを実行してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/father_further/items/fbe3dd9113ad815db8ae著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .