Orodha ya maudhui:

Upimaji wa Unyevu na Joto Kutumia HTS221 na Particle Photon: 4 Hatua
Upimaji wa Unyevu na Joto Kutumia HTS221 na Particle Photon: 4 Hatua

Video: Upimaji wa Unyevu na Joto Kutumia HTS221 na Particle Photon: 4 Hatua

Video: Upimaji wa Unyevu na Joto Kutumia HTS221 na Particle Photon: 4 Hatua
Video: Часть 1. Аудиокнига Эдгара Райса Берроуза «Принцесса Марса» (гл. 01–10) 2024, Juni
Anonim
Image
Image

HTS221 ni sensorer ya hali ya juu ya hali ya hewa yenye unyevu na joto. Inajumuisha kipengee cha kuhisi na matumizi ya ishara iliyochanganywa mzunguko maalum uliounganishwa (ASIC) kutoa habari ya kipimo kupitia njia kuu za dijiti. Imejumuishwa na huduma nyingi hii ni moja ya sensorer zinazofaa zaidi kwa vipimo muhimu vya unyevu na joto.

Katika mafunzo haya ujumuishaji wa moduli ya sensorer HTS221 na chembe chembe imeonyeshwa. Kusoma viwango vya unyevu na joto, tumetumia chembe na adapta ya I2c. Adapter hii ya I2C inafanya unganisho kwa moduli ya sensa iwe rahisi na ya kuaminika.

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo tunahitaji kutimiza lengo letu ni pamoja na vifaa vifuatavyo vya vifaa:

1. HTS221

2. Particle Photon

3. Cable ya I2C

4. I2C Shield kwa chembe photon

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uhusiano wa wiring unaohitajika kati ya sensa na chembe chembe. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

HTS221 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic.

Unachohitaji ni waya nne! Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari ya Upimaji wa Unyevu na Joto:

Nambari ya Upimaji wa Unyevu na Joto
Nambari ya Upimaji wa Unyevu na Joto

Hebu tuanze na nambari ya chembe sasa.

Wakati wa kutumia moduli ya sensorer na chembe, tunajumuisha application.h na maktaba ya spark_wiring_i2c.h. "application.h" na maktaba ya spark_wiring_i2c.h ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na chembe.

Nambari nzima ya chembe imepewa hapa chini kwa urahisi wa mtumiaji:

# pamoja

# pamoja

// Anwani ya HTS221 I2C ni 0x5F

#fafanua Addr 0x5F

unyevu mara mbili = 0.0;

cTemp mbili = 0.0;

fTemp mara mbili = 0.0;

muda = 0;

kuanzisha batili ()

{

// Weka tofauti

Chembe. Hubadilika ("i2cdevice", "HTS221");

Chembe inaweza kubadilika ("Unyevu", unyevu);

Chembe. Hubadilika ("cTemp", cTemp);

// Anzisha mawasiliano ya I2C kama MASTER

Wire.begin ();

// Anzisha mawasiliano ya serial, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usanidi wastani

Andika waya (0x10);

// Sampuli za wastani wa joto = 256, Sampuli za wastani wa unyevu = 512

Andika waya (0x1B);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti1

Andika waya (0x20);

// Power ON, Kuendelea kusasisha, kiwango cha pato la data = 1 Hz

Andika waya (0x85);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyowekwa saini [2];

unsigned int val [4];

unsigned int H0, H1, H2, H3, T0, T1, T2, T3, mbichi;

// Thamani za upunguzaji wa unyevu

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((48 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H0 = data [0] / 2;

H1 = data [1] / 2;

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((54 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H2 = (data [1] * 256.0) + data [0];

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((58 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data ya Unyevu

H3 = (data [1] * 256.0) + data [0];

// Thamani za upigaji joto

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x32);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

T0 = soma kwa waya ();

}

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x33);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

T1 = soma kwa waya ();

}

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x35);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

ghafi = waya.soma ();

}

mbichi = mbichi & 0x0F;

// Badilisha viwango vya joto vya joto kuwa 10-bits

T0 = ((mbichi & 0x03) * 256) + T0;

T1 = ((mbichi & 0x0C) * 64) + T1;

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((60 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data

T2 = (data [1] * 256.0) + data [0];

kwa (int i = 0; i <2; i ++)

{

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya ((62 + i));

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba 1 byte ya data

Ombi la Wire. Toka (Addr, 1);

// Soma 1 ka data

ikiwa (Waya haipatikani () == 1)

{

data = soma kwa waya ();

}

}

// Badilisha data

T3 = (data [1] * 256.0) + data [0];

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Tuma rejista ya data

Andika waya (0x28 | 0x80);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba ka 4 za data

Ombi la Wire. Toka (Addr, 4);

// Soma ka 4 za data

// unyevu msb, unyevu lsb, temp msb, temp lsb

ikiwa (Waya haipatikani () == 4)

{

val [0] = Soma kwa waya ();

val [1] = Soma kwa waya ();

val [2] = soma ya waya ();

val [3] = soma ya waya ();

}

// Badilisha data

unyevu = (val [1] * 256.0) + val [0];

unyevu = ((1.0 * H1) - (1.0 * H0)) * (1.0 * unyevu - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

temp = (val [3] * 256) + val [2]; cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);

fTemp = (cTemp * 1.8) + 32;

// Pato la data kwenye dashibodi

Chembe.chapisha ("Unyevu wa jamaa:", Kamba (unyevu));

kuchelewesha (1000);

Kuchapisha chembe ("Joto katika Celsius:", Kamba (cTemp));

kuchelewesha (1000);

Kuchapisha chembe ("Joto katika Fahrenheit:", Kamba (fTemp));

kuchelewesha (1000);

}

Kazi ya Particle.variable () huunda vigeuzi vya kuhifadhi pato la sensor na Particle.publish () kazi inaonyesha pato kwenye dashibodi ya tovuti.

Pato la sensorer linaonyeshwa kwenye picha hapo juu kwa kumbukumbu yako.

Hatua ya 4: Maombi:

Maombi
Maombi

HTS221 inaweza kuajiriwa katika bidhaa anuwai za watumiaji kama viboreshaji hewa na majokofu n.k. Sensor hii pia hupata matumizi yake katika uwanja mpana pamoja na mitambo ya Smart nyumbani, mitambo ya Viwanda, vifaa vya kupumua, ufuatiliaji wa mali na bidhaa.

Ilipendekeza: