Table des matières:
Vidéo: Raspberry Pi - Tutoriel Python du capteur altimètre de précision MPL3115A2 : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Le MPL3115A2 utilise un capteur de pression MEMS avec une interface I2C pour fournir des données précises de pression/altitude et température. Les sorties des capteurs sont numérisées par un CAN 24 bits haute résolution. Le traitement interne supprime les tâches de compensation du système MCU hôte. Il est capable de détecter un changement de seulement 0,05 kPa, ce qui équivaut à un changement d'altitude de 0,3 m. Voici sa démonstration avec raspberry pi en utilisant du code python.
Étape 1: Ce dont vous avez besoin.
1. Framboise Pi
2. MPL3115A2
3. Câble I²C
4. Bouclier I²C pour Raspberry Pi
5. Câble Ethernet
Étape 2: Connexions:
Prenez un shield I2C pour raspberry pi et poussez-le doucement sur les broches gpio de raspberry pi.
Connectez ensuite l'une des extrémités du câble I2C au capteur MPL3115A2 et l'autre extrémité au blindage I2C.
Connectez également le câble Ethernet au pi ou vous pouvez utiliser un module WiFi.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:
Le code python pour MPL3115A2 peut être téléchargé à partir de notre référentiel Github - Communauté DCUBE Store.
Voici le lien
Nous avons utilisé la bibliothèque SMBus pour le code python, les étapes pour installer SMBus sur raspberry pi sont décrites ici:
pypi.python.org/pypi/smbus-cffi/0.5.1
Vous pouvez également copier le code d'ici, il est donné comme suit:
# Distribué avec une licence libre-arbitre.
# Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il s'intègre dans les licences de ses œuvres associées.
#MPL3115A2
# Ce code est conçu pour fonctionner avec le mini module MPL3115A2_I2CS I2C
importer smbus
heure d'importation
# Obtenez le bus I2C
bus = smbus. SMbus(1)
# Adresse MPL3115A2, 0x60(96)
# Sélectionnez le registre de contrôle, 0x26(38)
# 0xB9(185) Mode actif, OSR = 128, Mode altimètre
bus.write_byte_data (0x60, 0x26, 0xB9)
# Adresse MPL3115A2, 0x60(96)
# Sélectionnez le registre de configuration des données, 0x13(19)
# 0x07(07) Événement de données prêtes activé pour l'altitude, la pression et la température
bus.write_byte_data (0x60, 0x13, 0x07)
# Adresse MPL3115A2, 0x60(96)
# Sélectionnez le registre de contrôle, 0x26(38)
# 0xB9(185) Mode actif, OSR = 128, Mode altimètre
bus.write_byte_data (0x60, 0x26, 0xB9)
heure.sommeil(1)
# Adresse MPL3115A2, 0x60(96)
# Lire les données à partir de 0x00(00), 6 octets
# état, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
données = bus.read_i2c_block_data (0x60, 0x00, 6)
# Convertir les données en 20 bits
tHauteur = ((données[1] * 65536) + (données[2] * 256) + (données[3] & 0xF0)) / 16
temp = ((données[4] * 256) + (données[5] & 0xF0)) / 16
altitude = tHauteur / 16,0
cTemp = température / 16,0
fTemp = cTemp * 1,8 + 32
# Adresse MPL3115A2, 0x60(96)
# Sélectionnez le registre de contrôle, 0x26(38)
# 0x39 (57) Mode actif, OSR = 128, mode Baromètre
bus.write_byte_data (0x60, 0x26, 0x39)
heure.sommeil(1)
# Adresse MPL3115A2, 0x60(96)
# Lire les données à partir de 0x00(00), 4 octets
# statut, appuyez sur MSB1, appuyez sur MSB, appuyez sur LSB
données = bus.read_i2c_block_data (0x60, 0x00, 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
# Données de sortie à l'écran
imprimer "Pression: %.2f kPa" %pression
imprimer "Altitude: %.2f m" %altitude
print "Température en Celsius: %.2f C" %cTemp
print "Température en Fahrenheit: %.2f F" %fTemp
Étape 4: Candidatures:
Diverses applications du MPL3115A2 incluent l'altimétrie de haute précision, les smartphones/tablettes, l'altimétrie électronique personnelle, etc.
Conseillé:
Capteur de respiration bricolage avec Arduino (capteur d'étirement tricoté conducteur): 7 étapes (avec photos)
Capteur de respiration bricolage avec Arduino (capteur d'étirement tricoté conducteur): Ce capteur de bricolage prendra la forme d'un capteur d'étirement tricoté conducteur. Il s'enroulera autour de votre poitrine/estomac, et lorsque votre poitrine/estomac se dilate et se contracte, le capteur et par conséquent les données d'entrée qui sont transmises à l'Arduino. Donc
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon 433 mhz : 6 étapes
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon à 433 mhz : il s'agit de la construction d'un capteur de température et d'humidité à énergie solaire. Le capteur émule un capteur Oregon de 433 mhz et est visible dans la passerelle Telldus Net. Capteur de mouvement à énergie solaire" d'Ebay. Assurez-vous qu'il est écrit 3.7v pâte
Capteur magnétique RaspberryPi 3 avec mini capteur Reed : 6 étapes
Capteur magnétique RaspberryPi 3 avec mini capteur Reed : dans ce Instructable, nous allons créer un capteur magnétique IoT à l'aide d'un RaspberryPi 3. Le capteur se compose d'une LED et d'un buzzer, qui s'allument tous les deux lorsqu'un aimant est détecté par le mini capteur reed
Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : 8 étapes
Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : De nos jours, les fabricants et les développeurs préfèrent Arduino pour le développement rapide du prototypage de projets. Arduino est une plate-forme électronique open source basée sur du matériel et des logiciels faciles à utiliser. Arduino a une très bonne communauté d'utilisateurs. Dans ce projet
DIY : Mini boîtier de capteur monté au plafond avec capteur de mouvement focalisable : 4 étapes
DIY : Mini boîtier de capteur monté au plafond avec capteur de mouvement focalisable : Bonjour. Il y a quelque temps, j'ai aidé mon ami avec le concept de maison intelligente et j'ai créé un mini boîtier de capteur avec un design personnalisé qui pourrait être monté au plafond dans le trou de 40x65 mm. Ce coffret permet de :• mesurer l'intensité lumineuse• mesurer l'humidité