Firebase雲端資料庫 - Firebase 遠端控制 LED燈亮
前一篇已安裝好 Admin SDK 了,且也已經建立了 Firebase 專案與 Realtime Database ,接下來本篇就結合「樹莓派控制入門篇 - LED閃爍」,變成遠端控制 LED 燈亮與燈熄,只要變更 Firebase 資料庫的屬性值就可以了。
前置準備
- 在樹莓派建立Python虛擬環境
- 樹莓派控制入門篇 - LED閃爍
- Firebase雲端資料庫 - 建立 Firebase 專案
- Firebase雲端資料庫 - Realtime Database安裝
- Firebase雲端資料庫 - 樹莓派安裝Admin SDK
教具準備
名稱 | 數量 | 規格 | 備註 |
---|---|---|---|
樹莓派 | 1 | Raspberry Pi 4 Model B (4G) | 就只是現在頂規是這個版本,用三代的也可以 |
麵包板 | 1 | 不限 | 測試時容易連結 |
杜邦線 | 1 | 不限 | 保證沒有斷芯就好 |
LED燈 | 1 | 不限 | 測試此設備能發光閃爍 |
電阻 | 1 | 10K | 為了不讓 LED 燒掉 |
作業環境
- 樹莓派:Raspbian
- Windows 10 專業版 x64
電路圖
待補
如下圖的影片
身份驗證
經過前面幾篇文章的操作,我們已經
範例
#!user/bin/python3.7
import RPi.GPIO as GPIO
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
# Fetch the service account key JSON file contents
cred = credentials.Certificate('/home/pi/Documents/certificate/aiotfarm-firebase-adminsdk-5pv7h-0f26688b17.json')
# Initialize the app with a service account, granting admin privileges
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://aiotfarm.firebaseio.com/'
})
# As an admin, the app has access to read and write all data, regradless of Security Rules
ledRef = db.reference('Demo/status')
ledRef.listen(listener)
def listener(event):
print(event.data)
if event.data:
GPIO.output(25,GPIO.HIGH)
else:
GPIO.output(25,GPIO.LOW)
if __name__=="__main__":
setup()
留言