伝説のSpice特別企画 いまさらIOT

[前のページ] [TOPページ] [次のページ]

rspberryにプログラムをインストールする

youtubenode_express環境を設定

ラズベリーパイにapache2をインストールします。

このプログラムはraspberry-piをポート80hでWebサーバーにするためのプログラムです。 今回は基本的には不要ですが、raspberry-piの生存等を確認するためにインストールしておきます。 以下のコマンドを実行してApache2をインストールします。

sudo apt-get install apache2 -y

バージョン確認

apache2 -v

インストールが完了したらApache2の動作確認をします。 作業用PCでブラウザを立ち上げてURLの欄にラズパイのIPアドレスを入力します。 サーバーを置いた基板のホスト名称が 'raspberrypi.local' なので
http://raspberrypi.local/index.html を入力します。 以下の画面が表示されればインストール成功です。

Apache2

このサーバーの詳細の設定ファイルは

/etc/apache2/apache2.conf

デフォルトhtmlファイルの置き場所は

/var/www/html/index.html 

nodeをインストール

nodeをインストールします。 これはサーバーで動作するJavaScriptです。

世界一簡単なRaspberryPiにnode.jsを入れる方法

上記でnodeを管理するnpmというパッケージも一緒に入れましたが、その説明です

【npmとは?】 Node Package Managerの略で、Node.jsのモジュールを管理するツールです。

Expressをインストールします。

express-generator をインストールします。 これは今回にマッチした良い説明がありませんでしたので下記手順を書きます。

sudo npm install -g express-generator

作業ディレクトリを作成する

node express-generator が入りましたので作業するディレクトリを作成します。 ここでは xbeeIOT にします。 皆さんはなんでもいいですよ。 まず今のディレクトリの場所

pi@raspberrypi:~ $

これはSDカードのrootから/home/piの位置です。piが自分の作業位置ですので ~ $ になっています。 確認するには pwd とコマンドを入れてください。

pi@raspberrypi:~ $ pwd
/home/pi

そこで、この下に新しい xbeeIOT ディレクトリを作ります。

mkdir xbeeIOT
cd xbeeIOT

ディレクトリに入ると プロンプトにパスが表示されます

pi@raspberrypi:~/xbeeIOT $

express-generatorでプロジェクトを作成する

プロジェクトの名前は robo にします。 皆さんは何でもいいですよ。

express -e robo

下記が表示されます

warning: option `--ejs' has been renamed to `--view=ejs'
create : robo/
create : robo/public/
create : robo/public/javascripts/
create : robo/public/images/ create : robo/public/stylesheets/
create : robo/public/stylesheets/style.css
create : robo/routes/ create : robo/routes/index.js
create : robo/routes/users.js create : robo/views/
create : robo/views/error.ejs
create : robo/views/index.ejs
create : robo/app.js
create : robo/package.json
create : robo/bin/
create : robo/bin/www

change directory: $ cd robo
install dependencies: $ npm install
run the app: $ DEBUG=robo:* npm start

上記が表示されます。 この後の手順はこのメッセージ後半に表示されています。
下記の手順をします。

cd robo
npm install

サーバープログラムを実行するには 表示されている DEBUG=robo:* npm start を使います。

pi@raspberrypi:~/xbeeIOT/robo $ DEBUG=robo:* npm start
> robo@0.0.0 start /home/pi/xbeeIOT/robo
> node ./bin/www robo:server Listening on port 3000 +0ms

この様なメッセージが表示されましたら、PCのブラウザからアクセスします。
アドレスは http://raspberrypi.local:3000/ です。 ’raspberrypi.local’の部分は皆さんが決めた名前です。 ブラウザに下記が表示されて コンソールに下記のようなメッセージが追加表示されます。 これはアクセスされたことを意味しています。

GET / 304 295.687 ms - -
GET /stylesheets/style.css 200 94.932 ms - 111

これでNodeを使用したWebサーバの原型が出来ました。

シリアルポートのパッケージを用意する

nodeでシリアルポートを使用するためにserialport のパッケージをインストールします。 ローカルプロジェクトにインストールします。

npm install serialport --save

/xbeeIOT/robo/node_modules/の下に @serialport のフォルダが出来ます。

 GPIOを使用するのでインタフェースパッケージを用意する

rpi-gpioをインストール

Node.jsでraspberry piのハードウェアを叩く7つの方法

1. GPIOを叩くを参照してrpi-gpioをインストール
IO操作のパッケージをインストール npm i rpi-gpio -s だけ

同期排他処理のパッケージを用意する

通信関連でいくつかの非同期スレッドからのリクエストは順列待ちにする必要があります。 そのときに使用する セマフォコントロールのようなパッケージです。

Promise で排他制御を行う

この中の記事にちょっとせつめいがあります。 インストール方法は

npm install async-lock --save

これで使用できるようになります。

[前のページ] [TOPページ] [次のページ]