ዝርዝር ሁኔታ:

BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።
BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።

ቪዲዮ: BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።

ቪዲዮ: BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።
ቪዲዮ: አርዱዪኖ ናኖ፣ BME280 እና SSD1306 OLED የአየር ሁኔታ ጣቢያ 2024, ሀምሌ
Anonim
BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።
BME280 እና Photon Interfacing ን በመጠቀም እርጥበት ፣ ግፊት እና የሙቀት ስሌት።

የሙቀት ፣ የግፊት እና የእርጥበት ክትትል የሚጠይቁ የተለያዩ ፕሮጀክቶችን እናገኛለን። ስለዚህ እነዚህ መለኪያዎች በተለያዩ የከባቢ አየር ሁኔታዎች ውስጥ የአንድን ሥርዓት የሥራ ብቃት ግምት ለመገመት ወሳኝ ሚና እንደሚጫወቱ እንገነዘባለን። ለስርዓቱ በቂ አፈፃፀም ሁለቱም በኢንዱስትሪ ደረጃም ሆነ በግል ስርዓቶች ጥሩ የሙቀት መጠን ፣ እርጥበት እና የባሮሜትሪክ ግፊት ደረጃ አስፈላጊ ናቸው።

በዚህ ዳሳሽ ላይ የተሟላ መማሪያ የምንሰጠው ለዚህ ነው ፣ በዚህ መማሪያ ውስጥ የ BME280 እርጥበት ፣ የግፊት እና የሙቀት ዳሳሽ ሥራን ከትንሽ ፎቶን ጋር እናብራራለን።

ደረጃ 1: BME280 አሰሳ

BME280 አሰሳ
BME280 አሰሳ

የኤሌክትሮኒክስ ዘርፍ ከ BME280 ዳሳሽ ፣ ከአካባቢያዊ ዳሳሽ ከአየር ሙቀት ፣ ከባሮሜትሪክ ግፊት እና እርጥበት ጋር ጨዋታቸውን አጠናክሯል! ይህ አነፍናፊ ለሁሉም ዓይነት የአየር ሁኔታ/አካባቢያዊ ግንዛቤ በጣም ጥሩ ነው እና በ I2C ውስጥ እንኳን ሊያገለግል ይችላል።

ይህ ትክክለኝነት ዳሳሽ BME280 እርጥበትን በ ± 3% ትክክለኛነት ፣ የባሮሜትሪክ ግፊት በ ± 1 hPa ፍጹም ትክክለኛነት ፣ እና የሙቀት መጠን ከ ° 1.0 ° ሴ ትክክለኛነት ጋር ለመለካት በጣም ጥሩ የስሜት መፍትሄ ነው። ግፊት በከፍታ ስለሚቀየር ፣ እና የግፊት መለኪያዎች በጣም ጥሩ ስለሆኑ ፣ እንዲሁም እንደ t 1 ሜትር ወይም የተሻለ ትክክለኛነት እንደ አልቲሜትር ሊጠቀሙበት ይችላሉ! የግፊት ዳሳሽ እና እንዲሁም የአካባቢውን የሙቀት መጠን ለመገመት ሊያገለግል ይችላል። ከ BME280 ጋር መለኪያዎች በተጠቃሚው ሊከናወኑ ወይም በመደበኛ ክፍተቶች ሊከናወኑ ይችላሉ።

የውሂብ ሉህ - የ BME280 ዳሳሽ የውሂብ ሉህ ለማየት ወይም ለማውረድ ጠቅ ያድርጉ።

ደረጃ 2 የሃርድዌር መስፈርቶች ዝርዝር

የሃርድዌር መስፈርቶች ዝርዝር
የሃርድዌር መስፈርቶች ዝርዝር

ለመጠቀም ቀላል ስለሆኑ ሙሉ በሙሉ የ Dcube መደብር ክፍሎችን ተጠቀምን ፣ እና በሴንቲሜትር ፍርግርግ ላይ በጥሩ ሁኔታ ስለሚገጣጠም አንድ ነገር በእርግጥ እንድንሄድ ያደርገናል። የፈለጉትን መጠቀም ይችላሉ ፣ ግን የሽቦው ዲያግራም እነዚህን ክፍሎች እየተጠቀሙ እንደሆነ ያስባል።

  • BME280 ዳሳሽ I²C ሚኒ ሞዱል
  • I²C Shield ለ Particle Photon
  • ቅንጣት ፎቶን
  • I²C ገመድ
  • የኃይል አስማሚ

