Satura rādītājs:

Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni: 6 soļi
Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni: 6 soļi

Video: Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni: 6 soļi

Video: Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni: 6 soļi
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №33 2024, Jūlijs
Anonim
Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni
Mitruma, spiediena un temperatūras aprēķins, izmantojot BME280 un fotonu saskarni

Mēs saskaramies ar dažādiem projektiem, kuriem nepieciešama temperatūras, spiediena un mitruma kontrole. Tādējādi mēs saprotam, ka šiem parametriem faktiski ir būtiska nozīme, novērtējot sistēmas darba efektivitāti dažādos atmosfēras apstākļos. Gan rūpnieciskajā, gan individuālajās sistēmās optimālai sistēmas darbībai ir nepieciešams optimāls temperatūras, mitruma un barometriskā spiediena līmenis.

Tāpēc mēs sniedzam pilnīgu apmācību par šo sensoru, šajā apmācībā mēs izskaidrosim BME280 mitruma, spiediena un temperatūras sensora darbību ar daļiņu fotonu.

1. darbība: BME280 izpēte

BME280 izpēte
BME280 izpēte

Elektronikas sektors ir uzlabojis savu spēli ar BME280 sensoru, vides sensoru ar temperatūru, barometrisko spiedienu un mitrumu! Šis sensors ir lieliski piemērots visu veidu laika apstākļu/vides noteikšanai, un to var izmantot pat I2C.

Šis precizitātes sensors BME280 ir labākais sensoru risinājums mitruma mērīšanai ar ± 3% precizitāti, barometrisko spiedienu ar ± 1 hPa absolūtu precizitāti un temperatūru ar ± 1,0 ° C precizitāti. Tā kā spiediens mainās augstumā un spiediena mērījumi ir tik labi, varat to izmantot arī kā altimetru ar ± 1 metru vai labāku precizitāti! Temperatūras sensors ir optimizēts zemākajam trokšņam un visaugstākajai izšķirtspējai un tiek izmantots temperatūras kompensācijai spiediena sensoru, un to var izmantot arī apkārtējās vides temperatūras noteikšanai. Mērījumus ar BME280 var veikt lietotājs vai regulāri.

Datu lapa: Noklikšķiniet, lai priekšskatītu vai lejupielādētu BME280 sensora datu lapu.

2. darbība. Aparatūras prasību saraksts

Aparatūras prasību saraksts
Aparatūras prasību saraksts

Mēs pilnībā izmantojām Dcube veikala detaļas, jo tās ir viegli lietojamas, un kaut kas par visu, kas labi iederas centimetru režģī, patiešām mūs aizrauj. Jūs varat izmantot visu, ko vēlaties, taču elektroinstalācijas shēmā tiks pieņemts, ka izmantojat šīs detaļas.

  • BME280 sensora I²C mini modulis
  • I²C vairogs daļiņu fotonam
  • Daļiņu fotons
  • I²C kabelis
  • Strāvas adapteris

3. darbība: saskarne

Saskarne
Saskarne

Saskarnes sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un daļiņu fotonu. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

BME280 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni. Plāksne ir konfigurēta I2C saskarnei, tāpēc iesakām izmantot šo saskarni, ja citādi esat agnostiķis. Viss, kas Jums nepieciešams, ir četri vadi! Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli. Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

4. solis: temperatūras, spiediena un mitruma kontroles kods

Temperatūras, spiediena un mitruma kontroles kods
Temperatūras, spiediena un mitruma kontroles kods
Temperatūras, spiediena un mitruma kontroles kods
Temperatūras, spiediena un mitruma kontroles kods

Koda tīrā versija, kuru mēs izmantosim, lai to palaistu, ir pieejama ŠEIT.

Izmantojot sensoru moduli ar Arduino, mēs iekļaujam bibliotēku application.h un spark_wiring_i2c.h. Bibliotēkā "application.h" un spark_wiring_i2c.h ir funkcijas, kas atvieglo i2c komunikāciju starp sensoru un daļiņu.

Noklikšķiniet ŠEIT, lai atvērtu tīmekļa lapu ierīces uzraudzībai

Augšupielādējiet kodu savā panelī, un tam vajadzētu sākt darboties! Visus datus var iegūt tīmekļa vietnē, kā parādīts attēlā.

Kods ir norādīts zemāk:

// Izplatīts ar brīvās gribas licenci. // BME280 // Šis kods ir paredzēts darbam ar BME280_I2CS I2C mini moduli, kas pieejams vietnē ControlEverything.com. #include #include // BME280 I2C adrese ir 0x76 (108) #define Addr 0x76 double cTemp = 0, fTemp = 0, spiediens = 0, mitrums = 0; void setup () {// Iestatīt mainīgo Particle.variable ("i2cdevice", "BME280"); article.variable ("cTemp", cTemp); Particle.variable ("fTemp", fTemp); Daļiņa.mainīgais ("spiediens", spiediens); Daļiņa.mainīgais ("mitrums", mitrums); // Inicializēt I2C komunikāciju kā MASTER Wire.begin (); // Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600 Serial.begin (9600); kavēšanās (300); } void loop () {unsigned int b1 [24]; neparakstīti int dati [8]; int dig_H1 = 0; for (int i = 0; i <24; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Atlasiet datu reģistru Wire.write ((136+i)); // Stop I2C Transmission Wire.endTransmission (); // Pieprasīt 1 baitu datu Wire.requestFrom (Addr, 1); // Lasīt 24 baitus datu, ja (Wire.available () == 1) {b1 = Wire.read (); }} // Pārvērst datus // temp koeficienti 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); // spiediena koeficienti 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); // Atlasiet datu reģistru Wire.write ((225+i)); // Stop I2C Transmission Wire.endTransmission (); // Pieprasīt 1 baitu datu Wire.requestFrom (Addr, 1); // Izlasiet 7 baitus datu, ja (Wire.available () == 1) {b1 = Wire.read (); }} // Pārvērst datus // mitruma koeficienti int dig_H2 = b1 [0] + (b1 [1] * 256); int dig_H3 = b1 [2] un 0xFF; int dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF); int dig_H5 = (b1 [4] / 16) + (b1 [5] * 16); int dig_H6 = b1 [6]; // Start I2C Transmission Wire.beginTransmission (Addr); // Atlasīt datu reģistru Wire.write (161); // Stop I2C Transmission Wire.endTransmission (); // Pieprasīt 1 baitu datu Wire.requestFrom (Addr, 1); // Lasīt 1 baitu datu, ja (Wire.available () == 1) {dig_H1 = Wire.read (); } // Sākt I2C Transmission Wire.beginTransmission (Addr); // Atlasiet vadības mitruma reģistru Wire.write (0xF2); // Mitrums virs izlases ātruma = 1 Wire.write (0x01); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Atlasiet vadības mērījumu reģistru Wire.write (0xF4); // Normālais režīms, temperatūra un spiediens virs paraugu ņemšanas ātruma = 1 Wire.write (0x27); // Stop I2C Transmission Wire.endTransmission (); // Start I2C Transmission Wire.beginTransmission (Addr); // Izvēlieties konfigurācijas reģistru Wire.write (0xF5); // Gaidīšanas gaidīšanas laiks = 1000 ms Wire.write (0xA0); // Stop I2C Transmission Wire.endTransmission (); for (int i = 0; i <8; i ++) {// Start I2C Transmission Wire.beginTransmission (Addr); // Atlasiet datu reģistru Wire.write ((247+i)); // Stop I2C Transmission Wire.endTransmission (); // Pieprasīt 1 baitu datu Wire.requestFrom (Addr, 1); // Izlasiet 8 baitus datu, ja (Wire.available () == 1) {data = Wire.read (); }} // Pārvērst spiediena un temperatūras datus par 19 bitiem gariem garš) (dati [2] un 0xF0)) / 16; garš adc_t = (((garš) (dati [3] un 0xFF) * 65536) + ((garš) (dati [4] un 0xFF) * 256) + (garš) (dati [5] un 0xF0)) / 16; // Pārvērst mitruma datus garus adc_h = ((garš) (dati [6] & 0xFF) * 256 + (gari) (dati [7] un 0xFF)); // Temperatūras nobīdes aprēķini double var1 = (((double) adc_t) / 16384.0 - ((double) dig_T1) / 1024.0) * ((double) dig_T2); dubultā var2 = (((((dubultā)) adc_t) / 131072.0 - ((dubultā) dig_T1) / 8192.0) * (((dubultā) adc_t) /131072.0 - ((dubultā) dig_T1) / 8192.0)) * ((dubultā) dig_T3); double t_fine = (garš) (var1 + var2); dubultā cTemp = (var1 + var2) / 5120,0; dubultā fTemp = cTemp * 1,8 + 32; // Spiediena nobīdes aprēķini var1 = ((double) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((dubultā) dig_P6) / 32768.0; var2 = var2 + var1 * ((dubultā) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((dubultā) dig_P4) * 65536.0); var1 = ((((dubultā)) dig_P3) * var1 * var1 / 524288.0 + ((dubultā) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((dubultā) dig_P1); dubultā p = 1048576,0 - (dubultā) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((dubultā) dig_P9) * p * p / 2147483648.0; var2 = p * ((dubultā) dig_P8) / 32768.0; dubultspiediens = (p + (var1 + var2 + ((dubultā)) dig_P7)) / 16,0) / 100; // Mitruma nobīdes aprēķini double var_H = (((double) 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))); divkāršs mitrums = var_H * (1,0 - dig_H1 * var_H / 524288.0); ja (mitrums> 100,0) {mitrums = 100,0; } cits ja (mitrums <0,0) {mitrums = 0,0; } // Izejas dati informācijas panelī Particle.publish ("Temperatūra pēc Celsija:", String (cTemp)); Particle.publish ("Temperatūra pēc Fārenheita:", String (fTemp)); Particle.publish ("Spiediens:", Stīga (spiediens)); Particle.publish ("Relatīvais mitrums:", String (mitrums)); kavēšanās (1000); }

5. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

BME280 temperatūras, spiediena un relatīvā mitruma sensoram ir dažādi rūpnieciski pielietojumi, piemēram, temperatūras uzraudzība, datora perifērijas termiskā aizsardzība, spiediena kontrole rūpniecībā. Šo sensoru esam izmantojuši arī meteoroloģisko staciju lietojumos, kā arī siltumnīcas novērošanas sistēmā.

Citi lietojumi var ietvert:

  1. Konteksta apzināšanās, piem. ādas noteikšana, telpas maiņas noteikšana.
  2. Fitnesa uzraudzība / labsajūta - brīdinājums par sausumu vai augstu temperatūru.
  3. Tilpuma un gaisa plūsmas mērīšana.
  4. Mājas automatizācijas vadība.
  5. Kontrolējiet apkuri, ventilāciju, gaisa kondicionēšanu (HVAC).
  6. Lietu internets.
  7. GPS uzlabošana (piemēram, laika uzlabošana līdz pirmajam labojumam, mirušo aprēķināšana, slīpuma noteikšana).
  8. Navigācija iekštelpās (grīdas maiņas noteikšana, lifta noteikšana).
  9. Āra navigācijas, atpūtas un sporta lietojumprogrammas.
  10. Laika prognoze.
  11. Vertikālā ātruma indikācija (pieauguma/nogrimšanas ātrums).

6. darbība: video apmācība

Noskatieties mūsu video pamācību, lai izietu visas projekta saskarnes un pabeigšanas darbības.

Sekojiet līdzi citu sensoru saskarnes un darba emuāriem.

Ieteicams: