Բովանդակություն:
Video: Particle Photon - MPL3115A2 Precision Altimeter Sensor Tutorial: 4 Steps
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
MPL3115A2- ն օգտագործում է MEMS ճնշման տվիչ ՝ I2C ինտերֆեյսով ՝ ճշգրիտ ճնշման/բարձրության և ջերմաստիճանի տվյալներ ապահովելու համար: Սենսորային ելքերը թվայնացվում են բարձր լուծման 24-բիթանոց ADC- ով: Ներքին մշակումը հեռացնում է փոխհատուցման առաջադրանքները ընդունող MCU համակարգից: Այն ունակ է հայտնաբերել միայն 0.05 կՊա -ի փոփոխություն, ինչը հավասար է 0.3 մ բարձրության փոփոխության: Ահա դրա ցուցադրումը մասնիկի ֆոտոնով:
Քայլ 1: Այն, ինչ ձեզ հարկավոր է..
1. Ֆոտոն մասնիկ
2. MPL3115A2
3. I²C մալուխ
4. I²C վահան մասնիկի ֆոտոնի համար
Քայլ 2: Միացումներ
Վերցրեք I2C վահանը մասնիկի ֆոտոնի համար և նրբորեն մղեք այն մասնիկի ֆոտոնի կապանքների վրա:
Այնուհետև I2C մալուխի մի ծայրը միացրեք MPL3115A2 սենսորին, իսկ մյուս ծայրը ՝ I2C վահանին:
Կապերը ցուցադրվում են վերևի նկարում:
Քայլ 3: Կոդ
MPL3115A2- ի մասնիկների ծածկագիրը կարելի է ներբեռնել մեր Github պահոցից-DCUBE Store:
Ահա հղումը:
Մասնիկների կոդի համար մենք օգտագործել ենք երկու գրադարան, որոնք են application.h և spark_wiring_i2c.h: Spark_wiring_i2c գրադարանը պահանջվում է սենսորի հետ I2C հաղորդակցությունը հեշտացնելու համար:
Այստեղից կարող եք նաև պատճենել կոդը, այն տրվում է հետևյալ կերպ.
// Տարածված է ազատ կամքի լիցենզիայով:
// Օգտագործեք այն ինչպես ցանկանում եք, շահույթ կամ անվճար, պայմանով, որ այն տեղավորվում է դրա հետ կապված աշխատանքների լիցենզիաներում:
// MPL3115A2
// Այս կոդը նախատեսված է MPL3115A2_I2CS I2C մինի մոդուլի հետ աշխատելու համար
#ներառում
#ներառում
// MPL3115A2 I2C հասցեն ՝ 0x60 (96)
#սահմանեք Addr 0x60
բոց cTemp = 0.0, fTemp = 0.0, ճնշում = 0.0, բարձրություն = 0.0;
int temp = 0, tHeight = 0; երկար pres = 0;
դատարկ կարգավորում ()
{
// Սահմանել փոփոխական
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable («cTemp», cTemp);
Մասնիկ. Փոփոխական («ճնշում», ճնշում);
Մասնիկ. Փոփոխական («բարձրություն», բարձրություն);
// Նախնականացնել I2C հաղորդակցությունը
Wire.begin ();
// Սկզբնականացնել սերիական հաղորդակցությունը, սահմանել բաուդ արագություն = 9600
Serial.begin (9600);
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք հսկիչ գրանցամատյան
Wire.write (0x26);
// Ակտիվ ռեժիմ, OSR = 128, բարձրաչափի ռեժիմ
Wire.write (0xB9);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք տվյալների կազմաձևման գրանցամատյան
Wire.write (0x13);
// Տվյալների պատրաստ իրադարձությունը միացված է բարձրության, ճնշման, ջերմաստիճանի համար
Wire.write (0x07);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
ուշացում (300);
}
դատարկ շրջան ()
{
անստորագիր int տվյալներ [6];
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք հսկիչ գրանցամատյան
Wire.write (0x26);
// Ակտիվ ռեժիմ, OSR = 128, բարձրաչափի ռեժիմ
Wire.write (0xB9);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
ուշացում (1000);
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք տվյալների գրանցամատյան
Wire.write (0x00);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Պահանջել 6 բայթ տվյալներ
Հաղորդալար. Խնդրում ենք (Addr, 6);
// Կարդացեք 6 բայթ տվյալներ 0x00 հասցեից (00)
// կարգավիճակ, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
եթե (Wire.available () == 6)
{
տվյալներ [0] = Wire.read ();
տվյալներ [1] = Wire.read ();
տվյալներ [2] = Wire.read ();
տվյալներ [3] = Wire.read ();
տվյալներ [4] = Wire.read ();
տվյալներ [5] = Wire.read ();
}
// Տվյալները փոխակերպեք 20 բիթ
tHeight = ((((երկար) տվյալներ [1] * (երկար) 65536) + (տվյալներ [2] * 256) + (տվյալներ [3] & 0xF0)) / 16);
temp = ((տվյալները [4] * 256) + (տվյալները [5] & 0xF0)) / 16;
բարձրություն = t Բարձրություն / 16.0;
cTemp = (ջերմաստիճան / 16.0);
fTemp = cTemp * 1.8 + 32;
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք հսկիչ գրանցամատյան
Wire.write (0x26);
// Ակտիվ ռեժիմ, OSR = 128, բարոմետր ռեժիմ
Wire.write (0x39);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
// Սկսել I2C փոխանցումը
Wire.beginTransmission (Addr);
// Ընտրեք տվյալների գրանցամատյան
Wire.write (0x00);
// Դադարեցնել I2C փոխանցումը
Wire.endTransmission ();
ուշացում (1000);
// Պահանջել 4 բայթ տվյալներ
Մետաղալար. Խնդրում ենք (Addr, 4);
// Կարդացեք 4 բայթ տվյալներ
// կարգավիճակ, pres msb1, pres msb, pres lsb
եթե (Wire.available () == 4)
{
տվյալներ [0] = Wire.read ();
տվյալներ [1] = Wire.read ();
տվյալներ [2] = Wire.read ();
տվյալներ [3] = Wire.read ();
}
// Տվյալները փոխակերպեք 20 բիթ
pres = (((երկար) տվյալներ [1] * (երկար) 65536) + (տվյալներ [2] * 256) + (տվյալներ [3] և 0xF0)) / 16;
ճնշում = (pres / 4.0) / 1000.0;
// Տվյալների մուտքագրում վահանակ
Particle.publish ("Բարձրություն.", Լար (բարձրություն));
Particle.publish ("ureնշում.", Լար (ճնշում));
Particle.publish («elsերմաստիճանը Celsius:», լարային (cTemp));
Particle.publish («ahերմաստիճանը Ֆարենհայտում.», Լարային (fTemp));
ուշացում (1000);
}
Քայլ 4: Դիմումներ
MPL3115A2- ի տարբեր ծրագրեր ներառում են բարձր ճշգրտության բարձրաչափություն, սմարթֆոններ/պլանշետներ, անհատական էլեկտրոնիկայի բարձրաչափություն և այլն: Այն կարող է ներառվել նաև GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation, ինչպես նաև Եղանակային կայանի սարքավորումներում:
Խորհուրդ ենք տալիս:
Particle Photon IoT Անձնական եղանակային կայան. 4 քայլ (նկարներով)
Particle Photon IoT Անձնական եղանակային կայան
Թվիթեր OLED SPI Display- ի և Particle- ի Photon Board- ի վերաբերյալ. 6 քայլ
Թվիթեր OLED SPI Display- ի և Particle- ի Photon Board- ի վերաբերյալ. Ողջույն, բոլորին: Այս հեշտ ձեռնարկը ցույց կտա, թե ինչպես կարդալ մեր թվիթերը ՝ օգտագործելով IFTTT և Photon տախտակ: Հնարավոր է ՝ ձեզ անհրաժեշտ լինի տեսնել ուսանելի
Particle Photon - TCN75A ջերմաստիճանի տվիչի ձեռնարկ ՝ 4 քայլ
Particle Photon-TCN75A ջերմաստիճանի տվիչի ձեռնարկ. TCN75A- ն երկալար սերիական ջերմաստիճանի տվիչ է, որը ներառված է ջերմաստիճան-թվային փոխարկիչով: Այն ներառված է օգտագործողների կողմից ծրագրավորվող գրանցամատյանների հետ, որոնք ճկունություն են ապահովում ջերմաստիճանը զգացող ծրագրերի համար: Գրանցման կարգավորումները թույլ են տալիս օգտվողներին
Particle Photon - ADT75 peratերմաստիճանի տվիչի ձեռնարկ ՝ 4 քայլ
Particle Photon - ADT75 ջերմաստիճանի տվիչի ձեռնարկ. ADT75- ը բարձր ճշգրիտ թվային ջերմաստիճանի տվիչ է: Այն բաղկացած է գոտու բացվածքի ջերմաստիճանի տվիչից և 12-բիթանոց անալոգային թվային փոխարկիչից `ջերմաստիճանը վերահսկելու և թվայնացնելու համար: Նրա բարձր զգայուն սենսորը այն ինձ բավականաչափ իրավասու է դարձնում
Fog Sensor - Particle Photon - Պահել տվյալները առցանց ՝ 5 քայլ (նկարներով)
Fog Sensor - Particle Photon - Save Data Online: Օդի մեջ մառախուղի կամ ծխի քանակությունը չափելու համար մենք պատրաստեցինք այս մառախուղի սենսորը: Այն չափում է լազերից ստացված LDR լույսի քանակը և համեմատում այն շրջակա լույսի չափի հետ: Այն տվյալները տեղադրում է Google թերթիկում իրական ժամանակում IFTTT- ի միջոցով