Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
MPL3115A2 menggunakan sensor tekanan MEMS dengan antarmuka I2C untuk memberikan data Tekanan/Ketinggian dan Suhu yang akurat. Output sensor didigitalkan oleh ADC 24-bit resolusi tinggi. Pemrosesan internal menghapus tugas kompensasi dari sistem MCU host. Ia mampu mendeteksi perubahan hanya 0,05 kPa yang setara dengan perubahan ketinggian 0,3 m. Berikut adalah demonstrasinya dengan raspberry pi menggunakan kode python.
Langkah 1: Yang Anda Butuhkan.
1. Raspberry Pi
2. MPL3115A2
3. Kabel I²C
4. Perisai I²C untuk Raspberry Pi
5. Kabel Ethernet
Langkah 2: Koneksi:
Ambil pelindung I2C untuk raspberry pi dan dorong perlahan ke atas pin gpio dari raspberry pi.
Kemudian sambungkan salah satu ujung kabel I2C ke sensor MPL3115A2 dan ujung lainnya ke pelindung I2C.
Hubungkan juga kabel Ethernet ke pi atau Anda dapat menggunakan modul WiFi.
Koneksi ditunjukkan pada gambar di atas.
Langkah 3: Kode:
Kode python untuk MPL3115A2 dapat diunduh dari repositori Github kami - Komunitas Toko DCUBE.
Ini tautannya
Kami telah menggunakan perpustakaan SMBus untuk kode python, langkah-langkah untuk menginstal SMBus pada raspberry pi dijelaskan di sini:
pypi.python.org/pypi/smbus-cffi/0.5.1
Anda juga dapat menyalin kode dari sini, diberikan sebagai berikut:
# Didistribusikan dengan lisensi kehendak bebas.
# Gunakan dengan cara apa pun yang Anda inginkan, untung atau gratis, asalkan sesuai dengan lisensi karya terkaitnya.
#MPL3115A2
# Kode ini dirancang untuk bekerja dengan Modul Mini MPL3115A2_I2CS I2C
impor smbus
waktu impor
# Dapatkan bus I2C
bus = smbus. SMBus(1)
# Alamat MPL3115A2, 0x60(96)
# Pilih register kontrol, 0x26(38)
# 0xB9(185) Mode aktif, OSR = 128, mode Altimeter
bus.write_byte_data(0x60, 0x26, 0xB9)
# Alamat MPL3115A2, 0x60(96)
# Pilih register konfigurasi data, 0x13(19)
# 0x07(07) Acara siap data diaktifkan untuk ketinggian, tekanan, suhu
bus.write_byte_data(0x60, 0x13, 0x07)
# Alamat MPL3115A2, 0x60(96)
# Pilih register kontrol, 0x26(38)
# 0xB9(185) Mode aktif, OSR = 128, mode Altimeter
bus.write_byte_data(0x60, 0x26, 0xB9)
waktu.tidur(1)
# Alamat MPL3115A2, 0x60(96)
# Baca data kembali dari 0x00(00), 6 byte
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data(0x60, 0x00, 6)
# Ubah data menjadi 20-bit
tTinggi = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16
ketinggian = tTinggi / 16.0
cTemp = suhu / 16.0
fTemp = cTemp * 1,8 + 32
# Alamat MPL3115A2, 0x60(96)
# Pilih register kontrol, 0x26(38)
# 0x39(57) Mode aktif, OSR = 128, mode Barometer
bus.write_byte_data(0x60, 0x26, 0x39)
waktu.tidur(1)
# Alamat MPL3115A2, 0x60(96)
# Baca data kembali dari 0x00(00), 4 byte
# status, tekan MSB1, tekan MSB, tekan LSB
data = bus.read_i2c_block_data(0x60, 0x00, 4)
# Ubah data menjadi 20-bit
pres = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
tekanan = (pres / 4.0) / 1000.0
# Keluarkan data ke layar
print "Tekanan: %.2f kPa" %tekanan
print "Ketinggian: %.2f m" %ketinggian
print "Suhu dalam Celcius: %.2f C" %cTemp
print "Suhu dalam Fahrenheit: %.2f F" %fTemp
Langkah 4: Aplikasi:
Berbagai aplikasi MPL3115A2 termasuk Altimetri Akurasi Tinggi, Smartphone/Tablet, Altimetri Elektronik Pribadi, dll. Ini juga dapat digabungkan dalam GPS Dead Reckoning, Peningkatan GPS untuk Layanan Darurat, Bantuan Peta, Navigasi, serta Peralatan Stasiun Cuaca.