Բովանդակություն:
- Քայլ 1: Պահանջվում է սարքավորում
- Քայլ 2: Սարքավորման միացում
- Քայլ 3. Խոնավության և ջերմաստիճանի չափման կոդ
- Քայլ 4: Դիմումներ
Video: Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HTS221 և Arduino Nano: 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
HTS221- ը ծայրահեղ կոմպակտ տարողունակ թվային սենսոր է հարաբերական խոնավության և ջերմաստիճանի համար: Այն ներառում է զգայուն տարր և խառը ազդանշանների կիրառման հատուկ ինտեգրալ միացում (ASIC) `թվային սերիական միջերեսների միջոցով չափման տեղեկատվությունը տրամադրելու համար: Ինտեգրված այսքան շատ հատկանիշներով սա խոնավության և ջերմաստիճանի կրիտիկական չափումների ամենահարմար սենսորներից է:
Այս ձեռնարկում պատկերված է HTS221 սենսորային մոդուլի միջերեսումը arduino nano- ի հետ: Խոնավության և ջերմաստիճանի արժեքները կարդալու համար մենք օգտագործել ենք arduino- ն I2c ադապտերով: Այս I2C ադապտերը դյուրին և հուսալի է դարձնում սենսորային մոդուլի հետ կապը:
Քայլ 1: Պահանջվում է սարքավորում
Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.
1. HTS221
2. Արդուինո Նանո
3. I2C մալուխ
4. I2C վահան Arduino Nano- ի համար
Քայլ 2: Սարքավորման միացում
Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և arduino nano- ի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.
HTS221- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:
Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք:
Ձեզ անհրաժեշտ է չորս լար: Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:
Այս կապերը ցուցադրվում են վերը նշված նկարներում:
Քայլ 3. Խոնավության և ջերմաստիճանի չափման կոդ
Եկեք հիմա սկսենք Arduino կոդով:
Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք Wire.h գրադարանը: «Լար» գրադարանը պարունակում է գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և Arduino տախտակի միջև:
Ամբողջ Arduino ծածկագիրը տրված է ստորև ՝ օգտագործողի հարմարության համար.
#ներառում
// HTS221 I2C հասցեն ՝ 0x5F
#սահմանեք Addr 0x5F
դատարկ կարգավորում ()
{
// Նախնականացնել I2C հաղորդակցությունը որպես ՎԱՐՊԵՏ
Wire.begin ();
// Նախնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600
Serial.begin (9600);
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք միջին կազմաձևման գրանցամատյան
Wire.write (0x10);
// averageերմաստիճանի միջին նմուշներ = 256, Խոնավության միջին նմուշներ = 512
Wire.write (0x1B);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք հսկիչ գրանցամատյան 1
Wire.write (0x20);
// Միացում, անընդհատ թարմացում, Տվյալների ելքային արագություն = 1 Հց
Wire.write (0x85);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
ուշացում (300);
}
դատարկ շրջան ()
{
անստորագիր int տվյալներ [2];
անստորագիր int val [4];
անստորագիր int H0, H1, H2, H3, T0, T1, T2, T3, հում;
// Խոնավության բարձրացման արժեքներ
համար (int i = 0; i <2; i ++)
{
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write ((48 + i));
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
տվյալներ = Wire.read ();
}
}
// Փոխարկել Խոնավության տվյալները
H0 = տվյալներ [0] / 2;
H1 = տվյալներ [1] / 2;
համար (int i = 0; i <2; i ++)
{
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write ((54 + i));
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
տվյալներ = Wire.read ();
}
}
// Փոխարկել Խոնավության տվյալները
H2 = (տվյալներ [1] * 256.0) + տվյալներ [0];
համար (int i = 0; i <2; i ++)
{
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write ((58 + i));
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
տվյալներ = Wire.read ();
}
}
// Փոխարկել Խոնավության տվյալները
H3 = (տվյալներ [1] * 256.0) + տվյալներ [0];
// Temերմաստիճանի ազատման արժեքներ
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write (0x32);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write (0x33);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write (0x35);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
raw = Wire.read ();
}
հում = հում & 0x0F;
// Փոխակերպեք ջերմաստիճանի բացթողնման արժեքները 10 բիթ
T0 = ((հում և 0x03) * 256) + T0;
T1 = ((հում և 0x0C) * 64) + T1;
համար (int i = 0; i <2; i ++)
{
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write ((60 + i));
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
տվյալներ = Wire.read ();
}
}
// Փոխարկել տվյալները
T2 = (տվյալներ [1] * 256.0) + տվյալներ [0];
համար (int i = 0; i <2; i ++)
{
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write ((62 + i));
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 1 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 1);
// Կարդացեք տվյալների 1 բայթ
եթե (Wire.available () == 1)
{
տվյալներ = Wire.read ();
}
}
// Փոխարկել տվյալները
T3 = (տվյալներ [1] * 256.0) + տվյալներ [0];
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ուղարկեք տվյալների գրանցամատյան
Wire.write (0x28 | 0x80);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 4 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 4);
// Կարդացեք 4 բայթ տվյալներ
// խոնավություն msb, խոնավություն lsb, temp msb, temp lsb
եթե (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Փոխարկել տվյալները
բոց խոնավություն = (val [1] * 256.0) + val [0];
խոնավություն = ((1.0 * H1) - (1.0 * H0)) * (1.0 * խոնավություն - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
float fTemp = (cTemp * 1.8) + 32;
// Ելքային տվյալները սերիական մոնիտորին
Serial.print ("Հարաբերական խոնավություն:");
Serial.print (խոնավություն);
Serial.println (" % RH");
Serial.print ("Cերմաստիճանը Celsius:");
Serial.print (cTemp); Serial.println ("C");
Serial.print («Fերմաստիճանը Ֆարենհայտում.»);
Serial.print (fTemp);
Serial.println ("F");
ուշացում (500);
}
Լարային գրադարանում Wire.write () և Wire.read () օգտագործվում են հրամանները գրելու և սենսորի ելքը կարդալու համար:
Serial.print () և Serial.println () օգտագործվում են սենսորի ելքը Arduino IDE- ի սերիական մոնիտորի վրա ցուցադրելու համար:
Սենսորի ելքը ցուցադրվում է վերևի նկարում:
Քայլ 4: Դիմումներ
HTS221- ը կարող է օգտագործվել սպառողական տարբեր ապրանքների մեջ, ինչպիսիք են օդի խոնավացուցիչները և սառնարանները և այլն: Այս սենսորը նաև իր կիրառությունն է գտնում ավելի լայն ասպարեզում, ներառյալ Smart home automation, Industrial automation, շնչառական սարքավորումներ, ակտիվների և ապրանքների հետևում:
Խորհուրդ ենք տալիս:
Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և Arduino Nano: 4 քայլ
Խոնավության և ջերմաստիճանի չափում HIH6130- ի և Arduino Nano- ի միջոցով. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է `թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HTS221 և ազնվամորի Pi: 4 քայլ
Խոնավության և ջերմաստիճանի չափում HTS221- ի և Raspberry Pi- ի միջոցով. HTS221- ը ծայրահեղ կոմպակտ տարողունակ թվային սենսոր է հարաբերական խոնավության և ջերմաստիճանի համար: Այն ներառում է զգայուն տարր և խառը ազդանշանների կիրառման հատուկ ինտեգրալ միացում (ASIC) ՝ թվային սերիայի միջոցով չափման տեղեկատվությունը տրամադրելու համար
Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և ազնվամորի Պի. 4 քայլ
Խոնավության և ջերմաստիճանի չափում HIH6130- ի և Raspberry Pi- ի միջոցով. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է `թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
Խոնավության և ջերմաստիճանի չափում `օգտագործելով HIH6130 և մասնիկի ֆոտոն` 4 քայլ
Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և մասնիկի ֆոտոն. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է ՝ թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
Խոնավության և ջերմաստիճանի չափում `օգտագործելով HTS221 և մասնիկի ֆոտոն` 4 քայլ
Խոնավության և ջերմաստիճանի չափում HTS221- ի և մասնիկի ֆոտոնի միջոցով. HTS221- ը ծայրահեղ կոմպակտ տարողունակ թվային սենսոր է հարաբերական խոնավության և ջերմաստիճանի համար: Այն ներառում է զգայուն տարր և խառը ազդանշանների կիրառման հատուկ ինտեգրալ միացում (ASIC) ՝ թվային սերիայի միջոցով չափման տեղեկատվությունը տրամադրելու համար