http://pan.whuanle.cn/index.php?dir=uploads/阿里雲IOT/AliIOTXFclient-dll類庫&responsephp
下載三個庫,頭部引入 便可使用html
using AliIOTXFClient;
示例下載地址服務器
http://pan.whuanle.cn/index.php?dir=uploads/阿里雲IOT/demo示例網絡
本章使用示例 AliIOTXF.Onepost
打開地址 https://iot.console.aliyun.com/product阿里雲
節點類型選擇設備、非網關,由於是直接對接有網絡能力的設備。透傳須要寫 JS 解析腳本,Alink Json 使用方便、不易出錯,也更便於理解。ID² 提供了雙向身份認證能力,可是收費。spa
建立成功後記得 「 一鍵複製 」 ,而後存放到記事本等保存。(保不保存沒事,能夠到裏面複製)3d
附上阿里雲建立產品的文檔 https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11174283.6.553.3a8b1668QRyRs7日誌
建立後的設備code
隨意建立一個 .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 才能被訂閱。而且只有 .../user/... 的,屬於普通 Topic。這方面後面再說,看圖。
update、update/error、get 屬於默認的Topic。
咱們建立自定義的 Topic,點擊 對應的 「產品」--查看 Topic 類列表,「自定義Topic類」
添加兩個自定義的 Topic
多個 Topic string[] topic = { top1,top2.,,,, };
在鏈接服務器、收到 Topic、發佈 Topic、發佈屬性、服務調用等各個環節,都有相應的委託。
這裏使用默認的委託事件,後面慢慢如何自定義
// 使用默認的委託事件 client.UseDefaultEventHandler();
// 鏈接服務器 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 列表的 PubData,點擊 」發佈「,輸入任意字符(中文可能會亂碼),查看客戶端會不會收到內容。
注:只有權限爲訂閱的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 的教程就到這裏了