всем привет!
подскажите ни как не получается снять показания с датчика dh11.
установил arduino ide подключил nodemcu подключил dh11 на d5 3v3 gr.светодиод горит. в arduino ide вставляю скетч из примера библиотеки
//
// FILE: dht11_test.ino
// AUTHOR: Rob Tillaart
// PURPOSE: DHT library test sketch for DHT11 && Arduino
// URL:
#include “DHTStable.h”
DHTStable DHT;
#define DHT11_PIN 5
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.println(_FILE_);
Serial.print("DHTSTABLE_LIB_VERSION: ");
Serial.println(DHTSTABLE_LIB_VERSION);
Serial.println();
Serial.println(“Type,\tstatus,\tHumidity (%),\tTemperature (C)”);
}
void loop()
{
// READ DATA
Serial.print(“DHT11, \t”);
int chk = DHT.read11(DHT11_PIN);
switch (chk)
{
case DHTLIB_OK:
Serial.print(“OK,\t”);
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print(“Checksum error,\t”);
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print(“Time out error,\t”);
break;
default:
Serial.print(“Unknown error,\t”);
break;
}
// DISPLAY DATA
Serial.print(DHT.getHumidity(), 1);
Serial.print(“,\t”);
Serial.println(DHT.getTemperature(), 1);
delay(2000);
}
// – END OF FILE –
загрузил в память. смотрю в мониторе порта
DHT11, Time out error, -999.0, -999.0
пробовал другую библиотеку результат тот же.
Подскажите что делаю не так?
заранее благодарен
tolyan77:
подключил dh11 на d5 3v3
А он точно от 3,3В работает? Что-то помнится я его к 5В подключал.
Ну и как @BABOS написал подтяжка маст хэв.
датчик на плате, я думал там уже резистор есть.
5в надо попробовать, извиняюсь тогда за глупый вопрос
Начните с резистора.
И у вас точно собирается скетч с такими кавычками?
SAB
21.Март.2026 13:07:11
7
Датчик работает от 3 вольт. Для получения данных иногда надо на сигнальный вывод повесить ёмкость 33n относительно минуса.
собирается, с ошибками но компилируется
/home/an/.arduino15/packages/esp8266/hardware/esp8266/3.1.2/tools/elf2bin.py:54: SyntaxWarning: invalid escape sequence ‘\s’
words = re.split(‘\s+’, line)
/home/an/.arduino15/packages/esp8266/hardware/esp8266/3.1.2/tools/elf2bin.py:73: SyntaxWarning: invalid escape sequence ‘\s’
words = re.split(‘\s+’, line)
. Variables and constants in RAM (global, static), used 28328 / 80192 bytes (35%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1496 initialized variables
╠══ RODATA 1072 constants
╚══ BSS 25760 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 60343 / 65536 bytes (92%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 27575 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 238248 / 1048576 bytes (22%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 238248 code in flash
нашел плату расширения с 5в попробовал с ней. результат тот же:(
SAB
22.Март.2026 21:49:11
11
В датчике стоит STM контроллер. И он изначально занимается обработкой информации поступающей от физических датчиков. Вся схема залита смолой.
Проверьте качество питания(на пульсации). Поставьте как можно ближе к датчику конденсатор по питанию 0.1 - 1 мкф. Попробуйте , для сравнения , питание от батареек (или аккумулятора)/ 3V < VDD < 5.5V /.
BABOS
23.Март.2026 06:42:40
13
tolyan77:
подключил dh11 на d5
tolyan77 а можете нарисовать схему подключения к коду опубликованному ?
#define *DHT11_PIN 14 или измените так, оставив схему подключения прежней
надо было сразу обратить внимание))))
вывод остался без изменений
BABOS
24.Март.2026 06:42:38
16
а пробовали напрямую к плате датчик подключать ? без модуля расширения, как минимум теперь вы знаете что цифру 5 надо заменить на 14, когда нарисуете полную схему подключения, где все будет видно и понятно, может что еще подскажут…
схему не в чем рисовать, взял из интернета
поставил пины на своем макете так же, поставил другую библиотеку, взял у нее пример
// DHT Temperature & Humidity Sensor
// Unified Sensor Library Example
// Written by Tony DiCola for Adafruit Industries
// Released under an MIT license.
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 4 // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 –
// Pin 15 can work but DHT must be disconnected during program upload.
// Uncomment the type of sensor in use:
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// See guide for details on sensor wiring and usage:
// https://learn.adafruit.com/dht/overview
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup() {
Serial.begin(115200);
// Initialize device.
dht.begin();
Serial.println(F(“DHTxx Unified Sensor Example”));
// Print temperature sensor details.
sensor_t sensor;
dht.temperature().getSensor(&sensor);
Serial.println(F(“------------------------------------”));
Serial.println(F(“Temperature Sensor”));
Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F(“°C”));
Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F(“°C”));
Serial.print (F(“Resolution: “)); Serial.print(sensor.resolution); Serial.println(F(“°C”));
Serial.println(F(”------------------------------------”));
// Print humidity sensor details.
dht.humidity().getSensor(&sensor);
Serial.println(F(“Humidity Sensor”));
Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
Serial.print (F(“Unique ID: “)); Serial.println(sensor.sensor_id);
Serial.print (F(“Max Value: “)); Serial.print(sensor.max_value); Serial.println(F(”%”));
Serial.print (F(“Min Value: “)); Serial.print(sensor.min_value); Serial.println(F(”%”));
Serial.print (F(“Resolution: “)); Serial.print(sensor.resolution); Serial.println(F(”%”));
Serial.println(F(”------------------------------------”));
// Set delay between sensor readings based on sensor details.
delayMS = sensor.min_delay / 1000;
}
void loop() {
// Delay between measurements.
delay(delayMS);
// Get temperature event and print its value.
sensors_event_t event;
dht.temperature().getEvent(&event);
if (isnan(event.temperature)) {
Serial.println(F(“Error reading temperature!”));
}
else {
Serial.print(F("Temperature: "));
Serial.print(event.temperature);
Serial.println(F(“°C”));
}
// Get humidity event and print its value.
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
Serial.println(F(“Error reading humidity!”));
}
else {
Serial.print(F(“Humidity: “));
Serial.print(event.relative_humidity);
Serial.println(F(”%”));
}
}
все равно ошибки:(
Error reading temperature!
Error reading humidity!
BABOS
28.Март.2026 04:42:03
18
Подключение:
DHT11 ESP8266 (NodeMCU)
----- ----------------
VCC → 3.3V
GND → GND
DATA → D2 (GPIO4)
[Резистор 4.7k-10k Ом между DATA и VCC]
https://github.com/adafruit/DHT-sensor-library/blob/master/examples/DHTtester/DHTtester.ino
а может вы уже свой спалили ?))) может и бракованный, вплоть до того что пины перепутаны, я конечно на таком их не встречал, но вот на других было такое…
может и спалили, много было всяких переключений:(надо новый купить
ПС все таки в моем случаи нужен резистор?
BABOS
28.Март.2026 06:05:21
20
скорее всего, но это не точно))) сам лентяй, паять еще что то лень было бы…)))