.netcore跨平台物联网开发:连接阿里云iot(代码片段)

whuanle whuanle     2022-12-05     369

关键词:

系列教程目录

 (一) 连接阿里云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 =  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 的教程就到这里了

.netcore跨平台物联网开发:设置委托事件(代码片段)

系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四)  SDK文档属性、方法、委托、类 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/AliIOTXFclient-dll类库&response下载三个库 查看详情

.netcore跨平台物联网开发:sdk属性方法委托类(代码片段)

系列教程目录 (一) 连接阿里云IOT (二) 设置委托事件 (三) 上报属性 (四)  SDK文档属性、方法、委托、类 http://pan.whuanle.cn/index.php?dir=uploads/阿里云IOT/AliIOTXFclient-dll类库&response下载三个库 查看详情

.netcore/c#开发iot嵌入式设备的个人见解

 (.NETCore七龙珠)一、IOT平台的支持先看国内优秀的云计算IOT平台(不含QQ互联、小米IOT等针对特定产品的开发者平台,仅列出部分云计算厂商的IOT平台)阿里云IOThttps://iot.aliyun.com/华为物联网https://developer.huawei.com/ict/cn/site-iot-next... 查看详情

国内物联网平台初探——阿里云物联网套件

架构数据通道为设备和物联网应用程序提供发布和接收消息的安全通道。数据通道目前支持CCP协议和MQTT协议。用户可以基于CCP协议实现Pub/Sub异步通信,也可以使用远程调用(RPC)的通信模式实现设备端与云端的通信。用户也可... 查看详情

将androidthings与阿里云集成,轻松实现物联网项目

...示如何使用阿里云IoT平台轻松将AndroidThings连接到您的物联网(IoT)网络,我们将为该项目构造一个示例:功能性甲醛和温度传感器。有些人可能不了解AndroidThings,简单来说,它就是让开发者可以使用Android开发工具开发嵌入式设... 查看详情

.netcore/c#开发iot嵌入式设备的个人见解

原文:.NETCore/C#开发IOT嵌入式设备的个人见解 (.NETCore七龙珠)一、IOT平台的支持先看国内优秀的云计算IOT平台(不含QQ互联、小米IOT等针对特定产品的开发者平台,仅列出部分云计算厂商的IOT平台)阿里云IOThttps://iot.aliyun.com/华为... 查看详情

国内物联网平台初探:机智云iot物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台马智 平台定位机智云平台是致力于物联网、智能硬件云服务的开放平台。平台提供了从定义产品、设备端开发调试、应用开发、产测... 查看详情

linux设备如何接入阿里云iot平台

...作:注册阿里云账号,并完成实名认证。开通物联网平台。关于物联网平台介绍,参见物联网平台产品详情页。Ubuntux86_64开发环境(PC或服务器)。下载设备端 查看详情

最值得推荐的6个物联网开发平台

目录一、为什么物联网平台如此火热二、阿里云Iot三、腾讯云消费物联解决方案四、亚马逊AWSIoT五、微软AzureIot服务六、华为云IoT全栈云服务七、小米IoT开发者平台八、横向对比九、总结一、为什么物联网平台如此火热不知不觉&... 查看详情

阿里云iot云产品交流会:物联网痛点多,阿里能做啥?

参考技术A经历了互联网、移动互联网,人类正在迈入万物互联、万物智能的世界。5G、IoT、云计算、人工智能成为社会关注的对象,数字经济成为政策宣传的重点,各种概念和解释产生,使得当下有很多话题可以讨论。数字经济... 查看详情

国内物联网平台初探——机智云iot物联网云服务平台及智能硬件自助开发平台

平台定位机智云平台是致力于物联网、智能硬件云服务的开放平台。平台提供了从定义产品、设备端开发调试、应用开发、产测、运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力。机智云平台为开发者提供了自助... 查看详情

iot设备接入:阿里云物联网平台体验

节选自微信公众号: 6.设备端输出log 通过HTTPS认证接入,获取MQTT的用户名和密码  MQTT使用获取到的用户名和密钥接入  使用MQTT订阅和发布消息      查看详情

阿里云iot+yf330012.阿里云iotstudio入门介绍

    阿里云IoT Studio是针对物联网场景提供的生产力工具,可覆盖各个物联网行业核心应用场景,帮助您高效经济地完成设备、服务及应用开发。物联网开发服务提供了移动可视化开发、Web可视化开发、服务开发与设备... 查看详情

《serversuperiodesigneride使用教程》-6.增加与阿里云物联网(iot)对接服务,实现数据交互。发布:v4.2.4版本

v4.2.4更新内容:1.增加了对接阿里物联网平台的服务。下载地址:官方下载 6.增加与阿里云物联网(IOT)对接服务,实现数据交互 6.1   概述        为了满足业务系统数据上云的要... 查看详情

使用mqtt连接阿里云的物联网云平台(代码片段)

使用MQTT连接阿里云的物联网云平台(2)上一篇讲到在阿里云的物联网平台建立物理模型(即数据点),以及如何使用虚拟设备查看设备上线时上报的JSON格式和云平台下发的JSON格式,这点对于后面项目开发来说很重要。本篇将... 查看详情

阿里云iot+yf33008.物联网设备用户脚本开发

   除了我们必须熟悉的网页脚本,比如JavaScript。其实在工业自动化中,组态软件是必备脚本的,只是有的脚本语言风格类似C或类似Basic而已。比如昆仑通泰的组态屏中的组态软件。通过安装组态软件可以简单实现... 查看详情

国外物联网平台初探:exositemurano

国外物联网平台初探(五)——ExositeMurano马智?定位 Murano是一个基于云的IoT软件平台,提供安全、可扩展的基础设施,支持端到端的生态系统,帮助客户安全、可扩展地开发、部署和管理应用、服务以及联网产品。?功能Murano平... 查看详情

esp8266sdk开发:物联网篇-esp8266连接阿里云物联网平台,使用阿里云提供的自定义topic通信控制

     搜索物联网平台(如果没有开通自行开通)  创建产品                        注意:看看自己的这里是那个区域的,... 查看详情