关于DHT11的问题,求解-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1874|回复: 7

[已解答] 关于DHT11的问题,求解

[复制链接]
发表于 2020-8-17 19:41 | 显示全部楼层 |阅读模式
比如:传感器感应出的温度28℃,湿度75%在blinker APP上面可以显示温湿度,挺正常的
用小度问出来的温度也正常,但是问出来的湿度读数却是7500%,这是神马情况啊?

下面是我的代码:
#define BLINKER_WIFI
#define BLINKER_DUEROS_SENSOR

#include <Blinker.h>
#include <DHT.h>


char auth[] = "*****";
char ssid[] = "*****";
char pswd[] = "*****";

BlinkerNumber HUMI("num-shidu");
BlinkerNumber TEMP("num-wendu");


#define DHTPIN 2
#define DHTTYPE DHT11   

DHT dht(DHTPIN, DHTTYPE);

uint32_t read_time = 0;

float humi_read, temp_read;

void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);

    Blinker.vibrate();

    uint32_t BlinkerTime = millis();

    Blinker.print("millis", BlinkerTime);
}

void heartbeat()
{
    HUMI.print(humi_read);
    TEMP.print(temp_read);
}

void DuerQuery(int32_t queryCode)
{
    BLINKER_LOG("DuerOS Query codes: ", queryCode);

    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("DuerOS Query All");
            BlinkerDuerOS.temp(temp_read);
            BlinkerDuerOS.humi(humi_read);
            BlinkerDuerOS.print();
            break;
        case BLINKER_CMD_QUERY_TEMP_NUMBER :
            BlinkerDuerOS.temp(temp_read);
            BlinkerDuerOS.print();
            break;
        case BLINKER_CMD_QUERY_HUMI_NUMBER :
            BlinkerDuerOS.humi(humi_read);
            BlinkerDuerOS.print();
            break;
        default :
            BlinkerDuerOS.temp(20);
            BlinkerDuerOS.humi(20);
            BlinkerDuerOS.print();
            break;
    }
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    pinMode(D4, OUTPUT);
    digitalWrite(D4, LOW);
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Blinker.attachHeartbeat(heartbeat);
    BlinkerDuerOS.attachQuery(DuerQuery);
    dht.begin();
}

void loop()
{
    Blinker.run();

    if (read_time == 0 || (millis() - read_time) >= 2000)
    {
        read_time = millis();

        float h = dht.readHumidity();
        float t = dht.readTemperature();        

        if (isnan(h) || isnan(t)) {
            BLINKER_LOG("Failed to read from DHT sensor!");
            return;
        }

        float hic = dht.computeHeatIndex(t, h, false);

        humi_read = h;
        temp_read = t;

        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        BLINKER_LOG("Heat index: ", hic, " *C");
    }
}

 楼主| 发表于 2020-8-17 19:42 | 显示全部楼层
哪位懂行的道友帮我解惑啊
发表于 2020-8-17 19:47 | 显示全部楼层
自己除100再传呗
 楼主| 发表于 2020-8-17 19:49 | 显示全部楼层

大神啊,我不会弄啊,怎样修改一下
 楼主| 发表于 2020-8-17 20:18 | 显示全部楼层

求指教啊,怎样除100啊,应该怎样修改呢
 楼主| 发表于 2020-8-17 20:48 | 显示全部楼层

大神,我琢磨半天把这个除100了    humi_read = h/100;
小度是可以正常读数了,但是blinkerAPP上面湿度显示1%了……
怎么弄啊:'
发表于 2020-8-17 21:42 | 显示全部楼层
醉了。。。不要问这么蠢的问题。。。
BlinkerDuerOS.humi(humi_read/100);
 楼主| 发表于 2020-8-17 21:53 | 显示全部楼层
奈何col 发表于 2020-8-17 21:42
醉了。。。不要问这么蠢的问题。。。
BlinkerDuerOS.humi(humi_read/100);

……我不懂这个啊,纯小白,有时间才翻的论坛各种帖子凑出来的代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:57 , Processed in 0.089079 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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