0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32饭盒派开发板温湿度采集

华仔的编程随笔 ? 来源:华仔的编程随笔 ? 作者:华仔的编程随笔 ? 2023-05-26 19:20 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

实验器材

  1. CW32饭盒派开发板
  2. DHT11温湿度传感器

接线

开发板 DHT11
VCC +
GND GND
PB1 OUT

程序

  1. dht11.c
#include "dht11.h"

	
//复位DHT11
void DHT11_Rst(void)	   
{                 
		PB01_DIR_OUTPUT(); 	//PB12配置成输出
		PB01_SETLOW(); 	    //拉低DQ
	  delay1ms(20);
		PB01_SETHIGH(); 	  //DQ=1 
	  delay10us(3);
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
uint8_t DHT11_Check(void) 	   
{   
	uint8_t retry=0;
  PB01_DIR_INPUT();  //PB12配置成输入
  while (PB01_GETVALUE()&&retry<10)//DHT11会拉低40~80us
	{
		retry++;
		delay10us(1);
	};	 
	
	if(retry>=10)return 1;
	else retry=0;
  while (!PB01_GETVALUE()&&retry<10)//DHT11拉低后会再次拉高40~80us
	{
		retry++;
		delay10us(1);
	};

	if(retry>=10)return 1;	    
	return 0;
}
//从DHT11读取一个位
//返回值:1/0
uint8_t DHT11_Read_Bit(void) 			 
{
 	uint8_t retry=0;
	while(PB01_GETVALUE()&&retry<10)//等待变为低电平
	{
		retry++;
		delay10us(1);
	}
	retry=0;
	while(!PB01_GETVALUE()&&retry<10)//等待变高电平
	{
		retry++;
		delay10us(1);
	}
	delay10us(4);//等待40us
	if(PB01_GETVALUE())return 1;
	else return 0;		   
}
//从DHT11读取一个字节
//返回值:读到的数据
uint8_t DHT11_Read_Byte(void)    
{        
    uint8_t i,dat;
    dat=0;
	for (i=0;i<8;i++) 
	{
   		dat<<=1; 
	    dat|=DHT11_Read_Bit();
    }						    
    return dat;
}
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
uint8_t DHT11_Read_Data(float *temp,uint8_t *humi)    
{        
// 	uint8_t buf[5];
	char buf[5];
	uint8_t i;
	DHT11_Rst();
	if(DHT11_Check()==0)
	{
		for(i=0;i<5;i++)//读取40位数据
		{
			buf[i]=DHT11_Read_Byte();
		}
		if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
		{
			*humi=buf[0];
			*temp=buf[2];
		}
	}else return 1;
	return 0;	    
}
//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在    	 

uint8_t DHT11_GPIO_Config ( void )
{		
	GPIO_InitTypeDef GPIO_InitStruct;
	
	__RCC_GPIOB_CLK_ENABLE();

  GPIO_InitStruct.IT = GPIO_IT_NONE; 
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pins = GPIO_PIN_1;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOB, &GPIO_InitStruct);
	
	DHT11_Rst();  //复位DHT11
	return DHT11_Check();//等待DHT11的回应
}

dht11.h

#ifndef __DHT11_H
#define __DHT11_H 
#include "main.h"
 

uint8_t DHT11_Init(void);//初始化DHT11
uint8_t DHT11_Read_Data(float *temp,uint8_t *humi);  
uint8_t DHT11_Read_Byte(void);//读出一个字节
uint8_t DHT11_Read_Bit(void);//读出一个位
uint8_t DHT11_Check(void);//检测是否存在DHT11
void DHT11_Rst(void);//复位DHT11   
uint8_t DHT11_GPIO_Config ( void );
#endif

接好线后,把程序下载到开发板,然后重启效果如下:

