Съдържание:

Измерване на температура и влажност с помощта на HDC1000 и Arduino Nano: 4 стъпки
Измерване на температура и влажност с помощта на HDC1000 и Arduino Nano: 4 стъпки

Видео: Измерване на температура и влажност с помощта на HDC1000 и Arduino Nano: 4 стъпки

Видео: Измерване на температура и влажност с помощта на HDC1000 и Arduino Nano: 4 стъпки
Видео: Измерение влажности воздуха в домашних условиях 2024, Юли
Anonim
Image
Image

HDC1000 е цифров сензор за влажност с вграден температурен сензор, който осигурява отлична точност на измерване при много ниска мощност. Устройството измерва влажността въз основа на нов капацитивен сензор. Сензорите за влажност и температура са фабрично калибрирани. Той е функционален в пълния температурен диапазон от -40 ° C до +125 ° C.

В този урок е илюстрирано взаимодействието на сензорния модул HDC1000 с arduino nano. За да прочетете стойностите на температурата и влажността, използвахме arduino с адаптер I2c, който прави връзката с сензорния модул лесна и по -надеждна.

Стъпка 1: Изисква се хардуер:

Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер
Необходим хардуер

Материалите, от които се нуждаем за постигане на целта ни, включват следните хардуерни компоненти:

1. HDC1000

2. Arduino Nano

3. I2C кабел

4. I2C щит за Arduino Nano

Стъпка 2: Свързване на хардуера:

Хардуерно свързване
Хардуерно свързване
Хардуерно свързване
Хардуерно свързване

Разделът за свързване на хардуера основно обяснява необходимите кабелни връзки между сензора и arduino nano. Осигуряването на правилни връзки е основната необходимост, докато работите върху всяка система за желания изход. И така, необходимите връзки са както следва:

HDC1000 ще работи над I2C. Ето примерната електрическа схема, демонстрираща как да свържете всеки интерфейс на сензора.

Извън кутията, дъската е конфигурирана за I2C интерфейс, като такава препоръчваме да използвате тази връзка, ако иначе не сте агностици.

Всичко, от което се нуждаете, са четири проводника! Изискват се само четири връзки Vcc, Gnd, SCL и SDA щифтове и те са свързани с помощта на I2C кабел.

Тези връзки са показани на снимките по -горе.

Стъпка 3: Код за измерване на температура и влажност:

Код за измерване на температура и влажност
Код за измерване на температура и влажност

Нека започнем с кода arduino сега.

Докато използваме сензорния модул с arduino, ние включваме библиотеката Wire.h. Библиотеката "Wire" съдържа функциите, които улесняват i2c комуникацията между сензора и платката arduino.

Целият код на arduino е даден по -долу за удобство на потребителя:

#включва

// HDC1000 I2C адресът е 0x40 (64)

#define Addr 0x40

void setup ()

{

// Инициализира I2C комуникацията като MASTER

Wire.begin ();

// Инициализира серийна комуникация, зададена скорост на предаване = 9600

Serial.begin (9600);

// Започва I2C комуникация

Wire.beginTransmission (Addr);

// Изберете конфигурационен регистър

Wire.write (0x02);

// Температура, включена влажност, разделителна способност = 14 бита, нагревател включен

Wire.write (0x30);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (300);

}

void loop ()

{

беззнакови int данни [2];

// Започва I2C комуникация

Wire.beginTransmission (Addr);

// Изпращане на команда за измерване на темп

Wire.write (0x00);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (500);

// Искане на 2 байта данни

Wire.requestFrom (Addr, 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 (Addr);

// Изпращане на команда за измерване на влажност

Wire.write (0x01);

// Спиране на I2C предаването

Wire.endTransmission ();

забавяне (500);

// Искане на 2 байта данни

Wire.requestFrom (Addr, 2);

// Прочетете 2 байта данни

// влажност msb, влажност lsb

ако (Wire.available () == 2)

{

данни [0] = Wire.read ();

данни [1] = Wire.read ();

}

// Конвертиране на данните

влажност на поплавъка = (данни [0] * 256) + данни [1];

влажност = (влажност / 65536,0) * 100,0;

// Извеждане на данни към сериен монитор

Serial.print ("Относителна влажност:");

Serial.print (влажност);

Serial.println (" %RH");

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), интелигентни термостати и стайни монитори. Този сензор намира своето приложение и в принтери, ръчни измервателни уреди, медицински изделия, доставка на товари, както и в автомобилно замъгляване на предното стъкло.

Препоръчано: