2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
HDC1000 - это цифровой датчик влажности со встроенным датчиком температуры, который обеспечивает превосходную точность измерения при очень малой мощности. Устройство измеряет влажность на основе нового емкостного датчика. Датчики влажности и температуры откалиброваны на заводе. Он работает в полном диапазоне температур от -40 ° C до + 125 ° C. Вот его демонстрация с фотоном частицы.
Шаг 1: Что вам нужно..
1. Частичный фотон
2. HDC1000
3. Кабель I²C
4. Экран I²C для частиц фотона
Шаг 2: Подключение:
Возьмите экран I2C для фотона частицы и осторожно наденьте его на контакты фотона частицы.
Затем подключите один конец кабеля I2C к датчику HDC1000, а другой конец - к экрану I2C.
Подключения показаны на картинке выше.
Шаг 3: Код:
Код частицы для HDC1000 можно загрузить из нашего репозитория GitHub - Dcube Store.
Вот ссылка на то же самое:
github.com/DcubeTechVentures/HDC1000…
Техническое описание HDC1000 можно найти здесь:
www.ti.com.cn/cn/lit/ds/symlink/hdc1000.pdf
Мы использовали две библиотеки для кода частиц: application.h и spark_wiring_i2c.h. Библиотека Spark_wiring_i2c требуется для облегчения связи I2C с датчиком.
Вы также можете скопировать код отсюда, он выглядит следующим образом:
// Распространяется по свободной лицензии.
// Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
// HDC1000
// Этот код разработан для работы с мини-модулем HDC1000_I2CS I2C, доступным в Dcube Store.
#включают
#включают
// I2C-адрес HDC1000 0x40 (64)
#define Addr 0x40
float cTemp = 0,0, fTemp = 0,0, влажность = 0,0;
int temp = 0, hum = 0;
установка void ()
{
// Устанавливаем переменную
Particle.variable («i2cdevice», «HDC1000»);
Particle.variable («влажность», влажность);
Particle.variable ("cTemp", cTemp);
// Инициализируем связь 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 ();
}
// Конвертируем данные
temp = ((данные [0] * 256) + данные [1]);
cTemp = (temp / 65536.0) * 165.0 - 40;
fTemp = cTemp * 1,8 + 32;
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем команду измерения влажности
Wire.write (0x01);
// Остановка передачи I2C
Wire.endTransmission ();
задержка (500);
// Запрос 2 байта данных
Wire.requestFrom (Адрес, 2);
// Считываем 2 байта данных
// temp msb, temp lsb
если (Wire.available () == 2)
{
данные [0] = Wire.read ();
данные [1] = Wire.read ();
}
// Конвертируем данные
hum = ((данные [0] * 256) + данные [1]);
влажность = (hum / 65536.0) * 100.0;
// Выводим данные в дашборд
Particle.publish («Относительная влажность:», String (влажность));
Particle.publish («Температура в градусах Цельсия:», String (cTemp));
Particle.publish («Температура по Фаренгейту:», String (fTemp));
задержка (1000);
}
Шаг 4: Приложения:
HDC1000 может использоваться в системах отопления, вентиляции и кондиционирования (HVAC), интеллектуальных термостатах и комнатных мониторах. Этот датчик также находит свое применение в принтерах, портативных счетчиках, медицинских приборах, грузовых автомобилях, а также в противотуманных устройствах для лобового стекла.