Étape 3: Code :
Le code python pour MPL3115A2 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/MPL3...
Le datasheet du MPL3115A2 peut être trouvé ici :
https://S3.amazonaws.com/controleverything.Media/c...
Nous avons utilisé SMBus bibliothèque de code python, les étapes pour installer SMBus sur pi framboise est décrite ici :
https://Pypi.Python.org/Pypi/SMBus-cffi/0.5.1
Vous pouvez également copier le code d’ici, il est affecté comme suit :
# Distribué avec une licence libre-arbitre.
# Utiliser aucunement vous voulez, Profitez ou sans, autant il s’intègre dans les licences de ses ouvrages connexes.
# MPL3115A2
# Ce code est conçu pour fonctionner avec le MPL3115A2_I2CS I2C Mini Module disponible à ControlEverything.com.
# https://www.controleverything.com/products
importer smbus
moment de l’importation
# Obtenir le bus I2C
bus = smbus. SMBus(1)
# Adresse de MPL3115A2, 0x60(96)
# Registre de contrôle select, 0x26(38)
# 0xB9(185) en mode actif, OSR = 128, mode altimètre
bus.write_byte_data (0 x 60, 0 x 26, 0xB9)
# Adresse de MPL3115A2, 0x60(96)
# Le registre de configuration de données select, 0x13(19)
# 0x07(07) données prêt événement activé pour altitude, pression, température
bus.write_byte_data (0 x 60, 0 x 13, 0 x 07)
# Adresse de MPL3115A2, 0x60(96)
# Registre de contrôle select, 0x26(38)
# 0xB9(185) en mode actif, OSR = 128, mode altimètre
bus.write_byte_data (0 x 60, 0 x 26, 0xB9)
Time.Sleep(1)
# Adresse de MPL3115A2, 0x60(96)
# Lire les données à partir de 0x00(00), 6 octets
condition #, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
données = bus.read_i2c_block_data (0 x 60, 0 x 00, 6)
# Convertir les données en 20 bits
tHeight = ((données [1] * 65536) + (données [2] * 256) + (données [3] & 0xF0)) / 16
Temp = ((données [4] * 256) + (données [5] & 0xF0)) / 16
altitude = tHeight / 16,0
MTET = temp / 16,0
fTemp = MTET * 1.8 + 32
# Adresse de MPL3115A2, 0x60(96)
# Registre de contrôle select, 0x26(38)
# 0x39(57) en mode actif, OSR = 128, mode Baromètre
bus.write_byte_data (0 x 60, 0 x 26, 0 x 39)
Time.Sleep(1)
# Adresse de MPL3115A2, 0x60(96)
# Lire les données à partir de 0x00(00), 4 octets
condition #, prés MSB1, pres MSB, pres LSB
données = bus.read_i2c_block_data (0 x 60, 0 x 00, 4)
# Convertir les données en 20 bits
PRES = ((données [1] * 65536) + (données [2] * 256) + (données [3] & 0xF0)) / 16
pression = (pres / 4,0) / 1000.0
# Sortie de données à l’écran
imprimer "pression : %.2f kPa" % pression
imprimer "Altitude : %.2f m « % altitude
imprimer "température en degrés Celsius : %.2f C » % MTET
imprimer "température en degrés Fahrenheit : %.2f F" % fTemp