Isi kandungan:
Video: Partikel Photon - MPL3115A2 Precision Altimeter Sensor Tutorial: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
MPL3115A2 menggunakan sensor tekanan MEMS dengan antara muka I2C untuk memberikan data Tekanan / Ketinggian dan Suhu yang tepat. Keluaran sensor didigitalkan oleh ADC 24-bit resolusi tinggi. Pemprosesan dalaman membuang tugas pampasan dari sistem MCU tuan rumah. Ia mampu mengesan perubahan hanya 0.05 kPa yang setara dengan perubahan ketinggian 0.3m. Inilah demonstrasinya dengan foton Partikel.
Langkah 1: Apa yang Anda Perlu..
1. Foton Zarah
2. MPL3115A2
3. Kabel I²C
4. Perisai I²C untuk Foton Zarah
Langkah 2: Sambungan:
Ambil pelindung I2C untuk foton zarah dan tolak perlahan-lahan di atas pin foton zarah.
Kemudian sambungkan satu hujung kabel I2C ke sensor MPL3115A2 dan hujung yang lain ke pelindung I2C.
Sambungan ditunjukkan dalam gambar di atas.
Langkah 3: Kod:
Kod zarah untuk MPL3115A2 boleh dimuat turun dari Github repositori-DCUBE Store kami.
Inilah pautannya.
Kami telah menggunakan dua perpustakaan untuk kod partikel, iaitu application.h dan spark_wiring_i2c.h. Perpustakaan Spark_wiring_i2c diperlukan untuk memudahkan komunikasi I2C dengan sensor.
Anda juga boleh menyalin kod dari sini, ia diberikan seperti berikut:
// Diagihkan dengan lesen kehendak bebas.
// Gunakan dengan cara yang anda mahukan, untung atau percuma, dengan syarat ia sesuai dengan lesen karya yang berkaitan.
// MPL3115A2
// Kod ini direka untuk berfungsi dengan Modul Mini MPL3115A2_I2CS I2C
#sertakan
#sertakan
// Alamat MPL3115A2 I2C ialah 0x60 (96)
#tentukan Addr 0x60
apungan cTemp = 0.0, fTemp = 0.0, tekanan = 0.0, ketinggian = 0.0;
int temp = 0, tHeight = 0; pres panjang = 0;
persediaan tidak sah ()
{
// Tetapkan pemboleh ubah
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Particle.variable ("tekanan", tekanan);
Particle.variable ("ketinggian", ketinggian);
// Memulakan komunikasi I2C
Wire.begin ();
// Inisialisasi Serial Communication, tetapkan baud rate = 9600
Serial.begin (9600);
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar kawalan
Wire.write (0x26);
// Mod aktif, OSR = 128, mod altimeter
Wire.write (0xB9);
// Hentikan penghantaran I2C
Wire.endTransmission ();
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar konfigurasi data
Wire.write (0x13);
// Acara siap data diaktifkan untuk ketinggian, tekanan, suhu
Wire.write (0x07);
// Hentikan penghantaran I2C
Wire.endTransmission ();
kelewatan (300);
}
gelung kosong ()
{
data int yang tidak ditandatangani [6];
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar kawalan
Wire.write (0x26);
// Mod aktif, OSR = 128, mod altimeter
Wire.write (0xB9);
// Hentikan penghantaran I2C
Wire.endTransmission ();
kelewatan (1000);
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar data
Wire.write (0x00);
// Hentikan penghantaran I2C
Wire.endTransmission ();
// Minta 6 bait data
Wire.requestFrom (Addr, 6);
// Baca 6 bait data dari alamat 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
jika (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
// Tukarkan data menjadi 20-bit
tHeight = ((((panjang) data [1] * (panjang) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
ketinggian = tHeight / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar kawalan
Wire.write (0x26);
// Mod aktif, OSR = 128, mod barometer
Wire.write (0x39);
// Hentikan penghantaran I2C
Wire.endTransmission ();
// Mulakan penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar data
Wire.write (0x00);
// Hentikan penghantaran I2C
Wire.endTransmission ();
kelewatan (1000);
// Minta 4 bait data
Wire.requestFrom (Addr, 4);
// Baca 4 bait data
// status, pres msb1, pres msb, pres lsb
jika (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Tukarkan data menjadi 20-bit
pres = (((panjang) data [1] * (panjang) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
tekanan = (pres / 4.0) / 1000.0;
// Keluarkan data ke papan pemuka
Particle.publish ("Ketinggian:", Rentetan (ketinggian));
Particle.publish ("Tekanan:", Rentetan (tekanan));
Particle.publish ("Suhu dalam Celsius:", Rentetan (cTemp));
Particle.publish ("Suhu di Fahrenheit:", Rentetan (fTemp));
kelewatan (1000);
}
Langkah 4: Aplikasi:
Pelbagai aplikasi MPL3115A2 termasuk Altimetri Ketepatan Tinggi, Telefon Pintar / Tablet, Altimetri Elektronik Peribadi dan lain-lain. Ia juga dapat digabungkan dalam Perangkaan Mati GPS, Peningkatan GPS untuk Perkhidmatan Kecemasan, Bantuan Peta, Navigasi dan juga Peralatan Stesen Cuaca.
Disyorkan:
Stesen Cuaca Peribadi Photon IoT Partikel: 4 Langkah (dengan Gambar)
Stesen Cuaca Peribadi Partikel Photon IoT:
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: 4 Langkah
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Tutorial: A1332 adalah sensor kedudukan sudut magnetik beresolusi tinggi yang boleh diprogramkan 360 °. Ia direka untuk sistem digital menggunakan antara muka I2C. Ia dibina berdasarkan teknologi Circular Vertical Hall (CVH) dan isyarat berasaskan mikropemproses yang dapat diprogramkan
Tutorial Foton Partikel - Sensor Suhu STS21: 4 Langkah
Partikel Photon - STS21 Temperature Sensor Tutorial: Sensor Suhu Digital STS21 menawarkan prestasi yang unggul dan jejak penjimatan ruang. Ia memberikan isyarat yang dikalibrasi, linear dalam format digital, I2C. Fabrikasi sensor ini didasarkan pada teknologi CMOSens, yang mengaitkan kepada
Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: 4 Langkah
Pengukuran Suhu dan Kelembapan Menggunakan HDC1000 dan Partikel Photon: HDC1000 adalah sensor kelembapan digital dengan sensor suhu bersepadu yang memberikan ketepatan pengukuran yang sangat baik pada daya yang sangat rendah. Peranti mengukur kelembapan berdasarkan sensor kapasitif baru. Sensor kelembapan dan suhu adalah
Mod 3.3V untuk Sensor Ultrasonik (sediakan HC-SR04 untuk Logik 3.3V pada ESP32 / ESP8266, Foton Partikel, dan lain-lain): 4 Langkah
Mod 3.3V untuk Sensor Ultrasonik (sediakan HC-SR04 untuk Logik 3.3V pada ESP32 / ESP8266, Foton Partikel, dan lain-lain): TL; DR: Pada sensor, potong jejak ke pin Echo, kemudian sambungkan semula dengan menggunakan pembahagi voltan (Jejak gema - > 2.7kΩ - > Pin gema - > 4.7kΩ - > GND). Edit: Terdapat beberapa perbahasan mengenai sama ada ESP8266 sebenarnya bertoleransi 5V pada GPIO dalam