snovaのブログ

主にプログラミングやデジタルコンテンツについて書きます。最近はPython, Flutter, VRに興味があります。

Raspberry Pi x Flutter x Firebaseでホームカメラを製作(準備編)

はじめに

子どもの様子を見に行くための部屋の移動が面倒だったので、移動しなくてもいいように、余っていたラズパイとUSBカメラを使ってホームカメラを製作しました。 今回の内容はホームカメラ製作の準備編です。

システム概要

Raspberry PiPythonを実行し、USBカメラで画像を撮影します。 撮影された画像をadmin権限でCloud Storage for Firebaseにアップします。 アップされた画像をFlutterアプリで受け取ります。

環境

今回、各ツールのインストールは紹介しません。

項目 内容
Raspberry Pi 3 Model B+
USBカメラ Buffalo BSWHD06MBK
macbook air m1
Python 3.9.1
Flutter 3.0.4

Raspberry Piの初期設定

OSはRaspberry Pi OSが推奨されています。

www.raspberrypi.com

Raspberry Pi 3 以降は64bitのCPUなので、64bit版のOSを選択します。 なお、Raspberry Pi OSのwith desktopはGUI付のOSイメージ、LiteはCLIのみのOSイメージです。

今回はフォーマットもできる公式imagerを使用してインストールします。

www.raspberrypi.com

imagerをインストールした後、まずは既存のsdカードをフォーマットします。

完了したら、64bit版のRaspberry Pi OS with desktopをインストールします。

完了しました。

問題ないか実機で確認します。

ここでは、ssh接続やリモートデスクトップ接続(VNC Viewer)の導入についての説明は省略します。

USBカメラの動作確認

lsusbコマンドでUSBカメラが認識されているか確認します。

問題なければ、Rasberry Pi OSに標準で同梱されているVLC Playerを使ってカメラデバイスの映像を画面に映します。 使用したUSBカメラはBuffaloのBSWHD06MBKです。

www.buffalo.jp

VLCを起動し、メディア > キャプチャデバイスを開き、デバイス設定します。

映像が出たら確認完了です。

Firebaseの初期設定

今回はFirebaseを使用するので、Firebaseの設定をします。 ここではアカウントの作成がすでに終了している状態から設定開始します。

まず、Firebaseコンソールから新しくプロジェクトを作成します。

console.firebase.google.com

プロジェクトの設定 > サービスアカウントからAdmin SDKの新しい秘密鍵を生成。

ダウンロードした鍵を任意の場所に設置します。 このとき、鍵ファイルは公開リポジトリにアップしてはいけません。

次に、firebase_adminをインストール。

pip install firebase_admin

「構成スニペット」通りにpythonスクリプトに記述します。

import firebase_admin
from firebase_admin import credentials

cred = credentials.Certificate("serviceAccountKey.json")
firebase_admin.initialize_app(cred)

完了後、動作チェックし、エラーが出なければOKです。

続きは実践編にて紹介します。

参考

www.indoorcorgielec.com

Google Play and the Google Play logo are trademarks of Google LLC.