1. 程式人生 > >樹莓派傳輸資料給OneNET(HTTP形式)

樹莓派傳輸資料給OneNET(HTTP形式)

前言

最近經常性和這些偏硬體的東西打交道,以防後面忘記,順手記錄一下。
樹莓派使用的是3b+,雖然以前經常聽說樹莓派,真正拿到手裡開始研究的時候興致卻沒那麼濃厚了。說實話,感覺就是一個小型PC攜帶了Linux系統。基本流程的話,研究樹莓派就和研究Linux差不多。

OneNET

平臺就不介紹了,大家能知道。這邊主要講一下流程,因為之前一直是拿學校給的板子,都是使用的平臺特有的EDP協議,所以建立的裝置都是EDP協議。這時,想用HTTP協議連線,就收到了405錯誤。
總結一下使用OneNET平臺的心得,就是用什麼協議連線就要建立對應的裝置接受資訊,這點,很關鍵。

建立http協議產品

官方說其實建議個人使用者使用http,企業使用者不推薦,我想大概和http協議的安全性有關,不過我只是用於個人使用,所以選http也沒什麼問題,大規模的使用者可能需要再考慮一下。

選擇接入協議為http即可。
http協議
建立成功就如下圖所示。
成功

建立裝置

然後新增裝置,新增完裝置之後我們可以獲取裝置ID,這個之後程式碼會有涉及。同時也可以為這個裝置單獨新增一個APIkey,當然如果不需要的話可以用全域性的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)