用c#实现编写esp32单片机获取DHT11温度传感器参数

欢迎爱好c#的爱好者,本文章我们将用C#的nanoframework框架来编写获取esp32单片机上的DHT11传感器的温度和湿度

实现我们需要准备配置好esp32的环境可以看看之前写的esp32搭建nanoframework框架开发环境

然后购买DHT11一个(某宝)几块钱的如图

 然后我们就可以开始开发了。

第一步创建nanoframework项目Demo

 

 点击NuGet

 搜索 nanoFramework.Iot.Device.Dhtxx.Esp32 并且安装到项目中

 

 

 

 安装的nanoFramework.Iot.Device.Dhtxx.Esp32的依赖nanoFramework.CoreLibrary版本需要一致必须一致复制一下代码块

using Iot.Device.DHTxx.Esp32;
using System.Diagnostics;

namespace DemoDHT11
{
    public class Program
    {
        public static void Main()
        {
            //12,24 代表针角
            using (Dht11 dht = new Dht11(12, 14))
            {
                var temperature = dht.Temperature;//获取温度
                var humidity = dht.Humidity;//获取湿度百分比
                if (dht.IsLastReadSuccessful)//是否获取成功
                {
                    Debug.WriteLine($"温度: {temperature.DegreesCelsius} \u00B0C, 湿度百分比: {humidity.Percent} %");
                }
                else
                {
                    Debug.WriteLine("读取DHT传感器错误");
                }
            }
        }
    }
}

接好排线如图所示:12和14是out(data)外接出俩条线

 

 选择设备并且运行程序

 运行结果:温度: 20.8 °C, 湿度百分比: 64 %

 谢谢喜欢c#编程的xd我希望越来越多的人喜欢c#甚至喜欢用c#写单片机编程

nanoFramework官网:

.NET nanoFramework | nanoFramework Documentation

nanoFrameworkGitHub:

.NET nanoFramework (github.com)

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用51单片机DHT11温度传感器进行交互时,以下是一个简单的启动程序示例: ```c #include <reg51.h> sbit DHT11_Data = P1^0; // 将DHT11的数据引脚连接到P1.0口 void delay_us(unsigned int us) { while (us--) { // 延时1微秒 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } void delay_ms(unsigned int ms) { while (ms--) { // 延时1毫秒 delay_us(1000); } } void DHT11_Start() { // 主机发送起始信号 DHT11_Data = 0; delay_ms(20); // 持续低电平至少18ms DHT11_Data = 1; delay_us(30); // 拉高总线20~40us,等待DHT11响应 } bit DHT11_Check_Response() { // 等待DHT11响应 unsigned int timeout = 10000; // 设置超时时间 while (!DHT11_Data && timeout--); // 等待DHT11拉低总线 timeout = 10000; while (DHT11_Data && timeout--); // 等待DHT11拉高总线 return timeout > 0; } unsigned char DHT11_Read_Byte() { unsigned char byte = 0; for (unsigned char i = 0; i < 8; i++) { // 读取一个字节,低位先行 while (!DHT11_Data); // 等待DHT11拉高总线,开始传输数据 delay_us(30); if (DHT11_Data) { byte |= (1 << (7 - i)); while (DHT11_Data); // 等待DHT11拉低总线,数据传输完成 } } return byte; } void DHT11_Read_Data(unsigned char* humidity, unsigned char* temperature) { DHT11_Start(); // 发送启动信号 if (!DHT11_Check_Response()) { // 未收到DHT11响应,数据读取失败 *humidity = 0; *temperature = 0; return; } // 读取湿度和温度数据 *humidity = DHT11_Read_Byte(); DHT11_Read_Byte(); // 舍弃掉小数部分 *temperature = DHT11_Read_Byte(); DHT11_Read_Byte(); // 舍弃掉小数部分 } void main() { unsigned char humidity, temperature; while (1) { DHT11_Read_Data(&humidity, &temperature); // 在这里可以对读取到的温度和湿度进行处理和显示 delay_ms(1000); // 延时1秒后再次读取 } } ``` 这个程序通过定义相应的延时函数和操作DHT11传感器的IO口,实现了从DHT11传感器读取温湿度数据的功能。你可以在`// 在这里可以对读取到的温度和湿度进行处理和显示`的位置对读取到的温度和湿度数据进行处理和显示。 请注意,该程序仅作为启动程序示例,你可能需要根据你的具体需求进行修改和优化。另外,确保你正确地连接了DHT11传感器的数据引脚到51单片机的对应IO口,并按照程序中定义的引脚进行设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值