Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Leitura de Raspberry Pi BMP085 Temperatura e pressão


Outro pequeno dispositivo i2c divertido adquirido por um preço baixo no eBay. Ele lê a pressão barométrica e a temperatura. Existem algumas matemáticas relativamente simples para converter as saídas em algo legível.

Mais uma vez, ADAFruit fornece um guia fantástico e biblioteca para usar o dispositivo em seu Uso do BMP085 com Raspberry Pi. Como nos posts anteriores, eu poderia ter usado a biblioteca ADAFruit pronta para uso. Embora eu não sinta a necessidade de reinventar a roda e recodificar do zero, gosto de entender como ela funciona.

Extraí as informações de algumas outras fontes:

Abaixo está o esquema muito simples para conectar o dispositivo ao Pi.
importação smbus importação hora classe BMP085 (): OSS = 3 def __ init __ ( self , i2c, endereço): self . i2c = i2c self . endereço = endereço self . ac1 = self . readSignedWord ( 0xaa ) self . ac2 = self . readSignedWord ( 0xac ) self . ac3 = self . readSignedWord ( 0xae ) self . ac4 = self . readWord ( 0xb0 ) self . ac5 = self . readWord ( 0xb2 ) self . ac6 = self . readWord ( 0xb4 ) self . b1 = self . readSignedWord ( 0xb6 ) self . b2 = self . readSignedWord ( 0xb8 ) self . mb = self . readSignedWord ( 0xba ) self . mc = self . readSignedWord ( 0xbc ) self . md = self . readSignedWord ( 0xbe ) def readWord ( self , reg): msb = self . i2c.read_byte_data ( self . address, reg) lsb = self . i2c.read_byte_data ( self . endereço, reg + 1 ) valor = (msb << 8 ) + lsb return valor def readSignedWord ( self , reg):msb = self . i2c.read_byte_data ( self . address, reg) lsb = self . i2c.read_byte_data ( self . endereço, reg + 1 ) if (msb> 127 ): msb = msb - 256 valor = (msb << 8 ) + lsb return valor def readUT ( self ): self . i2c.write_byte_data ( self . endereço, 0xf4 , 0x2e ) time.sleep ( 0,0045 ) ut = self . readWord ( 0xf6 ) return ut def readTemperature ( self ):ut = self . readUT () x1 = ((ut - self . ac6) * self . ac5)>> 15 x2 = ( self . mc << 11 ) / (x1 + self . md) self . b5 = x1 + x2 return (( self . b5 + 8 )>> 4 ) / 10.0 def readUP ( self ): self . i2c.write_byte_data ( self . endereço, 0xf4 , 0x34 + ( self . OSS << 6 )) atraso = ( 2 + ( 3 << self . OSS)) / 1000,0 time.sleep (delay) msb = self . i2c.read_byte_data ( self . endereço, 0xf6 ) lsb = self . i2c.read_byte_data ( self . endereço, 0xf7 ) xlsb = self . i2c.read_byte_data ( self . endereço, 0xf8 ) up = (msb << 16 ) + (lsb << 8 ) + xlsb up = up> > ( 8 - self . OSS) return up def readPressure ( self ): up = self . readUP () b6 = self . b5 - 4000 x1 = ( self . b2 * (b6 * b6)>> 12 )>> 11 x2 = ( self . ac2 * b6)>> 11 x3 = x1 + x2 b3 = ((( self . ac1 * 4 + x3) <> 2 x1 = ( self . ac3 * b6)>> 13 x2 = ( self . b1 * ((b6 * b6)>> 12 ))>> 16 x3 = ((x1 + x2) + 2 )>> 2 b4 = ( self . ac4 * (x3 + 32768 ))>> 15 b7 = (up - b3) * ( 50000 >> self . OSS) if (b7 < 0x80000000 ): p = (b7 << 1 ) / b4 else : 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 "Pressão:% .2f hPa" % (p / 100 ) Para mais detalhes:Raspberry Pi lendo BMP085 Temperatura e pressão

Processo de manufatura

  1. Registrador de temperatura Raspberry Pi
  2. Perfil de temperatura Raspberry Pi usando LabVIEW
  3. Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
  4. Monitor de rede de temperatura e umidade Raspberry Pi
  5. Ler a temperatura com DS18B20 | Raspberry Pi 2
  6. Monitoramento de temperatura no Raspberry Pi
  7. Medindo a temperatura com RASPBERRY PI
  8. Biblioteca Python do sensor de temperatura TMP006 usando Raspberry pi,
  9. Sensor de temperatura Python e Raspberry Pi
  10. Temperatura e umidade fáceis no Raspberry Pi