Nodemcu + dh11

всем привет!

подскажите ни как не получается снять показания с датчика 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

пробовал другую библиотеку результат тот же.

Подскажите что делаю не так?

заранее благодарен

резистор предлагать ?

А он точно от 3,3В работает? Что-то помнится я его к 5В подключал.
Ну и как @BABOS написал подтяжка маст хэв.

датчик на плате, я думал там уже резистор есть.

5в надо попробовать, извиняюсь тогда за глупый вопрос

Начните с резистора.
И у вас точно собирается скетч с такими кавычками?

Датчик работает от 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в попробовал с ней. результат тот же:(

В датчике стоит STM контроллер. И он изначально занимается обработкой информации поступающей от физических датчиков. Вся схема залита смолой.

Проверьте качество питания(на пульсации). Поставьте как можно ближе к датчику конденсатор по питанию 0.1 - 1 мкф. Попробуйте , для сравнения , питание от батареек (или аккумулятора)/ 3V < VDD < 5.5V /.

tolyan77 а можете нарисовать схему подключения к коду опубликованному ?
#define *DHT11_PIN 14 или измените так, оставив схему подключения прежней

надо было сразу обратить внимание))))

вывод остался без изменений

5в гр д5

а пробовали напрямую к плате датчик подключать ? без модуля расширения, как минимум теперь вы знаете что цифру 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!

Подключение:
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
а может вы уже свой спалили ?))) может и бракованный, вплоть до того что пины перепутаны, я конечно на таком их не встречал, но вот на других было такое…

может и спалили, много было всяких переключений:(надо новый купить

ПС все таки в моем случаи нужен резистор?

скорее всего, но это не точно))) сам лентяй, паять еще что то лень было бы…)))