SHT30, SHT31, SHT35

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем risele, 14 авг 2017.

  1. risele

    risele Нерд

    Привет!
    Сделал библиотеку для датчиков температуры и влажности Sensirion SHT30, SHT31 и SHT35.
    Скачать тут. (github).

    Есть примеры с объяснениями на все случаи жизни (7 штук).

    Это "тяжелая" версия, умеет:
    1. Выдавать температуру в Цельсиях, Кельвинах, Фаренгейтах;
    2. Выдавать относительную влажность;
    3. Выдавать абсолютную влажность в мм.рт.ст., Торрах, Паскалях, барах, psi, стандартной и технической атмосферах, и даже м водяного столба;
    4. Выдавать точности измеренных величин (для каждого типа датчиков они рассчитываются по-своему);
    5. Работать во всевозможных режимах разового измерения, которые поддерживает датчик;
    6. Включать - выключать встроенный нагреватель;
    7. Делать мягкую (через I2C) и жесткую (через соответствующий пин) перезагрузку;
    8. Вводить перекалибровку по температуре и относительной влажности;
    9. Проверять целостность данных;
    10. Выдавать код ошибки;
    11. Настраивать частоту опроса сенсора.
    Не умеет:
    1. Настраивать и обрабатывать прерывания от датчика
    2. Работать в режиме периодического измерения.
     
    Последнее редактирование: 14 авг 2017
    Tomasina и ИгорьК нравится это.
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Чего-то не понимаю.
     
  3. risele

    risele Нерд

    Плохо объяснил.
    Сенсоры эти умеют работать в двух режимах:
    1. запрос -> измерение -> ответ
    2. периодическое измерение

    Я реализовал только первый режим (со вторым возиться не стал, мне не надобно).
    Но у сенсора в этом режиме есть предельная частота опроса, выше которой он начнет греться и вносить искажения в измерения (10Гц, если правильно помню).
    Поэтому, библиотека отслеживает, когда был сделан предыдущий опрос сенсора и, если времени между опросами прошло недостаточно, не пошлет запрос на датчик и оставит данные старыми (с предыдущего успешного запроса).
    Т.е., если у вас предельная частота опроса, например, 1 раз в секунду, а пытаетесь вы обратиться к сенсору 4 раза в секунду, то будет так:
    0.00 - считывание данных
    0.25 - выдаст старые данные
    0.50 - выдаст старые данные
    0.75 - выдаст старые данные
    1.00 - обновление данных
    1.25 - выдаст последние данные
    ...
    1.75 - выдаст последние данные
    2.00 - обновление данных
    ....