цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » ESP32 и датчик температуры и влажности HDC2080 с малым энергопотреблением

ESP32 и датчик температуры и влажности HDC2080 с малым энергопотреблением

Автор: Mike(admin) от 1-11-2019, 03:35

В этой статье мы рассмотрим еще один датчик влажности и температуры от TI - на этот раз это HDC2080, который мы подключим к ESP32, в данном случае к Wemos Lolin32, но вы можете использовать любой модуль на основе ESP32.


датчик температуры и влажности HDC2080

Устройство HDC2080 представляет собой встроенный датчик влажности и температуры, который обеспечивает высокую точность измерений при очень низком энергопотреблении в небольшом корпусе DFN. Емкостный датчик включает новые встроенные цифровые функции и нагревательный элемент для отвода конденсата и влаги. Цифровые функции HDC2080 включают в себя программируемые пороги прерываний для обеспечения предупреждений и пробуждения системы без необходимости непрерывного мониторинга системы микроконтроллером. При сочетании с программируемыми интервалами дискретизации, низким энергопотреблением и поддержкой напряжения питания 1,8 В, HDC2080 предназначен для систем с батарейным питанием.


HDC2080 обеспечивает высокую точность измерений для широкого спектра приложений мониторинга окружающей среды и Интернета вещей (IoT), таких как интеллектуальные термостаты и умные домашние помощники. Для конструкций, где область печатных плат является критической, доступна опция с компактным корпусом CSP в версии HDC2010 с полной программной совместимостью с HDC2080.


Для приложений с жесткими ограничениями по энергопотреблению автоматический режим измерения позволяет HDC2080 автоматически инициировать измерения температуры и влажности. Эта функция позволяет пользователям настраивать микроконтроллер в режим глубокого сна, поскольку так HDC2080 больше не зависит от микроконтроллера для запуска измерений.


Программируемые пороговые значения температуры и влажности в HDC2080 позволяют устройству отправлять аппаратное прерывание, чтобы при необходимости активировать микроконтроллер. Кроме того, в этом случае энергопотребление HDC2080 значительно снижается, что помогает свести к минимуму самонагрев и повысить точность измерений. HDC2080 откалиброван на заводе с точностью по температуре до 0,2 ° C и с точностью по относительной влажности 2%.


датчик температуры и влажности HDC2080

Характеристики HDC2080:


  • Диапазон относительной влажности: от 0% до 100%
  • Точность влажности: ± 2% (стандартная), ± 3% (максимальная)
  • Точность температуры: ± 0,2 ° C (стандартная), ± 0,4 ° C (максимум)
  • Ток в спящем режиме: 50 нА (стандартно), 100 нА (максимум)
  • Средний потребляемый ток (1 измерение в секунду):
  • 300 нА: только относительная влажность (11 бит)
  • 550 нА: относительная влажность % (11 бит) + температура (11 бит)
  • Эксплуатационная температура: от –40 ° C до 85 ° C
  • Функциональная температура: от –40 ° C до 125 ° C
  • Диапазон напряжения питания: от 1,62 В до 3,6 В

Схема подключения ESP32 к датчику температуры и влажности HDC2080 показана далее.


ESP32 и датчик температуры и влажности HDC2080 с малым энергопотреблением

Теперь необходимо запрограммировать ESP32 с помощью приведенного далее кода. В программе используется специальная библиотека для HDC2080 (github.com/tinkeringtech/HDC2080_breakout).



#include <HDC2080.h>
 
#define ADDR 0x40
HDC2080 sensor(ADDR);
 
float temperature = 0, humidity = 0;
 
void setup() {
 
Serial.begin(9600);
Serial.println("TinkeringTech HDC2080 Test");
 
// Инициализация связи I2C
sensor.begin();
 
// Начнем со сброса устройства
sensor.reset();
 
// Настроим зону комфорта
sensor.setHighTemp(48); // Высокая температура 28C
sensor.setLowTemp(2); // Низкая температура 22С
sensor.setHighHumidity(95); // Высокая влажность 55%
sensor.setLowHumidity(10); // Низкая влажность 40%
 
// Настроим измерения
sensor.setMeasurementMode(TEMP_AND_HUMID); // Установим измерения для температуры и влажности
sensor.setRate(ONE_HZ); // Установим частоту измерения на 1 Гц
sensor.setTempRes(FOURTEEN_BIT);
sensor.setHumidRes(FOURTEEN_BIT);
 
// начать измерения
sensor.triggerMeasurement();
}
 
void loop() {
 
Serial.print("Temperature (C): ");
Serial.print(sensor.readTemp());
Serial.print("\t\tHumidity (%): ");
Serial.println(sensor.readHumidity());
 
// Подождем пару секунд до следующего измерения
delay(2000);
 
}

Откройте последовательный монитор, и вы должны увидеть что-то вроде этого:


Temperature (C): 23.75 Humidity (%): 46.44
Temperature (C): 23.82 Humidity (%): 46.40
Temperature (C): 23.79 Humidity (%): 46.43
Temperature (C): 23.79 Humidity (%): 46.39
Temperature (C): 23.79 Humidity (%): 46.41
Temperature (C): 23.80 Humidity (%): 46.39



© digitrode.ru


Теги: ESP32, датчик температуры, датчик влажности



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий