простые интересные РАДИОСХЕМЫ сделанные своими руками

» Гость

Мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизируйтесь!





» ДАТАШИТЫ
Например: TDA1562

» СХЕМЫ


Отметить прочитанными   -   Поиск   -   Правила   -   Новые сообщения

Страница 1 из 11
Модератор форума: Alex1, ВIOS 
Форум радиолюбителей » СХЕМЫ » ИЗМЕРЕНИЯ » DHT22 завышает температуру
DHT22 завышает температуру
Вт, 20.06.2017, 15:36 | Сообщение # 1        
Nik9900
аватар
  Постов: 16  Offline
Всегда использовал отдельные датчики для измерения температуры/влажности/давление. Решил попробовать DHT22 (влажность + температура), подключил к одному МК DTH22 и DS18B20 и вот что получаем на выходе:

Packet: 6321
ReportID: 0
Size: 10
Data: 01 01 26 01 A8 D0 EB 01 EA 00
Result: DHT22_OK
CRC: D0
DHT22 Temp: 29,40 C
DHT22 RH: 42,40 %
DS1820 Temp: 24,50 C

Показывает температуру на 5 градусов больше чем Dallas, контрольная сумма проходит проверку, т.е. данные с датчика считаны корректно. По отзывам в сети этот датчик имеет неплохие (по сравнению с DHT11) параметры, из - за чего может быть такое расхождение ?
Вт, 20.06.2017, 19:46 | Сообщение # 2        
msmmmm
аватар
  Постов: 782  Offline Друзья 
В ответе должно быть 40 бит (5 байт), а тут целый поток. Если продолжение после CRC - данные от того же датчика, то там уже 49,1% 23,4 С. Показания прибора неправильные, но стабильны? Питание датчика в порядке?

Добавлено (20.06.2017, 19:46)
---------------------------------------------
Да, и по даташиту первой идет влажность, затем температура, затем контрольная сумма. В данных наоборот.


Отредактировал msmmmm - Вт, 20.06.2017, 19:49
Вт, 20.06.2017, 19:48 | Сообщение # 3        
Nik9900
аватар
  Постов: 16  Offline
Извиняюсь за путанницу, Data: 01 01 26 01 A8 D0 EB 01 EA 00 это пакет данных не только от датчика, в этом пакете данные от датчика: 01 26 01 A8 D0, 5 байт, контрольная сумма D0, далее идут данные не относящиеся к датчику. Датчик опрашивается 1 раз в 2 секунды, контрольная сумма всегда верная, подтяжка 4.7к на шину данных есть.

Цитата
Да, и по даташиту первым идет влажность, затем температура, затем контрольная сумма. В данных наоборот.


Всё верно, читаю данные именно так:
Код

    AData^.RH_Byte1 := ReadData();
    AData^.RH_Byte2 := ReadData();
    AData^.T_Byte1   := ReadData();
    AData^.T_Byte2   := ReadData();
    AData^.CRC         := ReadData();


Это просто уже в протоколе передачи данных на ПК местами поменял, ну и соответственно на ПК при выводе температуры и влажности это учтено.


Отредактировал Nik9900 - Вт, 20.06.2017, 19:57
Вт, 20.06.2017, 19:59 | Сообщение # 4        
msmmmm
аватар
  Постов: 782  Offline Друзья 
От руки температура растет? От дыхания влажность увеличивается? Напряжение питания выше 3,3В?


Отредактировал msmmmm - Вт, 20.06.2017, 20:00
Вт, 20.06.2017, 20:06 | Сообщение # 5        
Nik9900
аватар
  Постов: 16  Offline
От руки температура растёт и влажность немного растёт, если дыхнуть на датчик то под 90% влажность подскакивает, потом постепенно спадает. На данный момент питается от АКБ на 3.7В, но подавал и 5В, разницы никакой.

