Stap 3: Code:
De python code voor MPL3115A2 kan worden gedownload van onze github archief-ControlEverythingCommunity
Hier is de link voor hetzelfde:
https://github.com/ControlEverythingCommunity/MPL3...
Het gegevensblad van MPL3115A2 kan hier worden gevonden:
https://S3.amazonaws.com/controleverything.Media/c...
We hebben hier SMBus bibliotheek voor python code, de stappen te installeren SMBus op raspberry pi wordt beschreven gebruikt:
https://pypi.python.org/pypi/SMBus-cffi/0.5.1
U kunt ook de code kopiëren vanaf hier, het wordt als volgt gegeven:
# Gedistribueerd met een licentie van de vrije wil.
# Gebruik het elke manier je wilt, winst of gratis, mits het past in de licenties van de bijbehorende werken.
# MPL3115A2
# Deze code is ontworpen om te werken met de MPL3115A2_I2CS I2C Mini Module beschikbaar vanaf ControlEverything.com.
# https://www.controleverything.com/products
importeren van smbus
importeren
# Haal I2C bus
bus = smbus. SMBus(1)
# MPL3115A2 adres, 0x60(96)
# Besturingselement select registreren, 0x26(38)
# 0xB9(185) actieve modus OSR = 128, hoogtemeter modus
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adres, 0x60(96)
# Selectiequery configuratie registreren, 0x13(19)
# 0x07(07) gegevens klaar gebeurtenis ingeschakeld voor hoogte, druk, temperatuur
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adres, 0x60(96)
# Besturingselement select registreren, 0x26(38)
# 0xB9(185) actieve modus OSR = 128, hoogtemeter modus
bus.write_byte_data (0x60, 0x26, 0xB9)
time.Sleep(1)
# MPL3115A2 adres, 0x60(96)
# Lees de gegevens terug uit 0x00(00), 6 bytes
# status, tHeight MSB1, tHeight MSB, tHeight LSB, MSB temp, temp LSB
gegevens = bus.read_i2c_block_data (0x60, 0x00, 6)
# De gegevens converteren naar 20-bits
tHeight = ((gegevens [1] * 65536) + (gegevens [2] * 256) + (gegevens [3] & 0xF0)) / 16
Temp = ((gegevens [4] * 256) + (gegevens [5] & 0xF0)) / 16
hoogte = tHeight / 16.0
cTemp = temp / 16.0
fTemp = cTemp * 1.8 + 32
# MPL3115A2 adres, 0x60(96)
# Besturingselement select registreren, 0x26(38)
# 0x39(57) actieve modus OSR = 128, Barometer modus
bus.write_byte_data (0x60, 0x26, 0x39)
time.Sleep(1)
# MPL3115A2 adres, 0x60(96)
# Lees de gegevens terug uit 0x00(00), 4 bytes
# status, pres MSB1, pres pres LSB, MSB
gegevens = bus.read_i2c_block_data (0x60, 0x00, 4)
# De gegevens converteren naar 20-bits
Pres = ((gegevens [1] * 65536) + (gegevens [2] * 256) + (gegevens [3] & 0xF0)) / 16
Druk = (pres / 4.0) / 1000.0
# Uitvoergegevens naar scherm
afdrukken "druk: %.2f kPa" % druk
afdrukken "hoogte: %.2f m" % hoogte
afdrukken "temperatuur in Celsius: %.2f C" % cTemp
afdrukken "temperatuur in Fahrenheit: %.2f F" % fTemp