Բովանդակություն:

MCP9808- ի և Particle Photon- ի միջոցով ջերմաստիճանի մոնիտորինգ. 4 քայլ
MCP9808- ի և Particle Photon- ի միջոցով ջերմաստիճանի մոնիտորինգ. 4 քայլ

Video: MCP9808- ի և Particle Photon- ի միջոցով ջերմաստիճանի մոնիտորինգ. 4 քայլ

Video: MCP9808- ի և Particle Photon- ի միջոցով ջերմաստիճանի մոնիտորինգ. 4 քայլ
Video: PTRoboticsTV - 27-09-2014 - Apresentação de Novidades Adafruit 2024, Հուլիսի
Anonim
Image
Image

MCP9808- ը բարձր ճշգրիտ թվային ջերմաստիճանի տվիչ է ± 0.5 ° C I2C մինի մոդուլ: Նրանք մարմնավորված են օգտագործողների կողմից ծրագրավորվող գրանցամատյաններով, որոնք հեշտացնում են ջերմաստիճանի զգայուն ծրագրերը: MCP9808 բարձր ճշգրտության ջերմաստիճանի տվիչը ձևի գործոնով և բանականությամբ դարձել է արդյունաբերական ստանդարտ ՝ ապահովելով տրամաչափված, գծավորված սենսորային ազդանշաններ թվային, I2C ձևաչափով:

Այս ձեռնարկում ցուցադրվել է MCP9808 սենսորային մոդուլի և մասնիկի ֆոտոնի հետ փոխազդեցությունը: Theերմաստիճանի արժեքները կարդալու համար մենք օգտագործել ենք ազնվամորու pi- ն I2c ադապտերով: Այս I2C ադապտերը սենսորային մոդուլին միացումը դարձնում է ավելի հեշտ և հուսալի:

Քայլ 1: Պահանջվում է սարքավորում

Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում
Պահանջվող սարքավորում

Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.

1. MCP9808

2. Ֆոտոն մասնիկ

3. I2C մալուխ

4. I2C վահան մասնիկի ֆոտոնի համար

Քայլ 2: Սարքավորման միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և մասնիկ ֆոտոնի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.

MCP9808- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:

Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք: Ձեզ անհրաժեշտ է չորս լար:

Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:

Այս կապերը ցուցադրվում են վերը նշված նկարներում:

Քայլ 3. Codeերմաստիճանի չափման կոդ

Codeերմաստիճանի չափման կոդ
Codeերմաստիճանի չափման կոդ

Եկեք հիմա սկսենք մասնիկների ծածկագրից:

Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք application.h և spark_wiring_i2c.h գրադարանը: «application.h» և spark_wiring_i2c.h գրադարանը պարունակում են գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և մասնիկի միջև:

Օգտվողի հարմարության համար ստորև բերված է մասնիկների ամբողջ ծածկագիրը.

#ներառում

#ներառում

// MCP9808 I2C հասցեն ՝ 0x18 (24)

#սահմանել Addr 0x18

float cTemp = 0, fTemp = 0;

դատարկ կարգավորում ()

{

// Սահմանել փոփոխական

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

Particle.variable («cTemp», cTemp);

// Նախնականացնել I2C հաղորդակցությունը որպես ՎԱՐՊԵՏ

Wire.begin ();

// Սկզբնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600

Serial.begin (9600);

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք կազմաձևման գրանցամատյան

Wire.write (0x01);

// Շարունակական փոխակերպման ռեժիմ, Power-up լռելյայն

Wire.write (0x00);

Wire.write (0x00);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Սկսել I2C փոխանցումը

Wire.beginTransmission (Addr);

// Ընտրեք բանաձևի գրանցում

Wire.write (0x08);

// Բանաձեւ = +0.0625 / Գ

Wire.write (0x03);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

ուշացում (300);

}

դատարկ շրջան ()

{

անստորագիր int տվյալներ [2];

// Սկսում է I2C հաղորդակցությունը

Wire.beginTransmission (Addr);

// Ընտրեք տվյալների գրանցամատյան

Wire.write (0x05);

// Դադարեցնել I2C փոխանցումը

Wire.endTransmission ();

// Պահանջել 2 բայթ տվյալներ

Մետաղալար. Խնդրում ենք (Addr, 2);

// Կարդացեք 2 բայթ տվյալներ

// temp msb, temp lsb

եթե (Wire.available () == 2)

{

տվյալներ [0] = Wire.read ();

տվյալներ [1] = Wire.read ();

}

ուշացում (300);

// Տեղափոխեք տվյալները 13 բիթ

int temp = ((տվյալներ [0] & 0x1F) * 256 + տվյալներ [1]);

եթե (ջերմաստիճան> 4095)

{

ջերմաստիճան -= 8192;

}

cTemp = temp * 0.0625;

fTemp = cTemp * 1.8 + 32;

// Տվյալների մուտքագրում վահանակ

Particle.publish ("Cերմաստիճանը Celsius:", լարային (cTemp));

Particle.publish ("ahերմաստիճանը Ֆարենհայտում.", Լարային (fTemp));

ուշացում (500);

}

Particle.variable () գործառույթը ստեղծում է սենսորի ելքը պահելու փոփոխականները, իսկ Particle.publish () գործառույթը ցուցադրում է ելքը կայքի վահանակի վրա:

Սենսորային ելքը ցուցադրվում է վերևի նկարում ՝ ձեր տեղեկանքի համար:

Քայլ 4: Դիմումներ

Դիմումներ
Դիմումներ

MCP9808 Թվային ջերմաստիճանի տվիչը ունի մի քանի արդյունաբերական մակարդակի ծրագրեր, որոնք ներառում են արդյունաբերական սառնարաններ և սառնարաններ, ինչպես նաև սննդի տարբեր պրոցեսորներ: Այս տվիչը կարող է օգտագործվել տարբեր անհատական համակարգիչների, սերվերների, ինչպես նաև համակարգչի այլ ծայրամասային սարքերի համար:

Խորհուրդ ենք տալիս: