Мощность DHT11 с выводом Wemos D1 R1 - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь запустить датчик DHT11 от моего Wemos D1 R1. У меня земля заземлена, а датчик подключен к выводу D2 с резистором между датчиком и линией питания. Я попытался подключить питание к выводу D3 и установить pinMode (D3, OUTPUT) и digitalWrite (D3, HIGH); но датчик не распознается. Если я подключу питание к выходному контакту 3.3 В на Wemos, он будет работать нормально. Я подключаю Wemos к USB моего компьютера. Может кто-нибудь сказать мне, почему Wemos не получает питание от контакта D3. Нужно ли подключать 9В к 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 голосов
/ 04 июля 2019

Вы уверены, что можете сделать dht.setup (...) до того, как включите DHT11?Я бы догадался, что сначала нужно питание, а затем настроитьВозможно, вам даже потребуется сделать паузу до этого.

Также;убедитесь, что вы компилируете для правильной платы, иначе D3 может не относиться к D3 на плате.

0 голосов
/ 04 июля 2019

Следующий код пытается сначала инициализировать датчик 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? Это компилируется так?

0 голосов
/ 04 июля 2019

Распиновка DHT11 следующим образом:

1 VCC -> внешнее питание лучше, работает от 3,5 до 5,5 В

2 ДАННЫЕ -> WEMOS D2 ... D7

3 NC

4 GND -> GND

если подключиться к D2, напишите свой код следующим образом:

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

enter image description here

...