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

    文章

    9

    浏览量

    7718
  • DHT11
    +关注

    关注

    19

    文章

    277

    浏览量

    59380
  • CW32
    +关注

    关注

    1

    文章

    281

    浏览量

    1686
  • 武汉芯源
    +关注

    关注

    1

    文章

    67

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于芯源CW32F030 MCU低功耗温湿度监测系统设计

    的项目。 系统概述 功能描述:实时监测环境温湿度,并通过串口输出结果。采用SHT30传感器进行数据采集。系统闲置时进入低功耗模式,延长电池寿命。 硬件组成: MCU:CW32F030 温湿
    发表于 12-03 06:20

    使用芯源CW32CW32L012开发评估做了spi屏幕驱动

    CW32生态社区以极高的性价比入手了这块CW32L012开发评估开发板以底板、核心、1.
    的头像 发表于 11-21 11:34 328次阅读
    使用芯源<b class='flag-5'>CW32</b>的<b class='flag-5'>CW</b>32L012<b class='flag-5'>开发</b>评估<b class='flag-5'>板</b>做了spi屏幕驱动

    CW32F030做温湿度采集,ADC读数跳变超过±3LSB正常吗?

    CW32F030做温湿度采集,ADC读数跳变超过±3LSB正常吗?已排除传感器问题,参考电压用LDO单独供电还是波动明显,是否需要外接精密基准源?
    发表于 11-20 07:47

    CW32 MCU用什么IDE开发

    推荐使用IAR Embedded Workbench for ARM、Keil μVision for ARM等IDE开发CW32 MCU应用,其中新版本IAR EWARM直接支持CW32 MCU,Keil MDK-ARM则需要
    发表于 11-12 07:52

    CW32生态社区开发板二三事儿

    目前已经有800多名小伙伴拿到体验到我们3款CW32L011相关的社区开发板我这里拿3款里面热度最高的口袋电源开发板CW32_PD_Pocket_Power 给大家汇报一下。
    的头像 发表于 10-14 17:01 479次阅读
    <b class='flag-5'>CW32</b>生态社区<b class='flag-5'>开发板</b>二三事儿

    【上海晶珩睿莓1开发板试用体验】Home Assistant 物联网温湿度

    【上海晶珩睿莓1开发板试用体验】Home Assistant 物联网温湿度计 本文介绍了上海晶珩睿莓 1 开发板通过 AHT10 传感器实现环境温湿度
    发表于 08-18 13:55

    智能仓储:温湿度监控方案应用

    随着仓储环境要求提高,温湿度监控对保障货物品质至关重要。本文介绍一个工厂仓库温湿度监控方案,利用温湿度变送器、LoRa技术和智能监测平台,为仓库业主提供高效、可靠的监测解决方案。仓库温湿度
    的头像 发表于 05-29 11:35 604次阅读
    智能仓储:<b class='flag-5'>温湿度</b>监控方案应用

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

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

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

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

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

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

    制药车间温湿度数据采集监控管理方案

    在制药生产过程中,温湿度对药品质量起着关键作用。不稳定的温湿度环境可能导致药品原料变质、药品制剂的稳定性下降,甚至影响药品的疗效和安全性。因此,构建一套精准、可靠的温湿度数据采集监控管理方案,对制药
    的头像 发表于 03-25 14:08 776次阅读
    制药车间<b class='flag-5'>温湿度数据采集</b>监控管理方案

    工厂温湿度监控系统

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

    库房温湿度监测系统

    不可或缺的一部分,对于保障货物安全、维护存储品质具有重要意义。 组成与运行 库房温湿度监测系统是一种专门用于仓库环境温湿度监测的系统,结合传感器、数字通信、物联网、自动化控制等技术,通过集成传感器、数据采集
    的头像 发表于 01-06 16:37 941次阅读

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

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

    医药仓库温湿度监控系统应用

    。 医药仓库温湿度监控系统,结合物联网、无线通讯等技术,通过传感器全天候实时采集仓库内的温湿度数据,管理云平台对接收到的数据进行深入分析、处理,并以图表、曲线等形式直观展示温湿度变化趋
    的头像 发表于 12-17 16:16 1052次阅读