[ Raspberry Pi ] 透過 Python 傳送溫溼度資訊到 WoT.City

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


執行步驟


前置準備作業

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 連接圖


WoT.City 端

Step 1. 到 WoT.City 網站申請帳號


Step 2. 登入 WoT.City 網站


Step 3. 點擊 DEVICE MANAGE


Step 4. 點擊 Launch New Device


Step 5. 產生 Physical Object


Raspberry Pi 端

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

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

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

websocket.enableTrace(True)  
ws = websocket.create_connection("ws://wot.city/object/57cad2809453b2446f0007de/send")

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


Step 2. 將 Python Code 傳送到 Raspberry Pi

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


Step 3. 安裝相關套件於 Raspberry Pi

1. install setuptools  
curl https://bootstrap.pypa.io/ez_setup.py -k -o - | python

2. install six  
wget --no-check-certificate https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz  
tar zxvf six-1.10.0.tar.gz  
cd six-1.10.0  
python setup.py install

3. install Websocket  
wget --no-check-certificate https://pypi.python.org/packages/source/w/websocket-client/websocket_client-0.32.0.tar.gz  
tar zxvf websocket_client-0.32.0.tar.gz  
cd websocket_client-0.32.0  
python setup.py install  

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

python 檔名.py  

Step 5. Console 執行畫面


Step 6. 從 WoT.City 取得資料

import websocket

websocket.enableTrace(True)  
ws = websocket.create_connection("ws://wot.city/object/57cad2809453b2446f0007de/viewer")

while True:  
    result = ws.recv()
    print "Received '%s'" % result

Step 7. 執行 Python Code

python 檔名.py  

Step 8. Console 執行畫面


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