.NET Core 跨平臺物聯網開發:鏈接阿里雲IOT(一)

系列教程目錄

 (一) 鏈接阿里雲IOT

 (二) 設置委託事件

 (三) 上報屬性

 (四)  SDK文檔 屬性、方法、委託、類

 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

二,阿里雲 IOT 建立產品設備 

打開地址 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

須要具備 「訂閱」 權限的 Topic 才能被訂閱。而且只有 .../user/... 的,屬於普通 Topic。這方面後面再說,看圖。

update、update/error、get 屬於默認的Topic。

 

 咱們建立自定義的 Topic,點擊 對應的 「產品」--查看 Topic 類列表,「自定義Topic類」

添加兩個自定義的 Topic

 

 在項目代碼中

            // 要訂閱的Topic
            string[] topic = { client.CombineHeadTopic("PubData") };

 要訂閱多個Topic,在裏面添加便可。client.CombineHeadTopic() 方法能夠根據Topic名稱幫助生成完整的Topic。

固然,你也能夠直接

string[] topic = { "/a1BiPoNawLI/${deviceName}/user/PubData" };

多個 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 的教程就到這裏了

相關文章
相關標籤/搜索