[ Linkit Smart 7688 ] 傳送 Sensor Data 到 Google Firebase

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


執行步驟


前置準備作業

1.準備 Linkit Smart 7688 Duo 開發板

2.準備 Arduino Breakout for LinkIt Smart 7688 Duo

3.準備 Grove - Temperature & Humidity Sensor

4.將 Linkit Smart 7688 Duo 與 Arduino Breakout for LinkIt Smart 7688 Duo 組裝、Grove - Temperature & Humidity Sensor 裝到 A0 的位置並將 Linkit Smart 7688 Duo 連接至電腦

5.安裝 Arduino IDE (version: 1.6.6)
https://www.arduino.cc/en/Main/OldSoftwareReleases

6.安裝 IDE
Sublime Text or Visual Studio Code

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


Linkit Smart 7688 Duo 與 Grove - Temperature & Humidity Sensor 連接圖

Imgur


Google Firebase 端

Step 1. 到 Google 網站申請帳號


Step 2. 登入 Google Firebase 網站


Step 3. 點擊 建立新專案


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


Step 5. 點擊左側的 Database


Step 6. 點擊上方的 規則


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


Linkit Smart 7688 Duo - MCU ( Arduino ) 端

Step 1. 透過 MCU 讀取 Sensor Data

// MCU To MPU
#include <Bridge.h>

// DHT
#include "DHT.h"
#define DHTPIN A0
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

void setup() {  
  Serial.begin(9600); 
  dht.begin();
  Bridge.begin();
}

void loop() {  
  // Get Temperature and Humidity
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Display Temperature and Humidity Value
  Serial.print("DHT-Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("DHT-Temperature: "); 
  Serial.print(t);
  Serial.println(" *C\t");

  // MCU To MPU
  Bridge.put("Humidity", String(h));
  Bridge.put("Temperature", String(t));

  delay(1000); //每秒回傳一次資料
}

Imgur


Linkit Smart 7688 Duo - MPU ( Python ) 端 - Publish

Step 1. 透過 Python 讀取 MCU Sensor Data

  • 更新程式中 firebaseurl 與 temperaturelocation
#**************************************************** 
# Import Package                                                                           #**************************************************** 

import sys  
import time  
import datetime  
import requests  
import json

#**************************************************** 
# Set Firebase URL, Date, Time, Location                                                   #**************************************************** 

firebase_url = 'https://temperaturehumidity-6aa.firebaseio.com/'  
temperature_location = 'Taipei';  
t = time.time();  
date = datetime.datetime.fromtimestamp(t).strftime('%Y%m%d%H%M%S')

#**************************************************** 
# Get Temperature, Humidity                                                                #**************************************************** 

sys.path.insert(0, '/usr/lib/python2.7/bridge/')  
from bridgeclient import BridgeClient as bridgeclient  
value = bridgeclient()  
temperature = value.get("t")  
humidity = value.get("h")

print date + ',' + temperature_location + ',' + str(temperature) + ',' + str(humidity)

#**************************************************** 
# 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  


Step 2. 將 Python Code 傳送到 Linkit Smart 7688 Duo


Step 3. 安裝相關套件於 Linkit Smart 7688 Duo

opkg update  
uci set yunbridge.config.disabled=0  
uci commit  
reboot  

Step 4. 執行剛傳到 Linkit Smart 7688 Duo 中的 Python Code

python 檔名.py  

Step 5. 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