带引脚Wemos D1 R1的DHT11电源

时间:2019-07-01 03:26:01

标签: sensor esp8266 arduino-ide

我正在尝试从Wemos D1 R1运行DHT11传感器。我的接地端接地,传感器连接到D2引脚,传感器和电源线之间有一个电阻。我尝试将电源连接到D3引脚并设置pinMode(D3,OUTPUT);和digitalWrite(D3,HIGH);,但是无法识别传感器。如果我将电源连接到Wemos上的3.3v输出引脚,则可以正常工作。我将Wemos插入计算机的USB。谁能告诉我为什么Wemos没有通过D3引脚供电。我需要将9v连接到Wemos而不是计算机电源吗?没什么大不了的,但是很高兴理解为什么并将它连接到另一个电源引脚。 这是我的代码,用于激活引脚并打开D3引脚的电源。enter image description here enter image description here

#include <DHTesp.h>

DHTesp dht;

pinMode(D3,OUTPUT);//make pin D3 a power outlet for 3.3v

void setup() {


    Serial.begin(115200);
    dht.setup(D2, DHTesp::DHT11);

digitalWrite(D3,HIGH);//make pin D3 hot
}


void loop() {


  delay(8000);

    float t = dht.getTemperature();
    float f = (t*1.8) + 32;

    if (isnan(t))
  {
    Serial.println("Failed to read from DHT2 sensor!"); **//when the sensor is powered by pin D3 this shows up but when powered by 3.3v it does get the sensor amount**
    return;
  }
    Serial.print(", \"maintemp\": ");
    Serial.print(f);
    Serial.print("}\n");

delay(2000);
}

3 个答案:

答案 0 :(得分:0)

DHT11的引脚排列如下:

1 VCC->外部电源更好,工作于3.5至5.5V

2数据-> WEMOS D2 ... D7

3 NC

4 GND-> GND

如果连接到D2,则按如下所示编写代码:

dht.setup(D2,DHTesp :: DHT11);

enter image description here

答案 1 :(得分:0)

确定在打开DHT11的电源之前可以执行dht.setup(...)吗?我猜想它首先需要电源然后再安装。您甚至可能需要暂停一下。

也;确保您为正确的板进行编译,否则D3可能与板上的D3不相关。

答案 2 :(得分:0)

以下代码尝试首先初始化DHT传感器,但之后才将其加电。由于初始化代码已经尝试与没有电源的传感器进行通讯,因此无法正常工作:

dht.setup(D2, DHTesp::DHT11);
digitalWrite(D3,HIGH);//make pin D3 hot

所以写:

digitalWrite(D3,HIGH); // power up the sensor
delay(500);  // allow some time to become ready
dht.setup(D2, DHTesp::DHT11); // initialiye the sensor

顺便说一句:pinMode命令是否在setup函数之外?它会这样编译吗?