使用C#编写STM32对接物联网平台IoTSharp发送遥测数据

在之前的文章中,  我们阐述了如何用C#在STM32上写第一个Hello world  , 有朋友抱怨国内介绍文章, 都是一个 Hello world , 然后再也没有音讯, 写到这里我想提一下我的初心, 那就是告诉所有人C#无所不能, C#可以写单片机, 也可以写Web应用, 也可以写移动应用, 也可以写桌面应用, 又有人提到 nanoFramework 的性能问题, 这点我认为跟MicroPython 等解释型STM32应用一致的, 跟C写的 代码我认为是无法匹敌的!工作中长期使用C来写应用, 这点是公认也是非常有感触的。 那么今天我再介绍一下如何使用 nanoFramework 在STM32下面对接物联网平台IoTSharp !

一、选用开发板

这次我们选择了开发板 ST NUCLEO-F746ZG 

NUCLEO-F746ZG 是ST公司推出的一款针对STM32F7系列设计的Cortex-M7 Nucleo-144开发板,支持mbed,兼容Arduino、还带有ST Zio和 ST Morpho 扩展接口,可连接微控制器的所有周边外设。

开发板基于STM32F746ZGT6设计,开发板还集成了ST-LINK/V2-1仿真下载器(但仅对外提供SWD接口),免除您另外采购仿真器或下载器的麻烦。并且具备Arduino接口,可接入 Arduino 巨大生态系统的各种 Shield 扩展板,让您能够轻松快速增加特殊功能。

之所以选择NUCLEO-F746ZG 是因为 他具有网口, 用C#在STM32上写第一个Hello world  文章中选择的开发板不具有网络功能。 

二、创建应用:

如果看过用C#在STM32上写第一个Hello world  这篇文章, 我们就不必再阐述如何创建项目了, 具体demo 我已经提交到了 https://github.com/IoTSharp/IoTSharp.Edge.nanoFramework , 项目中需要引用到 nanoFramework.M2Mqtt , 我们通过他来连接 IoTSharp的 Mqtt Broker , 首先, 启动IoTSharp 项目 https://github.com/IoTSharp/IoTSharp ,  启动项目https://github.com/IoTSharp/Cicada  , 这里如果有所有问题, 可以到相关项目里面提问, 这里不再阐述, 我们首先在Cicada 中创建一个设备

, 复制粘贴 Token , 

在项目  oTSharp.Edge.nanoFramework 的 Program.cs 中 修改 

private const string _token = "581e918118a34c9faf2b9ede8245be33";//修改合理为Tokenprivate const string   BrokerAddress = "192.168.0.23";//启动IoTSharp的IP地址

三、连接并部署项目至ST NUCLEO-F746ZG 

由于ST NUCLEO-F746ZG 跟之前文章不同 , 一个Micro USB线 即能跟ST-LINK连接, 又支持串口, 还能识别出来存储, 因此一根线搞定一切, 也不需要弄乌七八糟的杜邦线之类的, 因此简单很多。 按照用C#在STM32上写第一个Hello world  的方法, 我们依然需要下载他的  https://bintray.com/nfbot/nanoframework-images-community-targets/ST_NUCLEO144_F746ZG/_latestVersion   解压后, 烧写, 然后VS中Device Explorer 中就可以看到设备, 如下图:

点击VS中的启动, 来启动调试项目

启动后, 你可以看到我们的应用已经启动了, 如下图所示:

, 通过IoTSharp的客户端可以看到上传的遥测数据和客户端属性数据:

关于rpc和属性更新, 我们会在基于此项目基础上进行进一步完善。 

如果有任何相关问题, 大家可以在相关项目提Issuse 或者加入QQ群: 63631741 , 共同学习, 共同进步。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaMVC之JSON

JSON 8.1、什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写…

龙芯团队完成CoreCLR MIPS64移植,在github开源

国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为了自己的利益打压使用.NET技术的公司,我今天写…

来谈一谈专注力的真相

这是头哥侃码的第205篇原创在日常生活(或工作)中,你有没有遇上过这样的情况?比如你正在跟小伙伴讨论一个技术方案,聊着聊着,突然小A脑袋一抽筋,问你:“老大,咱们这周五晚…

Java访问控制修饰符

