Мазмұны:

HDC1000 мен бөлшек фотонының көмегімен температура мен ылғалдылықты өлшеу: 4 қадам
HDC1000 мен бөлшек фотонының көмегімен температура мен ылғалдылықты өлшеу: 4 қадам

Бейне: HDC1000 мен бөлшек фотонының көмегімен температура мен ылғалдылықты өлшеу: 4 қадам

Бейне: HDC1000 мен бөлшек фотонының көмегімен температура мен ылғалдылықты өлшеу: 4 қадам
Бейне: HUARONG HDC1000 Двухкомпонентное литье стекла заднего фонаря 2024, Қараша
Anonim
Image
Image

HDC1000 - өте төмен қуатта өлшеудің дәлдігін қамтамасыз ететін кіріктірілген температура сенсоры бар цифрлық ылғалдылық сенсоры. Құрылғы жаңа сыйымдылық сенсорының негізінде ылғалдылықты өлшейді. Ылғалдылық пен температура сенсорлары зауытта калибрленген. Ол -40 ° C -тан +125 ° C -қа дейінгі температура аралығында жұмыс істейді.

Бұл оқулықта HDC1000 сенсорлық модулінің фотонды бөлшектермен байланысы суреттелген. Температура мен ылғалдылық мәндерін оқу үшін біз I2c адаптері бар бөлшектерді қолдандық, бұл I2C адаптері сенсорлық модульге қосылуды жеңіл әрі сенімді етеді.

1 -қадам: Қажетті жабдық:

Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық
Қажетті жабдық

Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:

1. HDC1000

2. Фотондық бөлшектер

3. I2C кабелі

4. Бөлшек фотонға арналған I2C қалқаны

2 -қадам: Жабдықты қосу:

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Аппаратты қосу бөлімі негізінен сенсор мен фотон бөлшектері арасындағы сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:

HDC1000 I2C режимінде жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.

Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз.

Сізге тек төрт сым қажет! Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.

Бұл байланыстар жоғарыдағы суреттерде көрсетілген.

3 -қадам: Температура мен ылғалдылықты өлшеу коды:

Температура мен ылғалдылықты өлшеу коды
Температура мен ылғалдылықты өлшеу коды

Енді бөлшектер кодынан бастайық.

Бөлшекпен сенсорлық модульді пайдалану кезінде біз application.h және spark_wiring_i2c.h кітапханасын қосамыз. «application.h» және spark_wiring_i2c.h кітапханасы сенсор мен бөлшек арасындағы i2c байланысын жеңілдететін функцияларды қамтиды.

Пайдаланушыға ыңғайлы болу үшін бөлшектердің толық коды төменде берілген:

#қосу

#қосу

// HDC1000 I2C мекенжайы - 0x40 (64)

#анықтайтын Addr 0x40

қос cTemp = 0,0, fTemp = 0,0, ылғалдылық = 0,0;

int temp = 0, hum = 0;

жарамсыз орнату ()

{

// Айнымалыны орнатыңыз

Particle.variable («i2cdevice», «HDC1000»);

Бөлшек.өзгермелі («ылғалдылық», ылғалдылық);

Particle.variable («cTemp», cTemp);

// I2C байланысын бастаңыз

Wire.begin ();

// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600

Serial.begin (9600);

// I2C берілуін бастау

Wire.beginTransmission (Addr);

// Конфигурация регистрін таңдаңыз

Wire.write (0x02);

// Температура, ылғалдылық қосылған, ажыратымдылық = 14 бит, жылытқыш қосулы

Wire.write (0x30);

// I2C берілуін тоқтату

Wire.endTransmission ();

кешіктіру (300);

}

бос цикл ()

{

қол қойылмаған 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 ();

}

// Деректерді түрлендіру

temp = ((деректер [0] * 256) + деректер [1]);

cTemp = (temp / 65536.0) * 165.0 - 40;

fTemp = cTemp * 1.8 + 32;

// I2C берілуін бастау

Wire.beginTransmission (Addr);

// Ылғалдылықты өлшеу пәрменін жіберіңіз

Wire.write (0x01);

// I2C берілуін тоқтату

Wire.endTransmission ();

кешіктіру (500);

// 2 байт деректерді сұрау

Wire.requestFrom (Addr, 2);

// 2 байт деректерді оқу

// temp msb, temp lsb

егер (Wire.available () == 2)

{

деректер [0] = Wire.read ();

деректер [1] = Wire.read ();

}

// Деректерді түрлендіру

hum = ((деректер [0] * 256) + деректер [1]);

ылғалдылық = (хум / 65536,0) * 100,0;

// Деректерді бақылау тақтасына шығару

Particle.publish («Салыстырмалы ылғалдылық:», Жол (ылғалдылық));

кешіктіру (1000);

Particle.publish («Цельсий бойынша температура:», String (cTemp));

кешіктіру (1000);

Particle.publish («Фаренгейт температурасы:», String (fTemp));

кешіктіру (1000);

}

Particle.variable () функциясы сенсордың шығысын сақтау үшін айнымалылар жасайды және Particle.publish () функциясы сайттың бақылау тақтасында шығуды көрсетеді.

Сенсор шығысы жоғарыдағы суретте көрсетілген.

4 -қадам: Өтініштер:

Қолданбалар
Қолданбалар

HDC1000 жылыту, желдету және кондиционерлеу (HVAC), ақылды термостаттар мен бөлме мониторларында қолдануға болады. Бұл сенсор сонымен қатар принтерлерде, қол өлшегіштерде, медициналық құрылғыларда, жүктерді тасымалдауда, сондай -ақ автокөлік әйнектерін тазартуда қолданылады.

Ұсынылған: