读取DH11模块经常出错-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4585|回复: 4

读取DH11模块经常出错

 关闭 [复制链接]
发表于 2018-5-4 22:22 | 显示全部楼层 |阅读模式
源码如下:
#define BLINKER_PRINT Serial
#define BLINKER_MQTT
#include <Blinker.h>
//DHT11
#include <modules/dht/DHT.h>
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define humanse 12
//界面
//#define BUTTON_1        "ButtonKey"
#define TOGGLE_1        "ToggleKey"
#define TOGGLE_2        "Toggleled"

char ssid[] = "newifi";
char pswd[] = "87257258";
void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(humanse, INPUT);


  Blinker.begin(auth, ssid, pswd);
  dht.begin();
  //组件初始化, 建议在使用前初始化 Button 、Slider 、 Toggle 及 RGB
  Blinker.wInit(TOGGLE_1, W_TOGGLE);
  Blinker.wInit(TOGGLE_2, W_TOGGLE);
  if (digitalRead(LED_BUILTIN)) {
    Blinker.print(TOGGLE_2, "on");
    Blinker.delay(1000);
  } else {
    Blinker.print(TOGGLE_2, "off");
    Blinker.delay(1000);
  }
}
void loop()
{
  Blinker.run();
  if (Blinker.available()) {//检测是否收到数据
    //BLINKER_LOG2("Blinker.readString(): ", Blinker.readString());
    //Blinker.vibrate();//发送手机振动指令, 震动时间, 单位ms 毫秒, 数值范围0-1000, 默认为500
    Blinker.delay(1000);
    uint32_t BlinkerTime = millis();
   
    Blinker.delay(2000);
    int h = dht.readHumidity();
    int t = dht.readTemperature();
   
    Blinker.delay(2000);
    if (isnan(h) || isnan(t)) {
      Blinker.print("temp", "error");
      Blinker.delay(1000);
      Blinker.print("humi", "error");
      Blinker.delay(1000);
    } else {
      Blinker.print("temp", t, "℃");
      Blinker.delay(1000);
      Blinker.print("humi", h, "%");
      Blinker.delay(1000);
    }
    Blinker.print("light", 1024 - analogRead(A0));
    Blinker.delay(1000);
    Blinker.print("millis", BlinkerTime / 60000);
    Blinker.delay(1000);
    if (digitalRead(LED_BUILTIN)) {
      Blinker.print(TOGGLE_2, "on");
      Blinker.delay(1000);
    } else {
      Blinker.print(TOGGLE_2, "off");
      Blinker.delay(1000);
    }
   
  }
  
  if (Blinker.toggle(TOGGLE_2)) {
      digitalWrite(LED_BUILTIN, HIGH);
   }
   else {
       digitalWrite(LED_BUILTIN, LOW);
   }
  if (digitalRead(humanse) && Blinker.toggle(TOGGLE_1)) {//人体红外感应
    Blinker.print("notice", "刚刚有人进入了");
    //BLINKER_LOG1("刚刚有人进入了");
    Blinker.vibrate(1000);
    Blinker.delay(1000);
  }
  
}
在手机上读取DH11温湿度经常出错!!
550695764.jpg

评分

参与人数 1抽奖次数 +1 收起 理由
coloz + 1

查看全部评分

发表于 2018-5-4 22:41 | 显示全部楼层
你的出错是指什么?DHT11数值不对?
请先测试下单独读DHT11,结果对吗?
如果单独读DHT11结果正确,那上传下你的DHT11库,我看看
 楼主| 发表于 2018-5-5 11:05 | 显示全部楼层
DHT11数值数据不对,库用的是你们的那个DHT11库,现在换了厂家的库,正常了
发表于 2021-7-23 17:01 | 显示全部楼层
太空漫步者 发表于 2018-5-5 11:05
DHT11数值数据不对,库用的是你们的那个DHT11库,现在换了厂家的库,正常了 ...

您好,能把modules/dht/DHT.h库文件传上来吗,我的丢了,IDE管理库再也搜不到了.谢谢.
发表于 2021-7-24 22:30 | 显示全部楼层
lwq1947 发表于 2021-7-23 17:01
您好,能把modules/dht/DHT.h库文件传上来吗,我的丢了,IDE管理库再也搜不到了.谢谢.
...

https://www.arduino.cn/thread-83176-1-1.html
教程中有提供下载哦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 12:48 , Processed in 0.100693 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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