タグ別アーカイブ: Node.js

Auto Start Node.js

Raspberry Pi A+をボタンで自動的にシャットダウンすることがNod.jsを使って行うことができました。そこでNode.jsのプログラムを自動起動させようと思います。

まずpm2をインストールします。
npm install pm2 -g

アプリを起動してみます。
pm2 start app3.js

pm2で起動することを確認しました。

次に自動ログインの設定を行います。
sudo nano /etc/inittab
テキストエディタnanoが開くので、以下の行を、行頭に#をつけてコメントアウトさせます。
#1:2345:respawn:/sbin/getty 38400 tty1
次に、以下の行を書き込みます。
1:2345:respawn:/bin/login -f ユーザー名 tty1 </dev/tty1>/dev/tty1 2>&1

ctrl+Xで保存し、RaspberryPiを再起動させると、自動ログインするようになります。

次にアプリの自動起動のため次のファイルを編集します。
sudo nano /etc/rc.local

exit 0の行の前に2行追加します。
export PATH=/home/pi/.nvm/v0.10.22/bin:$PATH
pm2 start /home/pi/node/app3/app3.js -i 1 –name sd-task

ctrl+Xで保存し、RaspberryPiを再起動させると app3.jsが自動起動します。ボタンを押すとRaspberry Pi A+がシャットダウンするプログラムが自動起動する様にできました。

これで、画面が無くてもボタンだけでシャットダウンして電源を切ることができるようになりました。

AZURE NODE.JS EXPRESS

AZUREでnode.jsのExpressを使ってみます。
前回作ったaz-test001を改造します。
まずは、ダッシュボードからWebアプリに進み、az-test001を選択し、「Visual Studio Online での編集」に入ります。
左側のボタンから「Open Console」を選びます。
Visual Studio OnlineにConsoleウィンドウが開きます。
コンコンソールを使ってExpress-generatorをインストールします。

npm install -g express-generator

次にファイルの生成します。
express -f

次にインストールします。
npm install

app.jsファイルがメインファイルです。
左のRUNボタンを押すと新しいタブが開き「Express」が表示されます。

AZURE002

nodeもnpmも初めから入っているのでLinuxで構築するより簡単にExpressが使用できるようになりました。

Raspberry Pi A+ NODE.JS LED BLINK&SHUTDOWN

node.jsでGPIOとコンソールコマンド使えるようになったので、起動するとLEDの点滅、スイッチを押すとシャットダウンするソフトを作成します。 
Raspberry Pi A+は、画面の無いシステムなす。電源をブチ切りするのは避けたいのでこのスイッチを追加しました。
Jpeg

必要なライブラリをインストールします。 
npm install onoff  
npm install exec-sync 
npm install 
 
以下サンプルソフトです。 
######################################## 
var execSync = require(‘exec-sync’); 
 
// button is attaced to pin 20, led to 21 
var GPIO = require(‘onoff’).Gpio, 
led = new GPIO(21, ‘out’), 
button = new GPIO(20, ‘in’, ‘both’); 
 
var interval = setInterval(function() 
{ 
    led.read(function (err, value) 
    { 
        if (err) 
        { 
            throw err; 
        } 
        else 
        { 
            var val = value === 0 ? 1 : 0; 
             led.writeSync(val); 
        } 
    } );  
}, 500); 
 
// define the callback function 
function shutdown(err, state) 
{ 
    // check the state of the button 
    // 0 == pressed, 1 == not pressed 
    if(state == 0) 
   { 
        clearInterval(interval); 
        // turn LED on 
        led.writeSync(0); 
   // Shutdown 
        var poff = execSync(sudo shutdown -h now); 
        console.log(opoff);     
    } 
} 
 
// pass the callback function to the 
// as the first argument to watch() 
button.watch(shutdown); 
######################################## 
 
ソフトを起動すると500msec毎にLEDが点滅し、ボタンを押すとRaspberry Pi A+がシャットダウンできました。 

Raspberry Pi A+ NODE.JS CONSOLE COMMAND

node.jsでコンソールコマンドを使えるようにします。 
ライブラリは、exec-syncを使いました。 
まずは、ライブラリのインストールを行います。 
Jpeg

npm install exec-sync 
npm install 
 
以下サンプルソフトです。 
######################################## 
var execSync = require(‘exec-sync’); 
 
var shutdown = execSync(sudo shutdown -h now); 
console.log(shutdown); 
######################################## 
 
実行するとシャットダウンするソフトです。次は、GPIOと連携させたいと思います。

 

Raspberry Pi A+ NODE.JS GPIO

node.jsでGPIOを使ってみようと思います。
GPIO20を入力、GPIO21を出力にします。入力には、スイッチを、出力には、LEDを接続しました。
GPIO21 → 100Ω → LED1 → 3.3V

GPIO20 → 33kΩ → 3.3V
→ SW1  → GND

Jpeg

GPIOの制御ライブラリには、onoffを使用しました。
まずは、ライブラリのインストールを行います。

npm install onoff
npm install

以下サンプルソフトです。
########################################
// button is attaced to pin 20, led to 21
var GPIO = require(‘onoff’).Gpio,
led = new GPIO(21, ‘out’),
button = new GPIO(20, ‘in’, ‘both’);

// define the callback function
function light(err, state)
{
// check the state of the button
// 0 == pressed, 1 == not pressed
if(state == 0)
{
// turn LED on
led.writeSync(0);
}
else
{
// turn LED off
led.writeSync(1);
}
}

// pass the callback function to the
// as the first argument to watch()
button.watch(light);
########################################

スイッチを押すとLEDがつくソフトです。ボタンに従ってLEDが点灯、消灯することができました。

Cloud9 IDE

IoTのサーバ側も勉強しようと思い、環境をNode.jsで考えていたのでCloud9に登録してみました。
https://c9.io/
上のURLにアクセスします。[Sign up]ボタンよりアカウントを登録します。無料のスタンダード版とプレミアム版がありますが、まずは、無料版で使ってみます。登録が済みサインインするとダッシュボード画面が表示されます。まず、左ペインの[Create a New Workspace]ボタンを押して,表示されたダイアログに任意の名前(Name your workspace)を入力します。Workspace Privacyには、[Private to the people I invite]を選んで,Hostingには[Hosted]を選択して [CREATE] ボタンを押します。
左ペインの作成したワークスペースが表示されます。「processing」状態となります。しばらく待ちます。「processing」が「1 workspace member」になったら完了です。
「START EDITING」ボタンを押してください。IDE画面の画面が別に起動しました。
Cloud9
Workspaceの下にTeminal画面が表示されていますので使ってみます。 node.jsのバージョンを調べたところv0.10.35でした。 npmのバージョンは、1.4.28でした。
すでにserver.jpというサンプルが入っています。 実行してみました。チャットアプリです。以下が実行場所となります。 https://ワークスペース-ユーザID.c9.io/ 2個ブラウザで開いて動きを見たところ無事チャットが動きました。
Chatapp

© 2014 Spineedge Corporation.