Inhoudsopgave:
Video: Raspberry Pi - MPL3115A2 Precisiehoogtemetersensor Python-zelfstudie - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
De MPL3115A2 maakt gebruik van een MEMS-druksensor met een I2C-interface om nauwkeurige druk-/hoogte- en temperatuurgegevens te leveren. De sensoruitgangen worden gedigitaliseerd door een 24-bits ADC met hoge resolutie. Interne verwerking verwijdert compensatietaken van het host-MCU-systeem. Het is in staat om een verandering van slechts 0,05 kPa te detecteren, wat overeenkomt met een hoogteverandering van 0,3 m. Hier is de demonstratie met raspberry pi met behulp van python-code.
Stap 1: Wat je nodig hebt.
1. Raspberry Pi
2. MPL3115A2
3. I²C-kabel
4. I²C-schild voor Raspberry Pi
5. Ethernet-kabel
Stap 2: Aansluitingen:
Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.
Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MPL3115A2-sensor en het andere uiteinde op de I2C-afscherming.
Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.
De aansluitingen zijn weergegeven in de afbeelding hierboven.
Stap 3: Coderen:
De python-code voor MPL3115A2 kan worden gedownload van onze Github-repository - DCUBE Store Community.
Hier is de link
We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:
# Gedistribueerd met een vrije wilslicentie.
# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.
# MPL3115A2
# Deze code is ontworpen om te werken met de MPL3115A2_I2CS I2C Mini Module
import smbus
import tijd
# Krijg I2C-bus
bus = smbus. SMBus(1)
# MPL3115A2 adres, 0x60(96)
# Selecteer controleregister, 0x26(38)
# 0xB9 (185) Actieve modus, OSR = 128, Hoogtemetermodus
bus.write_byte_data(0x60, 0x26, 0xB9)
# MPL3115A2 adres, 0x60(96)
# Selecteer dataconfiguratieregister, 0x13(19)
# 0x07(07) Gegevens gereedgebeurtenis ingeschakeld voor hoogte, druk, temperatuur
bus.write_byte_data(0x60, 0x13, 0x07)
# MPL3115A2 adres, 0x60(96)
# Selecteer controleregister, 0x26(38)
# 0xB9 (185) Actieve modus, OSR = 128, Hoogtemetermodus
bus.write_byte_data(0x60, 0x26, 0xB9)
tijd.slaap(1)
# MPL3115A2 adres, 0x60(96)
# Lees gegevens terug van 0x00(00), 6 bytes
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data(0x60, 0x00, 6)
# Converteer de gegevens naar 20-bits
tHeight = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16
hoogte = tHoogte / 16.0
cTemp = temperatuur / 16.0
fTemp = cTemp * 1.8 + 32
# MPL3115A2 adres, 0x60(96)
# Selecteer controleregister, 0x26(38)
# 0x39(57) Actieve modus, OSR = 128, Barometermodus
bus.write_byte_data(0x60, 0x26, 0x39)
tijd.slaap(1)
# MPL3115A2 adres, 0x60(96)
# Lees gegevens terug van 0x00(00), 4 bytes
# status, druk op MSB1, druk op MSB, druk op LSB
data = bus.read_i2c_block_data(0x60, 0x00, 4)
# Converteer de gegevens naar 20-bits
pres = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
druk = (druk / 4,0) / 1000,0
# Gegevens uitvoeren naar scherm
print "Druk: %.2f kPa" %druk
print "Hoogte: %.2f m" %hoogte
print "Temperatuur in Celsius: %.2f C" %cTemp
print "Temperatuur in Fahrenheit: %.2f F" %fTemp
Stap 4: Toepassingen:
Verschillende toepassingen van de MPL3115A2 omvatten hoogtemeting met hoge nauwkeurigheid, smartphones/tablets, hoogtemeting voor persoonlijke elektronica, enz. Het kan ook worden opgenomen in GPS-geschatte berekeningen, GPS-verbeteringen voor hulpdiensten, kaartassistentie, navigatie en weerstationapparatuur.
Aanbevolen:
Mappen synchroniseren met Python: 5 stappen
Mappen synchroniseren met Python: deze instructable laat je zien hoe je twee mappen (en alle mappen daarin) synchroon kunt houden, zodat de ene een directe kopie van de andere is. Ideaal voor het back-uppen van werk zowel lokaal, naar een cloud/netwerkserver of een USB-stick. Geen ervaring met programmeren is n
Python-introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: 7 stappen
Python Introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: Hallo, we zijn 2 studenten in MYP 2. We willen je de basis leren van het coderen van Python. Het werd eind jaren 80 gemaakt door Guido van Rossum in Nederland. Het werd gemaakt als een opvolger van de ABC-taal. Zijn naam is "Python" omdat wanneer
QR-codescanner met OpenCV in Python: 7 stappen
QR-codescanner met OpenCV in Python: in de wereld van vandaag zien we dat QR-code en streepjescode bijna overal worden gebruikt, van productverpakkingen tot online betalingen en tegenwoordig zien we QR-codes zelfs in restaurants om het menu te zien. Dus nee betwijfel of het nu de grote gedachte is. Maar heb je ooit
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: 4 stappen (met afbeeldingen)
Meerdere LED's besturen met Python en de GPIO-pinnen van je Raspberry Pi: deze Instructable laat zien hoe je meerdere GPIO-pinnen op je RaspberryPi kunt besturen om 4 LED's van stroom te voorzien. Het zal je ook kennis laten maken met parameters en voorwaardelijke uitspraken in Python.Onze vorige Instructable met behulp van de GPIO-pinnen van je Raspberry Pi om
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50