.NET Core 跨平台物联网开发:连接阿里云IOT(一)

简介: .NET Core 跨平台物联网开发:连接阿里云IOT(一)

系列教程目录


(一) 连接阿里云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² 提供了双向身份认证能力,但是收费。

微信图片_20220501203500.png


创建设备

创建成功后记得 “ 一键复制 ” ,然后存放到记事本等保存。(保不保存没事,可以到里面复制)

微信图片_20220501203508.png

 

附上阿里云创建产品的文档 https://help.aliyun.com/document_detail/73705.html?spm=a2c4g.11174283.6.553.3a8b1668QRyRs7

创建后的设备

微信图片_20220501203515.png

 

三,创建项目,连接阿里云


随意创建一个 .NET Core 项目,引入三个 Dll,记得选择复制到本地。

微信图片_20220501203600.png

 

头部引入

using AliIOTXFClient;

微信图片_20220501203608.png

创建连接客户端

把一键复制的内容或到控制台--具体设备中,复制 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。

微信图片_20220501203801.png

 

我们创建自定义的 Topic,点击 对应的 “产品”--查看 Topic 类列表,“自定义Topic类”

添加两个自定义的 Topic

微信图片_20220501203807.png

微信图片_20220501203814.png

在项目代码中

// 要订阅的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


运行程序后,打开控制台--设备列表,会发现

微信图片_20220501204039.png

 

发送 Topic

打开设备,找到 Topic 列表的 PubData,点击 ”发布“,输入任意字符(中文可能会乱码),查看客户端会不会收到内容。

注:只有权限为订阅的Topic,能够向设备下发数据。


设备中,只有设置订阅该 Topic,在控制台发布消息时,才能收到此 Topic。在控制台多找几个Topic,试试发布一下就知道了。

微信图片_20220501204044.gif

 

发布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();

运行程序,随意输入内容。在控制台知道日志服务,查看设备的上行消息分析

微信图片_20220501204051.png

IOT控制台中暂时没法查看到上传的消息内容。

使用了默认的委托方法,可以在控制台中复制文字,使用Json格数化看看结果。

简单使用 SDK 的教程就到这里了

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
3月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
324 6
|
8月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
2761 42
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
338 5
|
9月前
|
人工智能 IDE 开发工具
JetBrains Rider 2025.1 发布 - 快速且强大的跨平台 .NET IDE
JetBrains Rider 2025.1 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDE
657 29
JetBrains Rider 2025.1 发布 - 快速且强大的跨平台 .NET IDE
|
11月前
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
12月前
|
C# Android开发 iOS开发
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
560 23
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
300 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
304 1
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
371 3

相关产品

  • 物联网平台