Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

BMP180 I2C Digital Barometric Pressure Sensor

Perangkat BMP180 adalah sensor tekanan barometrik digital. Ini tersedia pada modul kecil yang menyediakan akses ke sensor melalui antarmuka I2C. Hal ini memungkinkan kita untuk dengan mudah menghubungkannya ke Raspberry Pi dengan kabel minimal.

Modul saya adalah PCB kecil berukuran 15x13mm dengan header 5 pin. Urutan pin mungkin berbeda pada modul lain, jadi perhatikan labelnya agar Anda menyambungkan kabel yang benar dari Pi.

BMP180 dibuat oleh Bosch dan lembar data resmi BMP180 mencakup semua detail teknis.

Konfigurasi Antarmuka I2C

Untuk menggunakan modul ini, Anda harus mengaktifkan antarmuka I2C pada Raspberry Pi karena tidak diaktifkan secara default. Ini adalah proses yang cukup mudah dan dijelaskan dalam tutorial Mengaktifkan Antarmuka I2C Pada Raspberry Pi.

Menghubungkan Perangkat Keras

Tabel di bawah menunjukkan cara modul terhubung ke header GPIO (P1) Raspberyr Pi. Silakan merujuk ke panduan header GPIO saya untuk diagram.

Modul PCB Des Pin Header GPIO
VCC 3.3V P1-01
GND Tanah H1-06
SCL I2C SCL H1-05
SDA I2C SDA P1-03
3.3V

Berikut adalah diagram pengaturan papan tempat memotong roti. Jika Anda menghubungkan empat pin modul secara langsung ke Pi, Anda hanya memerlukan empat kabel female-female.

Diagram papan tempat memotong roti menggunakan bagian khusus yang saya tentukan di Fritzing. Tersedia modul lain yang memiliki pengaturan pin berbeda, jadi pastikan Anda menghubungkan pin yang benar ke Pi jika pin Anda berbeda dengan yang ditunjukkan dalam tutorial ini.

Dengan perangkat terhubung dan Pi dihidupkan, perintah “i2cdetect” akan menampilkan perangkat dengan alamat 0x77.

Contoh Skrip Python

Berikut adalah contoh script Python untuk membaca data tekanan dan temperatur dari sensor :

1234567891011213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596616263647266676869701013961118888889900859661626364726667686970 #!/usr/bin/python impor smbus impor waktu dari ctypes impor c_short PERANGKAT 0x77 # Alamat I2C perangkat default #bus =smbus.SMBus(0)  # Rev 1 Pi menggunakan 0 bus smbus.SMBus( 1 ) # Rev 2 Pi menggunakan 1 def convertToString(data): # Fungsi sederhana untuk mengubah data biner menjadi # string kembalikan str ((data[ 1 ] + 256 data[ 0 ])) / 1.2 def getShort(data, indeks): # mengembalikan dua byte dari data sebagai nilai 16-bit yang ditandatangani kembalikan c_short((data[index]<< 8 ) + data[indeks + 1 ]).nilai def getUshort(data, indeks): # mengembalikan dua byte dari data sebagai nilai 16-bit yang tidak ditandatangani kembalikan (data[indeks]<< 8 ) + data[indeks + 1 def readBmp180Id(addr PERANGKAT): # Alamat Daftar REG_ID     0xD0 (chip_id, chip_version) bus.read_i2c_block_data(addr, REG_ID, 2 kembalikan (chip_id, chip_version) def readBmp180(addr PERANGKAT): # Daftarkan Alamat REG_CALIB  0xAA REG_MEAS   0xF4 REG_MSB    0xF6 REG_LSB    0xF7 # Kontrol Alamat Daftar CRV_TEMP   0x2E CRV_PRES   0x34 # Pengaturan sampel berlebih OVERSAMPLE 3 # 0 - 3 # Baca data kalibrasi # Membaca data kalibrasi dari EEPROM cal bus.read_i2c_block_data(addr, REG_CALIB, 22 # Konversikan data byte ke nilai kata AC1 getShort(cal, 0 AC2 getShort(cal, 2 AC3 getShort(cal, 4 AC4 getUshort(cal, 6 AC5 getUshort(cal, 8 AC6 getUshort(cal, 10 B1  getShort(cal, 12 B2  getShort(cal, 14 MB  getShort(cal, 16 MC  getShort(cal, 18 MD  getShort(cal, # Baca suhu bus.write_byte_data(addr, REG_MEAS, CRV_TEMP) time.sleep( 0,005 (msb, lsb) bus.read_i2c_block_data(addr, REG_MSB, 2 UT (msb << 8 ) + lsb # Tekanan baca bus.write_byte_data(addr, REG_MEAS, CRV_PRES + (OVERSAMPLE << 6 )) time.sleep( 0,04 (msb, lsb, xsb) bus.read_i2c_block_data(addr, REG_MSB, 3 NAIK ((msb << 16 ) + (lsb << 8 ) + xsb)>> ( 8 - OVERSAMPLE) # Perbaiki suhu X1 ((UT - AC6) AC5)>> 15 X2 (MC << 11 ) / (X1 + MD) B5 X1 + X2 suhu (B5 + 8 )>> 4 # Perbaiki tekanan B6  B5 - 4000 B62 B6 B6>> 12 X1  (B2 B62)>> 11 X2  AC2 B6>> 11 X3  X1 + X2 B3  (((AC1 4 + X3) < + 2 )>> 2 X1 AC3 B6>> 13 X2 (B1 B62)>> 16 X3 ((X1 + X2) + 2 )>> 2 B4 (AC4 (X3 + 32768 ))>> 15 B7 (NAIK - B3) 50.000 >> OVERSAMPLE) P (B7 2 ) / B4 X1 (P>> 8 ) (P>> 8 X1 (X1 3038 )>> 16 X2 - 7357 P)>> 16 tekanan P + ((X1 + X2 + 3791 )>> 4 kembalikan (suhu / 10.0 ,tekanan / 100.0 def main():      (chip_id, chip_version) readBmp180Id() cetak "Chip ID     :" , chip_id cetak "Versi     :" , chip_version cetak (suhu,tekanan) readBmp180() cetak "Suhu :" , suhu, "C" cetak "Tekanan    :" , tekanan, "mbar" jika __name__     main()

Disarankan agar Anda mengunduh skrip ini langsung ke Pi Anda menggunakan perintah berikut:

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py

atau gunakan tautan ini di browser.

Untuk menjalankannya Anda dapat menggunakan perintah berikut :

Untuk detail lebih lanjut:Sensor Tekanan Barometrik Digital BMP180 I2C


Proses manufaktur

  1. Infineon:sensor tekanan barometrik ultra-kecil
  2. Infineon meluncurkan sensor Turbo MAP digital yang sangat akurat
  3. Dasar-dasar sensor magnetik digital
  4. Kit desain mengukur tekanan darah dengan sensor optik
  5. Sensor tekanan barometrik menawarkan peningkatan akurasi
  6. Pencatat Suhu Raspberry Pi
  7. Raspberry Pi 1- Sensor Termometer Digital Kawat (DS18B20)
  8. Raspberry Pi digital Hall sensor in JAVA
  9. Sensor Cahaya Digital
  10. Sensor Tekanan Logam Cair yang Dapat Dipakai