Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 378|回复: 0

2.09-外设篇-温湿度传感器-DHT11

[复制链接]

56

主题

56

帖子

224

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
224
发表于 2020-10-27 19:51:00 | 显示全部楼层 |阅读模式




实现的功能
串口每隔2S打印一下Wi-Fi模块采集的温湿度数据
819239-20200511034026153-47443205.png



移植使用
1.我给大家封装好了DHT11的文件
819239-20200511000533699-508143188.png


2.把文件按照下图放置,并在DHT11.h中修改GPIO
我的开发板是使用的GPIO4采集的DHT11数据
819239-20200511040310019-202056354.png





819239-20200511000656289-43553164.png




2.在主函数中包含头文件
819239-20200511000830262-1254662805.png




3.采集温湿度数据并打印.
用户可以用定时器每隔2S采集一次
819239-20200511033843835-1692308702.png





/**
* @brief   定时器回调函数
* @param   parg:传入的配置os_timer_setfn函数最后的参数
* @param   None
* @param   None
* @param   None
* @retval  None
* @warning None
* @example
**/
void os_timer_one_function(void *parg)
{
    RendTHCnt++;
    if(RendTHCnt>=2000){
        RendTHCnt=0;
        DHT11_Read_Data();
        os_printf("温度:%d,湿度%d\r\n",DHT11Data[2],DHT11Data[0]);
    }
}


4.效果

819239-20200511034014712-483013720.png





说明
1.该程序处理思路
采集到数据以后判断下校验和是否正确,如果正确,则把新数据存入数组
如果不正确,则判断下和上次数据的偏差,如果偏差不是很大也认为是正确的数据
如果采集了5次校验和都是错误的,则设置数据全部为0xff

2.此程序是NONOS版本
用户移植到RTOS版本上的时候需要更改DHT11.c中操作GPIO的头文件


copycode.gif
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2020-11-29 06:03 , Processed in 0.088201 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表