電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 5888|回復(fù): 4
收起左側(cè)

OneNET 示例應(yīng)用程序

[復(fù)制鏈接]

131

主題

512

帖子

1666

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
1666
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-4-8 10:34:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
OneNET 示例應(yīng)用程序

準(zhǔn)備工作

在 OneNET 云上注冊(cè)賬號(hào)

設(shè)備接入 OneNET 云之前,需要在平臺(tái)注冊(cè)用戶賬號(hào),OneNET 云平臺(tái)地址:https://open.iot.10086.cn
創(chuàng)建產(chǎn)品

賬號(hào)注冊(cè)登錄成功后,點(diǎn)擊開發(fā)者中心進(jìn)入開發(fā)者中心界面;
點(diǎn)擊創(chuàng)建產(chǎn)品,輸入產(chǎn)品基本參數(shù),在設(shè)備接入?yún)f(xié)議一欄選擇 MQTT 協(xié)議,如下圖所示:


產(chǎn)品創(chuàng)建成功之后,可以在開發(fā)者中心的公開協(xié)議產(chǎn)品中找到剛剛創(chuàng)建的產(chǎn)品,點(diǎn)擊產(chǎn)品名,可以看到產(chǎn)品的基礎(chǔ)信息(如產(chǎn)品ID,接入?yún)f(xié)議,創(chuàng)建時(shí)間,產(chǎn)品 APIkey 等,后面有用):

接入設(shè)備

在開發(fā)者中心左側(cè)設(shè)備管理中點(diǎn)擊添加設(shè)備按鈕添加設(shè)備,設(shè)備名稱我們填入test1。鑒權(quán)信息是為了區(qū)分每一個(gè)不同的設(shè)備,如果創(chuàng)建了多個(gè)設(shè)備,要確保每個(gè)設(shè)備的鑒權(quán)信息都不一樣,我們這里填入201807171718,填完之后點(diǎn)擊接入設(shè)備


添加 APIkey

接入設(shè)備之后,可以看到設(shè)備列表的界面多了一個(gè)設(shè)備,設(shè)備的右邊有一些操作設(shè)備的按鈕,點(diǎn)擊查看詳情按鈕


此設(shè)備的相關(guān)信息就都顯示出來(lái)了,比如:設(shè)備 ID、鑒權(quán)信息、設(shè)備 APIkey,這些信息需要記下,在ENV配置時(shí)會(huì)用到。
點(diǎn)擊按鈕添加 APIkey,APIKey 的名稱一般和設(shè)備相關(guān)聯(lián),我們這里填入test_APIKey,關(guān)聯(lián)設(shè)備默認(rèn)為我們剛剛創(chuàng)建的設(shè)備test1。

開啟 onenet 軟件包

打開 Env 工具輸入 menuconfig 按照下面的路徑開啟 onenet 軟件包:
RT-Thread online packages    IoT - internet of things  --->        IoT Cloud  --->             OneNET: China Mobile OneNet cloud SDK for RT-Thread進(jìn)入 onenet 軟件包的配置菜單按下圖所示配置,里面的信息依據(jù)自己的產(chǎn)品和設(shè)備的實(shí)際情況填寫
--- OneNET: China Mobile OneNet cloud SDK for RT-Thread                                [ ]   Enable OneNET sample                                                         Enable support MQTT protocol                                                     [ ]   Enable OneNET automatic register device (NEW)                                 (35936966) device id                                                                 (201807171718) auth info    (H3ak5Bbl0NxpW3QVVe33InnPxOg=) api key                                                  (156418) product id                                                                     (dVZ=ZjVJvGjXIUDsbropzg1a8Dw=) master/product apikey (NEW)                               version (latest)  --->Enable OneNET sample :開啟 OneNET 示例代碼
Enable support MQTT protocol :開啟 MQTT 協(xié)議連接 OneNET 支持
Enable OneNET automatic register device :開啟  OneNET 自動(dòng)注冊(cè)設(shè)備功能
device id :配置云端創(chuàng)建設(shè)備時(shí)獲取的 設(shè)備ID
auth info :配置云端創(chuàng)建產(chǎn)品時(shí) 用戶自定義的鑒權(quán)信息 (每個(gè)產(chǎn)品的每個(gè)設(shè)備唯一)
api key :配置云端創(chuàng)建設(shè)備時(shí)獲取的 APIkey
product id :配置云端創(chuàng)建產(chǎn)品時(shí)獲取的 產(chǎn)品ID
master/product apikey :配置云端創(chuàng)建產(chǎn)品時(shí)獲取的 產(chǎn)品APIKey
示例文件介紹

利用 Env 生成工程后,我們可以在工程的 onenet 目錄下看到onenet_sample.c文件,該文件是 OneNET 軟件包的示例展示,主要是展示用戶如何使用 OneNET 軟件包上傳數(shù)據(jù)和接收命令。
運(yùn)行示例

