阿里云物联网平台体验(NetGadgeteer+C#篇)

简介: 目前对接阿里云物联网平台有多种软件和硬件,可以有多种不同语言来实现对接,比如c/c++,Java,JS,Python,C#等等,不过C#版本只有PC对接云平台的代码,嵌入式的目前还没有看到,所以本篇文章是基于STM32F429芯片,采用C#语言对接阿里云物联网平台高级版。

目前对接阿里云物联网平台有多种软件和硬件,可以有多种不同语言来实现对接,比如c/c++,Java,JS,Python,C#等等,不过C#版本只有PC对接云平台的代码,嵌入式的目前还没有看到,所以本篇文章是基于STM32F429芯片,采用C#语言对接阿里云物联网平台高级版。

下面是对接阿里云物联网平台的硬件,.Net Gadgeteer套件,有14个不同接口,可以对接近百种模块。 

f2ca02060cff22137fa19bb040679af7c51b542b 

我们今天选用的是温湿度模块,LED模块,USB模块和主板模块,如下图所示:

21df8fbfa58cb18a7fed7d1b57dba3ce9f1a780c

1、 USB Device模块插入2#接口

2、 DHT11模块插入14#接口

3、 LED模块插入12#接口

4、 以太网模块插入4#接口

第一步:我们需要在阿里云物联网平台创建一个产品及对应设备

和阿里云官方示例不一样的是,我们额外增加了一个属性LED,具备读写能力,枚举型变量,0-表示关灯,1-表示开灯

9ff0273b9f4e6dbe2f869286c5ec28ecbb0cc389

这个定义好后,我们创建设备,并且获取设备的三元组。

第二步: 基于官方MQTT的C#代码库M2Mqtt.NetMf42嵌入式版本,实现Alink协议。

(1)   上传数据到云端


byte[] bytData = new byte[4];

float T = 0;

float H = 0;

int ret = gs.IOControl((int)(6*16+11)); //PG11

if (ret != -1)

{

    bytData[0] = (byte)(ret & 0xFF);

    bytData[1] = (byte)(ret >> 8 & 0xFF);

    bytData[2] = (byte)(ret >> 16 & 0xFF);

    bytData[3] = (byte)(ret >> 24 & 0xFF);

 

    H = Byte2Float(bytData[0], bytData[1]);

    T = Byte2Float(bytData[2], bytData[3]);

    Debug.Print("H = " + H.ToString() + " T = " + T.ToString());

 

    string payload_json = "{" +

"\"id\": " + DateTime.Now.Ticks + "," +

"\"params\":{" +

    "\"temperature\":" + T + "," +

    "\"humidity\":" + H + "," +

"}," +

"\"method\":\"thing.event.property.post\"" +

"}";

    string Data = Guid.NewGuid().ToString();

    mqttClient.Publish(post_topic, Encoding.UTF8.GetBytes(payload_json), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false);

Debug.Print(payload_json);

}

读取模块的温度T,和湿度H,然后推送到物联网平台。

(2)   下发控制命令到设备

832ab4b9fc76c3a19ce10c78962e4d5891b7e382

云端单击“发送指令”,则设备的MqttMsgPublishReceived事件会接收到如下格式的数据:


{"method":"thing.service.property.set","id":"196011725","params":{"LED":1},"version":"1.0.0"}


声明LED对象后,我们就可以根据这个信息来开关LED灯(如下)


OutputPort led = new OutputPort((Cpu.Pin)(7*16+9),false);


然后在MqttMsgPublishReceived事件里做如下处理:


string json = "";

if (e.Message.Length > 0)

{

    //{"method":"thing.service.property.set","id":"196011725","params":{"LED":1},"version":"1.0.0"}

    json = new string(System.Text.UTF8Encoding.UTF8.GetChars(e.Message));

    Debug.Print("Message:" + json);

 

    string strLED  =json.Substring(json.IndexOf("LED")+5,1);

    led.Write((strLED == "1"));

}

第三步:运行代码

ba26a9cfb5ee133f187bd51c276245c865aa1ebb

运行后,打开阿里云物联网平台的网页,可以看到如下画面:

317cb2daf78ca00c125bc45a92d209cf0ba2cb4b

下发相关的指令,也会发现LED灯亮和灭。

 

本文相关的代码文件:yfalink.rar

 

 

阿里云物联网平台链接:https://dev.iot.aliyun.com/sale?source=deveco_partner_yefan


相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2月前
|
人工智能 监控 算法
AI英语App的分类
2026年AI英语App已升级为拟人化“数字私人教练”,深度融合ASR、LLM、TTS与多智能体技术。主流分为沉浸口语陪练、考试模拟、游戏化学习及自适应教练四类,依托语音-逻辑-语音闭环、RAG知识库与Agentic UI,实现音素级纠音、多口音切换与情境化交互。(239字)
|
存储 Kubernetes 负载均衡
基于青云LB搭建高可用的k8s集群。
本文是青云LB(负载均衡)与k8s实战(一)的详细篇,是在青云上,利用青云LB搭建高可用的k8s集群的过程中遇到的各种问题的梳理和总结。
862 1
|
1月前
|
弹性计算 人工智能 运维
阿里云轻量应用服务器2核4G价格:峰值200M带宽,50G ESSD云盘,9.9元1个月、199元1年
阿里云2026年推出2核4G、峰值带宽200M的轻量应用服务器,月付9.9元、年付199元,适合不同需求用户。该服务器预置OpenClaw等丰富镜像,支持快速部署AI对话机器人等应用。与云服务器ECS相比,轻量应用服务器具有快速交付、简化运维、成本优化等优势。此外,阿里云还提供99元/年、199元/年的长效特惠ECS,新老用户均可直接购买,且续费同价。用户可根据需求选择不同配置和价格的产品。
|
监控 供应链 数据挖掘
淘宝商品详情API接口解析与 Python 实战指南
淘宝商品详情API接口是淘宝开放平台提供的编程工具,支持开发者获取商品详细信息,包括基础属性、价格、库存、销售策略及卖家信息等。适用于电商数据分析、竞品分析与价格策略优化等场景。接口功能涵盖商品基础信息、详情描述、图片视频资源、SKU属性及评价统计的查询。通过构造请求URL和签名,可便捷调用数据。典型应用场景包括电商比价工具、商品数据分析平台、供应链管理及营销活动监控等,助力高效运营与决策。
501 26
|
6月前
|
JSON API 数据处理
淘宝天猫API调用指南:获取店铺所有商品数据
淘宝店铺商品API支持通过HTTP POST获取商品数据,返回JSON格式信息。核心接口包括店铺商品列表、分类及促销商品查询,以及商品详情、SKU、图片视频等信息获取,助力商家高效管理商品。
|
9月前
|
JSON 前端开发 JavaScript
如何开发一套EHS健康安全环境管理系统中的健康管理板块?(附架构图+流程图+代码参考)
本文深入探讨了企业EHS(环境、健康与安全)系统中的核心模块——健康管理。文章指出,企业健康管理不仅是合规要求,更是提升生产效率、降低事故率和用工成本的关键。通过构建系统化、数据化的健康管理模块,企业可以实现体检、档案、劳保用品管理、异常预警和统计看板的闭环管理。特别适用于中大型企业,文章提供了从系统架构设计、数据库建模、后端与前端实现到部署运维的完整解决方案,并附有可落地的代码示例和技术选型建议。此外,还涵盖了开发技巧、权限控制、数据隐私、接口设计等工程化实践,以及系统扩展和第三方集成的思路,为企业打造高效、合规、可持续优化的EHS健康管理体系提供了全面指导。
|
监控 网络协议 安全
SYN洪水攻击
【8月更文挑战第21天】
705 1
|
Web App开发 JavaScript 前端开发
ChatGPT与基于GUI的自动化测试
ChatGPT与基于GUI的自动化测试,chrome浏览器+ cypress +HTML代码需要主机名脚本语言和测试目标的URL。
305 10
|
小程序 JavaScript Java
就业|高校毕业生就业信息小程序|基于微信小程序的高校毕业生就业信息的设计与实现(源码+数据库+文档)
就业|高校毕业生就业信息小程序|基于微信小程序的高校毕业生就业信息的设计与实现(源码+数据库+文档)
551 2

相关产品

  • 物联网平台