![Խոնավության, ճնշման և ջերմաստիճանի հաշվարկ ՝ օգտագործելով BME280 և ֆոտոնային միջերես. 6 քայլ Խոնավության, ճնշման և ջերմաստիճանի հաշվարկ ՝ օգտագործելով BME280 և ֆոտոնային միջերես. 6 քայլ](https://i.howwhatproduce.com/images/003/image-6140-j.webp)
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Խոնավության, ճնշման և ջերմաստիճանի հաշվարկ ՝ օգտագործելով BME280 և ֆոտոնային միջերեսներ Խոնավության, ճնշման և ջերմաստիճանի հաշվարկ ՝ օգտագործելով BME280 և ֆոտոնային միջերեսներ](https://i.howwhatproduce.com/images/003/image-6140-1-j.webp)
Մենք հանդիպում ենք տարբեր նախագծերի, որոնք պահանջում են ջերմաստիճանի, ճնշման և խոնավության մոնիտորինգ: Այսպիսով, մենք գիտակցում ենք, որ այս պարամետրերն իրականում կենսական դեր են խաղում տարբեր մթնոլորտային պայմաններում համակարգի աշխատանքի արդյունավետության գնահատման մեջ: Ինչպես արդյունաբերական, այնպես էլ անհատական համակարգերում օպտիմալ ջերմաստիճանը, խոնավությունը և բարոմետրիկ ճնշումը անհրաժեշտ են համակարգի համարժեք աշխատանքի համար:
Ահա թե ինչու մենք տրամադրում ենք այս սենսորի վերաբերյալ ամբողջական ձեռնարկ, այս ձեռնարկում մենք բացատրելու ենք BME280 խոնավության, ճնշման և ջերմաստիճանի տվիչի աշխատանքը մասնիկների ֆոտոնով:
Քայլ 1: BME280 հետազոտություն
![BME280 Հետախուզություն BME280 Հետախուզություն](https://i.howwhatproduce.com/images/003/image-6140-2-j.webp)
Էլեկտրոնային հատվածն ակտիվացրել է իր խաղը BME280 սենսորով, որը բնապահպանական տվիչ է `ջերմաստիճանի, բարոմետրիկ ճնշման և խոնավության ցուցանիշներով: Այս սենսորը հիանալի է եղանակի/շրջակա միջավայրի բոլոր տեսակների համար և կարող է օգտագործվել նույնիսկ I2C- ում:
Այս ճշգրիտ սենսոր BME280- ը խոնավության measuring 3% ճշգրտությամբ, բարոմետրիկ ճնշումը ± 1 hPa բացարձակ ճշգրիտ և ջերմաստիճանը ± 1.0 ° C ճշգրտությամբ չափելու լավագույն լուծումն է: Քանի որ ճնշումը փոխվում է բարձրության հետ, և ճնշման չափումները այնքան լավ են, կարող եք նաև օգտագործել որպես բարձրաչափ ± 1 մետր կամ ավելի բարձր ճշգրտությամբ: temperatureերմաստիճանի տվիչը օպտիմիզացված է ամենացածր աղմուկի և ամենաբարձր լուծման համար և օգտագործվում է ջերմաստիճանի փոխհատուցման համար: ճնշման տվիչը և կարող է օգտագործվել նաև շրջակա միջավայրի ջերմաստիճանը գնահատելու համար: BME280- ով չափումները կարող են կատարվել օգտագործողի կողմից կամ կատարվել կանոնավոր պարբերականությամբ:
Տվյալների թերթ. Կտտացրեք BME280 տվիչի տվյալների թերթը նախադիտելու կամ ներբեռնելու համար:
Քայլ 2: Սարքավորման պահանջների ցուցակ
![Սարքավորումների պահանջների ցուցակ Սարքավորումների պահանջների ցուցակ](https://i.howwhatproduce.com/images/003/image-6140-3-j.webp)
Մենք ամբողջությամբ օգտագործում էինք Dcube Store- ի մասերը, քանի որ դրանք դյուրին են օգտագործման համար, և սանտիմետր ցանցի վրա գեղեցիկ տեղավորվող ինչ -որ բան իրոք մեզ ստիպում է: Դուք կարող եք օգտագործել այն, ինչ ցանկանում եք, բայց էլեկտրագծերի դիագրամը ենթադրում է, որ դուք օգտագործում եք այս մասերը:
- BME280 ցուցիչ I²C մինի մոդուլ
- I²C վահան մասնիկի ֆոտոնի համար
- Ֆոտոն մասնիկ
- I²C մալուխ
- Էլեկտրաէներգիայի ադապտեր
Քայլ 3: Ինտերֆեյս
![Ինտերֆեյս Ինտերֆեյս](https://i.howwhatproduce.com/images/003/image-6140-4-j.webp)
Միջերեսային հատվածը հիմնականում բացատրում է սենսորի և մասնիկ ֆոտոնի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.
BME280- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը: Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս ինտերֆեյսը, եթե այլևս ագնոստիկ եք: Ձեզ անհրաժեշտ է չորս լար: Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ: Այս կապերը ցուցադրվում են վերը նշված նկարներում:
Քայլ 4. peratերմաստիճանի, ճնշման և խոնավության մոնիտորինգի ծածկագիր
![Temերմաստիճանի, ճնշման եւ խոնավության մոնիտորինգի կանոնագիրք Temերմաստիճանի, ճնշման եւ խոնավության մոնիտորինգի կանոնագիրք](https://i.howwhatproduce.com/images/003/image-6140-5-j.webp)
![Temերմաստիճանի, ճնշման եւ խոնավության մոնիտորինգի կանոնագիրք Temերմաստիճանի, ճնշման եւ խոնավության մոնիտորինգի կանոնագիրք](https://i.howwhatproduce.com/images/003/image-6140-6-j.webp)
Կոդի մաքուր տարբերակը, որը մենք կօգտագործենք սա գործարկելու համար, հասանելի է ԱՅՍՏԵ:
Arduino- ի հետ սենսորային մոդուլն օգտագործելիս մենք ներառում ենք application.h և spark_wiring_i2c.h գրադարանը: «application.h» և spark_wiring_i2c.h գրադարանը պարունակում են գործառույթներ, որոնք հեշտացնում են i2c հաղորդակցությունը սենսորի և մասնիկի միջև:
Սեղմեք ԱՅՍՏԵ device ՝ սարքի մոնիտորինգի համար կայք բացելու համար
Վերբեռնեք ծածկագիրը ձեր տախտակին և այն պետք է սկսի աշխատել: Բոլոր տվյալները կարելի է ձեռք բերել վեբ էջում, ինչպես ցույց է տրված նկարում:
Ստորև բերված է ծածկագիրը.
// Տարածված է ազատ կամքի լիցենզիայի միջոցով: // BME280 // Այս կոդը նախատեսված է BME280_I2CS I2C մինի մոդուլի հետ աշխատելու համար, որը հասանելի է ControlEverything.com կայքում: #ներառել #ներառել // BME280 I2C հասցեն ՝ 0x76 (108) #սահմանել Addr 0x76 կրկնակի cTemp = 0, fTemp = 0, ճնշում = 0, խոնավություն = 0; void setup () {// Սահմանել փոփոխական Particle.variable ("i2cdevice", "BME280"); հոդված. փոփոխական («cTemp», cTemp); Particle.variable («fTemp», fTemp); Մասնիկ. Փոփոխական («ճնշում», ճնշում); Մասնիկ. Փոփոխական («խոնավություն», խոնավություն); // Initialise I2C կապը որպես MASTER Wire.begin (); // Սկզբնականացնել սերիական հաղորդակցություն, սահմանել baud rate = 9600 Serial.begin (9600); ուշացում (300); } void loop () {անստորագիր int b1 [24]; անստորագիր int տվյալներ [8]; int dig_H1 = 0; for (int i = 0; i <24; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Ընտրեք տվյալների գրանցամատյան Wire.write ((136+i)); // Stop I2C Transmission Wire.endTransmission (); // Պահանջել 1 բայթ տվյալների Wire.requestFrom (Addr, 1); // Կարդացեք տվյալների 24 բայթ, եթե (Wire.available () == 1) {b1 = Wire.read (); }} // Փոխարկել տվյալները // ջերմաստիճանի գործակիցները int dig_T1 = (b1 [0] & 0xff) + ((b1 [1] & 0xff) * 256); int dig_T2 = b1 [2] + (b1 [3] * 256); int dig_T3 = b1 [4] + (b1 [5] * 256); // ճնշման գործակիցներ int dig_P1 = (b1 [6] & 0xff) + ((b1 [7] & 0xff) * 256); int dig_P2 = b1 [8] + (b1 [9] * 256); int dig_P3 = b1 [10] + (b1 [11] * 256); int dig_P4 = b1 [12] + (b1 [13] * 256); int dig_P5 = b1 [14] + (b1 [15] * 256); int dig_P6 = b1 [16] + (b1 [17] * 256); int dig_P7 = b1 [18] + (b1 [19] * 256); int dig_P8 = b1 [20] + (b1 [21] * 256); int dig_P9 = b1 [22] + (b1 [23] * 256); for (int i = 0; i <7; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Ընտրեք տվյալների գրանցամատյան Wire.write ((225+i)); // Stop I2C Transmission Wire.endTransmission (); // Պահանջել 1 բայթ տվյալների Wire.requestFrom (Addr, 1); // Կարդացեք տվյալների 7 բայթ, եթե (Wire.available () == 1) {b1 = Wire.read (); }} // Փոխարկել տվյալները // խոնավության գործակիցները int dig_H2 = b1 [0] + (b1 [1] * 256); int dig_H3 = b1 [2] & 0xFF; int dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF); int dig_H5 = (b1 [4] / 16) + (b1 [5] * 16); int dig_H6 = b1 [6]; // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ընտրեք տվյալների գրանցամատյան Wire.write (161); // Stop I2C Transmission Wire.endTransmission (); // Պահանջել 1 բայթ տվյալների Wire.requestFrom (Addr, 1); // Կարդացեք տվյալների 1 բայթ, եթե (Wire.available () == 1) {dig_H1 = Wire.read (); } // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ընտրեք կառավարման խոնավության գրանցամատյան Wire.write (0xF2); // Խոնավություն նմուշառման արագության նկատմամբ = 1 Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ընտրեք հսկիչ չափման գրանցամատյան Wire.write (0xF4); // Նորմալ ռեժիմ, ջերմաստիճան և ճնշում ընտրանքի արագության նկատմամբ = 1 Wire.write (0x27); // Stop I2C Transmission Wire.endTransmission (); // Սկսել I2C Փոխանցման տուփը. BeginTransmission (Addr); // Ընտրեք config register Wire.write (0xF5); // Սպասման սպասման ժամանակը = 1000ms Wire.write (0xA0); // Stop I2C Transmission Wire.endTransmission (); for (int i = 0; i <8; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Ընտրեք տվյալների գրանցամատյան Wire.write ((247+i)); // Stop I2C Transmission Wire.endTransmission (); // Պահանջել 1 բայթ տվյալների Wire.requestFrom (Addr, 1); // Կարդացեք տվյալների 8 բայթ, եթե (Wire.available () == 1) {data = Wire.read (); }} // pressureնշման և ջերմաստիճանի տվյալները փոխակերպեք 19 բիթ երկարության adc_p = (((երկար) (տվյալներ [0] & 0xFF) * 65536) + ((երկար) (տվյալներ [1] և 0xFF) * 256) + (երկար) (տվյալներ [2] և 0xF0)) / 16; երկար adc_t = (((երկար) (տվյալներ [3] և 0xFF) * 65536) + ((երկար) (տվյալներ [4] և 0xFF) * 256) + (երկար) (տվյալներ [5] և 0xF0)) / 16; // Փոխակերպեք խոնավության տվյալները երկար adc_h = ((երկար) (տվյալները [6] & 0xFF) * 256 + (երկար) (տվյալները [7] & 0xFF)); // Temերմաստիճանի փոխհատուցման հաշվարկներ կրկնակի var1 = (((կրկնակի) adc_t) / 16384.0 - ((կրկնակի) dig_T1) / 1024.0) * ((կրկնակի) dig_T2); կրկնակի var2 = (((((կրկնակի) adc_t) / 131072.0 - ((կրկնակի) dig_T1) / 8192.0) * (((կրկնակի) adc_t) /131072.0 - ((կրկնակի) dig_T1) /8192.0)) * ((կրկնակի) dig_T3); կրկնակի t_fine = (երկար) (var1 + var2); կրկնակի cTemp = (var1 + var2) / 5120.0; կրկնակի fTemp = cTemp * 1.8 + 32; // Pressնշման փոխհատուցման հաշվարկներ var1 = ((կրկնակի) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((կրկնակի) dig_P6) / 32768.0; var2 = var2 + var1 * ((կրկնակի) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((կրկնակի) dig_P4) * 65536.0); var1 = (((կրկնակի) dig_P3) * var1 * var1 / 524288.0 + ((կրկնակի) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((կրկնակի) dig_P1); կրկնակի p = 1048576.0 - (կրկնակի) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((կրկնակի) dig_P9) * p * p / 2147483648.0; var2 = p * ((կրկնակի) dig_P8) / 32768.0; կրկնակի ճնշում = (p + (var1 + var2 + ((կրկնակի) dig_P7)) / 16.0) / 100; // Խոնավության փոխհատուցման հաշվարկներ կրկնակի var_H = (((կրկնակի) t_fine) - 76800.0); var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_H))); կրկնակի խոնավություն = var_H * (1.0 - dig_H1 * var_H / 524288.0); եթե (խոնավություն> 100.0) {խոնավություն = 100.0; } else if (խոնավություն <0.0) {խոնավություն = 0.0; } // Տվյալների մուտքագրում Particle.publish- ի վահանակ («elsերմաստիճանը Celsius:", String (cTemp)); Particle.publish ("ahերմաստիճանը Ֆարենհայտում.", Լարային (fTemp)); Particle.publish ("ureնշում.", Լար (ճնշում)); Particle.publish ("Հարաբերական խոնավություն.", String (խոնավություն)); ուշացում (1000); }
Քայլ 5: Դիմումներ
![Դիմումներ Դիմումներ](https://i.howwhatproduce.com/images/003/image-6140-7-j.webp)
BME280 ջերմաստիճանի, ճնշման և հարաբերական խոնավության ցուցիչն ունի տարբեր արդյունաբերական ծրագրեր, ինչպիսիք են ջերմաստիճանի մոնիտորինգը, համակարգչային ծայրամասային ջերմային պաշտպանությունը, ճնշման մոնիտորինգը արդյունաբերության մեջ: Մենք նաև օգտագործել ենք այս տվիչը եղանակային կայանների ծրագրերում, ինչպես նաև ջերմոցային մոնիտորինգի համակարգում:
Այլ դիմումները կարող են ներառել.
- Համատեքստի իրազեկում, օրինակ. մաշկի հայտնաբերում, սենյակի փոփոխության հայտնաբերում:
- Ֆիթնեսի մոնիտորինգ / բարեկեցություն - զգուշացում չորության կամ բարձր ջերմաստիճանի վերաբերյալ:
- Volumeավալի և օդի հոսքի չափում:
- Տան ավտոմատացման հսկողություն:
- Վերահսկեք ջեռուցումը, օդափոխումը, օդորակումը (HVAC):
- Իրերի ինտերնետ:
- GPS- ի կատարելագործում (օրինակ ՝ ժամանակի առաջին ուղղման բարելավում, մեռած հաշիվների հաշվարկ, լանջերի հայտնաբերում):
- Ներքին նավարկություն (հատակի հայտնաբերման փոփոխություն, վերելակի հայտնաբերում):
- Բացօթյա նավարկություն, ժամանց և սպորտային ծրագրեր:
- Եղանակի տեսություն.
- Ուղղահայաց արագության ցուցում (բարձրացման/խորտակման արագություն)..
Քայլ 6: Վիդեո ձեռնարկ
![](https://i.ytimg.com/vi/oQzwTSxhVKA/hqdefault.jpg)
Դիտեք մեր վիդեո ձեռնարկը `նախագիծը փոխազդելու և ավարտելու բոլոր քայլերն անցնելու համար:
Շարունակեք հետևել այլ սենսորների ինտերֆեյսին և աշխատող բլոգերին:
Խորհուրդ ենք տալիս:
Servo և DHT11 ջերմաստիճանի և խոնավության սենսոր օգտագործելով Arduino- ով ՝ 8 քայլ
![Servo և DHT11 ջերմաստիճանի և խոնավության սենսոր օգտագործելով Arduino- ով ՝ 8 քայլ Servo և DHT11 ջերմաստիճանի և խոնավության սենսոր օգտագործելով Arduino- ով ՝ 8 քայլ](https://i.howwhatproduce.com/images/002/image-4702-j.webp)
Servo և DHT11 ջերմաստիճանի և խոնավության սենսոր օգտագործելով Arduino- ի միջոցով. Այս ձեռնարկում մենք կսովորենք, թե ինչպես սկսել & պտտել օդափոխիչը, երբ ջերմաստիճանը որոշակի մակարդակից բարձրանում է
Խոնավության և ջերմաստիճանի դիտորդ ՝ օգտագործելով Raspberry Pi- ն SHT25- ով Python- ում. 6 քայլ
![Խոնավության և ջերմաստիճանի դիտորդ ՝ օգտագործելով Raspberry Pi- ն SHT25- ով Python- ում. 6 քայլ Խոնավության և ջերմաստիճանի դիտորդ ՝ օգտագործելով Raspberry Pi- ն SHT25- ով Python- ում. 6 քայլ](https://i.howwhatproduce.com/images/004/image-10452-j.webp)
Խոնավության և ջերմաստիճանի դիտորդ ՝ օգտագործելով Raspberry Pi- ն SHT25- ով Python- ում: Լինելով Raspberry Pi- ի էնտուզիաստ, մենք մտածեցինք դրա հետ ավելի տպավորիչ փորձերի մասին: Այս արշավում մենք կկատարենք խոնավության և ջերմաստիճանի դիտորդ, որը չափում է հարաբերական խոնավությունն ու ջերմաստիճանը `օգտագործելով Raspberry Pi և SHT25, Humidi
Ստեղծում-Ահազանգ-Օգտագործելով-Ubidots-ESP32+ջերմաստիճանի և խոնավության ցուցիչ ՝ 9 քայլ
![Ստեղծում-Ահազանգ-Օգտագործելով-Ubidots-ESP32+ջերմաստիճանի և խոնավության ցուցիչ ՝ 9 քայլ Ստեղծում-Ահազանգ-Օգտագործելով-Ubidots-ESP32+ջերմաստիճանի և խոնավության ցուցիչ ՝ 9 քայլ](https://i.howwhatproduce.com/images/009/image-24285-j.webp)
Creating-Alert-Using-Ubidots-ESP32+Temp and Humidity Sensor. Այս ձեռնարկում մենք ջերմաստիճանի և խոնավության տարբեր տվյալներ ենք չափելու ՝ օգտագործելով Temp և խոնավության տվիչ: Դուք նաև կսովորեք, թե ինչպես ուղարկել այս տվյալները Ubidots- ին: Որպեսզի կարողանաք վերլուծել այն ցանկացած վայրից ՝ տարբեր կիրառման համար: Նաև ստեղծելով emai
Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և Arduino Nano: 4 քայլ
![Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և Arduino Nano: 4 քայլ Խոնավության և ջերմաստիճանի չափում ՝ օգտագործելով HIH6130 և Arduino Nano: 4 քայլ](https://i.howwhatproduce.com/images/010/image-27334-j.webp)
Խոնավության և ջերմաստիճանի չափում HIH6130- ի և Arduino Nano- ի միջոցով. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է `թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
Կառուցեք Apple HomeKit ջերմաստիճանի տվիչ (BME280) ՝ օգտագործելով RaspberryPI և BME280: 5 քայլ
![Կառուցեք Apple HomeKit ջերմաստիճանի տվիչ (BME280) ՝ օգտագործելով RaspberryPI և BME280: 5 քայլ Կառուցեք Apple HomeKit ջերմաստիճանի տվիչ (BME280) ՝ օգտագործելով RaspberryPI և BME280: 5 քայլ](https://i.howwhatproduce.com/images/002/image-4763-30-j.webp)
Կառուցեք Apple HomeKit ջերմաստիճանի տվիչ (BME280) RaspberryPI- ի և BME280- ի միջոցով. Վերջին մի քանի ամիսների ընթացքում ես խաղացել եմ IOT սարքերով և տեղակայել եմ շուրջ 10 տարբեր սենսորներ ՝ իմ տան և քոթեջի պայմանները վերահսկելու համար: Եվ ես ի սկզբանե սկսել էի օգտագործել AOSONG DHT22 չափավոր խոնավության զգայարանը