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

a Respberry Pi MQTT sample

MQTTのPublisher(リモコン)からのメッセージは、MQTTのbrokerを経由して、自宅Raspberry Pi にMQTTのSubscriber(受信機)受信し、液晶表示盤にテキスト表示、LEDバックライトのON/OFFするできた!

MQTTのbrokerはsango(時雨堂という会社が無償提供) MQTT サーバーを利用。

MQTTのPublisher(リモコン)は、MQTTLens利用。

MQTTのSubscriber(受信機)サンプルコード!

参考文献の設定ファイルを利用した。LEDバックライトは、gpio 9番に設定、テキスト表示は、PCD8544-utils のlcdprint コマンドを利用した。

Subscriber の実行:

MQTTブローカーのそれぞれTopicに メッセージが下記の動作が発生

  • chen420@github/led | 0 または1 | バックライトのON/OFF
  • chen420@github/lcd | ”表示メッセージ” | 表示

Subscriberの永続化(サービスとして動く)が次の課題に。

参考文献 : 肩に乗せてもらった巨人達

Raspberry Piのチャットサービス

Raspberry PiにNote.js、ExpressとSocket.IOを使用して簡単なチャットアプリを作ってみる。

chen@juno ~ $ npm install -g express
chen@juno ~ $ npm install socket.io

サンプルコードのダウンロードと実行、Socket.IOを使ったアプリではクライアントからメッセージを受け取り、処理した内容をクライアントに送信するといった処理になる。

chen@juno ~ $git clone git://github.com/coppieee/node-chat-demo.git
chen@juno ~ $cd node-chat-demo
chen@juno ~ $npm install
chen@juno ~ $node app

ブラウザからアクセスしてみる

image

複数ブラウザからチャットできると、確認した。コンソールからもログが出る

chen@juno ~/node-chat-demo $ node app
Express server listening on port 3000
GET / 200 222ms – 463
GET /stylesheets/style.css 200 233ms – 110
GET /javascripts/client.js 200 125ms – 568
GET /javascripts/jquery-1.8.0.js 200 230ms – 252.32kb
GET / 200 27ms – 463
GET /stylesheets/style.css 304 29ms
GET /javascripts/jquery-1.8.0.js 304 14ms
GET /javascripts/client.js 304 14ms

RaspberryPiにNode.js

Node.jsとは、JavaScriptの一種で、サーバーが構築できる言語。

「リアルタイムweb」とは、ほぼタイムラグなしにブラウザ上情報の更新を反映する、FacebookのメッセージやGoogleDocsなどの感じ。

Nodeには「ページに新しい情報が来たよ!」と教えてくれる機能があり、Socket.IOというパッケージにて実装できる。

間隔を開けてサーバにポーリングなどいらない分、サーバの負担が軽減てき、より多数のブラウザが接続できる。

環境構築

まず、Node.jsのバージョンを管理するためのマネージャをまずインストールする

chen@juno ~ $ curl -L git.io/nodebrew | perl – setup
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 –:–:– –:–:– –:–:–     0
  0     0    0     0    0     0      0      0 –:–:–  0:00:02 –:–:–     0
100 22630  100 22630    0     0   5045      0  0:00:04  0:00:04 –:–:– 14432
fetching nodebrew…
install nodebrew in $HOME/.nodebrew

========================================
Add path:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

chen@juno ~ $ vi .bashrc
chen@juno ~ $ source .bashrc

 

Node.jsのインストール

Node.jsをバイナリからインストール。参考サイトの言われたままに、Raspberry Pi向け(arm-pi)の最新版バイナリが用意されていないため、v0.10.28を使用。

chen@juno ~ $ nodebrew install-binary 0.10.28
fetch: http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz
######################################################################## 100.0%
Install successful
chen@juno ~ $ nodebrew use 0.10.28
use v0.10.28
chen@juno ~ $ node -v
v0.10.28
chen@juno ~ $ npm -v
1.4.9
chen@juno ~ $

Hello Worldの表示

以下のコードをapp.jsというファイル名で保存して、Node.jsで実行してみよう。

実行して見る:

chen@juno ~ $ node app.js

Server running at http://192.168.0.207:1337/

ブラウザから確認:

image