ደረጃ 3: በይነገጽ

መስተጋብር
መስተጋብር

በይነተገናኝ ክፍሉ በመሠረቱ በአነፍናፊው እና በንጥል ፎቶን መካከል የሚፈለጉትን የሽቦ ግንኙነቶች ያብራራል። ለተፈለገው ውጤት በማንኛውም ስርዓት ላይ ሲሰሩ ትክክለኛ ግንኙነቶችን ማረጋገጥ መሠረታዊ አስፈላጊነት ነው። ስለዚህ አስፈላጊዎቹ ግንኙነቶች እንደሚከተለው ናቸው

BME280 ከ I2C በላይ ይሠራል። እያንዳንዱን የአነፍናፊ በይነገጽ እንዴት ሽቦ ማገናኘት እንደሚቻል የሚያሳይ የምስል ሽቦ ንድፍ ምሳሌ እዚህ አለ። ከሳጥን ውጭ ፣ ቦርዱ ለ I2C በይነገጽ የተዋቀረ ነው ፣ ስለሆነም እርስዎ ሌላ የማይታወቁ ከሆኑ ይህንን በይነገጽ እንዲጠቀሙ እንመክራለን። የሚያስፈልግዎት አራት ሽቦዎች ብቻ ናቸው! Vcc ፣ Gnd ፣ SCL እና SDA ፒኖች የሚያስፈልጉት አራት ግንኙነቶች ብቻ ናቸው እና እነዚህ በ I2C ገመድ እገዛ ተገናኝተዋል። እነዚህ ግንኙነቶች ከላይ ባሉት ሥዕሎች ውስጥ ይታያሉ።

ደረጃ 4 የሙቀት ፣ የግፊት እና የእርጥበት መቆጣጠሪያ ኮድ

የሙቀት ፣ የግፊት እና እርጥበት ቁጥጥር ኮድ
የሙቀት ፣ የግፊት እና እርጥበት ቁጥጥር ኮድ
የሙቀት ፣ የግፊት እና እርጥበት ቁጥጥር ኮድ
የሙቀት ፣ የግፊት እና እርጥበት ቁጥጥር ኮድ

ይህንን ለማስኬድ የምንጠቀምበት የኮዱ ንፁህ ስሪት እዚህ ይገኛል።

ከ Arduino ጋር የአነፍናፊ ሞጁሉን እየተጠቀምን ሳለ እኛ application.h እና spark_wiring_i2c.h ቤተ -መጽሐፍትን አካተናል። "application.h" እና spark_wiring_i2c.h ቤተ -መጽሐፍት በአነፍናፊው እና በንጥሉ መካከል ያለውን የ i2c ግንኙነት የሚያመቻቹ ተግባሮችን ይ containsል።

ለመሣሪያ ክትትል ድረ -ገጹን ለመክፈት እዚህ ጠቅ ያድርጉ

ኮዱን ወደ ሰሌዳዎ ይስቀሉ እና መስራት መጀመር አለበት! በስዕሉ ላይ እንደሚታየው ሁሉም መረጃዎች በድረ -ገጹ ላይ ሊገኙ ይችላሉ።

ኮድ ከዚህ በታች ቀርቧል

