系列教程目錄
(一) 連接阿里雲IOT
(二) 設置委托事件
(三) 上報屬性
(四) SDK文檔 屬性、方法、委托、類
http://pan.whuanle.cn/index.php?dir=uploads/阿里雲IOT/AliIOTXFclient-dll類庫&response
下載三個庫,頭部引入 即可使用
using AliIOTXFClient;
示例下載地址
http://pan.whuanle.cn/index.php?dir=uploads/阿里雲IOT/demo示例
本章使用示例 AliIOTXF.One
二,阿里雲 IOT 創建產品設備
打開地址 https://iot.console.aliyun.com/product
創建一個產品
節點類型選擇設備、非網關,因為是直接對接有網絡能力的設備。透傳需要寫 JS 解析腳本,Alink Json 使用方便、不易出錯,也更便於理解。ID² 提供了雙向身份認證能力,但是收費。
創建設備
創建成功后記得 “ 一鍵復制 ” ,然后存放到記事本等保存。(保不保存沒事,可以到里面復制)
附上阿里雲創建產品的文檔 https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11174283.6.553.3a8b1668QRyRs7
創建后的設備
三,創建項目,連接阿里雲
隨意創建一個 .NET Core 項目,引入三個 Dll,記得選擇復制到本地。
頭部引入
using AliIOTXFClient;
創建連接客戶端
把一鍵復制的內容或到控制台--具體設備中,復制 ProductKey 和 DeviceName。
XFMQTT client = new XFMQTT(ProductKey, DeviceName); // 創建連接對象
初始化配置
DeviceSecret 到控制台復制,Region ID 是地域,可以在控制台左上角看到地域名稱,點擊 查看阿里雲 IOT 地域,把對應的 Region ID 復制下來。例如筆者的是華東2,對應 cn-shanghai。
client.Init(DeviceSecret, Region ID); // 初始化客戶端
添加要訂閱的 Topic
需要具有 “訂閱” 權限的 Topic 才能被訂閱。並且只有 .../user/... 的,屬於普通 Topic。這方面后面再說,看圖。
update、update/error、get 屬於默認的Topic。
我們創建自定義的 Topic,點擊 對應的 “產品”--查看 Topic 類列表,“自定義Topic類”
添加兩個自定義的 Topic
多個 Topic string[] topic = { top1,top2.,,,, };
綁定事件委托
在連接服務器、收到 Topic、發布 Topic、發布屬性、服務調用等各個環節,都有相應的委托。
這里使用默認的委托事件,后面慢慢如何自定義
// 使用默認的委托事件 client.UseDefaultEventHandler();
開始連接IOT服務器
// 連接服務器 client.ConnectMqtt(topic);
別忘記了加一行 Console.ReadKey();
完整代碼
// 創建連接對象 XFMQTT client = new XFMQTT("a1BiPoNawLI", "Raspberry"); // 初始化客戶端配置 client.Init("2NOaBeqXcIzLQEhlJFEfKbWeug0o3m0c", "cn-shanghai"); // 要訂閱的Topic string[] topic = { client.CombineHeadTopic("PubData") }; // 使用默認的委托事件 client.UseDefaultEventHandler(); // 連接服務器 client.ConnectMqtt(topic); Console.ReadKey();
創建一般的連接客戶端的步驟已經完成,運行程序
四,訂閱 Topic 與發布 Topic
運行程序后,打開控制台--設備列表,會發現
發送 Topic
打開設備,找到 Topic 列表的 PubData,點擊 ”發布“,輸入任意字符(中文可能會亂碼),查看客戶端會不會收到內容。
注:只有權限為訂閱的Topic,能夠向設備下發數據。
設備中,只有設置訂閱該 Topic,在控制台發布消息時,才能收到此 Topic。在控制台多找幾個Topic,試試發布一下就知道了。
發布Topic
上面的步驟實現了連接 IOT 平台並訂閱 Topic,這樣可以收到服務器的推送或者說收到數據了,Topic 可以訂閱很多個,在客戶端設置需要的 Topic,服務器能向客戶端設備發布成功。下面來示范一下如何發布數據內容到服務器。
在代碼后面加上
while (true) { string str=Console.ReadLine(); // 推送內容到特定的 Topic client.Subscribe(client.CombineHeadTopic("SubData"),str); }
SubData 是我們要推送到的Topic。
完整代碼如下(請替換 {***} 的對應內容),紅色部分是新增代碼:
// 創建連接對象 XFMQTT client = new XFMQTT("{*產品名稱*}", "{*設備名稱*}"); // 初始化客戶端配置 client.Init("{*密鑰*}", "{*cn-shanghai*}"); // 要訂閱的Topic string[] topic = { client.CombineHeadTopic("PubData") }; // 使用默認的委托事件 client.UseDefaultEventHandler(); // 連接服務器 client.ConnectMqtt(topic); while (true) { string str=Console.ReadLine(); // 推送內容到特定的 Topic client.Subscribe(client.CombineHeadTopic("SubData"),str); } Console.ReadKey();
運行程序,隨意輸入內容。在控制台知道日志服務,查看設備的上行消息分析
IOT控制台中暫時沒法查看到上傳的消息內容。
使用了默認的委托方法,可以在控制台中復制文字,使用Json格數化看看結果。
簡單使用 SDK 的教程就到這里了