在使用 OneNET 軟件包之前必須要先調(diào)用onenet_mqtt_init這個(gè)命令進(jìn)行初始化,初始化完成后設(shè)備會(huì)自動(dòng)連接 OneNET 平臺(tái)。
msh />onenet_mqtt_init[D/ONENET] (mqtt_connect_callback:85) Enter mqtt_connect_callback![D/[MQTT] ] ipv4 address port: 6002[D/[MQTT] ] HOST = '183.230.40.39'[I/ONENET] RT-Thread OneNET package(V0.2.0) initialize success.msh />[I/[MQTT] ] MQTT server connect success[D/ONENET] (mqtt_online_callback:90) Enter mqtt_online_callback!上傳數(shù)據(jù)

初始化完成后,用戶可以調(diào)用onenet_upload_cycle這個(gè)命令周期性的往云平臺(tái)上傳數(shù)據(jù)。輸入這個(gè)命令后,設(shè)備會(huì)每隔 5s 向數(shù)據(jù)流 temperature 上傳一個(gè)隨機(jī)值。并將上傳的數(shù)據(jù)打印到 shell 窗口。
msh />onenet_upload_cyclemsh />[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":32}[D/ONENET] (onenet_upload_data:106) buffer : {"temperature":51}我們打開 OneNET 平臺(tái),在設(shè)備列表界面選擇剛添加的設(shè)備并進(jìn)入數(shù)據(jù)流展示頁(yè)面。

點(diǎn)擊temperature數(shù)據(jù)流左邊的小箭頭顯示數(shù)據(jù)流信息,我們就可以看到剛剛上傳的數(shù)據(jù)了。

如果用戶想往別的數(shù)據(jù)流發(fā)送信息,可以使用以下 API 往云平臺(tái)上傳數(shù)據(jù)。
onenet_mqtt_publish_digitonenet_mqtt_publish_string
命令格式如下所示:
onenet_mqtt_publish_digit 數(shù)據(jù)流名稱 要上傳的數(shù)據(jù)onenet_mqtt_publish_string 數(shù)據(jù)流名稱 要上傳的字符串輸入命令后沒有返回錯(cuò)誤信息就表示上傳成功。
示例如下:
msh />onenet_mqtt_publish_digit test 1msh />onenet_mqtt_publish_string test 1msh />onenet_mqtt_publish_digit test 2msh />onenet_mqtt_publish_string test 1在數(shù)據(jù)流管理頁(yè)面,我們可以看到多出來(lái)個(gè) test 數(shù)據(jù)流,里面的數(shù)據(jù)就是我們剛剛上傳的數(shù)據(jù)。

接收命令

在初始化時(shí),命令響應(yīng)回調(diào)函數(shù)默認(rèn)指向了空,想要接收命令,必須設(shè)置命令響應(yīng)回調(diào)函數(shù),在 shell 中輸入命令onenet_set_cmd_rsp,就把示例文件里的命令響應(yīng)回調(diào)函數(shù)掛載上了,這個(gè)響應(yīng)函數(shù)在接收到命令后會(huì)把命令打印出來(lái)。
msh />onenet_set_cmd_rsp我們點(diǎn)擊設(shè)備列表界面的下發(fā)命令按鈕。

在彈出來(lái)的窗口里輸出 hello rt-thread!,然后點(diǎn)擊發(fā)送命令。

就可以在 shell 中看到云平臺(tái)下發(fā)的命令了。
msh />onenet_set_cmd_rspmsh />[D/ONENET] (mqtt_callback:60) topic $creq/6db0c1b2-9a7e-5e4a-8897-bf62d4a3461f receive a message[D/ONENET] (mqtt_callback:62) message length is 18[D/ONENET] (onenet_cmd_rsp_cb:107) recv data is hello rt-thread!

131

主題

512

帖子

1666

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
1666
沙發(fā)
發(fā)表于 2021-4-8 10:34:37 | 只看該作者
需要做PCB線路板的可以聯(lián)系我

13651479995
lyl

1

主題

1119

帖子

3525

積分

四級(jí)會(huì)員

Rank: 4

積分
3525
板凳
發(fā)表于 2021-5-26 08:35:02 | 只看該作者
資料很好,學(xué)習(xí)學(xué)習(xí)

3

主題

2721

帖子

3052

積分

四級(jí)會(huì)員

Rank: 4

積分
3052
地板
發(fā)表于 2021-6-4 11:45:17 | 只看該作者
1111111111111111111111111

3

主題

2721

帖子

3052

積分

四級(jí)會(huì)員

Rank: 4

積分
3052
5#
發(fā)表于 2021-6-4 11:45:30 | 只看該作者
11111111111111111

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表