標題: [MicroPython]TPYBoard v202 MQTT協(xié)議2:上傳數(shù)據(jù)點到OneNET平臺 [打印本頁]
作者: bodasister 時間: 2018-9-14 10:58
標題: [MicroPython]TPYBoard v202 MQTT協(xié)議2:上傳數(shù)據(jù)點到OneNET平臺
前言
在之前的教程中,學習過如何使用MQTT協(xié)議接入OneNET平臺,同時獲取該平臺下發(fā)的命令實現(xiàn)遠程控制的功能。若之前沒有接觸過MQTT協(xié)議和OneNET平臺的朋友,建議先學習之前的教程
本次教程,將要學習如何在OneNET平臺上新建數(shù)據(jù)流,同時使用MQTT協(xié)議中publish報文格式上傳數(shù)據(jù)點。
準備工作
TPYBoard v202開發(fā)板(33元某寶可以買到)
USB數(shù)據(jù)線
電腦
NotePad ++ 軟件(其他編輯工具也可以)
MicroPython File Uploader(MFU)軟件
瀏覽器(谷歌瀏覽器為例)
OneNET平臺新建數(shù)據(jù)流
OneNET平臺官網(wǎng)地址
若沒有使用過的該平臺的,可以參考上面前言中的教程,先進行產(chǎn)品和設(shè)備的添加。
在數(shù)據(jù)點上報之前,我們需要在OneNET云平臺上添加一個數(shù)據(jù)流模板。步驟如下:
1、進入[開發(fā)者中心]的[設(shè)備管理]頁面,在左側(cè)菜單欄中選擇[數(shù)據(jù)流模板],點擊[添加數(shù)據(jù)流]。
01.png (33.86 KB, 下載次數(shù): 62)
下載附件
2018-9-14 10:53 上傳
2、會彈出一個添加數(shù)據(jù)流的對話框,必填項名稱,其他可以選填,填完之后點擊[添加]。
02.png (24.78 KB, 下載次數(shù): 56)
下載附件
2018-9-14 10:53 上傳
3、添加成功后,對話框會自動關(guān)閉。數(shù)據(jù)流展示列表會自動增加剛才新添加的數(shù)據(jù)流信息。
03.png (7.53 KB, 下載次數(shù): 45)
下載附件
2018-9-14 10:53 上傳
到此,數(shù)據(jù)流模塊就建立完成了。
向OneNET平臺上傳數(shù)據(jù)點
接下來就要進行數(shù)據(jù)點的上傳了。上傳數(shù)據(jù)點時需要參考協(xié)議規(guī)則說明,大家可以去OnetNET平臺文檔中心上下載,OnetNET平臺文檔中心地址:https://open.iot.10086.cn/doc/art431.html#118。
找到[1.1 說明文檔]找到關(guān)于MQTT項目中的設(shè)備終端接入?yún)f(xié)議-MQTT進行下載。
04.png (35.68 KB, 下載次數(shù): 35)
下載附件
2018-9-14 10:53 上傳
下載的是一個word文檔,打開之后找到[5.2消息發(fā)布]-[5.2.1 數(shù)據(jù)點上報]。
05.png (16.81 KB, 下載次數(shù): 43)
下載附件
2018-9-14 10:53 上傳
數(shù)據(jù)類型采用JSON格式,主要看[數(shù)據(jù)類型1(type == 1)格式說明]。
06.png (27.63 KB, 下載次數(shù): 54)
下載附件
2018-9-14 10:53 上傳
了解完publish報文格式后,找到之前[接入OneNET平臺]教程的程序,添加上上傳數(shù)據(jù)點的功能即可。
程序下載地址:https://github.com/TPYBoard/deve ... 20x-master/TPYBoard v202 典型實例/09.MQTT協(xié)議接入OneNET平臺。
修改mqtt.py文件,如下:
from simple importMQTTClient
from machine import Pin
import machine
import micropython
import json
#選擇G4引腳
g4 = Pin(4, Pin.OUT,value=0)
# MQTT服務(wù)器地址域名為:183.230.40.39,不變
SERVER ="183.230.40.39"
#設(shè)備ID
CLIENT_ID ="deviceID"
#隨便起個名字
TOPIC =b"TurnipRobot"
#產(chǎn)品ID
username='productID'
#產(chǎn)品APIKey:
password='APIKey'
state = 0
#要上報的數(shù)據(jù)點
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數(shù)據(jù)類型為json
arr[1] = int(j_l / 256) # json數(shù)據(jù)長度 高位字節(jié)
arr[2] = j_l % 256 # json數(shù)據(jù)長度 低位字節(jié)
arr[3:] = j_d.encode('ascii') # json數(shù)據(jù)
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)
defmain(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報文上傳數(shù)據(jù)點
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數(shù)據(jù)類型為json
arr[1] = int(j_l / 256) # json數(shù)據(jù)長度 高位字節(jié)
arr[2] = j_l % 256 # json數(shù)據(jù)長度 低位字節(jié)
arr[3:] = j_d.encode('ascii') # json數(shù)據(jù)
return arr
我們自定義一個pubdata方法,該方法的功能是組合成協(xié)議要求的報文格式。
c.publish('$dp',pubdata(message))
設(shè)備使用publish報文來上傳數(shù)據(jù)點。$dp為系統(tǒng)上傳數(shù)據(jù)點的指令(2個字節(jié)的字符串)。
運行結(jié)果:
07.png (37.14 KB, 下載次數(shù): 43)
下載附件
2018-9-14 10:53 上傳
找到設(shè)備管理頁面,在tpyboardv202設(shè)備信息的操作列中,點擊[查看詳情]。
08.png (12.95 KB, 下載次數(shù): 52)
下載附件
2018-9-14 10:53 上傳
選擇[數(shù)據(jù)展示],
09.png (14.55 KB, 下載次數(shù): 55)
下載附件
2018-9-14 10:53 上傳
選擇數(shù)據(jù)流[temperature]信息行的最右側(cè)展開小三角,查看詳細數(shù)據(jù)點。
10.png (17.8 KB, 下載次數(shù): 44)
下載附件
2018-9-14 10:53 上傳
11.png (15.45 KB, 下載次數(shù): 51)
下載附件
2018-9-14 10:53 上傳
大家可根據(jù)上面學習到的內(nèi)容進行擴展,比如接DHT11溫濕度模塊等各類傳感器,上傳溫濕度、氣壓、光照等信息。
OneNET云平臺除了支持MQTT協(xié)議外,還支持HTTP、TCP透傳等多種協(xié)議,大家可以嘗試添加其他協(xié)議的產(chǎn)品進行智能物聯(lián)的開發(fā)。
作者: spp417833515 時間: 2019-6-17 22:42
感覺你的教程
但是 這個 onenet怎么發(fā)送心跳包啊!
我網(wǎng)絡(luò)斷開后 還顯示鏈接
但是消息上傳上去服務(wù)器收不到
服務(wù)器下發(fā)的命令客戶端也收不到
比如我WIFI不斷 光貓重啟下
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
欧美日韩在线精品
|
曰批视频在线观看
|
亚洲国产精品va在线看黑人
|
黄色在线免费看
|
综合久久综合久久
|
国产精品无|
久久精品国产99国产
|
国产一区二区三区久久久久久久久
|
www.男人天堂.com
|
91视频www.|
蜜月va乱码一区二区三区
|
欧美黄 片免费观看
|
日本电影韩国电影免费观看
|
九一在线观看
|
久久国产精品一区二区
|
国产精品久久久久无码av
|
午夜视频在线播放
|
别c我啊嗯国产av一毛片
|
亚洲精品91
|
精品久久久久久亚洲国产800
|
日韩在线成人
|
国产日韩一区
|
婷婷久久综合
|
国产成人精品免费
|
日本一区二区视频
|
国产精品久久久久久久久久久久久
|
久久国产精品一区二区三区
|
精品视频在线播放
|
亚洲影音先锋
|
国产精品一区二区三区在线
|
欧美亚洲国产成人
|
欧美一级精品片在线看
|
福利视频网站
|
久久久久久国产精品免费免费狐狸
|
亚洲va中文字幕
|
av一区二区三区
|
国产二区三区
|
精品国产一区二区三区久久久四川
|
亚洲人成在线播放
|
黄色在线免费观看
|
久久国产精品网
|