温湿度传感器DTH11(新版)驱动在ESP8266(RTOS3.2)上适配的驱动程序

本文介绍了新版DTH11数字温湿度传感器的特点,包括更宽的测量范围和更低的功耗,并详细说明了在ESP8266(RTOS3.2)上的驱动程序结构,包括硬件连接和软件部分的main.c、DTH11.h、DTH11.c文件。测试结果显示新版传感器能准确读取负数温度数据。
摘要由CSDN通过智能技术生成

温湿度传感器DTH11(新版)驱动在ESP8266(RTOS3.2)上适配的驱动

新DTH11简介

在这里插入图片描述
DTH11是一款数字温湿度传感器,捡百度词条没有的说,这个百度词条是2011年建的,估计这个传感器是2011年开始有的,不过厂家在05年就自主研制出湿敏电阻,估计上市还会早于2011年,而上图的新款传感器是18年买的新版,当时某宝焊接好的模块几乎是旧款,想要新版只能买裸传感器。

更新要点:

  1. 商标换了,由AOSONGTM 变为 ASAIRTM, MORE INTERNATIONAL;
  2. 温湿度测量范围由20-90%RH/0-50°C 升级为 5-90%RH/-20-60°C
  3. 新版的传感器温度数据有1位小时,可以读出如 -2.1°C这样的数据;
  4. 用户的最低采样频率由旧款1Hz变为1/2Hz
  5. 功耗减半,由0.16mAmin-2.5mAmax 降低为0.06mA-1mA;
  6. 启动响应信号旧款主机拉低18ms后要等待拉高20-40us,新款粗略测量等待约15us;

硬件原理图

VCC=3.3v:
在这里插入图片描述
              在这里插入图片描述                               在这里插入图片描述

软件部分结构

  • main.c
    • DTH11.h
    • DTH11.c

DTH11驱动网上其实很多了,新版传感器的也只注意下负数温度的问题, 我这里用的是lcd1602显示的,暂时不包含在这篇里面,另外整理;

main.c主要是调用读数据的函数,显示数据 :

/* main
   This example code is in the Public Domain (or CC0 licensed, at your option.)

   Unless required by applicable law or agreed to in writing, this
   software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
   CONDITIONS OF ANY KIND, either express or implied.
*/


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"

#include "esp_log.h"
#include "esp_system.h"
#include "esp_err.h"

#include "driver/i2c.h"

#include "lcd1602_pcf8574.h"
#include "DTH11.h"


#define LCD1602

static const char *TAG = "main";



void i2c_task_me(void *arg)
{
   
    int dth11_temperature, dth11_humidty;
    char str1[41] = {
   '\0'};
    int ret;

    dt11_init_chip();

#ifdef LCD1602
    lcd_init_chip(I2C_EXAMPLE_MASTER_NUM);
    isBacklight(1);
#endif
    while(1)
    {
   
        vTaskDelay(30000 / portTICK_RATE_MS);//wait more than 2s, set 30s.
        ret = get_dth_data(&dth11_temperature, &dth11_humidty);
        if(!ret)
        {
   
            //New Asair's DTH11 has   decimals of temperature.
            sprintf(str1, "%d.%dC %d%% ",
                    dth11_temperature/10,abs(dth11_temperature%10), dth11_humidty/10);
#ifdef 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值