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

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

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

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

2、 DHT11模块插入14#接口

3、 LED模块插入12#接口

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

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

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

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

第二步: 基于官方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)); //PG11if (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)   下发控制命令到设备

云端单击“发送指令”,则设备的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"));}

第三步:运行代码

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

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

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

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

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

  1. 阿里云物联网平台体验(树莓派+Python篇)

    阿里云物联网平台体验(树莓派+Python篇) 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了 ...

  2. 阿里云物联网平台python开发手册_阿里云物联网平台体验(树莓派+Python篇)

    虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作.但是同时也见证了阿里云物联网团队从几十人到数百人的迅速扩张,其物 ...

  3. 阿里云物联网平台体验(树莓派+Python篇) 1

    2018年12月04日 11:35:08 叶帆 阅读数:349 虽然对阿里云物联网平台比较熟悉了,从一开始就有幸参与了飞凤平台(Link Develop 一站式开发平台的前身)的一些偏硬件接入的工作. ...

  4. ESP32-C3入门教程 IoT篇⑥——阿里云 物联网平台 EspAliYun RGB LED 实战之设备批量生产工具

    阿里云物联网平台ESP32设备批量工具 文章目录 一.前言 二.软件框架 三.阿里云物联网平台API 3.1 查询设备 3.2 添加设备 四.二维码生成 五.csv生成 六.csv转bin 七.bin ...

  5. 【微信小程序控制硬件⑦ 进阶篇】巧借阿里云物联网平台的免费连接,从微信小程序颜色采集控制 esp8266 输出七彩灯效果,中秋节来个直播如何?!

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  6. Esp8266 进阶之路29【高级篇】百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接,支持阿里云规则引擎。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  7. 001-STM32+Air724UG(4G模组)基本控制篇(阿里云物联网平台)-使用MQTT接入阿里云物联网平台

    前言 这节测试下使用STM32+Air724UG 和 Android 和 微信小程序 和 网页端 接入阿里云物联网平台 当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备 这个设备就对应一个 ...

  8. ESP8266开发之旅 阿里云物联网平台篇① 了解阿里云物联网平台(纯理论,了解概念即可)

    文章目录 1. 前言 2.阿里云物联网官方文档 2.1 从这里开始--我是开发者 2.2 阿里云物联网平台简介 2.2.1 什么是物联网平台 2.2.2 产品架构 2.2.3 名词解释 2.2.3.1 ...

  9. 基于阿里云物联网平台,用20元体验物联网开发( 自制 Arduino 环境监测仪)——实践类

       硬件准备  今天我们在只有20元预算前提下,带领大家完成一次IoT物联网开发之旅! 感谢万能的淘宝,让我们能采购到esp8266开发板,dht11温湿度传感器:   架构方案 我们通过DHT11 ...

最新文章

  1. 关于 微软必应词典客户端(pc) 的案例分析
  2. USB转串口 FT232/PL2303/CH340 驱动以及使用体会
  3. windows上使用image库
  4. 如何查看jar包里的源码
  5. 安装flex碰到的一个问题及其解决方法(原创)
  6. Java 日期与时间
  7. 用html标签做单项选择题,网页设计师试题
  8. 轻松搞定RabbitMQ(四)——发布/订阅
  9. CodeForces - 788B Weird journey 欧拉路
  10. 法国西南华人华侨商会:进军区块链行业,促进技术创新项目落地
  11. python图片修改过、有原图、怎么得到改动的地方_python--修改证件照的大小
  12. 梯度下降算法动图_一文读懂梯度下降算法
  13. Excel 恢复默认行高、列宽
  14. 腾讯企业邮箱api java_腾讯企业邮全新API,五大新接口上线_腾讯企业邮箱服务中心...
  15. 如何禁用Windows更新
  16. python 修改pom文件_引用pom文件
  17. Linux·启动脚本·启动流程
  18. 通过地形图或者土地利用图的扫描形式制作数字化地图的主要步骤
  19. [推荐] 前端面试必备 ES6 全方位总结
  20. PYthon 转换HTML到Text纯文本

热门文章

  1. mysql 索引 数据页_数据库索引数据页
  2. Ubuntu硬盘的挂载(临时、永久挂载)
  3. CentOS7添加阿里云yum源
  4. Android移动应用基础教程【服务】
  5. 学习pytorch的一些自己犯过的错误而总结的注意事项,估计其他也会使用
  6. java语言实现任何一种排序_请用java语言编写排序程序。
  7. c#基础传智播客学习截图
  8. instanceof应用场景 instanceof一般用于对象类型强制转换
  9. 设计模式-软件设计七大原则
  10. 50行python代码自动生成文章_如何通过50行Python代码获取公众号全部文章