// በነፃ ፈቃድ ፈቃድ ተሰራጭቷል። // ከተጓዳኝ ሥራዎቹ ፈቃዶች ጋር የሚስማማ ከሆነ በፈለጉት መንገድ ፣ ትርፍም ሆነ ነፃ ይጠቀሙበት። // BME280 // ይህ ኮድ ከ ControlEverything.com ከሚገኘው BME280_I2CS I2C ሚኒ ሞዱል ጋር ለመስራት የተነደፈ ነው። #ያካትቱ #ያካትቱ // BME280 I2C አድራሻ 0x76 (108) #ዲፊን Addr 0x76 ድርብ cTemp = 0 ፣ fTemp = 0 ፣ ግፊት = 0 ፣ እርጥበት = 0; ባዶነት ማዋቀር () {// ተለዋዋጭ ተለዋዋጭ Particle.variable ("i2cdevice" ፣ "BME280"); ጽሑፍ። ተለዋዋጭ (“cTemp” ፣ cTemp); ቅንጣት። ተለዋዋጭ (“fTemp” ፣ fTemp); ቅንጣት። ተለዋዋጭ (“ግፊት” ፣ ግፊት); Particle.variable (“እርጥበት” ፣ እርጥበት); // የ I2C ግንኙነትን እንደ MASTER Wire.begin () ያስጀምሩ። // የመጀመርያ ደረጃ ተከታታይ ግንኙነት ፣ የባውድ መጠን = 9600 Serial.begin (9600) ያዘጋጁ ፤ መዘግየት (300); } ባዶነት loop () {ያልተፈረመ int b1 [24]; ያልተፈረመ int ውሂብ [8]; int dig_H1 = 0; ለ (int i = 0; i <24; i ++) {// ጀምር I2C ማስተላለፊያ Wire.beginTransmission (Addr); // የውሂብ መመዝገቢያ ይምረጡ Wire.write ((136+i)); // I2C ማስተላለፍ Wire.endTransmission () አቁም; // የውሂብ 1 ባይት ይጠይቁ Wire.requestFrom (Addr, 1); // 24 ባይት መረጃን ያንብቡ (Wire.available () == 1) {b1 = Wire.read (); }} // ውሂቡን ይለውጡ // temp coefficents 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); // ግፊት coefficents 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); ለ (int i = 0; i <7; i ++) {// ጀምር I2C ማስተላለፍ Wire.beginTransmission (Addr); // የውሂብ መመዝገቢያ ይምረጡ Wire.write ((225+i)); // I2C ማስተላለፍ 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 ማስተላለፊያ Wire.begin ማስተላለፍን (Addr); // የውሂብ መመዝገቢያ ይምረጡ Wire.write (161); // I2C ማስተላለፍ Wire.endTransmission () አቁም; // የውሂብ 1 ባይት ይጠይቁ Wire.requestFrom (Addr, 1); // 1 ባይት ውሂብ ያንብቡ (Wire.available () == 1) {dig_H1 = Wire.read (); } // I2C ማስተላለፊያ Wire.begin ማስተላለፍን (Addr) ይጀምሩ ፣ // የቁጥጥር እርጥበት መመዝገቢያ ይምረጡ Wire.write (0xF2); // ከናሙና ደረጃ በላይ እርጥበት = 1 Wire.write (0x01); // I2C ማስተላለፍ Wire.endTransmission () አቁም; // I2C ማስተላለፊያ Wire.begin ማስተላለፍን (Addr); // የቁጥጥር መለኪያ መመዝገቢያ ይምረጡ Wire.write (0xF4); // መደበኛ ሁነታ ፣ የሙቀት መጠን እና ግፊት በናሙና ደረጃ = 1 Wire.write (0x27); // I2C ማስተላለፍ Wire.endTransmission () አቁም; // I2C ማስተላለፊያ Wire.begin ማስተላለፍን (Addr); // የውቅረት መመዝገቢያ ይምረጡ Wire.write (0xF5); // የመጠባበቂያ ጊዜ = 1000ms Wire.write (0xA0); // I2C ማስተላለፍ Wire.endTransmission () አቁም; ለ (int i = 0; i <8; i ++) {// ጀምር I2C ማስተላለፍ Wire.beginTransmission (Addr); // የውሂብ መመዝገቢያ ይምረጡ Wire.write ((247+i)); // I2C ማስተላለፍ Wire.endTransmission () አቁም; // የውሂብ 1 ባይት ይጠይቁ Wire.requestFrom (Addr, 1); // የውሂብ 8 ባይት ያንብቡ (Wire.available () == 1) {data = Wire.read (); }} // የግፊት እና የሙቀት መጠን መረጃን ወደ 19-ቢት ርዝመት adc_p = (((ረጅም) (ውሂብ [0] & 0xFF) * 65536) + ((ረጅም) (ውሂብ [1] እና 0xFF) * 256) + () ረጅም) (ውሂብ [2] & 0xF0)) / 16; long adc_t = (((ረጅም) (ውሂብ [3] & 0xFF) * 65536) + ((ረጅም) (ውሂብ [4] & 0xFF) * 256) + (ረጅም) (ውሂብ [5] & 0xF0)) / 16; // የእርጥበት መረጃን ረጅም adc_h = ((ረጅም) (ውሂብ [6] & 0xFF) * 256 + (ረጅም) (ውሂብ [7] & 0xFF)); // የሙቀት ማካካሻ ስሌቶች ድርብ 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; // የግፊት ማካካሻ ስሌቶች 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) * ገጽ * ገጽ / 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; } ሌላ ከሆነ (እርጥበት <0.0) {እርጥበት = 0.0; } // የውሂብ ውፅዓት ወደ ዳሽቦርድ Particle.publish (“የሙቀት መጠን በሴልሲየስ ውስጥ” ፣ ሕብረቁምፊ (cTemp)); Particle.publish ("በፋራናይት ሙቀት:", ሕብረቁምፊ (fTemp)); Particle.publish ("ግፊት:", ሕብረቁምፊ (ግፊት)); Particle.publish ("አንጻራዊ እርጥበት:", ሕብረቁምፊ (እርጥበት)); መዘግየት (1000); }

