Ви не увійшли.
Сторінки 1
Добрий день!
в мене таке питання, уже ставлю другий датчик dht11 і arduino uno пише помилку зчитування даних, хоча раніше все робило, вже контакти перевіряв і живлення і нічого. Бібіліотеки різні пробував, теж не допомоголо, і delay() виставляв, теж нічого, що може бути?
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
delay(2000);
dht.begin();
}
void loop() {
// 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();
float t = dht.readTemperature();
// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
}
в терміналі Failed to read from DHT
Неактивний
1) Ще раз перевірити підключення!
2) Резистор 10K (або меньше... можна і 5K поставити) між +5В та pin 2 стоїть?
3) Затримка в loop() не обовязкова (в бібліотеці реалізовано кеш....)
Я отак опитую. Все працює.
float currHum;
float currTemp;
long lastRead;void loop() {
if (lastRead == 0 || ((millis() - lastRead) > 5000U/*опитуємо не частішше ніж раз на 5 секунд*/)) {
Serial.print(F("DHT11:"));
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
currHum = dht.readHumidity(true);//ігнорувати закешоване значення і примусово зчитати з сенсора нове
// Read temperature as Celsius (the default)
currTemp = dht.readTemperature(false, false);Serial.print(currHum);
Serial.print(F("%;"));
Serial.print(currTemp);
Serial.println(F("C;"));
//if (!isnan(currHum) && !isnan(currTemp))
lastRead = millis();
}}
П.С.
DHT11 - то дуже приблизний датчик. З допомого нього можна хіба витяжку в підвалі включати....
Показник вологості у них взагалі якісь фейкові. Таке враження що по якеійсь формулі визначаються з температури.... Для прикладу у мене дома - градусник на стіні показує 18, а DHT11 25 градусів; Зимою градусник показував 25, DHT11 показував 28.
Дойшов до висновку що краще використовувати dht21
Вони точнішші.
DATA pin що в DS18B20, DHT11 був 2, піни міняв, та як так, раніше все робило (, от жаль думав і вологість буде показувати
я і версію бібліотеки назад скидав не вийшло (
UPD:
помалу скидав версію бібліотеки з всіма експерементами, от вийшло, біліотека DHT-sensor-library але запрацювало на версії 1.2.0, з новими не хоче, це що оновлення якісь вийшли для DHT датчиків і вони в коді є ? Хто що скаже по цьому прикладу, в чому зміни.
Одним словом дякую все працює
Остання редакція res2500 (2017-04-18 19:44:31)
Неактивний
а как его вообще без библиотеки запустить?
без бібліотеки ніяк, просто з версією 1.3.0 не працювало, а ж поки не дійшов до 1.2.0 )
а так можна почитати про DHT11 + AVR там код повинен бути і даташіт почитати, дуже багато бібліотек
Остання редакція res2500 (2017-04-18 20:58:37)
Неактивний
Пробуй:
#include <SimpleDHT.h>
//SimpleDHT.h -> строка 98 -> delayMicroseconds(10); если будет выдавать маразмы - уменьшить значение до 9 или 8
SimpleDHT11 dht11;
byte DHT11_temp; //температура измеренная с датчика DHT11, C
byte DHT11_hum; //влажность измеренная с датчика DHT11, %
loop........
if (dht11.read(DHT11_pin, &DHT11_temp, &DHT11_hum, NULL)) ....DHT11_Error.....
else .....DHT11_Ok....
Неактивний
У меня на этой библиотеке отработало стабильно 4 мес. Сейчас перешел на DHT22. Рекомендую, возвращает реально точные значения, хотя немного тормознутее реагирует на изменения температуры чем DS18B20.
Неактивний
Сторінки 1