Добавлено (20.06.2017, 20:06)
---------------------------------------------
вот несколько часов макетка с датчиком лежит на балконе, сейчас данные такие:
********************
Packet: 209
ReportID: 0
Size: 10
Data: 01 00 DA 01 E1 BC 62 01 28 0F
Result: DHT22_OK
CRC: BC
DHT22 Temp: 21,80 C
DHT22 RH: 48,10 %
DS1820 Temp: 17,70 C
********************
Показания от DS1820 совпадают с .....метеоданными на данный момент ) но DHT22 опять уполз вперёд на 4 градуса.

Вт, 20.06.2017, 20:08 | Сообщение # 6        
msmmmm
аватар
  Постов: 782  Offline Друзья 
Если датчик врет, то есть 2 способа проверить:
1. Подкинуть другой такой же, сразу все будет понятно.
2. Если датчика под рукой нет, собрать схему в протеусе, проверить прошивку. Если с прошивкой порядок, значит с датчиком не повезло.
Вариант бракованного датчика здесь, по-моему, самый вероятный.
Вт, 20.06.2017, 20:12 | Сообщение # 7        
Nik9900
аватар
  Постов: 16  Offline
Другого такого же нет, этот то взял на пробу, ездил на другой конец города. Попробую в Протеусе собрать, просто дело в том, что на нескольких форумах встречал подобные жалобы, и расхождения были примерно в этом же диапазоне, но решений так и не было, темы просто заглохли. Попробую его ещё к Ардуине поцепить и стандартной библиотекой прочитать.


Отредактировал Nik9900 - Вт, 20.06.2017, 20:13
Вт, 20.06.2017, 20:19 | Сообщение # 8        
msmmmm
аватар
  Постов: 782  Offline Друзья 
Почитал свое предыдущее сообщение - данные читает, КС каждый раз совпадает, данные изменяются согласно внешнему воздействию, программная конвертация совпадает с расчетной - программа, скорее всего, ни при чем.
Вт, 20.06.2017, 20:27 | Сообщение # 9        
Nik9900
аватар
  Постов: 16  Offline
Сам датчик покупал у местного барыги, в магазинах у нас не нашёл, но думаю приехал он с Али, где тогда лучше заказывать эти датчики более приемлемого качества ? Сейчас заказал еще Si7021 с Али, мне нужно добиться точности хотя бы в 0.5 - 1 градус по температуре. Если ни тот ни другой не допинаю до нужных значений, придётся ставить отдельный датчик на влажность и старый добрый Dallas на температуру.
Вт, 20.06.2017, 22:49 | Сообщение # 10        
msmmmm
аватар
  Постов: 782  Offline Друзья 
Как вариант - откалибровать то, что есть. Нужен образцовый датчик и возможность задавать температуру в возможно широком диапазоне. Погрешность, судя по всему мультипликативная, легко исправляется изменением тангенса наклона номинальной статической характеристики преобразователя температуры. Знать бы еще - погрешность линейная или нет. Мороки не много, но прописывать константы для серийного прибора как-то не комильфо. А вот для единичного экземпляра можно и повозиться. smile Есть правда "но": в формуле есть умножение, которое в контроллерах выполняется довольно медленно.
t`=a*t+b, a и b - коэффициенты полинома (находятся линейной аппроксимацией), t - температура, которую выдал датчик, t`- скорректированная температура.
Кстати, все промышленные цифровые преобразователи имеют возможность подстройки.
Для этого датчика по ранее выложенным данным
a=0,894736842
b=-1,80526316


Отредактировал msmmmm - Вт, 20.06.2017, 23:26
Форум радиолюбителей » СХЕМЫ » ИЗМЕРЕНИЯ » DHT22 завышает температуру
Страница 1 из 11
Поиск:
Кто есть кто на форуме радиолюбителей: Администратор Модераторы Друзья Пользователи
Группа вконтакте Канал ютуб Группа в фэйсбук Мобильная версия © 2010-2018, "Радиосхемы". Все права защищены. Почта