Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
HDC1000 - это цифровой датчик влажности со встроенным датчиком температуры, который обеспечивает превосходную точность измерения при очень малой мощности. Устройство измеряет влажность на основе нового емкостного датчика. Датчики влажности и температуры откалиброваны на заводе. Он работает в полном диапазоне температур от -40 ° C до + 125 ° C.
В этом руководстве было проиллюстрировано взаимодействие сенсорного модуля HDC1000 с Arduino nano. Для считывания значений температуры и влажности мы использовали Arduino с адаптером I2C. Этот адаптер I2C делает подключение к модулю датчика простым и надежным.
Шаг 1: Требуемое оборудование:
Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:
1. HDC1000
2. Arduino Nano
3. Кабель I2C
4. I2C Shield для Arduino Nano.
Шаг 2: Подключение оборудования:
В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Arduino nano. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:
HDC1000 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.
Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого.
Все, что вам нужно, это четыре провода! Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.
Эти соединения показаны на рисунках выше.
Шаг 3: Код для измерения температуры и влажности:
А теперь давайте начнем с кода Arduino.
При использовании сенсорного модуля с arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.
Полный код Arduino приведен ниже для удобства пользователя:
#включают
// I2C-адрес HDC1000 0x40 (64)
#define Addr 0x40
установка void ()
{
// Инициализируем связь I2C как МАСТЕР
Wire.begin ();
// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600
Serial.begin (9600);
// Запускает связь I2C
Wire.beginTransmission (адрес);
// Выбираем регистр конфигурации
Wire.write (0x02);
// Температура, влажность включены, разрешение = 14 бит, нагреватель включен
Wire.write (0x30);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (300);
}
пустой цикл ()
{
данные типа int без знака [2];
// Запускает связь I2C
Wire.beginTransmission (адрес);
// Отправляем команду измерения температуры
Wire.write (0x00);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (500);
// Запрос 2 байта данных
Wire.requestFrom (Адрес, 2);
// Считываем 2 байта данных
// temp msb, temp lsb
если (Wire.available () == 2)
{
данные [0] = Wire.read ();
данные [1] = Wire.read ();
}
// Конвертируем данные
int temp = (данные [0] * 256) + данные [1];
float cTemp = (temp / 65536.0) * 165.0 - 40;
float fTemp = cTemp * 1.8 + 32;
// Запускает связь I2C
Wire.beginTransmission (адрес);
// Отправляем команду измерения влажности
Wire.write (0x01);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (500);
// Запрос 2 байта данных
Wire.requestFrom (Адрес, 2);
// Считываем 2 байта данных
// влажность msb, влажность lsb
если (Wire.available () == 2)
{
данные [0] = Wire.read ();
данные [1] = Wire.read ();
}
// Конвертируем данные
плавающая влажность = (данные [0] * 256) + данные [1];
влажность = (влажность / 65536,0) * 100,0;
// Выводим данные на последовательный монитор
Serial.print («Относительная влажность:»);
Серийный отпечаток (влажность);
Serial.println («% относительной влажности»);
Serial.print («Температура в градусах Цельсия:»);
Serial.print (cTemp);
Serial.println ("C");
Serial.print («Температура по Фаренгейту:»);
Serial.print (fTemp);
Serial.println ("F");
задержка (500);
}
В библиотеке проводов Wire.write () и Wire.read () используются для записи команд и чтения выходного сигнала датчика.
Serial.print () и Serial.println () используются для отображения выходных данных датчика на последовательном мониторе Arduino IDE.
Выход датчика показан на картинке выше.
Шаг 4: Приложения:
HDC1000 может использоваться в системах отопления, вентиляции и кондиционирования (HVAC), интеллектуальных термостатах и комнатных мониторах. Этот датчик также находит свое применение в принтерах, портативных счетчиках, медицинских приборах, грузовых автомобилях, а также в противотуманных устройствах для лобового стекла.