樹莓派傳輸資料給OneNET(HTTP形式)
阿新 • • 發佈:2019-01-06
前言
最近經常性和這些偏硬體的東西打交道,以防後面忘記,順手記錄一下。
樹莓派使用的是3b+,雖然以前經常聽說樹莓派,真正拿到手裡開始研究的時候興致卻沒那麼濃厚了。說實話,感覺就是一個小型PC攜帶了Linux系統。基本流程的話,研究樹莓派就和研究Linux差不多。
OneNET
平臺就不介紹了,大家能知道。這邊主要講一下流程,因為之前一直是拿學校給的板子,都是使用的平臺特有的EDP協議,所以建立的裝置都是EDP協議。這時,想用HTTP協議連線,就收到了405錯誤。
總結一下使用OneNET平臺的心得,就是用什麼協議連線就要建立對應的裝置接受資訊,這點,很關鍵。
建立http協議產品
官方說其實建議個人使用者使用http,企業使用者不推薦,我想大概和http協議的安全性有關,不過我只是用於個人使用,所以選http也沒什麼問題,大規模的使用者可能需要再考慮一下。
選擇接入協議為http即可。
建立成功就如下圖所示。
建立裝置
然後新增裝置,新增完裝置之後我們可以獲取裝置ID,這個之後程式碼會有涉及。同時也可以為這個裝置單獨新增一個APIkey,當然如果不需要的話可以用全域性的APIkey。
建立資料流模版
這一步不一定是必須的,只是方便後期的管理,資料流會傳輸到裝置對應的資料流中可以進行檢視。
建立模版如下所示,填寫一些基本資訊即可。
資料流可以在裝置管理的操作處進入。
進入之後就可以見到視覺化資料。
樹莓派
樹莓派的環境其實也不用怎麼配置,因為Python3已經裝好了,最多再裝箇中文環境包,Linux環境很類似的。當然,使用的時候最好有個外接顯示屏,不然小屏真的是很不爽,有了顯示屏就可以快樂地使用滑鼠、鍵盤了。
程式碼
程式碼真的很簡單,因為只要研究一下API就行了,研究透之後以後只要使用兩個模組——requests、json即可。
具體程式碼如下:
import requests
import json
headers = {'api-key' : api_key}
data = {'datastreams':[{'id':'temperature', 'datapoints':[{'value':7}]}]}
jdata = json.dumps(data)
puturl = 'https://api.heclouds.com/devices/' + device_ID+ '/datapoints'
get_mult_url = 'https://api.heclouds.com/devices/' + device_ID + '/datapoints'
def http_post():
'''
傳輸資料
'''
r = requests.post(url=puturl, headers=headers, data=jdata)
print(r.text)
def http_get():
'''
獲取資料
'''
r = requests.get(url=get_mult_url, headers=headers)
print(r.text)