DHT11 возвращает неверные значения
Я пытаюсь использовать датчик DHT11 с Arduino. Но, к сожалению, он возвращает следующие значения:
Температура = 1,00 Влажность = 2,00
Мой код выглядит следующим образом:
#include <dht.h>
dht DHT;
#define DHT11_PIN 7
void setup(){
Serial.begin(9600);
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(1000);
}
Ссылка на библиотеку, которую я использую, находится здесь
Я подключил +ve к 3,3 В Я подключил -ve к земле Я подключился к цифровому контакту № 7
@Saad Bashir, 👍0
Обсуждение2 ответа
Вы должны вызвать функции:
#include <DHT.h>
#define DHT11_PIN 7
DHT dht(DHT11_PIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Temperature = ");
Serial.println(temperature);
Serial.print("Humidity = ");
Serial.println(humidity);
delay(1000);
}
Дополнение
Похоже, вы используете другую библиотеку. Можете ли вы сказать мне, какую библиотеку вы используете для этого кода?, @Saad Bashir
Серийный.начать(9600); отсутствовал, поэтому я добавил это в ваш код, и я все еще получаю тот же результат, что и раньше. Температура 1 и влажность 2, @Saad Bashir
Ахмм, я не очень хорошо разбираюсь в схемах. Так что не уверен, должен ли я ставить по одному в обоих местах или просто использовать один резистор. А во-вторых, у меня на данный момент есть только резисторы 10k :O, они будут работать?, @Saad Bashir
Я добавил фотографии в исходный вопрос, показывающие, как я использовал резистор. По-прежнему получаю ту же температуру и влажность, @Saad Bashir
Это не DHT11, DHT11 — синий, DHT21 — черный, а DHT 22 — белый. Это должен быть DHT22, поэтому значения неправильные.
EDIT: на ваших фотографиях белый корпус говорит AM2302, это определенно DHT22, код должен быть соответствующим образом адаптирован.
У меня была обратная проблема: я использовал DHT11 (синий) вместо dht22 (белый). Значение, которое я получил, было в 500°C для температуры и 1500% для влажности. Замена DHT11 на DHT22 решает эту проблему., @MagTun
- DS18B20 дает высокие показания. Как заставить его вернуть правильную температуру?
- Проблема с датчиком температуры и влажности DHT11
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- Проблемы с подключением I2C на ESP8266 — 12F, какие контакты использовать?
- BMP280 возвращает 0
- Как заставить инфракрасный термодатчик MEMS - D6T-44-L06 работать с Arduino?
- Считывание температуры (DS18B20) с помощью ATtiny85
- Датчик DHT11, обеспечивающий -999 выходов
Текущая температура в комнате в противном случае составляет 34 градуса Цельсия и влажность 62%., @Saad Bashir