準備工作
TPYBoard v202開發板(33元某寶可以買到)
USB數據線
電腦
NotePad ++ 軟件(其他編輯工具也可以)
MicroPython File Uploader(MFU)軟件
瀏覽器(谷歌瀏覽器為例)
OneNET平臺新建數據流
OneNET平臺官網地址:<https://open.iot.10086.cn/>。
若沒有使用過的該平臺的,可以參考上面前言中的教程,先進行產品和設備的添加。
在數據點上報之前,我們需要在OneNET云平臺上添加一個數據流模板。步驟如下:
1、進入[開發者中心]的[設備管理]頁面,在左側菜單欄中選擇[數據流模板],點擊[添加數據流]。
2、會彈出一個添加數據流的對話框,必填項名稱,其他可以選填,填完之后點擊[添加]。
3、添加成功后,對話框會自動關閉。數據流展示列表會自動增加剛才新添加的數據流信息。
到此,數據流模塊就建立完成了。
向OneNET平臺上傳數據點
接下來就要進行數據點的上傳了。上傳數據點時需要參考協議規則說明,大家可以去OnetNET平臺文檔中心上下載,OnetNET平臺文檔中心地址:https://open.iot.10086.cn/doc/art431.html#118。
找到[1.1 說明文檔]找到關于MQTT項目中的設備終端接入協議-MQTT進行下載。
下載的是一個word文檔,打開之后找到[5.2消息發布]-[5.2.1 數據點上報]。
數據類型采用JSON格式,主要看[數據類型1(type == 1)格式說明]。
了解完publish報文格式后,找到之前[接入OneNET平臺]教程的程序,添加上上傳數據點的功能即可。
程序下載地址:https://github.com/TPYBoard/developmentBoard/tree/master/TPYBoard-v20x-master/TPYBoard v202 典型實例/09.MQTT協議接入OneNET平臺。
修改mqtt.py文件,如下:
from simple import MQTTClient
from machine import Pin
import machine
import micropython
import json
#選擇G4引腳
g4 = Pin(4, Pin.OUT, value=0)
# MQTT服務器地址域名為:183.230.40.39,不變
SERVER = "183.230.40.39"
#設備ID
CLIENT_ID = "deviceID"
#隨便起個名字
TOPIC = b"TurnipRobot"
#產品ID
username='productID'
#產品APIKey:
password='APIKey'
state = 0
#要上報的數據點
message = {'datastreams':[{
'id':'temperature',
'datapoints':[{'value':35}]}
]}
def pubdata(data):
j_d = json.dumps(data)
j_l = len(j_d)
arr = bytearray(j_l + 3)
arr[0] = 1 #publish數據類型為json
arr[1] = int(j_l / 256) # json數據長度 高位字節
arr[2] = j_l % 256 # json數據長度 低位字節
arr[3:] = j_d.encode('ascii') # json數據
return arr
def sub_cb(topic, msg):
global state
print((topic, msg))
if msg == b"on":
g4.value(1)
state = 1
print("1")
elif msg == b"off":
g4.value(0)
state = 0
print("0")
elif msg == b"toggle":
state = 1 - state
g4.value(state)
def main(server=SERVER):
#端口號為:6002
c = MQTTClient(CLIENT_ID, server,6002,username,password)
c.set_callback(sub_cb)
c.connect()
c.subscribe(TOPIC)
print("Connected to %s, subscribed to %s topic" % (server, TOPIC))
#publish報文上傳數據點
c.publish('$dp',pubdata(message))
print('publish message:',message)
try:
while 1:
c.wait_msg()
finally:
c.disconnect()
程序解析:
def pubdata(data):
j_d = json.dumps(data)
j_l = len(j_d)
arr = bytearray(j_l + 3)
arr[0] = 1 #publish數據類型為json
arr[1] = int(j_l / 256) # json數據長度 高位字節
arr[2] = j_l % 256 # json數據長度 低位字節
arr[3:] = j_d.encode('ascii') # json數據
return arr
我們自定義一個pubdata方法,該方法的功能是組合成協議要求的報文格式。
c.publish('$dp',pubdata(message))
設備使用publish報文來上傳數據點。$dp為系統上傳數據點的指令(2個字節的字符串)。
運行結果:
找到設備管理頁面,在tpyboardv202設備信息的操作列中,點擊[查看詳情]。
選擇[數據展示],
選擇數據流[temperature]信息行的最右側展開小三角,查看詳細數據點。
到此,相信大家對“如何使用MQTT協議上傳數據點到OneNET平臺”有了更深的了解,不妨來實際操作一番吧!這里是本站網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
余額寶轉入轉出有手續費嗎?不要手續費。余額寶轉入轉出是不需要手續費的,用戶直接辦理轉賬業務即可。余額寶是支付寶為個人用戶推出的一項余額增值服務,用戶想要賺取收益的話則可以直接將錢存入余額寶中。簡單來說,余額寶是螞蟻金服旗下的余額增值服務和活期資金管理服務產品。余額寶轉入是不收費的,從銀行卡中轉入到余額寶中的資金再轉出時,不收手續費,而從余額轉入余額寶的資金不可直接通過余額寶轉出到卡,需要用戶先把它...
文本/下降有一次,王楠問福原愛,她人生中最大的夢想是什么?令人驚訝的是,福原愛的回答與她最喜歡的乒乓球無關。她說:“我的夢想是結婚生子,相愛一輩子。老公一下班回家,我就站在門口跟他打招呼,‘你回來了。你想先吃飯還是先洗澡?”。誠然,這是福原愛簡單而美好的夢想,也曾經短暫地實現過,但這個夢想在福原愛33歲時變得支離破碎。1988年,福原愛出生在宮城縣仙臺市。福原愛出生時,父親46歲,在當...
(資料圖片)隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如迷你屋蚊帳哪種類型好,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!1、蒙古包。大頂蒙古包三開門迷你屋蚊帳,采用全封閉鋼絲結構,設計簡約,安裝簡單便利,對于一些動手能力不強的用戶也能完整安裝好,適用范圍非常廣,配件不復雜,顏色運用甜美的粉色包邊搭配白色,大方溫和,價格實惠,市場價大約兩百元左右。2...