C# NanoFramework使用ESP32开发超声波测距传感器 HC-SR04

  • 前言
  • 一.ESP32刷机
    • 1.环境准备
    • 2.刷机
  • 二.NanoFramework安装
    • 1.安装NanoFreamwork VS 扩展安装
  • 三.超声波测距模块开发
    • 1.创建NanoFreamwork 项目
    • 2.安装相关NanoFreamwork 开发包
    • 3.超声波测距模块代码及调试
  • 常见问题解决办法

前言

最近自己开始研究ESP32,本身是对c#比较熟悉就在网上找了关于c#开发开发esp32的框架,最后选择了NanoFramework框架.具体支持的功能和详细资料可以参考github上NanoFramework的项目

一.ESP32刷机

1.环境准备

  • 安装好VisualStudio2019或者VisualStudio2022.我这边用的VisualStudio2022.
    具体安装步骤这里忽略

  • 本机的dotnet 环境安装好.
    具体安装步骤这里忽略

2.刷机

  • 1.将esp32使用数据线连接到电脑上.
  • 2.打开电脑设备管理器,查看端口设备.

    这边显示是COM3的端口,如果没有看到对应的端口设备,可能是数据线坏了,也可能是esp32的驱动没装,我这边用的esp32的驱动是CH340的.
  • 3.安装刷机工具Nanoff
dotnet tool install -g nanoff
  • 4.执行刷机命令
nanoff --serialport COM3 --target ESP32_PSRAM_REV0 --update

对应的COM3需要换成你自己的电脑上的端口号
正常刷完后就行是这样

二.NanoFramework安装

1.安装NanoFreamwork VS 扩展安装

打开VS,选择继续但无需代码

点击扩展,选择管理扩展.

点击联机,搜索nano,选择.Net 哪弄Framework Extension 点击下载.下载完后点击下一步安装就OK.安装完成后需要关闭VS.
如果下载的太慢或者无法下载,可以在VS扩展网站下载该插件

三.超声波测距模块开发

1.创建NanoFreamwork 项目

  • VS关闭后从新打开>选择创建新项目> 搜索nano> 选择 Blank Application(空白的应用) > 点击下一步 > 输入项目名字> 点击创建




    打开设备管理
  • 点击视图>其他窗口>Device Explorer


(1). ping 设备,点击后 VS 输出里会有以下的信息
(2). 设备信息收集
(3). 擦除应用部署区域(移除项目应用)
(4). 网络信息编辑和设置
(5). 重启设备
(6). 启动或者关闭设备监听(就是监听设备是否存在)
(7). 重新搜寻设备信息
(8). 输出内部错误(VS输出里看到)
(9). 设置信息
连接不上的处理
如果不正常那就是刷机(固件)有问题,请重新刷一下,然后,重启一下单片机,试试,应该就好了。

2.安装相关NanoFreamwork 开发包

NanoFreamwork 相关的开发都可以在Nuget中安装,包括用的的GPIO,串口,各种传感器,蓝牙,wifi,server等,目前这里只安装需要的超声波测距模块HC-SR04的开发包.

  • 点击工具>Nuget包管理器>管理解决方案的Nuget程序包.

    更新nanoFramework.CoreLibrary

在步骤一种刷机使用的固件默认是最新版本的,但是在新建项目中使用的核心组件库不一定是最新版本的,这里需要保持刷机的固件和项目中的nanoFramework.CoreLibrary保持版号一致,否则会在运行的时候报错

  • 搜索nanoFramework.CoreLibrary > 选择nanoFramework.CoreLibrary > 勾选对应的解决方案 > 选择最新的版本 > 点击安装

安装nanoFramework.Iot.Device.Hcsr04.Esp32

这个是开发超声波测距传感器需要用的组件包

  • 搜索nanoFramework.Iot.Device.Hcsr04.Esp32 > 选择nanoFramework.Iot.Device.Hcsr04.Esp32> 勾选对应的解决方案 > 选择最新的版本 > 点击安装

3.超声波测距模块代码及调试

对于nanoFramework支持的各种传感器可以在github上的nanoFramework.IoT.Device中找到对应的代码示例.
下面用超声波测距传感器HC-SR04为例,对应的github上的README.md

这里对应ESP32上我使用的gpio口是17和16. trig用的是17,echo用的是16

using System;
using System.Diagnostics;
using System.Threading;
using Iot.Device.Hcsr04.Esp32;
using UnitsNet;
namespace NanoFreamworkDemo
{public class Program{public static void Main(){using (var sonar = new Hcsr04(17, 16)){while (true){if (sonar.TryGetDistance(out Length distance)){Debug.WriteLine($"Distance: {distance.Centimeters} cm");}else{Debug.WriteLine("Error reading sensor");}Thread.Sleep(1000);}}}}
}
  • 点击运行按键,就会开始将代码烧录到esp32中了.
  • 正常情况就看到下面出现测距传感器的输出.

常见问题解决办法

