Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur de pression barométrique numérique BMP180 I2C

L'appareil BMP180 est un capteur de pression barométrique numérique. Celui-ci est disponible sur un petit module qui permet d'accéder au capteur via l'interface I2C. Cela nous permet de le connecter facilement au Raspberry Pi avec un minimum de câblage.

Mon module est un petit PCB mesurant 15x13mm avec un en-tête à 5 broches. L'ordre des broches peut varier sur d'autres modules, alors gardez un œil sur les étiquettes afin de connecter les bons fils du Pi.

Le BMP180 est fabriqué par Bosch et la fiche technique officielle du BMP180 comprend tous les détails techniques.

Configurer l'interface I2C

Pour utiliser ce module, vous devez activer l'interface I2C sur le Raspberry Pi car elle n'est pas activée par défaut. Il s'agit d'un processus assez simple qui est décrit dans mon didacticiel Activation de l'interface I2C sur le Raspberry Pi.

Matériel de connexion

Le tableau ci-dessous montre comment le module est connecté à l'en-tête GPIO du Raspberyr Pi (P1). Veuillez vous référer à mon guide d'en-tête GPIO pour un diagramme.

Module PCB Description Broches d'en-tête GPIO
VCC 3,3 V P1-01
GND Sol P1-06
SCL I2C SCL P1-05
SDA I2C SDA P1-03
3,3 V

Voici un schéma d'une configuration de maquette. Si vous connectez les quatre broches du module directement au Pi, vous n'avez besoin que de quatre fils femelle-femelle.

Le schéma de la maquette utilise une pièce personnalisée que j'ai définie dans Fritzing. D'autres modules sont disponibles qui ont des dispositions de broches différentes, alors assurez-vous de connecter les bonnes broches au Pi si la vôtre est différente de celle illustrée dans ce didacticiel.

Avec l'appareil connecté et le Pi sous tension, la commande "i2cdetect" devrait afficher l'appareil avec l'adresse 0x77.

Exemple de script Python

Voici un exemple de script Python pour lire les données de pression et de température du capteur :

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748484950515253545565657585960616263646566768767677870798730812109698110911091110d95051525354556565758596061626364656676869787079873081210969811099109990 #!/usr/bin/python import smbus import heure de ctypes import c_short   APPAREIL = 0x77 # Adresse I2C de l'appareil par défaut   #bus =smbus.SMBus(0)  # La rév 1 Pi utilise 0 bus = smbus.SMBus( 1 ) # Rev 2 Pi utilise 1   def convertToString(data) :    # Fonction simple pour convertir des données binaires en    # une chaîne    retour str ((data[ 1 ] + ( 256 * données[ 0 ])) / 1.2 ) def getShort(données, index) :    # renvoie deux octets des données sous la forme d'une valeur signée de 16 bits    retour c_short((data[index]<< 8 ) + données[index + 1 ]).value def getUshort(data, index) :    # renvoie deux octets des données sous la forme d'une valeur 16 bits non signée    retour (data[index]<< 8 ) + données[index + 1 ] def readBmp180Id(addr = APPAREIL :    # Adresse d'inscription    REG_ID     = 0xD0    (chip_id, chip_version) = bus.read_i2c_block_data(addr, REG_ID, 2 )    retour (chip_id, chip_version)    def readBmp180(addr = APPAREIL :    # Enregistrer les adresses    REG_CALIB  = 0xAA    REG_MEAS   = 0xF4    REG_MSB    = 0xF6    REG_LSB    = 0xF7    # Adresse du registre de contrôle    CRV_TEMP   = 0x2E    CRV_PRES   = 0x34    # paramètre de suréchantillonnage    SUR ÉCHANTILLON = 3 # 0 - 3       # Lire les données d'étalonnage    # Lire les données d'étalonnage de l'EEPROM    cal = bus.read_i2c_block_data(addr, REG_CALIB, 22 )    # Convertir les données d'octets en valeurs de mots    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 )    Mo  = getShort(cal, 16 )    MC  = getShort(cal, 18 )    MD  = getShort(cal, 20 )    # Lecture de la température    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    # Pression de lecture    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 )    UP = ((msb << 16 ) + (lsb << 8 ) + xsb)>> ( 8 - SUR ÉCHANTILLON)    # Affiner la température    X1 = ((UT - AC6) * AC5)>> 15    X2 = (MC << 11 ) / (X1 + MD)    B5 = X1 + X2    température = (B5 + 8 )>> 4    # Affiner la pression    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 = (UP - B3) * ( 50000 >> SURÉCHANTILLON)    P = (B7 * 2 ) / B4    X1 = (P>> 8 ) * (P>> 8 )    X1 = (X1 * 3038 )>> 16    X2 = ( - 7357 * P)>> 16    pression = P + ((X1 + X2 + 3791 )>> 4 )    retour (température / 10.0 ,pression / 100.0 ) def main() :         (chip_id, chip_version) = readBmp180Id()    imprimer "ID de puce     :" , chip_id    imprimer "Version     :" , chip_version    imprimer       (température,pression) = readBmp180()    imprimer "Température :" , température, "C"    imprimer "Pression    :" , pression, "mbar"    if __name__ = = "__main__"  :     main()

Il est recommandé de télécharger ce script directement sur votre Pi en utilisant la commande suivante :

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

ou utilisez ce lien dans un navigateur.

Pour l'exécuter vous pouvez utiliser la commande suivante :

Pour plus de détails : Capteur de pression barométrique numérique BMP180 I2C


Processus de fabrication

  1. Infineon :capteur de pression barométrique ultra-compact
  2. Infineon lance un capteur Turbo MAP numérique très précis
  3. Principes de base des capteurs magnétiques numériques
  4. Kit de conception mesure la tension artérielle avec capteur optique
  5. Le capteur de pression barométrique offre une précision accrue
  6. Enregistreur de température Raspberry Pi
  7. Capteur de thermomètre numérique Raspberry Pi à 1 fil (DS18B20)
  8. Capteur Hall numérique Raspberry Pi en JAVA
  9. Capteur de lumière numérique