? ? ? ? 今天得空,研究一下阿里物聯(lián)網(wǎng)平臺新版“云產(chǎn)品流轉(zhuǎn)”設(shè)置方法。手頭只有一片ESP32,考慮先將消息發(fā)送給平臺,然后平臺再將消息轉(zhuǎn)發(fā)給自己,這樣消息轉(zhuǎn)了一圈,還是回到自己手里!主要目的無非就是一個閉環(huán)檢測,看看網(wǎng)絡(luò)是否暢通,功能設(shè)置是否正確。這里的“云產(chǎn)品流轉(zhuǎn)”就要設(shè)置為將自己發(fā)布的消息再流轉(zhuǎn)到自己訂閱的Topic上。感覺是不是有點繞?但這個要是成功了,轉(zhuǎn)給別人也是一樣的道理了。
? ? ? ? 如果你已經(jīng)有了連接阿里云物聯(lián)網(wǎng)平臺的相關(guān)的背景知識或資源,那下面這段文字可以直接略過。
? ? ? ? 首先,我們得利用一下我前面奉獻(xiàn)給大家的資源:ESP32連接阿里云MQTT物聯(lián)網(wǎng)平臺的Arduino支持庫及示例代碼。有了這個,才能方便連上阿里云物聯(lián)網(wǎng)平臺。然后,我們得創(chuàng)建產(chǎn)品和設(shè)備,可以參考一下我前面的文章:阿里MQTT物聯(lián)網(wǎng)平臺“云產(chǎn)品流轉(zhuǎn)”實戰(zhàn)——兩片ESP32通過物聯(lián)網(wǎng)平臺實現(xiàn)遠(yuǎn)程互操作里面關(guān)于創(chuàng)建產(chǎn)品和設(shè)備的部分。因為該文章里關(guān)于“云產(chǎn)品流轉(zhuǎn)”設(shè)置部分是舊版的,估計不久將被棄用,今天來設(shè)置一下新版的“云產(chǎn)品流轉(zhuǎn)”,才能體現(xiàn)與時俱進(jìn)哦。
? ? ? ? 閑話少說,直接開干。登陸平臺--->公共實例--->左側(cè)導(dǎo)航欄點“規(guī)則引擎”--->“云產(chǎn)品流轉(zhuǎn)”。
啊哈,這里有個教程!不用理會,教程太專業(yè),針對企業(yè)用戶的,我等窮人不愿花錢買服務(wù),沒那資源,還是先按免費路線走一走吧。當(dāng)然,教程也是很有用的哈,我們這里要理解“云產(chǎn)品流轉(zhuǎn)”的內(nèi)在機(jī)制:物聯(lián)網(wǎng)設(shè)備將消息發(fā)送給平臺--->平臺利用用戶設(shè)置的腳本進(jìn)行預(yù)處理--->再將處理后的數(shù)據(jù)發(fā)給目的地。這里要理解三個概念:“數(shù)據(jù)源”、“數(shù)據(jù)目的”、“解析器”。通常理解,“數(shù)據(jù)源”就是數(shù)據(jù)來源,也就是物聯(lián)網(wǎng)設(shè)備發(fā)給平臺的消息。這些消息區(qū)別于產(chǎn)品,區(qū)別于設(shè)備,區(qū)別于發(fā)布的主題。你可以將不同產(chǎn)品不同設(shè)備不同發(fā)布主題的消息放入一個數(shù)據(jù)源中進(jìn)行統(tǒng)一處理。也可以將它們分類放入不同的數(shù)據(jù)源中分別處理?!皵?shù)據(jù)目的”就是要將數(shù)據(jù)發(fā)到哪里去?!敖馕銎鳌笔嵌叩臉蛄海?fù)責(zé)進(jìn)行中間的聯(lián)系和預(yù)處理工作。
? ? ? ? 我們這里只需要簡單加入一個數(shù)據(jù)源,那就是我的ESP32從自定義Topic(/user/post)發(fā)布的消息,通過“解析器”將數(shù)據(jù)再發(fā)到ESP32的自定義訂閱Topic(/user/set)。
一、設(shè)置“數(shù)據(jù)源”。
? ? ? ?1、點擊“數(shù)據(jù)源”--->“創(chuàng)建數(shù)據(jù)源”,然后填入名稱和描述,點“確定”創(chuàng)建成功。
你會在“數(shù)據(jù)源名稱”下面看見剛建立的數(shù)據(jù)源,后面有個“數(shù)據(jù)源ID”。這個ID很重要哈,腳本處理的時候是針對ID的哦。
? ? ? ?2、下面給剛建立的數(shù)據(jù)源添加數(shù)據(jù)來源。你需要點一下右邊的“查看”。
然后點“添加Topic”,在彈出的對話框中選擇Topic,我們這里選擇的是自己創(chuàng)建的ESP32相關(guān)產(chǎn)品和設(shè)備的自定義Topic,點確認(rèn)完成數(shù)據(jù)源設(shè)置工作。
二、設(shè)置“數(shù)據(jù)目的”。
? ? ? ? 關(guān)于“數(shù)據(jù)目的”就簡單一點,就是數(shù)據(jù)要發(fā)到哪里去。這個目的地真是挺多的,但一次只能設(shè)置一個目的,如果你想像短信群發(fā)那樣搞,那得在“解析器”里面去設(shè)置哈。我們這里直接將目的設(shè)置為我們自己創(chuàng)建的產(chǎn)品就行了。
然后你在“數(shù)據(jù)目的名稱”下面就可以看到剛建立的數(shù)據(jù)目的,其后有一個“數(shù)據(jù)目的ID”,這個ID與“數(shù)據(jù)源ID”一樣,非常重要,下面我們設(shè)置“解析器”的腳本里要用到。
三、設(shè)置”解析器“。
? ? ? ? 1、下面進(jìn)入第三步:創(chuàng)建“解析器”。這個很簡單,取個名,加個描述,OK。
2、然后會自動進(jìn)入“解析器詳情”頁,點一下“①數(shù)據(jù)源”,再點“關(guān)聯(lián)數(shù)據(jù)源”,選擇前面建立的數(shù)據(jù)源,確定完成。
3、接著點“②數(shù)據(jù)目的”,再點“關(guān)聯(lián)數(shù)據(jù)目的”,然后選擇前面建立的數(shù)據(jù)目的,確定完成。
3、接著點一下“③解析器腳本”,如下圖,輸入你的處理腳本。
我們這里的腳本非常簡單:取得數(shù)據(jù),原樣發(fā)送。腳本代碼只有兩行:
var data = payload("json");
writeIotTopic(1013, "/a1h5iMRg3fl/ESP32_VS1053_00/user/set", data);
第一行使用payload("json")方法取得數(shù)據(jù)的JSON格式數(shù)據(jù),第二行將數(shù)據(jù)發(fā)送給指定的數(shù)據(jù)目的。writeIotTopic方法的第一個參數(shù)為“數(shù)據(jù)目的ID”,第二個參數(shù)為產(chǎn)品設(shè)備的接收Topic(設(shè)備必須在連接平臺后進(jìn)行訂閱,否則接收不到),第三個參數(shù)是我們第一行取得的數(shù)據(jù)。關(guān)于腳本處理的相關(guān)方法,平臺幫助系統(tǒng)有詳細(xì)的解說教程,大家有空可以看看,我們這里就簡簡單單原樣返回,不做中間商賺差價的事情。設(shè)置好后就像下面這樣:
點一下“發(fā)布”完成設(shè)置工作。腳本可以很簡單,也可以很復(fù)雜,難免會出錯誤,需要調(diào)試,如果你想調(diào)試腳本,可以試試點“調(diào)試”按鈕。
?4、現(xiàn)在需要啟動該解析器:如下圖,回到“云產(chǎn)品流轉(zhuǎn)”設(shè)置首頁,在我們創(chuàng)建的解析器后面有個“啟動”按鈕,啟動后就即時生效了。
? ? ? ? 好了,回顧一下所有操作,是不是很簡單,難一點就在那個腳本上面。得多看看系統(tǒng)提供的幫助,了解一下“解析器”腳本到底能干什么,有些什么樣的方法,語法規(guī)范之類的。當(dāng)然,你得有相關(guān)的阿里物聯(lián)網(wǎng)平臺連接的相關(guān)知識,了解其工作機(jī)制,記錄需要的相關(guān)信息。這樣才能一次成功。文章來源:http://www.zghlxwxcb.cn/news/detail-447323.html
? ? ? ? 現(xiàn)在可以打開我們之前的那個ARDUINO連接阿里云的例程看看,在SETUP()過程里設(shè)置發(fā)布Toptic和訂閱Topic,在LOOP()過程里添加一個5秒發(fā)送一次消息的代碼,看看能不能接收到自己發(fā)布的消息。是不是又是一個熬夜調(diào)試的過程?文章來源地址http://www.zghlxwxcb.cn/news/detail-447323.html
到了這里,關(guān)于阿里物聯(lián)網(wǎng)平臺“云產(chǎn)品流轉(zhuǎn)”設(shè)置方法(新版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!