ደረጃ 5: ማመልከቻዎች

ማመልከቻዎች
ማመልከቻዎች

የ BME280 የሙቀት መጠን ፣ ግፊት እና አንጻራዊ የእርጥበት ዳሳሽ እንደ የሙቀት ቁጥጥር ፣ የኮምፒተር አከባቢ የሙቀት መከላከያ ፣ በኢንዱስትሪ ውስጥ የግፊት ቁጥጥርን የመሳሰሉ የተለያዩ የኢንዱስትሪ መተግበሪያዎች አሉት። እንዲሁም ይህንን አነፍናፊ በአየር ሁኔታ ጣቢያ አፕሊኬሽኖች እንዲሁም በግሪን ሃውስ ቁጥጥር ስርዓት ውስጥ ቀጥረናል።

ሌሎች መተግበሪያዎች የሚከተሉትን ሊያካትቱ ይችላሉ-

  1. የአውድ ግንዛቤ ፣ ለምሳሌ። የቆዳ መለየት ፣ የክፍል ለውጥ ማወቂያ።
  2. የአካል ብቃት ክትትል / ደህንነት - ደረቅነትን ወይም ከፍተኛ ሙቀትን በተመለከተ ማስጠንቀቂያ።
  3. የድምፅ እና የአየር ፍሰት መለካት።
  4. የቤት አውቶማቲክ ቁጥጥር።
  5. ማሞቂያ ፣ አየር ማናፈሻ ፣ የአየር ማቀዝቀዣ (ኤች.ቪ.ሲ.) ይቆጣጠሩ።
  6. የነገሮች በይነመረብ።
  7. የጂፒኤስ ማሻሻያ (ለምሳሌ-ለመጀመሪያ-ጊዜ ማስተካከያ ፣ የሞተ ሂሳብ ፣ ተዳፋት መለየት)።
  8. የቤት ውስጥ አሰሳ (የወለል ማወቂያ ለውጥ ፣ የአሳንሰር ማወቂያ)።
  9. ከቤት ውጭ አሰሳ ፣ መዝናኛ እና የስፖርት መተግበሪያዎች።
  10. የአየር ሁኔታ ትንበያ.
  11. አቀባዊ የፍጥነት አመላካች (መነሳት/የመታጠቢያ ፍጥነት)..

ደረጃ 6: የቪዲዮ አጋዥ ስልጠና

እርስ በእርስ ለመገናኘት እና ፕሮጀክቱን ለማጠናቀቅ ሁሉንም ደረጃዎች ለማለፍ የእኛን የቪዲዮ አጋዥ ስልጠና ይመልከቱ።

የሌሎች ዳሳሽ መስተጋብር እና የሥራ ብሎግን ይከታተሉ።

የሚመከር: