![BME280 va foton interfeysi yordamida namlik, bosim va haroratni hisoblash: 6 qadam BME280 va foton interfeysi yordamida namlik, bosim va haroratni hisoblash: 6 qadam](https://i.howwhatproduce.com/images/003/image-6140-j.webp)
Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
![BME280 va foton interfeysi yordamida namlik, bosim va haroratni hisoblash BME280 va foton interfeysi yordamida namlik, bosim va haroratni hisoblash](https://i.howwhatproduce.com/images/003/image-6140-1-j.webp)
Biz harorat, bosim va namlikni nazorat qilishni talab qiladigan turli xil loyihalarni uchratamiz. Biz shuni tushunamizki, bu parametrlar har xil atmosfera sharoitida tizimning ish samaradorligini baholashda muhim rol o'ynaydi. Ishlab chiqarish darajasida ham, shaxsiy tizimda ham haroratning, namlikning va barometrik bosimning optimal darajasi tizimning to'g'ri ishlashi uchun zarurdir.
Shuning uchun biz ushbu sensor haqida to'liq ko'rsatma beramiz, bu darsda biz BME280 namlik, bosim va harorat sensori zarrachali foton bilan ishlashini tushuntiramiz.
1 -qadam: BME280 razvedkasi
![BME280 qidiruvi BME280 qidiruvi](https://i.howwhatproduce.com/images/003/image-6140-2-j.webp)
Elektron sektor BME280 sensori, harorat, barometrik bosim va namlik bilan atrof -muhit sensori bilan o'z o'yinlarini kuchaytirdi! Ushbu sensor har xil ob -havo/atrof -muhitni aniqlash uchun juda mos keladi va hatto I2C da ishlatilishi mumkin.
Bu aniqlik sensori BME280 namlikni ± 3% aniqlik bilan, barometrik bosim ± 1 gPa mutlaq aniqlikda va haroratni ± 1,0 ° C aniqlikda o'lchash uchun eng yaxshi sezuvchi echimdir. Bosim balandlik bilan o'zgargani uchun va bosim o'lchovlari juda yaxshi bo'lgani uchun siz uni ± 1 metr yoki undan yuqori aniqlikdagi balandlik o'lchagich sifatida ishlatishingiz mumkin! bosim sensori va atrof -muhit haroratini baholash uchun ham ishlatilishi mumkin. BME280 yordamida o'lchovlar foydalanuvchi tomonidan bajarilishi yoki ma'lum vaqt oralig'ida bajarilishi mumkin.
Ma'lumotlar jadvali: BME280 sensori ma'lumotlarini ko'rish yoki yuklab olish uchun bosing.
2 -qadam: Uskuna talablari ro'yxati
![Uskuna talablari ro'yxati Uskuna talablari ro'yxati](https://i.howwhatproduce.com/images/003/image-6140-3-j.webp)
Biz Dcube do'koni qismlarini to'liq ishlatdik, chunki ulardan foydalanish oson, va har bir narsa santimetrli panjara bilan yaxshi birlashtirilgan bo'lsa, bizni haqiqatan ham harakatga keltiradi. Siz xohlagan narsani ishlatishingiz mumkin, lekin ulanish sxemasi siz ushbu qismlardan foydalanayotganingizni taxmin qiladi.
- BME280 sensori I²C mini moduli
- Zarrachali foton uchun I²C qalqoni
- Foton zarrachalari
- I²C kabeli
- Quvvat adapteri
3 -qadam: Interfeys
![Interfeys Interfeys](https://i.howwhatproduce.com/images/003/image-6140-4-j.webp)
Interfeys bo'limi asosan sensor va zarracha fotoni o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:
BME280 I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi. Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, ushbu interfeysdan foydalanishni tavsiya etamiz. Sizga faqat to'rtta sim kerak! Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan. Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.
4 -qadam: harorat, bosim va namlik monitoringi kodi
![Harorat, bosim va namlikni nazorat qilish kodeksi Harorat, bosim va namlikni nazorat qilish kodeksi](https://i.howwhatproduce.com/images/003/image-6140-5-j.webp)
![Harorat, bosim va namlikni nazorat qilish kodeksi Harorat, bosim va namlikni nazorat qilish kodeksi](https://i.howwhatproduce.com/images/003/image-6140-6-j.webp)
Biz ishga tushirish uchun ishlatadigan kodning toza versiyasi BU YERDA.
Sensor modulini Arduino bilan ishlatganda, biz application.h va spark_wiring_i2c.h kutubxonasini o'z ichiga olamiz. "application.h" va spark_wiring_i2c.h kutubxonasi sensor va zarracha o'rtasidagi i2c aloqasini osonlashtiradigan funktsiyalarni o'z ichiga oladi.
Qurilmani kuzatish uchun veb -sahifani ochish uchun BU YERGA bosing
Kodni taxtaga yuklang va u ishlay boshlaydi! Barcha ma'lumotlarni rasmda ko'rsatilgandek veb -sahifada olish mumkin.
Kod quyida keltirilgan:
// Ixtiyoriy litsenziya bilan tarqatilgan. // BME280 // Bu kod ControlEverything.com saytida mavjud bo'lgan BME280_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan. #include #include // BME280 I2C manzili - 0x76 (108) #aniqlang Addr 0x76 ikkita cTemp = 0, fTemp = 0, bosim = 0, namlik = 0; void setup () {// Particle.variable o'zgaruvchisini o'rnating ("i2cdevice", "BME280"); article.variable ("cTemp", cTemp); Particle.variable ("fTemp", fTemp); Zarracha.variable ("bosim", bosim); Zarracha.variable ("namlik", namlik); // I2C aloqasini MASTER Wire.begin () sifatida boshlang; // Serial aloqani boshlang, baud tezligini = 9600 Serial.begin (9600) o'rnating; kechikish (300); } void loop () {unsigned int b1 [24]; imzosiz int ma'lumotlari [8]; int dig_H1 = 0; for (int i = 0; i <24; i ++) {// I2C Transmission Wire.beginTransmission (Addr) ni ishga tushirish; // Wire.write ma'lumotlar registrini tanlang ((136+i)); // I2C Transmission Wire.endTransmission () ni to'xtating; // Wire.requestFromdan 1 bayt ma'lumot so'rash (Addr, 1); // 24 bayt ma'lumotni o'qing, agar (Wire.available () == 1) {b1 = Wire.read (); }} // Ma'lumotlarni aylantirish // temp koeffitsientlari 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); // bosim koeffitsientlari 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 ++) {// I2C Transmission Wire.beginTransmission (Addr) ni ishga tushirish; // Wire.write ma'lumotlar registrini tanlang ((225+i)); // I2C Transmission Wire.endTransmission () ni to'xtating; // Wire.requestFromdan 1 bayt ma'lumot so'rash (Addr, 1); // 7 bayt ma'lumotni o'qing, agar (Wire.available () == 1) {b1 = Wire.read (); }} // Ma'lumotlarni aylantirish // namlik koeffitsientlari 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 Transmission Wire.beginTransmission -ni ishga tushiring (Addr); // Wire.write ma'lumotlar registrini tanlang (161); // I2C Transmission Wire.endTransmission () ni to'xtating; // Wire.requestFromdan 1 bayt ma'lumot so'rash (Addr, 1); // 1 bayt ma'lumotni o'qing, agar (Wire.available () == 1) {dig_H1 = Wire.read (); } // I2C Transmission Wire.beginTransmission -ni ishga tushiring (Addr); // nazorat namlik registrini tanlang Wire.write (0xF2); // Namuna olish tezligidan yuqori namlik = 1 Wire.write (0x01); // I2C Transmission Wire.endTransmission () ni to'xtating; // I2C Transmission Wire.beginTransmission -ni ishga tushiring (Addr); // Wire.write nazorat o'lchash registrini tanlang (0xF4); // Oddiy rejim, namuna olish tezligidagi harorat va bosim = 1 Wire.write (0x27); // I2C Transmission Wire.endTransmission () ni to'xtating; // I2C Transmission Wire.beginTransmission -ni ishga tushiring (Addr); // Wire.write (0xF5) konfiguratsiya registrini tanlang; // Kutish vaqti = 1000ms Wire.write (0xA0); // I2C Transmission Wire.endTransmission () ni to'xtating; for (int i = 0; i <8; i ++) {// I2C Transmission Wire.beginTransmission (Addr) ni ishga tushirish; // Wire.write ma'lumotlar registrini tanlang ((247+i)); // I2C Transmission Wire.endTransmission () ni to'xtating; // Wire.requestFromdan 1 bayt ma'lumot so'rash (Addr, 1); // 8 bayt ma'lumotni o'qing, agar (Wire.available () == 1) {data = Wire.read (); }} // Bosim va harorat ma'lumotlarini 19 bitli uzunlikka aylantirish uzoq) (ma'lumotlar [2] & 0xF0)) / 16; uzoq adc_t = (((uzun) (ma'lumotlar [3] va 0xFF) * 65536) + ((uzun) (ma'lumotlar [4] va 0xFF) * 256) + (uzun) (ma'lumotlar [5] va 0xF0)) / 16; // Namlik ma'lumotlarini uzoqqa aylantiring adc_h = ((uzun) (ma'lumotlar [6] & 0xFF) * 256 + (uzun) (ma'lumotlar [7] & 0xFF)); // Haroratning ofset hisoblari er -xotin var1 = (((ikki barobar) adc_t) / 16384.0 - ((ikki baravar) dig_T1) / 1024.0) * ((ikki baravar) dig_T2); er -xotin var2 = ((((ikki barobar) adc_t) / 131072.0 - ((er -xotin) dig_T1) / 8192.0) * (); er -xotin t_fine = (uzun) (var1 + var2); er -xotin cTemp = (var1 + var2) / 5120.0; er -xotin fTemp = cTemp * 1.8 + 32; // Bosimning ofset hisoblari var1 = ((dubl) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((ikkita) dig_P6) / 32768.0; var2 = var2 + var1 * ((ikkita) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((er -xotin) dig_P4) * 65536.0); var1 = (((er -xotin) dig_P3) * var1 * var1 / 524288.0 + ((ikki baravar) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((er -xotin) dig_P1); er -xotin p = 1048576.0 - (er -xotin) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((er -xotin) dig_P9) * p * p / 2147483648.0; var2 = p * ((er -xotin) dig_P8) / 32768.0; er -xotin bosim = (p + (var1 + var2 + ((er -xotin) dig_P7))) / 16.0) / 100; // Namlik ofset hisoblari er -xotin var_H = (((er -xotin) 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))); ikki marta namlik = var_H * (1.0 - dig_H1 * var_H / 524288.0); if (namlik> 100,0) {namlik = 100,0; } if if (namlik <0.0) {namlik = 0.0; } // Ma'lumotlar paneliga chiqish Particle.publish ("Tselsiy bo'yicha harorat:", String (cTemp)); Particle.publish ("Farengeytdagi harorat:", String (fTemp)); Particle.publish ("Bosim:", String (bosim)); Particle.publish ("Nisbiy namlik:", Ip (namlik)); kechikish (1000); }
5 -qadam: Ilovalar:
![Ilovalar Ilovalar](https://i.howwhatproduce.com/images/003/image-6140-7-j.webp)
BME280 harorat, bosim va nisbiy namlik sensori haroratni kuzatish, kompyuterning periferik termal muhofazasi, sanoatdagi bosimni kuzatish kabi turli xil sanoat dasturlariga ega. Shuningdek, biz ushbu sensorni ob -havo stantsiyalarida, shuningdek issiqxonalarda monitoring tizimida ishlatdik.
Boshqa ilovalarga quyidagilar kirishi mumkin:
- Kontekstni bilish, masalan. terini aniqlash, xona o'zgarishini aniqlash.
- Fitnes monitoringi / farovonlik - quruqlik yoki yuqori harorat haqida ogohlantirish.
- Havo hajmini va oqimini o'lchash.
- Uyni avtomatlashtirishni boshqarish.
- Isitish, shamollatish, konditsionerni (HVAC) boshqaring.
- Internet narsalar.
- GPS-ni takomillashtirish (masalan, tuzatish vaqtini yaxshilash, o'liklarni hisoblash, qiyaliklarni aniqlash).
- Ichki navigatsiya (polni aniqlashni o'zgartirish, liftni aniqlash).
- Tashqi navigatsiya, dam olish va sport dasturlari.
- Ob-havo ma'lumoti.
- Vertikal tezlik ko'rsatkichi (ko'tarilish/cho'kish tezligi)..
6 -qadam: video darslik
![](https://i.ytimg.com/vi/oQzwTSxhVKA/hqdefault.jpg)
Loyihani o'zaro bog'lash va yakunlashning barcha bosqichlaridan o'tish uchun bizning video darsligimizni tomosha qiling.
Boshqa sensorlarning interfeysi va ishlaydigan bloglarini kuzatib boring.
Tavsiya:
BMP280 -DHT11 yordamida Arduino ob -havo stantsiyasi - harorat, namlik va bosim: 8 qadam
![BMP280 -DHT11 yordamida Arduino ob -havo stantsiyasi - harorat, namlik va bosim: 8 qadam BMP280 -DHT11 yordamida Arduino ob -havo stantsiyasi - harorat, namlik va bosim: 8 qadam](https://i.howwhatproduce.com/images/009/image-26305-j.webp)
BMP280 -DHT11 -dan foydalanadigan Arduino ob -havo stantsiyasi - harorat, namlik va bosim: Ushbu qo'llanmada biz TFT 7735 LCD displeyida harorat, namlik va bosim ko'rsatadigan ob -havo stantsiyasini yasashni o'rganamiz
Infineon XMC4700 RelaxKit, Infineon DPS422 va AWS yordamida barometrik bosim va haroratni vizualizatsiya qilish: 8 qadam
![Infineon XMC4700 RelaxKit, Infineon DPS422 va AWS yordamida barometrik bosim va haroratni vizualizatsiya qilish: 8 qadam Infineon XMC4700 RelaxKit, Infineon DPS422 va AWS yordamida barometrik bosim va haroratni vizualizatsiya qilish: 8 qadam](https://i.howwhatproduce.com/images/011/image-31930-j.webp)
Infineon XMC4700 RelaxKit, Infineon DPS422 va AWS yordamida barometrik bosim va haroratni vizualizatsiya qilish: Infineon DPS 422 yordamida barometrik bosim va haroratni o'lchashning oddiy loyihasi. Vaqti -vaqti bilan bosim va haroratni kuzatib turish noqulay bo'lib qoladi. Bu erda tahlillar tasvirga tushadi, o'zgarishlarning ko'rinishi
HIH6130 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam
![HIH6130 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam HIH6130 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam](https://i.howwhatproduce.com/images/002/image-3258-75-j.webp)
HIH6130 va zarracha foton yordamida namlik va haroratni o'lchash: HIH6130 - bu raqamli chiqishga ega namlik va harorat sensori. Bu sensorlar ± 4% RH aniqlik darajasini ta'minlaydi. Sanoatning etakchi uzoq muddatli barqarorligi, haqiqiy harorat kompensatsiyalangan raqamli I2C, sanoatning etakchi ishonchliligi, energiya samaradorligi
HTS221 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam
![HTS221 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam HTS221 va zarracha foton yordamida namlik va haroratni o'lchash: 4 qadam](https://i.howwhatproduce.com/images/002/image-3265-45-j.webp)
HTS221 va zarracha foton yordamida namlik va haroratni o'lchash: HTS221 - nisbiy namlik va harorat uchun ultra ixcham sig'imli raqamli sensor. O'lchov ma'lumotlarini raqamli ketma -ketlik bilan ta'minlash uchun sezuvchi element va aralash signalli maxsus integratsiyalashgan elektron (ASIC) ni o'z ichiga oladi
Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam
![Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam Raspberry Pi yordamida MPL3115A2 yordamida balandlik, bosim va haroratni o'lchang: 6 qadam](https://i.howwhatproduce.com/images/002/image-3285-34-j.webp)
MPL3115A2 yordamida Raspberry Pi -dan foydalanib, balandlik, bosim va haroratni o'lchang: nima borligini biling va nima uchun unga egalik qilayotganingizni biling! Bu juda qiziq. Biz Internet -avtomatlashtirish asrida yashayapmiz, chunki u ko'plab yangi ilovalarga kiradi. Kompyuter va elektronika ixlosmandlari sifatida biz Raspberry Pi a bilan ko'p narsani o'rgandik