Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Lectura de Raspberry Pi BMP085 Temperatura y presión

Otro pequeño y divertido dispositivo i2c adquirido a bajo precio a través de eBay. Lee la presión barométrica y la temperatura. Hay algunas matemáticas relativamente simples para convertir los resultados en algo legible.

Una vez más, ADAFruit proporciona una guía y una biblioteca fantásticas para usar el dispositivo en su Uso del BMP085 con Raspberry Pi. Como en publicaciones anteriores, podría haber usado la biblioteca ADAFruit lista para usar. Si bien no siento la necesidad de reinventar la rueda y volver a codificar desde cero, me gusta comprender cómo funciona.

Obtuve la información de un par de otras fuentes:

A continuación se muestra un esquema muy simple para conectar el dispositivo al Pi.

importar smbus importar tiempo clase BMP085 (): OSS = 3 def __ init __ ( yo , i2c, dirección): yo . i2c = i2c yo . dirección = dirección yo . ac1 = yo . readSignedWord ( 0xaa ) yo . ac2 = yo . readSignedWord ( 0xac ) yo . ac3 = yo . readSignedWord ( 0xae ) yo . ac4 = yo . readWord ( 0xb0 ) yo . ac5 = yo . readWord ( 0xb2 ) yo . ac6 = yo . readWord ( 0xb4 ) yo . b1 = yo . readSignedWord ( 0xb6 ) yo . b2 = yo . readSignedWord ( 0xb8 ) yo . mb = yo . readSignedWord ( 0xba ) yo . mc = yo . readSignedWord ( 0xbc ) yo . md = yo . readSignedWord ( 0xbe ) def readWord ( yo , reg): msb = yo . i2c.read_byte_data ( yo . dirección, reg) lsb = yo . i2c.read_byte_data ( yo . dirección, reg + 1 ) valor = (msb << 8 ) + lsb return valor def readSignedWord ( yo , reg):msb = yo . i2c.read_byte_data ( yo . dirección, reg) lsb = yo . i2c.read_byte_data ( yo . dirección, reg + 1 ) si (msb> 127 ): msb = msb - 256 valor = (msb << 8 ) + lsb return valor def readUT ( yo ): yo . i2c.write_byte_data ( yo . dirección, 0xf4 , 0x2e ) time.sleep ( 0,0045 ) ut = yo . readWord ( 0xf6 ) return ut def readTemperature ( yo ):ut = yo . readUT () x1 = ((ut - yo . ac6) * yo . ac5)>> 15 x2 = ( yo . mc << 11 ) / (x1 + yo . md) yo . b5 = x1 + x2 return (( yo . b5 + 8 )>> 4 ) / 10.0 def readUP ( yo ): yo . i2c.write_byte_data ( yo . dirección, 0xf4 , 0x34 + ( yo . OSS << 6 )) retraso = ( 2 + ( 3 << yo . OSS)) / 1000.0 time.sleep (retraso) msb = yo . i2c.read_byte_data ( yo . dirección, 0xf6 ) lsb = yo . i2c.read_byte_data ( yo . dirección, 0xf7 ) xlsb = yo . i2c.read_byte_data ( yo . dirección, 0xf8 ) arriba = (msb << 16 ) + (lsb << 8 ) + xlsb arriba = arriba>> ( 8 - yo . OSS) return arriba def readPressure ( yo ): arriba = yo . readUP () b6 = yo . b5 - 4000 x1 = ( yo . b2 * (b6 * b6)>> 12 )>> 11 x2 = ( yo . ac2 * b6)>> 11 x3 = x1 + x2 b3 = ((( yo . ac1 * 4 + x3) <> 2 x1 = ( yo . ac3 * b6)>> 13 x2 = ( yo . b1 * ((b6 * b6)>> 12 ))>> 16 x3 = ((x1 + x2) + 2 )>> 2 b4 = ( yo . ac4 * (x3 + 32768 ))>> 15 b7 = (arriba - b3) * ( 50000 >> yo . OSS) si (b7 < 0x80000000 ): p = (b7 << 1 ) / b4 más : p = (b7 / b4) <> 8 ) * (p> > 8 ) x1 = (x1 * 3038 )>> 16 x2 = ( - 7357 * p)>> 16 p + = (x1 + x2 + 3791 )>> 4 return p i2c = smbus.SMBus ( 0 ) bmp085 = BMP085 (i2c, 0x77 ) t = bmp085.readTemperature () p = bmp085.readPressure () imprimir "Temperatura:% .2f C" % t imprimir "Presión:% .2f hPa" % (p / 100 ) Para más detalles:Raspberry Pi leyendo BMP085 Temperatura y presión

Proceso de manufactura

  1. Registrador de temperatura Raspberry Pi
  2. Perfil de temperatura de Raspberry Pi usando LabVIEW
  3. Mide temperaturas con un sensor DS18B20 de 1 cable y Raspberry Pi
  4. Monitor de red de temperatura y humedad Raspberry Pi
  5. Leer temperatura con DS18B20 | Raspberry Pi 2
  6. Monitoreo de temperatura en Raspberry Pi
  7. Medición de temperatura con RASPBERRY PI
  8. Biblioteca Python del sensor de temperatura TMP006 con Raspberry pi,
  9. Sensor de temperatura Python y Raspberry Pi
  10. Temperatura y humedad sencillas en Raspberry Pi
  11. Supervisión de la temperatura con Raspberry Pi