访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。 Java 支持 4 种不同的访问权限。 default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。 使用对象:类、接口、变量…

数据结构与算法专题——第三题 最长公共子序列

一:作用最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功。二:概念举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个&#x…

Java实现两个递增有序链表合并成一个递增有序链表和两个非递减有序链表合成一个非递增有序链表

代码如下: package sjjgniub;import java.util.LinkedList; import java.util.Scanner;SuppressWarnings("all") public class LinkList {private class Node{int data;Node next;public Node(){}public Node(int data){this.data data;next null;}}Node head nu…

职场PUA到底有多可怕?

阅读本文大概需要 5.2分钟。“小张,好好干啊,明年一定给你加薪!” 。从小张入职这家公司起,这是老板对小张第三次这么说了。小张每天干到晚上12点,任劳任怨,虽然一直没涨过工资,但是老板的不断认…

数据结构与算法专题——第二题 优先队列

前段时间玩小爬虫的时候,我把url都是放在内存队列里面,有时我们在抓取url的时候,通过LCS之类的相似度比较,发现某些url是很重要的,需要后端解析服务器优先处理,针对这种优先级比较大的url,普通的…

数据结构与算法专题——第一题 Bitmap算法

在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在定位查找场景上具有O(1)的常量时间,多么的简洁优美,但是在特定的场合下:①:对10亿个不重复的整数进行排序。②&#xff1…

Telegraf和Grafana监控多平台上的SQL Server

问题SQL Server在很多企业中部署在多个平台上(Windows,Linux和Container),需要一种能支持多平台的解决方案用于收集和展示相关的监控指标。我选择企业中比较流行的监控展示工具Grafana和监控指标收集工具Telegraf进行实现。这也是为了方便与企业中已经在存在监控平台…

酸吗?28岁程序员财务自由宣布退休!

财务自由是我们这代人的共同追求,有程序员28岁就做到了。近期的一条新闻就直接刷屏了,28岁今日头条程序员手握上亿期权宣布退休,引发一片羡慕嫉妒恨。履历如下:2008-2012就读于暨南大学政治与行政管理专业,自学编程。2…

nuget 是如何还原包的

nuget 是如何还原包的Intro一直以来从来都只是简单的用 nuget 包,最近想折腾一个东西,需要自己搞一个 nuget 包的解析,用户指定 nuget 包的名称和版本,然后去解析对应的 nuget 包并添加引用到项目, 于是就想搞明白 nug…

使用Azure AD B2C为ASP.NET Core 设置登录/注册

一,引言上次关于Azure AD B2C 讲到一些概念,有介绍到,Azure AD B2C 也是一种身份验证的解决方案,但是它运行客户使用其首选的社交,企业或者本地账户标识对应用程序和API进行单一登录访问。同样,Azure AD B2…

使用 Azure Function 定时启动云 VM

点击上方蓝字关注“汪宇杰博客”导语微软 Azure 平台的 VM 可以做到定时自动关机,然而只有 DevTest Lab 服务中的 VM 能够定时开机,普通用途的 VM 还没有上线这个功能。但是没关系,我们可以曲线救国,通过最新版的 Azure Function …

文章目录 | .NET Core on K8s学习之旅 (更新至20200618)

.NET Core on K8s学习之旅更新记录:-- 20200511 增加Ingress & Nginx Ingress介绍-- 20200515 增加Ocelot API网关集成示例介绍-- 20200525 增加Ingress实现灰度发布示例介绍1关于这个系列文章自从2018年底离开工作了3年的M公司加入X公司之后,开始了…

【Blog.Core重要升级】:封装服务扩展层

昨天有群里小伙伴咨询了一个问题:关于如何在Blog.Core项目中,实现多资源终端的问题,比如这样:一个AdminMvc的管理后台(MVC项目),一个WebApi项目,一个ConsoleApp的控制台项目&#xf…

如何激发团队潜能?

每个技术人员最终可能都会走上管理岗位,从最初的开发 Leader、到部门负责人、甚至到 CTO,这每一个角色的转变,都需要付出巨大的努力去进行思维的转变。最近读的《授权》这本书可以让我们更好地胜任管理这个岗位。本书的作者马凯特是一名海军军官&#xf…