image.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 温湿度采集
    +关注

    关注

    0

    文章

    8

    浏览量

    7658
  • DHT11
    +关注

    关注

    19

    文章

    277

    浏览量

    58559
  • CW32
    +关注

    关注

    1

    文章

    256

    浏览量

    1292
  • 武汉芯源
    +关注

    关注

    1

    文章

    67

    浏览量

    489
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用树莓RP2350 DIY 桌面动态温湿度

    桌面动态温湿度计本文介绍了DFrobotBeetleRP2350开发板结合DHT11模块、锂电池模块、随机眨眼动画,实现OLED显示的桌面动态温湿度计的项目设计。一、项目介绍本项目包括工作原理:ADC电压
    的头像 发表于 05-27 08:05 ?246次阅读
    用树莓<b class='flag-5'>派</b>RP2350 DIY 桌面动态<b class='flag-5'>温湿度</b>计

    LoRa无线技术的温湿度监测预警系统

    LoRa无线技术的温湿度监测预警系统采用LoRa采集器和LoRa网关实现监控区域内的全覆盖,同时在仓储区各个数据采集节点安装温湿度传感器,实现对监测区域的
    的头像 发表于 05-14 16:06 ?311次阅读
    LoRa无线技术的<b class='flag-5'>温湿度</b>监测预警系统

    【道生物联TKB-620开发板试用】采集温湿度上报

    【前言】 我提交的计划为冷链监控系统,因此采集温湿度是首要步骤。这篇将分享如何采集sht30并实现手动上报数据,在接收端打印出接收到的数据。 【硬件】 1、TKB-620开发板*2 2
    发表于 04-18 15:06

    工厂温湿度监控系统

    与智能调控,旨在为工业领域提供一套全面、高效的温湿度管理解决方案。 工厂温湿度监控系统,结合工业生产环境的特殊性,在生产车间、仓库、实验室等关键区域部署传感器,实时采集工厂各区域的温湿度
    的头像 发表于 02-25 17:11 ?538次阅读

    远程温湿度实时监测系统应用方案

    通信、云计算、大数据分析等技术。传感器作为系统的“眼睛”,负责实时采集环境中的温湿度数据。通过Wi-Fi、蓝牙、LoRa、NB-IoT等通讯方式,将传感器采集的数据传输至云端服务器。云平台负责接收、存储和处理传感器传输的数据。
    的头像 发表于 01-02 17:03 ?668次阅读

    XKCON祥控仓库存储环境温湿度在线监测系统能够取代人工巡检,实现远程仓库存储环境温湿度变化的实时

    仓库作为储物的场所,其环境温湿度会随着季节更替而发生变化,这种变化会对存储物品的质量与安全产生较大的影响。因此,仓库的温湿度数据就成为仓储安全监管的一个重要的指标。 济南祥控自动化设备有限公司开发
    的头像 发表于 11-20 11:20 ?595次阅读
    XKCON祥控仓库存储环境<b class='flag-5'>温湿度</b>在线监测系统能够取代人工巡检,实现远程仓库存储环境<b class='flag-5'>温湿度</b>变化的实时

    CW32模块使用 SHT30温湿度传感器

    资料文件 三、移植过程 我们的目标是将例程移植至CW32F030C8T6开发板上【测量温湿度的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。 3.1查看资
    的头像 发表于 11-14 17:39 ?649次阅读
    <b class='flag-5'>CW32</b>模块使用 SHT30<b class='flag-5'>温湿度</b>传感器

    基于CW32模块的SHT30温湿度传感器设计

    我们的目标是将例程移植至CW32F030C8T6开发板上【测量温湿度的功能】。首先要获取资料,查看数据手册应如何实现读取数据,再移植至我们的工程。
    的头像 发表于 11-12 11:14 ?955次阅读
    基于<b class='flag-5'>CW32</b>模块的SHT30<b class='flag-5'>温湿度</b>传感器设计

    LORA无线温湿度监测系统

    仓储、农业、机房等多种应用场景,提供高效、可靠的解决方案。 部分组成 LORA温湿度传感器:作为系统的前端采集设备,实时捕捉环境中的温湿度数据。LORA温湿度传感器的传输距离远,视距可
    的头像 发表于 11-07 16:57 ?877次阅读

    温湿度控制器的功能和应用

    温湿度控制器在电阻柜中的应用主要涉及以下几个方面: 温湿度控制器的功能 检测与控制:温湿度控制器可以同时检测和控制环境中的温度和湿度。它通常由传感器、控制器和加热器三部分组成。传感器负
    的头像 发表于 11-07 15:08 ?853次阅读

    关于Air780E:使用文件系统存储温湿度数据怎么操作?

    的使用-程序源码demo 780E开发板和DHT11 合宙的TCP/UDP测试服务器 API使用介绍 ? 1.2 程序解析 (1):首先采集温湿度数据 --采集
    的头像 发表于 10-31 07:26 ?632次阅读
    关于Air780E:使用文件系统存储<b class='flag-5'>温湿度</b>数据怎么操作?

    低功耗4G模组Air780E快速入门:使用文件系统存储温湿度数据

    LuatOS-Air780E-文件系统的使用-程序源码demo 合宙的TCP/UDP测试服务器 API使用介绍 780E开发板和DHT11 ? 1.2 程序详解 第一步:首先采集温湿度数据 --
    的头像 发表于 10-19 21:34 ?834次阅读
    低功耗4G模组Air780E快速入门:使用文件系统存储<b class='flag-5'>温湿度</b>数据

    Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集

    Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集
    的头像 发表于 10-08 11:46 ?1203次阅读
    Arduino Nano 和 DHT11 实现 LabVIEW <b class='flag-5'>温湿度</b><b class='flag-5'>采集</b>

    CW32模块使用 DHT11温湿度传感器

    DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。其成本低、长期稳定、可以测量相对湿度和温度测量,并可以只使用一根数据线进行温湿度
    的头像 发表于 09-09 18:21 ?1799次阅读
    <b class='flag-5'>CW32</b>模块使用 DHT11<b class='flag-5'>温湿度</b>传感器

    温湿度监测解决方案

    。对于维护环境稳定、保障生产安全、提升生活质量具有重要意义。 温湿度监测解决方案,融入物联网、无线通讯等技术,通过温湿度传感器、智能采集器等感知设备,实时采集环境中的温度和
    的头像 发表于 09-04 17:16 ?828次阅读