산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

BMP085 온도 및 압력을 읽는 라즈베리 파이

eBay를 통해 저렴하게 구입한 또 다른 재미있는 작은 i2c 기기입니다. 그것은 기압과 온도를 읽습니다. 출력을 읽을 수 있는 것으로 변환하는 비교적 간단한 수학이 있습니다.

다시 한 번, ADAFruit은 Using BMP085 with Raspberry Pi에서 장치 사용을 위한 환상적인 가이드와 라이브러리를 제공합니다. 이전 게시물에서와 같이 ADAFruit 라이브러리를 즉시 사용할 수 있었습니다. 바퀴를 다시 발명하고 처음부터 다시 코딩할 필요를 느끼지는 않지만 작동 방식을 이해하고 싶습니다.

나는 몇 가지 다른 출처에서 정보를 가져왔습니다.

<울>
  • BMP085 온도를 읽고 있는 Maarten Damen의 버스 해적(이 글을 쓰는 시점의 사이트 다운)
  • Raspberry Pi로 Bosch BMP085에서 데이터 읽기에서 John Burn의 C 코드의 Python 포트
  • 다음은 장치를 Pi에 연결하는 매우 간단한 회로도입니다.

    가져오기 smbus 가져오기 시간 클래스 BMP085(): OSS = 3 def __init__( 자신 , i2c, 주소): 자신 .i2c = i2c 자신 .주소 = 주소 자신 .ac1 = 자신 .readSignedWord( 0xaa ) 자신 .ac2 = 자신 .readSignedWord( 0xac ) 자신 .ac3 = 자신 .readSignedWord( 0xae ) 자신 .ac4 = 자신 .readWord( 0xb0 ) 자신 .ac5 = 자신 .readWord( 0xb2 ) 자신 .ac6 = 자신 .readWord( 0xb4 ) 자신 .b1 = 자신 .readSignedWord( 0xb6 ) 자신 .b2 = 자신 .readSignedWord( 0xb8 ) 자신 .mb = 자신 .readSignedWord( 0xba ) 자신 .mc = 자신 .readSignedWord( 0xbc ) 자신 .md = 자신 .readSignedWord( 0xbe ) def readWord( 자신 , 등록): msb = 자신 .i2c.read_byte_data( 자신 .주소, 등록) lsb = 자체 .i2c.read_byte_data( 자체 .주소, 등록 + 1 ) = (msb << 8 ) + lsb 반환 def readSignedWord( 자신 , reg):msb = 자신 .i2c.read_byte_data( 자신 .address, reg) lsb = 자신 .i2c.read_byte_data( 자신 .주소, 등록 + 1 ) if (msb> 127 ): msb = msb - 256 = (msb << 8 ) + lsb 반환 def readUT( 자신 ): 자신 .i2c.write_byte_data( 자신 .주소, 0xf4 , 0x2e ) time.sleep( 0.0045 ) ut = 자신 .readWord( 0xf6 ) 반환 ut def readTemperature( 자신 ):ut = 자신 .readUT() x1 = ((ut - 자신 .ac6) * 자신 .ac5)>> 15 x2 = ( 자신 .mc << 11 ) / (x1 + 자신 .md) 자신 .b5 = x1 + x2 반환 (( 자신 .b5 + 8 )>> 4 ) / 10.0 def readUP( 자신 ): 자신 .i2c.write_byte_data( 자신 .주소, 0xf4 , 0x34 + ( 자신 .OSS << 6 )) 지연 = ( 2 + ( 3 << 자신 .OSS)) / 1000.0 time.sleep(지연) msb = 자신 .i2c.read_byte_data( 자신 .주소, 0xf6 ) lsb = 자신 .i2c.read_byte_data( 자신 .주소, 0xf7 ) xlsb = 자신 .i2c.read_byte_data( 자신 .주소, 0xf8 ) 위쪽 = (msb << 16 ) + (lsb << 8 ) + xlsb 위로 = 위쪽>> ( 8 - 자신 .OSS) 반환 def readPressure( 자신 ): 위쪽 = 자신 .readUP() b6 = 자신 .b5 - 4000 x1 = ( 자신 .b2 * (b6 * b6)>> 12 )>> 11 x2 = ( 자신 .ac2 * b6)>> 11 x3 = x1 + x2 b3 = ((( 자신 .ac1 * 4 + x3)<> 2 x1 = ( 자신 .ac3 * b6)>> 13 x2 = ( 자신 .b1 * ((b6 * b6)>> 12 ))>> 16 x3 = ((x1 + x2) + 2 )>> 2 b4 = ( 자체 .ac4 * (x3 + 32768 ))>> 15 b7 = (위로 - b3) * ( 50000 >> 자신 .OSS) if (b7 < 0x80000000 ): p = (b7<< 1 ) / b4 기타 : p = (b7 / b4)<> 8 ) * (p> > 8 ) x1 = (x1 * 3038 )>> 16 x2 = ( - 7357 * p)>> 16 p + = (x1 + x2 + 3791 )>> 4 반환 p i2c = smbus.SMBus( 0 ) bmp085 = BMP085(i2c, 0x77 ) t = bmp085.readTemperature() p = bmp085.readPressure() 인쇄 "온도:%.2f C" % t 인쇄 "압력:%.2f hPa" % (p / 100 ) 자세한 내용:Raspberry Pi 판독 BMP085 온도 및 압력

    제조공정

    1. 라즈베리 파이 온도 로거
    2. LabVIEW를 사용한 Raspberry Pi 온도 프로파일
    3. 1선 DS18B20 센서와 Raspberry Pi로 온도 측정
    4. Raspberry Pi 온도 및 습도 네트워크 모니터
    5. DS18B20으로 온도 읽기 | 라즈베리 파이 2
    6. Raspberry Pi의 온도 모니터링
    7. RASPBERRY PI로 온도 측정
    8. Raspberry pi를 사용하는 TMP006 온도 센서 Python 라이브러리,
    9. Python 및 Raspberry Pi 온도 센서
    10. Raspberry Pi의 간편한 온도 및 습도