Daftar Isi:
- Langkah 1: Eksplorasi BME280
- Langkah 2: Daftar Kebutuhan Perangkat Keras
- Langkah 3: Antarmuka
- Langkah 4: Kode Pemantauan Suhu, Tekanan, dan Kelembaban
- Langkah 5: Aplikasi:
- Langkah 6: Video Tutorial
Video: Perhitungan Kelembaban, Tekanan dan Suhu Menggunakan BME280 dan Antarmuka Foton.: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Kami menemukan berbagai proyek yang membutuhkan pemantauan suhu, tekanan dan kelembaban. Dengan demikian kami menyadari bahwa parameter ini sebenarnya memainkan peran penting dalam memperkirakan efisiensi kerja suatu sistem pada kondisi atmosfer yang berbeda. Baik di tingkat industri maupun sistem pribadi, suhu, kelembaban, dan tingkat tekanan udara yang optimal diperlukan untuk kinerja sistem yang memadai.
Untuk itulah kami memberikan tutorial lengkap tentang sensor ini, dalam tutorial ini kami akan menjelaskan cara kerja sensor kelembaban, tekanan dan suhu BME280 dengan partikel foton.
Langkah 1: Eksplorasi BME280
Sektor elektronik telah meningkatkan permainan mereka dengan sensor BME280, sensor lingkungan dengan suhu, tekanan udara, dan kelembapan! Sensor ini sangat bagus untuk semua jenis penginderaan cuaca/lingkungan dan bahkan dapat digunakan di I2C.
Sensor presisi BME280 ini adalah solusi penginderaan terbaik untuk mengukur kelembaban dengan akurasi ±3%, tekanan barometrik dengan akurasi absolut ±1 hPa, dan suhu dengan akurasi ±1,0°C. Karena tekanan berubah dengan ketinggian, dan pengukuran tekanan sangat baik, Anda juga dapat menggunakannya sebagai altimeter dengan akurasi ±1 meter atau lebih baik! Sensor suhu telah dioptimalkan untuk kebisingan terendah dan resolusi tertinggi dan digunakan untuk kompensasi suhu sensor tekanan dan juga dapat digunakan untuk estimasi suhu lingkungan. Pengukuran dengan BME280 dapat dilakukan oleh pengguna atau dilakukan secara berkala.
Datasheet: Klik untuk melihat atau mengunduh datasheet sensor BME280.
Langkah 2: Daftar Kebutuhan Perangkat Keras
Kami menggunakan sepenuhnya Dcube Store Parts karena mudah digunakan, dan sesuatu tentang segala sesuatu yang cocok dengan baik pada kotak sentimeter benar-benar membuat kami maju. Anda dapat menggunakan apa pun yang Anda inginkan, tetapi diagram pengkabelan akan menganggap Anda menggunakan bagian-bagian ini.
- Modul Mini I²C Sensor BME280
- Perisai I²C untuk Foton Partikel
- Foton Partikel
- Kabel I²C
- Adaptor daya
Langkah 3: Antarmuka
Bagian antarmuka pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan foton partikel. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:
BME280 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor. Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami menyarankan untuk menggunakan antarmuka ini jika Anda agnostik. Yang Anda butuhkan hanyalah empat kabel! Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C. Koneksi ini ditunjukkan pada gambar di atas.
Langkah 4: Kode Pemantauan Suhu, Tekanan, dan Kelembaban
Versi bersih dari kode yang akan kita gunakan untuk menjalankan ini tersedia DI SINI.
Saat menggunakan modul sensor dengan Arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Pustaka "application.h" dan spark_wiring_i2c.h berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan partikel.
Klik DI SINI untuk membuka halaman web untuk pemantauan perangkat
Unggah kode ke papan Anda dan itu akan mulai berfungsi! Semua data dapat diperoleh di halaman web seperti yang ditunjukkan pada gambar.
Kode disediakan di bawah ini:
// Didistribusikan dengan lisensi kehendak bebas.// Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait. // BME280 // Kode ini dirancang untuk bekerja dengan Modul Mini BME280_I2CS I2C yang tersedia dari ControlEverything.com. #include #include // Alamat I2C BME280 adalah 0x76(108) #define Addr 0x76 double cTemp = 0, fTemp = 0, pressure = 0, moisture = 0; void setup() { // Setel variabel Particle.variable("i2cdevice", "BME280"); article.variable("cTemp", cTemp); Particle.variable("fTemp", fTemp); Particle.variable("tekanan", tekanan); Particle.variable("kelembaban", kelembaban); // Inisialisasi komunikasi I2C sebagai MASTER Wire.begin(); // Inisialisasi komunikasi Serial, setel baud rate = 9600 Serial.begin(9600); penundaan (300); } void loop() { unsigned int b1[24]; data int yang tidak ditandatangani[8]; int gali_H1 = 0; for(int i = 0; i < 24; i++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih register data Wire.write((136+i)); // Hentikan Kabel Transmisi I2C.endTransmission(); // Meminta 1 byte data Wire.requestFrom(Addr, 1); // Membaca 24 byte data if(Wire.available() == 1) { b1 = Wire.read(); } } // Konversi data // koefisien suhu 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); // koefisien tekanan 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++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih register data Wire.write((225+i)); // Hentikan Kabel Transmisi I2C.endTransmission(); // Meminta 1 byte data Wire.requestFrom(Addr, 1); // Baca 7 byte data if(Wire.available() == 1) { b1 = Wire.read(); } } // Mengonversi data // koefisien kelembaban 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]; // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih register data Wire.write(161); // Hentikan Kabel Transmisi I2C.endTransmission(); // Meminta 1 byte data Wire.requestFrom(Addr, 1); // Baca 1 byte data if(Wire.available() == 1) { dig_H1 = Wire.read(); } // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih kontrol kelembaban register Wire.write(0xF2); // Kelembaban di atas laju pengambilan sampel = 1 Wire.write(0x01); // Hentikan Kabel Transmisi I2C.endTransmission(); // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih register pengukuran kontrol Wire.write(0xF4); // Mode normal, suhu dan tekanan pada laju pengambilan sampel = 1 Wire.write(0x27); // Hentikan Kabel Transmisi I2C.endTransmission(); // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih config register Wire.write(0xF5); // Waktu siaga = 1000ms Wire.write(0xA0); // Hentikan Kabel Transmisi I2C.endTransmission(); for(int i = 0; i <8; i++) { // Mulai Kabel Transmisi I2C.beginTransmission(Addr); // Pilih register data Wire.write((247+i)); // Hentikan Kabel Transmisi I2C.endTransmission(); // Meminta 1 byte data Wire.requestFrom(Addr, 1); // Baca 8 byte data if(Wire.available() == 1) { data = Wire.read(); } } // Mengonversi data tekanan dan suhu ke panjang 19-bit adc_p = (((panjang)(data[0] & 0xFF) * 65536) + ((panjang)(data[1] & 0xFF) * 256) + (panjang)(data[2] & 0xF0)) / 16; panjang adc_t = (((panjang)(data[3] & 0xFF) * 65536) + ((panjang)(data[4] & 0xFF) * 256) + (panjang)(data[5] & 0xF0)) / 16; // Konversi data kelembaban long adc_h = ((panjang)(data[6] & 0xFF) * 256 + (panjang)(data[7] & 0xFF)); // Perhitungan offset suhu double var1 = (((double)adc_t) / 16384.0 - ((double)dig_T1) / 1024.0) * ((double)dig_T2); double var2 = ((((double)adc_t) / 131072.0 - ((double)dig_T1) / 8192.0) * (((double)adc_t)/131072.0 - ((double)dig_T1)/8192.0)) * ((double)dig_T3); double t_fine = (panjang)(var1 + var2); cTemp ganda = (var1 + var2) / 5120.0; fTemp ganda = cTemp * 1,8 + 32; // Perhitungan offset tekanan var1 = ((double)t_fine / 2.0) - 640000.0; var2 = var1 * var1 * ((ganda)dig_P6) / 32768.0; var2 = var2 + var1 * ((ganda)dig_P5) * 2.0; var2 = (var2 / 4.0) + (((ganda)dig_P4) * 65536.0); var1 = (((ganda) dig_P3) * var1 * var1 / 524288.0 + ((ganda) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((ganda)dig_P1); ganda p = 1048576.0 - (ganda)adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((ganda) dig_P9) * p * p / 2147483648.0; var2 = p * ((ganda) dig_P8) / 32768.0; tekanan ganda = (p + (var1 + var2 + ((double)dig_P7)) / 16.0) / 100; // Perhitungan offset kelembaban 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))); kelembaban ganda = var_H * (1.0 - dig_H1 * var_H / 524288.0); if(kelembaban> 100,0) { kelembaban = 100,0; } else if(kelembaban < 0.0) { kelembaban = 0.0; } // Keluarkan data ke dashboard Particle.publish("Suhu dalam Celcius: ", String(cTemp)); Particle.publish("Suhu dalam Fahrenheit: ", String(fTemp)); Particle.publish("Tekanan: ", String(tekanan)); Particle.publish("Kelembaban Relatif: ", String(kelembaban)); penundaan (1000); }
Langkah 5: Aplikasi:
Sensor suhu, tekanan dan kelembaban relatif BME280 memiliki berbagai aplikasi industri seperti pemantauan suhu, perlindungan termal periferal komputer, pemantauan tekanan di industri. Kami juga telah menggunakan sensor ini ke dalam aplikasi stasiun cuaca serta sistem pemantauan rumah kaca.
Aplikasi lain mungkin termasuk:
- Kesadaran konteks, mis. deteksi kulit, deteksi perubahan ruangan.
- Pemantauan kebugaran / kesejahteraan - Peringatan tentang kekeringan atau suhu tinggi.
- Pengukuran volume dan aliran udara.
- Kontrol otomatisasi rumah.
- Kontrol pemanas, ventilasi, AC (HVAC).
- Internet untuk segala.
- Penyempurnaan GPS (misalnya peningkatan waktu ke perbaikan pertama, perhitungan mati, deteksi kemiringan).
- Navigasi dalam ruangan (perubahan deteksi lantai, deteksi lift).
- Navigasi luar ruangan, aplikasi rekreasi dan olahraga.
- Prakiraan Cuaca.
- Indikasi kecepatan vertikal (kecepatan naik/turun)..
Langkah 6: Video Tutorial
Tonton tutorial video kami untuk melalui semua langkah dalam berinteraksi dan menyelesaikan proyek.
Menantikan untuk antarmuka sensor lain dan blog kerja.
Direkomendasikan:
M5STACK Cara Menampilkan Suhu, Kelembaban, dan Tekanan pada M5StickC ESP32 Menggunakan Visuino - Mudah Dilakukan: 6 Langkah
M5STACK Cara Menampilkan Suhu, Kelembaban dan Tekanan pada M5StickC ESP32 Menggunakan Visuino - Mudah Dilakukan: Dalam tutorial ini kita akan mempelajari cara memprogram ESP32 M5Stack StickC dengan Arduino IDE dan Visuino untuk Menampilkan Suhu, Kelembaban dan Tekanan menggunakan sensor ENV (DHT12, BMP280, BMM150)
Pemantauan Suhu dan Kelembaban Menggunakan SHT25 dan Foton Partikel: 5 Langkah
Pemantauan Suhu dan Kelembaban Menggunakan SHT25 dan Foton Partikel: Kami baru-baru ini mengerjakan berbagai proyek yang memerlukan pemantauan suhu dan kelembaban dan kemudian kami menyadari bahwa kedua parameter ini sebenarnya memainkan peran penting dalam memperkirakan efisiensi kerja suatu sistem. Baik di industri
Pengukuran Kelembaban dan Suhu Menggunakan HIH6130 dan Foton Partikel: 4 Langkah
Pengukuran Kelembaban dan Suhu Menggunakan HIH6130 dan Foton Partikel: HIH6130 adalah sensor kelembaban dan suhu dengan output digital. Sensor ini memberikan tingkat akurasi ±4% RH. Dengan stabilitas jangka panjang terdepan di industri, I2C digital dengan kompensasi suhu sejati, keandalan terdepan di industri, Efisiensi energi
Pengukuran Suhu dan Kelembaban Menggunakan HDC1000 dan Foton Partikel: 4 Langkah
Pengukuran Suhu dan Kelembaban Menggunakan HDC1000 dan Foton Partikel: HDC1000 adalah sensor kelembaban digital dengan sensor suhu terintegrasi yang memberikan akurasi pengukuran yang sangat baik pada daya yang sangat rendah. Perangkat mengukur kelembaban berdasarkan sensor kapasitif baru. Sensor kelembaban dan suhu adalah fak
Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Foton Partikel: 4 Langkah
Pengukuran Kelembaban dan Suhu Menggunakan HTS221 dan Foton Partikel: HTS221 adalah sensor digital kapasitif ultra kompak untuk kelembaban dan suhu relatif. Ini mencakup elemen penginderaan dan sirkuit terintegrasi khusus aplikasi sinyal campuran (ASIC) untuk memberikan informasi pengukuran melalui serial digital