РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

ФОРУМ НА ЭЛВО

РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ
  • БЛОГИ
  • НОВОЕ
  • СХЕМЫ
  • РАЗНОЕ
  • ТЕОРИЯ
  • ТЕЛЕВИДЕО
  • СВЕТОДИОД
  • МЕДТЕХНИКА
  • БЫТТЕХНИКА
  • ИЗМЕРИТЕЛИ
  • СПРАВОЧНИК
  • ТЕХНОЛОГИИ
  • РЕМОНТ СХЕМ
  • МОБИЛЬНИКИ
  • КОМПЬЮТЕРЫ
  • НАЧИНАЮЩИМ
  • ЗАРЯДКИ И АКБ
  • СИГНАЛИЗАЦИИ
  • АУДИОТЕХНИКА
  • АВТОВЕЛОМОТО
  • БЛОКИ ПИТАНИЯ
  • РАДИОПРИЁМНИКИ
  • МЕТАЛЛОИСКАТЕЛИ
  • МИКРОКОНТРОЛЛЕР
  • РАДИОПЕРЕДАТЧИКИ


    • Страница 1 из 1
    • 1
    Архив - только для чтения
    DHT22 завышает температуру
    Вт, 20.06.2017, 14:36 | Сообщение # 1        
    Nik9900
    аватар
      Постов: 11   ОК 
    Всегда использовал отдельные датчики для измерения температуры/влажности/давление. Решил попробовать 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, 18:46 | Сообщение # 2        
    msmmmm
    аватар
      Постов: 891   Друзья 
    В ответе должно быть 40 бит (5 байт), а тут целый поток. Если продолжение после CRC - данные от того же датчика, то там уже 49,1% 23,4 С. Показания прибора неправильные, но стабильны? Питание датчика в порядке?

    Добавлено (20.06.2017, 19:46)
    ---------------------------------------------
    Да, и по даташиту первой идет влажность, затем температура, затем контрольная сумма. В данных наоборот.
    Вт, 20.06.2017, 18:48 | Сообщение # 3        
    Nik9900
    аватар
      Постов: 11   ОК 
    Извиняюсь за путанницу, 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();


    Это просто уже в протоколе передачи данных на ПК местами поменял, ну и соответственно на ПК при выводе температуры и влажности это учтено.
    Вт, 20.06.2017, 18:59 | Сообщение # 4        
    msmmmm
    аватар
      Постов: 891   Друзья 
    От руки температура растет? От дыхания влажность увеличивается? Напряжение питания выше 3,3В?
    Вт, 20.06.2017, 19:06 | Сообщение # 5        
    Nik9900
    аватар
      Постов: 11   ОК 
    От руки температура растёт и влажность немного растёт, если дыхнуть на датчик то под 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, 19:08 | Сообщение # 6        
    msmmmm
    аватар
      Постов: 891   Друзья 
    Если датчик врет, то есть 2 способа проверить:
    1. Подкинуть другой такой же, сразу все будет понятно.
    2. Если датчика под рукой нет, собрать схему в протеусе, проверить прошивку. Если с прошивкой порядок, значит с датчиком не повезло.
    Вариант бракованного датчика здесь, по-моему, самый вероятный.
    Вт, 20.06.2017, 19:12 | Сообщение # 7        
    Nik9900
    аватар
      Постов: 11   ОК 
    Другого такого же нет, этот то взял на пробу, ездил на другой конец города. Попробую в Протеусе собрать, просто дело в том, что на нескольких форумах встречал подобные жалобы, и расхождения были примерно в этом же диапазоне, но решений так и не было, темы просто заглохли. Попробую его ещё к Ардуине поцепить и стандартной библиотекой прочитать.
    Вт, 20.06.2017, 19:19 | Сообщение # 8        
    msmmmm
    аватар
      Постов: 891   Друзья 
    Почитал свое предыдущее сообщение - данные читает, КС каждый раз совпадает, данные изменяются согласно внешнему воздействию, программная конвертация совпадает с расчетной - программа, скорее всего, ни при чем.
    Вт, 20.06.2017, 19:27 | Сообщение # 9        
    Nik9900
    аватар
      Постов: 11   ОК 
    Сам датчик покупал у местного барыги, в магазинах у нас не нашёл, но думаю приехал он с Али, где тогда лучше заказывать эти датчики более приемлемого качества ? Сейчас заказал еще Si7021 с Али, мне нужно добиться точности хотя бы в 0.5 - 1 градус по температуре. Если ни тот ни другой не допинаю до нужных значений, придётся ставить отдельный датчик на влажность и старый добрый Dallas на температуру.
    Вт, 20.06.2017, 21:49 | Сообщение # 10        
    msmmmm
    аватар
      Постов: 891   Друзья 
    Как вариант - откалибровать то, что есть. Нужен образцовый датчик и возможность задавать температуру в возможно широком диапазоне. Погрешность, судя по всему мультипликативная, легко исправляется изменением тангенса наклона номинальной статической характеристики преобразователя температуры. Знать бы еще - погрешность линейная или нет. Мороки не много, но прописывать константы для серийного прибора как-то не комильфо. А вот для единичного экземпляра можно и повозиться. smile Есть правда "но": в формуле есть умножение, которое в контроллерах выполняется довольно медленно.
    t`=a*t+b, a и b - коэффициенты полинома (находятся линейной аппроксимацией), t - температура, которую выдал датчик, t`- скорректированная температура.
    Кстати, все промышленные цифровые преобразователи имеют возможность подстройки.
    Для этого датчика по ранее выложенным данным
    a=0,894736842
    b=-1,80526316
    • Страница 1 из 1
    • 1
    Поиск:

    Внимание! Форум переехал на Tehnodium.ru



    © 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA