Paso 3: código:
El código de python para MPL3115A2 puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/MPL3...
La hoja de datos de MPL3115A2 se puede encontrar aquí:
https://S3.amazonaws.com/controleverything.Media/c...
Hemos utilizado SMBus biblioteca de código de python, los pasos para instalar SMBus en frambuesa pi se describe aquí:
https://PyPI.Python.org/PyPI/SMBus-cffi/0.5.1
También puede copiar el código desde aquí, se da como sigue:
# Distribuido con una licencia de libre albedrío.
# Usar cualquier manera desea, beneficio o libre, siempre cabe en las licencias de sus obras anexas.
# MPL3115A2
# Este código está diseñado para trabajar con el módulo de Mini de I2C MPL3115A2_I2CS de ControlEverything.com.
# https://www.controleverything.com/products
importación de smbus
tiempo de importación
# Coger el autobús de I2C
autobús = smbus. SMBus(1)
# Dirección MPL3115A2, 0x60(96)
# Seleccione control registro, 0x26(38)
# 0xB9(185) el modo activo, OSR = 128, modo de altímetro
Bus.write_byte_data (0x60, 0x26, 0xB9)
# Dirección MPL3115A2, 0x60(96)
# Registro de datos seleccionar configuración, 0x13(19)
# 0x07(07) datos listo evento habilitado para altitud, presión, temperatura
Bus.write_byte_data (0x60, 0 x 13, 0x07)
# Dirección MPL3115A2, 0x60(96)
# Seleccione control registro, 0x26(38)
# 0xB9(185) el modo activo, OSR = 128, modo de altímetro
Bus.write_byte_data (0x60, 0x26, 0xB9)
Time.Sleep(1)
# Dirección MPL3115A2, 0x60(96)
# Leer los datos de 0x00(00), 6 bytes
# Estado, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, LSB del temp
datos = bus.read_i2c_block_data (0x60, 0 x 00, 6)
# Convertir los datos en 20 bits
tHeight = ((datos [1] * 65536) + (datos [2] * 256) + (datos [3] & 0xF0)) / 16
Temp = ((datos [4] * 256) + (datos [5] & 0xF0)) / 16
altitud = tHeight / 16.0
cTemp = temp / 16.0
fTemp = cTemp * 1.8 + 32
# Dirección MPL3115A2, 0x60(96)
# Seleccione control registro, 0x26(38)
# 0x39(57) el modo activo, OSR = 128, modalidad de barómetro
Bus.write_byte_data (0x60, 0x26, 0 x 39)
Time.Sleep(1)
# Dirección MPL3115A2, 0x60(96)
# Leer los datos de 0x00(00), 4 bytes
Estado #, pres MSB1, pres MSB, LSB de pres
datos = bus.read_i2c_block_data (0x60, 0 x 00, 4)
# Convertir los datos en 20 bits
Pres = ((datos [1] * 65536) + (datos [2] * 256) + (datos [3] & 0xF0)) / 16
presión = (pres / 4.0) / 1000.0
# Salida de datos a pantalla
Imprimir "presión: kPa %.2f" % presión
Imprimir "altitud: m %.2f" % altitud
Imprimir "temperatura en grados Celsius: %.2f C" % cTemp
Imprimir "temperatura en grados Fahrenheit: %.2f F" % fTemp