Raspberry Piにカメラモジュールを付け、撮影した写真をAzure Blob Storageに保存します。
OSはRaspbian。言語はJavaScript(Node.js)です。
準備
カメラモジュールを接続したRaspberry Pi(OSはRaspbian)を用意します。
そして、Node.jsをインストールしておきます。
Azureには、Blob Storageを作成します。
作成したら、ConnectionStringとコンテナー名を控えておきます。
コード
以下のコードを実行すると、カメラモジュールが撮影をし、その画像をBlob Storageに保存してくれます。
その際、
- ConnectionStringとコンテナー名は書き換える
- date-utils, azure-storageの各モジュールをnpm installする
ことが必要です。
// 写真ファイルパス(ファイル名は現在日時を使う)
require('date-utils');
var dt = new Date();
var fileName = dt.toFormat('YYYYMMDDHH24MISS') + '.jpg';
var filePath = '/home/pi/photo/' + fileName;
// Azureとの連携用モジュール
var azure = require('azure-storage');
// Azure上のBLOBストレージとの接続用サービスオブジェクト
// 引数にBLOBストレージのConnectionStringを設定
var blobSvc = azure.createBlobService('{ConnectionString}');
// カメラモジュールを使って写真を撮影する
var spawn = require('child_process').spawn;
var option = ['-o', filePath];
var raspistill = spawn('raspistill', option);
// 撮影完了後のコールバックにてアップロードを実行
raspistill.on('close', function() {
blobSvc.createBlockBlobFromLocalFile('{コンテナ名}', fileName, filePath, function(error, result, response){
if(!error){
console.log('アップロード成功');
} else {
console.log(error);
}
});
});
たったこれだけでクラウドカメラができました。お手軽ですね。