提示版本不对
更新组件库

烧录没有反应
esp32重启一下,可以直接拔插数据线,也可以通过VS中的Device Explorer点击reboot.

C# NanoFramework使用ESP32开发超声波距离传感器(HC-SR04)相关推荐

  1. hc sr04流程图_超声波传感器HC-SR04完整应用以及程序讲解

    带有Arduino的超声波传感器HC-SR04完整应用指南 本文是有关流行的超声波传感器HC – SR04的应用指南.我们将解释其工作原理,向您展示其某些功能,并分享一个您可以遵循的Arduino项目 ...

  2. 【Homeassistant 与Ultrasonic Distance超声波距离传感器握手】

    [Homeassistant 与Ultrasonic Distance超声波距离传感器握手] 1. 前言 1.1 超声波距离传感器 1.2 接线 2. 配置例程 2.1 配置变量: 2.2 高级选项: ...

  3. ESP32开发之旅——AS608指纹识别模块

    ESP32开发之旅--AS608指纹识别模块) 前言 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块. 需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时 ...

  4. esp32摄像显示时间_TinyPICO-比拇指还小的ESP32开发板- 国外创客众筹发现第二期

    国外创客开发板创新日新月异 我们想尝鲜体验却十分苦难 一片板卡从海外跋山涉水到我们手中 遇到各种各样的问题 海外组团开始啦!~ 本次我们从国外开发板众筹网站crowdsupply 挑选一款体积较小/功 ...

  5. ESP32开发板 V1.0.0 Rev1 wifi 蓝牙4MB FLASH MicroPython

    简 介: 本文给出了对于ESP32开发板下载相关的MicroPython,使用Thony编程环境完成对于ESP32开发板的一些基础实验.详细的实验命令解释可以结合MicroPython的官方网站. 关 ...

  6. ESP32开发 -- 试玩ESP32

    前文要测试网络调试助手,手头正好有个ESP32一直没有试过.这次正好拿来试玩一下. 一.ESP32官网查看 官网:ESP32官网 这款最小系统开发板搭载了乐鑫最新的系统级芯片 ESP32, 支持 Wi ...

  7. Arduino IDE 如何添加 ESP32 开发板?

    Arduino IDE 如何添加 ESP32 开发板 arduino-esp32 使用引导 Installation instructions using Arduino IDE Boards Man ...

  8. 启明云端带你一起撸ESP32开发板,玩转语音、彩屏

    AI语音赋予ESP32开发板灵魂,彩屏赋予了视觉色彩,有了这两样,人机交互就真正可以落地到应用. 以小家电为例,目前大多小家电看起来是带有屏幕,但显示内容非常的单一和千篇一律.这些产品没有特别的亮点和 ...

  9. ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)

    Vscode安装 ubuntu软件中自带vscode的安装包,一键完成,不废话,没有的想办法解决. 编译链操作 下载 官方最新地址 有系统区别,下载对应的压缩到到电脑 · for 64-bit Lin ...

最新文章

  1. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
  2. cocoahttpserver 载入本地html,利用CocoaHttpServer搭建手机本地服务器
  3. 第二十次CCF计算机软件能力认证总结
  4. 实战|Python轻松实现动态网页爬虫(附详细源码)
  5. Linux IO - 同步,异步,阻塞,非阻塞
  6. java中的基本数据类型的取值范围分别是多少?
  7. PL-VIO论文阅读
  8. 谷歌巴基斯坦_巴基斯坦的免费文化活动
  9. 华为Mate 30系列发布会定档:年度机皇 天生优秀!
  10. 在VMware安装Ubuntu后一直停留在VMware Easy Install
  11. java核心技术卷1基础知识整理
  12. [数据库课程设计]基于Sql Server的教室信息管理系统(附部分源码)
  13. lvds传输距离标准_lvds接口标准
  14. 应届毕业生怎么快速找到高薪工作?
  15. 美化 PowerShell
  16. 悦诗风吟网络营销的目标_悦诗风吟七彩泥膜术线上推广方案
  17. 生鲜配送分拣管理系统哪家比较强?
  18. 写正则好用的测试工具
  19. 三个等于号===与两个等于号==
  20. Dynamips和Vmware完成CCVP试验(7)

热门文章

  1. 用pry阅读ruby源码--以task方法为例
  2. 验证码加减乘PHP,ThinkPHP 3.2.3实现加减乘除图片验证码
  3. eprime提示计算机内存不足,请各位前辈看看这是否是内存不足的原因导致出错 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  4. [转] 适合儿童上手的八款编程工具
  5. 网页数据压缩(python deflate gzip),解压缩
  6. 牵手国网电动,蔚来换电站坐上“快车“?
  7. 华为荣耀禁用软件更新
  8. 下面linux程序中哪一个是调试器,【编程】noi2009笔试复习题(1)
  9. 脑机接口应用和P300拼写器概述
  10. 中小型企业选择云计算服务模型,需要慎重啊