[ Raspberry Pi ] 透過 Python 傳送溫溼度資訊到 Google Firebase

與 IoT 相關的雲端服務為數眾多,例如:ThingSpeakWoT.CityAWSIBM BluemixMediaTek MCSGoogle Firebase 等,並在透過這些雲端服務可在對資料進行資料視覺化、資料分析與其它的應用,而本文透過 Raspberry Pi 將溫溼度資料傳送到 Google Firebase 。


執行步驟


前置準備作業

1.準備 Raspberry Pi 3 Model B 開發板

2.準備 Micro SD (已安裝 Raspbian) - 【 透過 MacOS 安裝 Raspbian 教學 】

3.將 Micro SD 裝入到 Raspberry Pi 中

4.已設定網路

5.安裝 GrovePi+

6.安裝 Grove – Temperature and Humidity Sensor (D4)

7.安裝 GROVE - LCD RGB BACKLIGHT (I2C-2)

8.安裝 IDE ( Sublime Text or Visual Studio Code )

9.Windows 平台,請安裝 Putty 與 FileZilla
http://oranwind.org/-linkit/

10.其它前置作業
請參考 [ Raspberry Pi ] 透過 Python 顯示溫溼度資訊到 Grove LCD


Sensor 、 LCD 、 GrovePi+ 與 Raspberry Pi 連接圖


Google Firebase 端

Step 1. 到 Google 網站申請帳號


Step 2. 登入 Google Firebase 網站並點擊 GET STARTED FOR FREE


Step 3. 點擊 建立新專案


Step 4. 輸入專案名稱 並點擊 建立專案


Step 5. 點擊左側的 Database


Step 6. 點擊上方的 規則


Step 7. 將 readwrite 設成 true 並點擊上方的 發佈


Raspberry Pi 端

Step 1. 透過 Python 讀取溫溼度資訊並傳送至 WoT.City

#**************************************************** 
# Import Package                                                                           
#**************************************************** 

import time  
import requests  
import json  
import datetime  
import sys  
sys.path.append('/home/pi/rpi/code/Package')  
import grovepi  
from grove_rgb_lcd import *

#**************************************************** 
# Set Firebase URL, Location, Pin No                                                   
#**************************************************** 

sensor = 4  
blue = 0    # The Blue colored sensor.  
white = 1   # The White colored sensor.

firebase_url = 'https://temperaturehumidity.firebaseio.com/'  
temperature_location = 'Taipei';  

while True:  
    [temperature,humidity] = grovepi.dht(sensor,blue)  
    print("temp = %.02f C humidity =%.02f%%"%(temperature, humidity))
    setText("temp = %.02f C \nhumidity =%.02f%%"%(temperature, humidity))
    t = time.time();
    date = datetime.datetime.fromtimestamp(t).strftime('%Y%m%d%H%M%S')

    #**************************************************** 
    # Insert Data                                                                              
    #**************************************************** 

    data = {'date':date,'temperature':temperature,'humidity':humidity}  
    result = requests.post(firebase_url + '/' + temperature_location + '/temperaturehumidity.json', data=json.dumps(data))  
    print 'Status Code = ' + str(result.status_code) + ', Response = ' + result.text
    time.sleep(1);


Step 2. 將 Python Code 傳送到 Raspberry Pi

請參考 傳送檔案與登入到開發板


Step 3. 執行剛傳到 Raspberry Pi 中的 Python Code

python 檔名.py  

Step 4. 執行畫面

  • Console 上所看到的資訊

  • Google Firebase 上所看到的資訊


GitHub
List of blogs

Archer

Having being a full stack engineer. Experience with C, Python, Go, Swift, JavaScript, Node.js, Linkit 7697, Linkit Smart 7688, Raspberry Pi, ARM mbed, IoT solutions. Contact us : [email protected]

ALL RIGHTS RESERVED. COPYRIGHT © 2016. Designed and Coded by Makee.io