[DHT21 vs DHT11] Кто то из них явно что то скрывает!!!

Тема в разделе "Arduino & Shields", создана пользователем nkYellOw, 5 окт 2018.

  1. nkYellOw

    nkYellOw Нерд

    Добрый день господа! Мною были приобретены DHT11 и DHT21 в магазине амперки.
    Вывожу данные обоих датчиков на экран и наблюдаю такую картину:

    DHT11:
    t Arduino [25.00C]
    vlajnost Arduino [30.00%]

    DHT21:
    t Inside box [24.80C]
    vlajnost Inside box [50.50%]

    с температурой согласен. dht21 все таки точнее как ни крути, но по влажности, как может dht11 может отличаться от dht21 на ~65%?. Датчики лежат рядом... Может кто то сталкивался с такой проблемой или все таки брак?)
    Ну и сложно поверить что у меня в офисе влажность 50%... Больше хочется верить dht11

    Код (C++):
    #include <TroykaDHT.h>

    #define TEMP_ARDUINO_PIN 14 // Номер цифрового выхода датчика температуры и влажности около ардуино
    #define TEMP_INSIDE_BOX_PIN 22 // Номер цифрового выхода датчика температуры и влажности внутри теплицы

    DHT temp_hum_arduino(TEMP_ARDUINO_PIN, DHT11);
    DHT temp_inside_box(TEMP_INSIDE_BOX_PIN, DHT21);

    void setup() {

      Serial.begin(9600);
      while (!Serial) delay(10);

      temp_hum_arduino.begin();
      delay(100);

      temp_inside_box.begin();
      delay(100);

    }

    void loop() {

      getTemperatureHumidity(temp_hum_arduino, "Arduino ");
      getTemperatureHumidity(temp_inside_box, "Inside box ");
      delay(3000);
    }

    void getTemperatureHumidity(DHT mydht, String comment)
    {
      String temperature_arduino = "";
      String humidity_arduino = "";

      // мониторинг ошибок
      // считывание данных с датчика DHT11
      mydht.read();
      delay(300);

      switch (mydht.getState()) {

        // всё OK
        case DHT_OK:
          temperature_arduino = "t " + comment + "[" + String(mydht.getTemperatureC()) + String("C]");
          humidity_arduino    = "vlajnost " + comment + "[" + String(mydht.getHumidity()) + String("%]");
          break;

        // ошибка контрольной суммы
        case DHT_ERROR_CHECKSUM:
          break;

        // превышение времени ожидания
        case DHT_ERROR_TIMEOUT:
          break;

        // неизвестная ошибка
        default:
          break;
      }
      Serial.println(temperature_arduino);
      Serial.println(humidity_arduino);
      Serial.println();

    }
     
    Последнее редактирование: 5 окт 2018
  2. DetSimen

    DetSimen Guest

    DHT11 могут украсить собой любую помойку. Сделай это незамедлительно.
     
    DIYMan, Daniil, ИгорьК и 2 другим нравится это.
  3. DetSimen

    DetSimen Guest

    DHT21, кста, тоже недалеко от них ушли.
     
    DIYMan, ИгорьК, parovoZZ и ещё 1-му нравится это.
  4. nkYellOw

    nkYellOw Нерд

    А можете посоветовать что то для более точного измерения влажности и температуры? Хотя с температурой вроде DHT нормально справляются. Меня влажность очень сильно интересует =)
     
  5. parovoZZ

    parovoZZ Гуру

    Верить никому нельзя.
    BME280. Но тоже не фонтан. По влажности - смотри датчики от 1 кРуб. Все дешевое - всё шлак.
     
    nkYellOw нравится это.
  6. ИгорьК

    ИгорьК Гуру

    А у меня все идеально: http://forum.amperka.ru/threads/dht-11-22.7298/

    На тебе.
     
    Последнее редактирование: 5 окт 2018
    nkYellOw нравится это.
  7. nkYellOw

    nkYellOw Нерд

    понял что SHT20 очень хорош и HDC1080.
    Единственное не понял, если мне нужно датчик повесить а модуль управления через 3-4 метра от датчика, длина провода скажется на показаниях или нет?
     
  8. parovoZZ

    parovoZZ Гуру

    Теоретически - нет. Практически необходимо сверять CRC пакета.
     
    nkYellOw нравится это.
  9. nkYellOw

    nkYellOw Нерд

    А нет цифровых датчиков? с ними проще :DDDD
     
    Последнее редактирование: 5 окт 2018
  10. parovoZZ

    parovoZZ Гуру

    а мы сейчас про какие?
     
  11. ИгорьК

    ИгорьК Гуру

    То надо применять то, что есть 1wire.
     
  12. DIYMan

    DIYMan Guest

    А в каком месте DHT - аналоговые? Они цифровые, просто - г. полное, вот и всё.
     
  13. parovoZZ

    parovoZZ Гуру

    Аналоговые они все. А вот интерфейс цифровой.
     
  14. Airbus

    Airbus Радиохулиган Модератор

    Та ладно!Скажи еще что Ds18b20 аналоговый?
     
  15. parovoZZ

    parovoZZ Гуру

    Посмотри структуру - в основе всего лежит термистор.
     
  16. DIYMan

    DIYMan Guest

    Паровоз - в мире всё аналоговое, посмотри структуру. Все всё поняли, но тебе надо позанудствовать, да?
     
    Пушной звер, Mitrandir и Airbus нравится это.
  17. nkYellOw

    nkYellOw Нерд

    Ну вы Игоря темы почитайте, DHT понятно что цифровые, только г**но полное. Я имею ввиду что по i2c есть крутые датчики а цифровых крутых нет. Dht я за одно утро понял что реально ничтожные датчики...
    Ну не цифровые а что бы использовать на digital пинах :D если вам так больше нравится
     
  18. nkYellOw

    nkYellOw Нерд

    Я конкретно задал вопрос. Есть bme180 по i2c а есть цифровой датчик такого же качества ? Если нет то как повесить три датчика Bme-120 на один i2c. Здоровый интерес и никакого занудства. Задачу то решить нужно :)
     
  19. nkYellOw

    nkYellOw Нерд

    Я так не говорил. Я всего лишь спросил : какая цифра по датчику влажности самый крутой что бы пользоваться и не париться что он отклоняет на 20%
     
  20. DIYMan

    DIYMan Guest

    Про занудство - это было не в ваш адрес, тащемта. Теперь по существу:

    1. Si7021;
    2. Мультиплексор I2C (вариант 1), или (вариант 2) - просто 74HC125, SCL неактивных на момент опроса датчиков - разрываем через канал микрухи, и - вуаля - хоть 100 датчиков с одним адресом на шине.
     
    nkYellOw нравится это.