
■Raspberry Pi 開発環境の準備
①「MQTT.js」と「base64-img」((Node.jsのモジュール)のインストール
1.ターミナルを起動し、作業用フォルダに移動します。
2.「npm install mqtt」と入力します。
3.「npm install base64-img」と入力します。
②「jpegoptim」のインストール
「Add/Remove Software」から、「jpegoptim」をインストールします。

■Adafruit IOのフィード、ダッシュボード、ブロックの作成
①フィード(Feed)の作成
「SHUTTER」フィードと「PICAM」フィードを作成します。
②ダッシュボードの作成
「camera」ダッシュボードを作成します。
③ブロックの作成
Imageブロックとmomentaryボタンを作成します。Imageブロックは「PICAM」フィードに、momentaryボタンは「SHUTTER」フィードに紐づけします。

フィード、ダッシュボード、ブロックの作成手順は、「Adafruit IO+Arduino+MQTTでIoT‐デバイスの制御」を参照してください。
■プログラムの作成と実行
①プログラムの作成
次のJavaScriptコードを入力し、「picam_adafruit.js」と名前を付けて、作業用フォルダに保存します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var base64Img = require('base64-img'); | |
var filename = "picam.jpg"; | |
var raspistillOption = [ "-w", "640", "-h", "480", "-o", filename]; | |
var jpegoptimOption = ["--strip-all", "--max=30", filename]; | |
var spawn = require('child_process').spawn; | |
var mqtt = require('mqtt'); | |
var client = mqtt.connect('mqtt://io.adafruit.com', { | |
port: 1883, | |
username: '[USER NAME]', | |
password: '[YOUR AIO KEY]' }); | |
// トピック名を「<user name>/feeds/<feed name>」の形式で指定する | |
var shutter = '<user name>/feeds/SHUTTER'; | |
var picam ='<user name>/feeds/PICAM'; | |
client.on('connect', function () { | |
client.subscribe(shutter); | |
}); | |
client.on('message', function (topic, message) { | |
console.log(message.toString()); | |
if(message.toString() === '1'){ | |
var raspistill = spawn('raspistill', raspistillOption); | |
raspistill.on('close', function(code, signal){ | |
var jpegoptim = spawn('jpegoptim', jpegoptimOption); | |
jpegoptim.on('close', function(code, signal){ | |
base64Img.base64(filename,function(err, data){ | |
if (!err){ | |
var dat = data.split(','); | |
client.publish(picam, dat[1]); | |
} | |
}); | |
}); | |
}); | |
} | |
}); |
[USER NAME]には、Adafruit IOのユーザ名を、[YOUR AIO KEY]にはAIO KEYを入力します。[Topic name]には、トピック名を「<ユーザー名>/feeds/<フィード名>」の形式で指定します。
②プログラムの実行
1.ターミナルを起動し、作業用フォルダに移動します。
2.「sudo node 「picam_adafruit.js」と入力します。
③動作の確認
1.ブラウザで「camera」ダッシュボードを開き、momentaryボタン押します。
2.撮影が実行(カメラモジュールのLEDが点灯)され、写真がImageブロックび表示されることを確認します。
※Imageブロックは最新の写真だけでなく、過去に転送された写真も表示されます。
0 件のコメント:
コメントを投稿