參考
阿里云iot入門(2)初識(shí)物模型及利用屬性和事件上報(bào)數(shù)據(jù)
一、介紹
阿里云物聯(lián)網(wǎng)平臺(tái)是一個(gè)集成了設(shè)備管理、數(shù)據(jù)安全通信和消息訂閱等能力的一體化平臺(tái)。向下支持連接海量設(shè)備,采集設(shè)備數(shù)據(jù)上云;向上提供云端API,服務(wù)端可通過調(diào)用云端API將指令下發(fā)至設(shè)備端,實(shí)現(xiàn)遠(yuǎn)程控制。
MQTT.fx是一款基于Eclipse Paho使用Java語言編寫的MQTT客戶端,支持Windows、Mac和Linux操作系統(tǒng),可用于驗(yàn)證設(shè)備是否可與物聯(lián)網(wǎng)平臺(tái)正常連接,并通過Topic訂閱和發(fā)布消息。本文以Windows系統(tǒng)下MQTT.fx為例,介紹設(shè)備使用MQTT協(xié)議模擬接入物聯(lián)網(wǎng)平臺(tái)。
下載并安裝MQTT.fx軟件。MQTT.fx軟件安裝和使用說明,請(qǐng)參見MQTT.fx。
二、創(chuàng)建產(chǎn)品
1、新建產(chǎn)品
2、查看屬性
3、查看上報(bào)主題
三、添加設(shè)備
1、添加設(shè)備
2、設(shè)備信息
四、用MQTT.fx模擬設(shè)備
1、創(chuàng)建一個(gè)溫度模擬器
參考:如何計(jì)算MQTT簽名參數(shù) 獲取mqtt的連接簽名參數(shù)
- 在左側(cè)導(dǎo)航欄,選擇設(shè)備管理 > 設(shè)備,進(jìn)入設(shè)備頁面。
- 在設(shè)備列表中,單擊目標(biāo)設(shè)備對(duì)應(yīng)的查看按鈕,進(jìn)入設(shè)備詳情頁面。
- 在設(shè)備信息頁簽下,單擊MQTT連接參數(shù)右側(cè)的查看,獲取MQTT簽名參數(shù)信息。
注意 其中clientId是mqttClientId值,請(qǐng)勿與設(shè)備的clientId混淆。MQTT連接參數(shù)的詳細(xì)說明,請(qǐng)參見MQTT-TCP連接通信。
添加到MQTT.fx
2、發(fā)送信息
參考文檔
https://help.aliyun.com/document_detail/89301.htm?spm=a2c4g.11186623.0.0.3d1b3d99SDJACT#section-g4j-5zg-12b
查看產(chǎn)品屬性
查看屬性上報(bào)topic
模擬上報(bào)
注意時(shí)間time一定要真實(shí)實(shí)時(shí),否則報(bào)錯(cuò)6332
topic:/sys/a1kRPyuOfpd/temp_02/thing/event/property/post
{
"id": "1235",
"version": "1.0",
"sys":{
"ack":0
},
"params": {
"CurrentHumidity": {
"value": 12.2,
"time": 1524448722000
},
"CurrentTemperature": {
"value": 31.6,
"time": 1524448722000
}
},
"method": "thing.event.property.post"
}
界面查看上報(bào)信息
模擬上報(bào)事件
上報(bào)電量不足
/sys/a1jwSeD1EDU/mensuo1/thing/event/LowElectricityAlarm/post
{
"id": "1235",
"version": "1.0",
"sys":{
"ack":0
},
"params":{
},
"method": "thing.event.LowElectricityAlarm.post"
}
上報(bào)智能門鎖開門通知
了解參數(shù)
/sys/a1jwSeD1EDU/mensuo1/thing/event/DoorOpenNotification/post
{
"id": "1235",
"version": "1.0",
"sys":{
"ack":0
},
"params":{
"KeyID":"1111",
"LockType":2
},
"method": "thing.event.DoorOpenNotification.post"
}
查看上報(bào)日志
https://iot.console.aliyun.com/lk/monitor/log?pk=a1kRPyuOfpd&pn=%E6%B8%A9%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A82&dn=temp_02
配置服務(wù)端訂閱
創(chuàng)建訂閱
使用AMQP消費(fèi)JavaSDK接入
https://help.aliyun.com/document_detail/143601.htm?spm=a2c4g.11186623.0.0.5d12fbc7vt2SZ5#concept-2340718
下載demo
下載Demo代碼包
配置指南:
申請(qǐng)AccessKey
登錄物聯(lián)網(wǎng)平臺(tái)控制臺(tái),將鼠標(biāo)移至賬號(hào)頭像上,然后單擊AccessKey管理,獲取AccessKey ID和AccessKey Secret。
https://ram.console.aliyun.com/manage/ak?spm=5176.11485173.top-nav.dak.379559afZJzv8X
獲取消費(fèi)組ID
登錄物聯(lián)網(wǎng)平臺(tái)控制臺(tái),在對(duì)應(yīng)實(shí)例的規(guī)則引擎 > 服務(wù)端訂閱 > 消費(fèi)組列表查看您的消費(fèi)組ID。
獲取iotInstanceId
實(shí)例ID。您可在物聯(lián)網(wǎng)平臺(tái)控制臺(tái)的實(shí)例概覽頁面,查看當(dāng)前實(shí)例的ID。
若有ID值,必須傳入該ID值。
若無實(shí)例概覽頁面或ID值,傳入空值,即iotInstanceId = “”。
獲取clientId
表示客戶端ID,需您自定義,長度不可超過64個(gè)字符。建議使用您的AMQP客戶端所在服務(wù)器UUID、MAC地址、IP等唯一標(biāo)識(shí)。
AMQP客戶端接入并啟動(dòng)成功后,登錄物聯(lián)網(wǎng)平臺(tái)控制臺(tái),在對(duì)應(yīng)實(shí)例的規(guī)則引擎 > 服務(wù)端訂閱 > 消費(fèi)組列表頁簽,單擊消費(fèi)組對(duì)應(yīng)的查看,消費(fèi)組詳情頁面將顯示該參數(shù),方便您識(shí)別區(qū)分不同的客戶端。文章來源:http://www.zghlxwxcb.cn/news/detail-472257.html
獲取host
參考:https://help.aliyun.com/document_detail/147356.htm?spm=a2c4g.11186623.0.0.6c767929IeDjdm#section-kiw-dh9-de0文章來源地址http://www.zghlxwxcb.cn/news/detail-472257.html
${uid}.iot-amqp.${YourRegionId}.aliyuncs.com:${port}
### 最終配置
```java
private final static Logger logger = LoggerFactory.getLogger(AmqpClient.class);
private static String accessKey = "LTAI5tMHxxxxxxx13Z8D3nY";
private static String accessSecret = "AdAd746FxxxxxxA5Ydd";
private static String consumerGroupId = "DEFAULT_GROUP";
//iotInstanceId:實(shí)例ID。若是2021年07月30日之前(不含當(dāng)日)開通的公共實(shí)例,請(qǐng)?zhí)羁兆址? private static String iotInstanceId = "";
//控制臺(tái)服務(wù)端訂閱中消費(fèi)組狀態(tài)頁客戶端ID一欄將顯示clientId參數(shù)。
//建議使用機(jī)器UUID、MAC地址、IP等唯一標(biāo)識(shí)等作為clientId。便于您區(qū)分識(shí)別不同的客戶端。
private static String clientId = "123456789987654321";
//${YourHost}為接入域名,請(qǐng)參見AMQP客戶端接入說明文檔。
private static String host = "13246xxx0940.iot-amqp.cn-shanghai.aliyuncs.com";
## 用MQTT.fx模擬上報(bào)溫濕度
可以看到日志
### 屬性上報(bào)消息
```bash
15:44:57.163 [pool-1-thread-1] INFO com.aliyun.iotx.demo.AmqpClient - receive message,
topic = /a1kRPyuOfpd/temp_02/thing/event/property/post,
messageId = 1585538019430364673,
content = {"deviceType":"CurrentTemperature","iotId":"sLomjhEuCDrTX2KQTU5x000000","requestId":"1235","checkFailedData":{},"productKey":"a1kRPyuOfpd","gmtCreate":1666856696337,"deviceName":"temp_02","items":{"CurrentHumidity":{"value":12.2,"time":1524448722000},"CurrentTemperature":{"value":31.6,"time":1524448722000}}}
下線消息
16:04:58.253 [pool-1-thread-2] INFO com.aliyun.iotx.demo.AmqpClient - receive message,
topic = /as/mqtt/status/a1kRPyuOfpd/temp_02,
messageId = 1585543057267769344,
content = {"lastTime":"2022-10-27 16:04:57.473","iotId":"sLomjhEuCDrTX2KQTU5x000000","utcLastTime":"2022-10-27T08:04:57.473Z","clientIp":"121.31.14.28","utcTime":"2022-10-27T08:04:57.473Z","offlineReasonCode":200,"time":"2022-10-27 16:04:57.473","productKey":"a1kRPyuOfpd","deviceName":"temp_02","status":"offline"}
上線消息
16:05:30.841 [pool-1-thread-3] INFO com.aliyun.iotx.demo.AmqpClient - receive message,
topic = /as/mqtt/status/a1kRPyuOfpd/temp_02,
messageId = 1585543193989292544,
content = {"lastTime":"2022-10-27 16:05:30.065","iotId":"sLomjhEuCDrTX2KQTU5x000000","utcLastTime":"2022-10-27T08:05:30.065Z","clientIp":"121.31.14.28","utcTime":"2022-10-27T08:05:30.065Z","time":"2022-10-27 16:05:30.065","productKey":"a1kRPyuOfpd","deviceName":"temp_02","status":"online"}
到了這里,關(guān)于用MQTT.fx模擬溫度設(shè)備聯(lián)調(diào)阿里云IOT物聯(lián)網(wǎng)平臺(tái)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!