一
與Chirpstack服務(wù)器數(shù)據(jù)交互
準(zhǔn)備:使用MQTTX軟件訂閱目標(biāo)服務(wù)器,此處為自己搭建的chirpstack服務(wù)器,IP為192.168.0.84,用戶名和密碼均為admin,通過應(yīng)用服務(wù)器訂閱TOPIC來(lái)接受設(shè)備服務(wù)器發(fā)布的信息。
設(shè)備信息位置如圖:
語(yǔ)法:
卡片的背景色需要調(diào)出布局工具欄來(lái)設(shè)置
// 設(shè)備服務(wù)器上傳的TOPIC
// display everything for the given APPLICATION_ID
application/APPLICATION_ID/#
// display only the uplink payloads for the given APPLICATION_ID
application/APPLICATION_ID/device/+/event/up
// 應(yīng)用服務(wù)器下發(fā)TOPIC
application/APPLICATION_ID/device/DEV_EUI/command/down
注意:'#'和'+'為MQTT協(xié)議中的通配符
單級(jí)通配符(Single-level wildcard):用符號(hào)"+"表示。當(dāng)一個(gè)主題中的某個(gè)級(jí)別使用"+"通配符時(shí),它可以匹配一個(gè)層級(jí)的任意名稱。例如,"home/+"可以匹配"home/bedroom"、"home/livingroom"等主題,但不能匹配"home/bedroom/temperature"等超過一個(gè)層級(jí)的主題。
多級(jí)通配符(Multi-level wildcard):用符號(hào)"#"表示。當(dāng)一個(gè)主題中的某個(gè)級(jí)別使用"#"通配符時(shí),它可以匹配多個(gè)層級(jí)的任意名稱。"#"必須作為主題的最后一個(gè)級(jí)別,可以匹配當(dāng)前級(jí)別以及所有更深層級(jí)的主題。例如,"home/#"可以匹配"home/bedroom"、"home/livingroom",以及"home/bedroom/temperature"等任意層級(jí)的主題。
每個(gè)卡片都可以嵌套插入圖片或其它模板。
設(shè)備推送信息:
//接收TOPIC:
//訂閱單個(gè)設(shè)備的數(shù)據(jù)上傳TOPIC
application/ded77c98-1249-44d1-9a14-c4b312f71d77/device/a1b117f518a3ba80/event/up
//訂閱當(dāng)前app下的所有設(shè)備
application/ded77c98-1249-44d1-9a14-c4b312f71d77/#
/* 終端節(jié)點(diǎn)上傳數(shù)據(jù)的AT指令
1:需要確認(rèn)幀 // 0不需要確認(rèn)
2:最大重發(fā)次數(shù)2次
10:當(dāng)前包的byte數(shù)量
xx:data */
AT+DTRX=1,2,10,3435363738
應(yīng)用服務(wù)器接收到的信息如圖:
應(yīng)用服務(wù)器下發(fā)信息:
//下發(fā)TOPIC:
application/ded77c98-1249-44d1-9a14-c4b312f71d77/device/a1b117f518a3ba80/command/down
//下發(fā)數(shù)據(jù)格式
{
"devEui": "a1b117f518a3ba80", #設(shè)備ID
"confirmed": true, #是否需要確認(rèn)
"fPort": 10, #目標(biāo)應(yīng)用層端口
"data": "cnVub29i" #數(shù)據(jù),注意:需要使用base64編碼格式 eg:cnVub29i == 72756E6F6F62(runoob)
}
//終端設(shè)備從接收緩沖區(qū)中讀取數(shù)據(jù)并清空緩沖區(qū)
AT+DRX?
設(shè)備接收到的信息如圖:
注意:MQTT通配符只能在訂閱時(shí)使用,無(wú)法在發(fā)送時(shí)使用。
工具網(wǎng)站
ASCII轉(zhuǎn)字符:https://www.asciim.cn/m/tools/convert_ascii_to_string.html
base64加解密:https://c.runoob.com/front-end/693/
二
與TTN服務(wù)器數(shù)據(jù)交互
之前的文章我們主要說明了如何在thethingsnetwork.org上面注冊(cè)網(wǎng)關(guān)、創(chuàng)建應(yīng)用、創(chuàng)建設(shè)備等,thethingsnetwork.org(下稱TTN)只是一個(gè)網(wǎng)絡(luò)服務(wù)器(network server),不會(huì)保存應(yīng)用數(shù)據(jù),因此實(shí)際項(xiàng)目中還需要一個(gè)應(yīng)用服務(wù)器(application server),thethingsnetwork.org提供了多種方式供應(yīng)用平臺(tái)獲取數(shù)據(jù)以及管理設(shè)備。
主要分為3大類:
APIs:又分為數(shù)據(jù)API和應(yīng)用管理API,數(shù)據(jù)API主要用MQTT方式接收和下發(fā)數(shù)據(jù),應(yīng)用管理API主要使用HTTP方式管理注冊(cè)設(shè)備。
SDKs:提供了Go、Java、Node.js等各種語(yǔ)言。
Integrations(集成):ThingSpeak、AWS IOT等。
多數(shù)情況下只需要關(guān)注上報(bào)和下發(fā)數(shù)據(jù),因此本文主要說明如何使用MQTT方式獲取數(shù)據(jù)和下發(fā)數(shù)據(jù),官方說明:https://www.thethingsnetwork.org/docs/applications/mqtt/api.html
這里使用MQTT.fx這個(gè)客戶端來(lái)演示,在實(shí)際應(yīng)用中可能使用其他高級(jí)語(yǔ)言MQTT客戶端的方式。
連接
主要是上面框圖中的四個(gè)參數(shù),其中:
Broker Address:.thethings.network,其中是所選的地區(qū)。
這個(gè)參數(shù)也是我們注冊(cè)應(yīng)用的時(shí)候選擇的Handler,就是下圖中右邊的地址:
Broker Port:1883(非加密方式)。
Client ID:隨便給一個(gè)。
User Name:應(yīng)用ID,這個(gè)是注冊(cè)應(yīng)用的時(shí)候自定義的,這里是ff08。
Password:應(yīng)用訪問密鑰,base64格式,這個(gè)是系統(tǒng)生成的,當(dāng)然也可以自己添加,這里使用系統(tǒng)生成的:
訂閱(Subscribe)節(jié)點(diǎn)上行數(shù)據(jù)
TTN提供了一個(gè)主題Topic:/devices//up,其中和都是注冊(cè)的時(shí)候自己定義的,進(jìn)入相應(yīng)的設(shè)備就可以看到,如下:
可以看到節(jié)點(diǎn)ID、上報(bào)的端口號(hào)、計(jì)數(shù)器、頻點(diǎn)、時(shí)間戳等,其中payload_raw字段就是我們上傳的數(shù)據(jù),是以base64格式顯示的。
發(fā)布(Publish)下行數(shù)據(jù)
TTN提供了一個(gè)主題Topic:/devices//down,其中和都是注冊(cè)的時(shí)候自己定義的,進(jìn)入相應(yīng)的設(shè)備就可以看到。
數(shù)據(jù)是json格式,上面3個(gè)字段是必須的,payload_raw字段就是我們要下發(fā)的數(shù)據(jù),是base64格式的。
“MTIzNDU2Nzg5”對(duì)應(yīng)的明文是“123456789”。
在節(jié)點(diǎn)查看下發(fā)的應(yīng)用數(shù)據(jù):
節(jié)點(diǎn)收到的數(shù)據(jù)以hex格式打印出來(lái),剛好對(duì)應(yīng)字符串“123456789”。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9329瀏覽量
86128 -
WAN
+關(guān)注
關(guān)注
1文章
149瀏覽量
19033 -
數(shù)據(jù)收發(fā)
+關(guān)注
關(guān)注
0文章
8瀏覽量
7807 -
LoRa
+關(guān)注
關(guān)注
349文章
1700瀏覽量
232458
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
負(fù)載均衡服務(wù)器與服務(wù)器如何連接?
請(qǐng)問ADS1262EVM開發(fā)板可以通過和ARM開發(fā)板連接進(jìn)行數(shù)據(jù)傳輸嗎?
RAKsmart國(guó)外大帶寬服務(wù)器怎么連接
服務(wù)器數(shù)據(jù)恢復(fù)—xfs文件系統(tǒng)服務(wù)器數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—搬遷導(dǎo)致服務(wù)器無(wú)法識(shí)別raid的數(shù)據(jù)恢復(fù)案例
如何在阿里ECS服務(wù)器上架設(shè)自己的OpenVPN服務(wù)器?
ESP32-C3在SPI-AT模式下進(jìn)行數(shù)據(jù)透?jìng)?,最后一個(gè)數(shù)據(jù)包的數(shù)據(jù)偶爾會(huì)出現(xiàn)錯(cuò)誤,為什么?
接口測(cè)試怎么測(cè)多個(gè)服務(wù)器連接
通過STM32+ESP8266 Wifi模塊 +云服務(wù)器,做一個(gè)數(shù)據(jù)收發(fā)控制的板子云服務(wù)器方面該如何選擇?
美國(guó)硅谷云服務(wù)器的網(wǎng)絡(luò)連接速度如何?
服務(wù)器數(shù)據(jù)恢復(fù)—分享幾個(gè)服務(wù)器數(shù)據(jù)恢復(fù)的案例
linux服務(wù)器和windows服務(wù)器
服務(wù)器連接應(yīng)用解決方案
![<b class='flag-5'>服務(wù)器</b><b class='flag-5'>連接</b>應(yīng)用解決方案](https://file.elecfans.com/web2/M00/66/37/poYBAGMPDQSAXp1vAABWyupZRxs706.png)
LoRaWAN網(wǎng)絡(luò)服務(wù)器算法--下行路徑選擇算法對(duì)比與仿真(下)
![<b class='flag-5'>LoRaWAN</b>網(wǎng)絡(luò)<b class='flag-5'>服務(wù)器</b>算法--下行路徑選擇算法對(duì)比與仿真(下)](https://file.elecfans.com/web2/M00/42/98/poYBAGJ5xUWAAL3PAABCVAeSJ9o570.jpg)
評(píng)論