Датчик давления и датчик влажности непонятные показания
- Войдите на сайт для отправки комментариев
Пт, 04/12/2015 - 16:11
День добрый.
Прошу помощи по программе. Собрал на ардуино НАНО +DHT11+GY 68 метеостанцию.
В результате в сериал порт идут даннные с барометра : давление 755 мм рт ст- достоверные данные, с него же темпратура 26 градусов- не верю.
с Датчика влажности идёт 7% влажность- брехня, и 23 градуса температура достоверный показатель.
Кто подскадет, что где не так ( скетч слепил из 2х кусков)
#include <stDHT.h> #include <Wire.h> #include <BMP085.h> BMP085 dps = BMP085(); long Temperature = 0, Pressure = 0; DHT sens(DHT11);// не использовать одновременно DHT11 и DHT22 void setup() { Serial.begin(9600); pinMode(6, INPUT); digitalWrite(6, HIGH); pinMode(3, INPUT); digitalWrite(3, HIGH); Wire.begin(); delay(3000); dps.init(); } void loop() { int t = sens.readTemperature(6); // чтение датчика на пине 6 int h = sens.readHumidity(6); // чтение датчика на пине 6 delay(3000); dps.getPressure(&Pressure); dps.getTemperature(&Temperature); Serial.print("Pressure(mm Hg):"); Serial.print(Pressure / 133.3); //Выводим давление в мм.рт ст Serial.print("Temp:"); Serial.println(Temperature * 0.1); // Температуру в градусах Цельсия delay(2000); Serial.print("Hum: "); Serial.print(h); Serial.print(" %"); Serial.print("Temp: "); Serial.print(t); Serial.println(" C "); }
Почему не верите в температуру? Там не сверхточный термометр стоит и некоторый плюс/минус можно ему простить. К тому-же он стоит не плате с другими детальками - может и прогреваться. Если у вас есть градусник, которому вы верите и отклонения линейные - просто внесите поправку в скетч.
DHT11 - сам по себе какашка, от него вы честной влажности не добъетесь. Тем более - раз в пять секунд.
Протестируйте оба датчика при разных температурах,
если показания линейны, то просто внесите коррекцию програмно.
DHT11 сильно врет что с ним не делай будет гулять+-1градус.
GY 68-более точный, но возможно подогревается у вас или скачки питания, поставьте кондер по питанию датчика.
Спасибо за ответы.
Эксперименты показали, что датчики DTH11 кривоватые. Заменил датчик на другой DTH11 и показания влажности стали 21-23% в помещении. На улице показания выросли до 37%. Место проведения замеров город-герой С-Пб. У нас влажность реальная раза в 2 д.б. выше!
Заменил датчик на DTH22. Показания влажности стали 39-42% в помещении, что намного ближе к истине.
По температуре показания идентичны с GY-68. По датчикам пока всё.
Следующий шаг-подключение шилда LCD1602 keypad.
С подключением разобрался со 2-го раза.
Обнаружилось непонятное поведение: устройство штатно выдает данные на дисплей. Но если включить монитор последовательного порта, то на дисплее отображается мусор. Отключаешь от компьютера, перегружаешь ардуино и снова все в порядке. почему?
Сейчас ищу ответ:
1. давление отображается как 753,60 мм рт. ст. Как убрать не значащий 0 в сотом разряде?
2. С датчика DTH22 температура отображается в целых числах. Как можно сделать отображение с точностью 1 знак после запятой(напр 23,4)?
Где отображаются данные?
Как подключен дисплей?
Не хотите, чтобы вас ... чтобы над вами пошутили - давайте всю информацию.
Попытался вчерась выложить фото. И не смог.
Попробую на словах: я подключил Нано к шилду 1602 с кнопками таким же образом как он подключался бы к УНО (методом бутерброда).
Данные отображаются на LCD1602. Я так подобрал текст, чтобы он занимал обе строки полностью.
Сейчас хотел бы облагородить выводимую информацию- убрать не значащий ноль в показаниях температурного датчика GY-68 и убрать показания младшего разряда в показаниях барометрического датчика.
58 - (t,1)
61 - (h,0)
По методу bwn не получилось. :(
Вот так заработало:
64 lcd.print(Pressure/133.3,1);// печатаем первую строку со значением до 1 знака после зпт.
Логично, что не получилось. На типы переменных не глянул, а про которые написал и вовсе целочисленные.(((((