Cloud Firestoreにraspberry piからデータを追加する
はじめに
FirebaseにRaspberry Piからデータを突っ込む方法を記載します。
環境
- macOS Big Sur 11.5
- Raspberry Pi Zero WH(Raspberry Pi OS)
- Firestore
- macOS(Python):3.8.5
- RaspBerryPi(Python):3.7.5
Firebase環境の構築等は今回は説明を省略します。Firebaseの状態は以下の通りです。
手順
- macでFirebaseにデータを追加する
- RaspBerryPiでFirebaseにデータを追加する
1. macでFirebaseにデータを追加する
1-1. ドキュメントのフィールド値を決める
定期的に温度をFirebaseに上げる仕組みとするため、具体的に以下のようにFirebaseの値を決める
- Collection: Environment
- Document: 自動
- Field: temperatura,time
1-2. Firebaseへアクセスする環境を整える
- @yusukeito58 さんのCloud FirestoreのデータをPythonで取得するを参考に環境を整える
- 以下のコードで更新を行えることを確認する
import time
import datetime
import os
import csv
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from firebase_admin import storage
cred = credentials.Certificate("Firebase秘密鍵")
app = firebase_admin.initialize_app(cred)
db = firestore.client()
today = datetime.datetime.fromtimestamp(time.time())
date = today.strftime('%Y%m%d%H%M%S')
data = {
u'time':date,
u'temparature':35.5 #この値はデバイスから取得するよう変更が必要
}
db.collection(u'environment').add(data)
2. RaspBerryPiでFirebaseにデータを追加する
2-1. macでFirebaseにデータを追加するにデータを追加するで作成したreportTemperatureをraspberry piにアップロードする
今回は、「reportTemperature.py」と「Firebase秘密鍵」の2種類
scp -P 22 reportTemperature.py [email protected]:/home/pi
scp -P 22 Firebase秘密鍵 [email protected]:/home/pi
2-2. Raspberry Pi でも1-2の初期設定を行う
2-3. Raspberry Pi をテザリングまたはWirelessLANで繋ぐ
テザリングまたはWirelessLANの設定は、@hishi さんのRaspberry Pi Zero(W, WH)のセットアップを参照
2-4. 動作確認を行う
まとめ
先人の情報を使用して、ほとんど困らずに温度を更新する仕組みができた。Firebaseのデータベース定義について、定石がわからないが、今回のデータではドキュメント名を自動でふり、そのフィールドに時間と温度を持たせることでコレクションとして扱うことにした。
Author And Source
この問題について(Cloud Firestoreにraspberry piからデータを追加する), 我々は、より多くの情報をここで見つけました https://qiita.com/segiori/items/3de9f8a4bf3a8113f7b2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .