• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP-201 + DHT11

Sever44

Member
Добрый день.

Пытаюсь подключить датчик температуры DHT11 к ESP-201.
Использую скетч DHTtester из Примеров Ардуино.

#include "DHT.h"
//#define DHTPIN 2 // Работает с Ардуино Мега
#define DHTPIN 4 // С ESP201 не работает
#define DHTTYPE DHT11

// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);
//DHT dht(DHTPIN, DHTTYPE,11); //Пробовал, не влияет

void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}

void loop() {
// Wait a few seconds between measurements.
delay(2000);

// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

// Compute heat index
// Must send in temp in Fahrenheit!
float hi = dht.computeHeatIndex(f, h);

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hi);
Serial.println(" *F");
}

Скетч работает с Ардуино Мега и НЕ РАБОТАЕТ с ESP-201.

Датчик подключен к +3,3V, GND и к 4-ой ножке ESP-201 (той, что рядом с +3,3V).

В СОМ порту: Failed to read from DHT sensor!

Пробовал менять быстродействие: DHT dht(DHTPIN, DHTTYPE,11);
Не помогает.
Если закоментировать: // return;
строки Humidity, Temperature, Heat index
появляются, но с нулевыми значениями.

Что не так?

Надеюсь на Вашу помощь.

Заранее спасибо.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
А не пробовали на ESP код для меги? Должен работать. Вы просто путаетесь в ногах GPIO4 8266 и D4 в Arduino это разные вещи. В инете полно таблиц "Nodemcu arduino pins". 4-я нога (D4) выбирается установкой ДВОЙКИ.
 

Sever44

Member
А не пробовали на ESP код для меги? Должен работать. Вы просто путаетесь в ногах GPIO4 8266 и D4 в Arduino это разные вещи. В инете полно таблиц "Nodemcu arduino pins". 4-я нога (D4) выбирается установкой ДВОЙКИ.
То, что Вы написали, справедливо для ESP-12. У меня же - ESP-201. Без изменений код , работающий с Мегой, с ESP-201 не работает. Перепробовал все четыре сочетания (GPIO2 - DHTPIN 2, GPIO2 - DHTPIN 4, GPIO4 - DHTPIN 2, GPIO4 - DHTPIN 4), не работает. Видно, для ESP-201 хитрее "зашифровано".
 

AndrF

Active member
Посмотрел. Но там нет (да и не может быть) сведений для ESP-201, с которой у меня проблемы.
Хм. Действительно у ESP-201 почему-то рисуют совершенно другое соотношение



В общем, использовать обозначения с префиксом D я бы просто не стал - только цифру.
 

KomX

Member
@Sever44, из урезанного скетча не видно как Вы конфигурируете пины... Да, и схемка подключения не помешала бы (вдруг вы подтягивающий резистор забыли)...
 

Sever44

Member
Хм. Действительно у ESP-201 почему-то рисуют совершенно другое соотношение



В общем, использовать обозначения с префиксом D я бы просто не стал - только цифру.
С префиксом и не использовал. Тоже нашел эту цоколевку для ESP-201. Подключал датчик к IO4 (в скетче указывал 16), пробовал IO12 (10). Упорно не работает. Выход датчика подтянут.
 

Sever44

Member
@Sever44, из урезанного скетча не видно как Вы конфигурируете пины... Да, и схемка подключения не помешала бы (вдруг вы подтягивающий резистор забыли)...
Урезаны только ненужные комментарии из примера. Все нужное оставлено. Мега работает и по выводу 2 и по выводу 4. Выход датчика подтянут. Перепробовал, кажется, все сочетания, не работает. Сейчас датчик подключен к IO4 (16), это которая рядом с +3,3V. В скетче указано #define DHTPIN 16.
Фотка: DSC_0045.jpg
 
Сверху Снизу