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

 
» » » 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, датчик температуры, датчик влажности




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

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

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