Raspberry Piのカメラのraspistillコマンドのnode.jsラッパーPi-Cameraを使った方法です。
コマンドプロンプトで、以下設定
- sudo raspi-config
- Interface Option ⇒ P1 Camera ⇒ <はい> ⇒ <了解> ⇒ <Finish> (カーソルキーとEnterキーとTABキーで操作)
- 参考:この情報を参考に
- cd ~/myApp
- npm install pi-camera
import PiCamera from "pi-camera";
var __dirname = ".";
async function main() {
const myCamera = new PiCamera({
mode: 'photo',
output: `${__dirname}/test.jpg`,
width: 640,
height: 480,
quality: 70,
nopreview: true,
});
console.log("snap")
// ローカルファイルに保存する場合
await myCamera.snap();
console.log("dataurl");
// dataURLとして文字列変数に取得する場合(このまま例えばRelayServerなどに送信できる)
var imgUrl = await myCamera.snapDataUrl();
console.log(imgUrl)
}
main();
- dataURLで画像を変数に格納すれば比較的簡単にサーバに送信したりできるでしょう。
- 各種センサ (WebGPIO経由で人感センサーなど)を使い、自動的に撮影、サーバにアップロードする仕組みなどもできるでしょう。
- pi-cameraドキュメント
- 撮影に何秒かかかるようです。動画もファイルに保存できますが、非圧縮ファイルでその後の扱いに難あり。
- 静止画の保存がずっと高速にできる、pi-camera-connectがあります。こちらを参照