Table des matières:

Raspberry Pi - Tutoriel Java du capteur altimètre de précision MPL3115A2 : 4 étapes
Raspberry Pi - Tutoriel Java du capteur altimètre de précision MPL3115A2 : 4 étapes

Vidéo: Raspberry Pi - Tutoriel Java du capteur altimètre de précision MPL3115A2 : 4 étapes

Vidéo: Raspberry Pi - Tutoriel Java du capteur altimètre de précision MPL3115A2 : 4 étapes
Vidéo: Raspberry Pi CPS120 Pressure & Temperature Sensor Java Tutorial 2024, Septembre
Anonim
Image
Image

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 java.

Étape 1: Ce dont vous avez besoin.

De quoi as-tu besoin..!!
De quoi as-tu 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:

Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
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:

Code
Code

Le code java pour MPL3115A2 peut être téléchargé à partir de notre référentiel github - DCUBE Store.

Voici le lien pour le même:

github.com/DcubeTechVentures/MPL3115A2/tree/master/Java

Nous avons utilisé la bibliothèque pi4j pour le code java, les étapes pour installer pi4j sur raspberry pi sont décrites ici:

pi4j.com/install.html

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 rentre dans les licences de ses œuvres associées.

// MPL3115A2

// Ce code est conçu pour fonctionner avec le mini module MPL3115A2_I2CS I2C disponible auprès de

importer com.pi4j.io.i2c. I2CBus;

importer com.pi4j.io.i2c. I2CDevice;

importer com.pi4j.io.i2c. I2CFactory;

importer java.io. IOException;

classe publique MPL3115A2

{

public static void main(String args) lève une exception

{

// Créer un bus I2C

I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);

// Obtenir le périphérique I2C, l'adresse I2C MPL3115A2 est 0x60 (96)

Périphérique I2CDevice = Bus.getDevice (0x60);

// Sélection du registre de contrôle

// Mode actif, OSR = 128, mode altimètre

périphérique.write(0x26, (octet)0xB9);

// Sélection du registre de configuration des données

// Evénement prêt pour les données activé pour l'altitude, la pression, la température

périphérique.write(0x13, (octet)0x07);

// Sélection du registre de contrôle

// Mode actif, OSR = 128, mode altimètre

périphérique.write(0x26, (octet)0xB9);

Thread.sommeil(1000);

// Lecture de 6 octets de données à partir de l'adresse 0x00(00)

// état, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

octet données = nouvel octet[6];

device.read (0x00, données, 0, 6);

// Convertir les données en 20 bits

int tHeight = ((((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16);

int temp = ((données[4] * 256) + (données[5] & 0xF0)) / 16;

double altitude = tHauteur / 16,0;

double cTemp = (temp / 16,0);

double fTemp = cTemp * 1,8 + 32;

// Sélection du registre de contrôle

// Mode actif, OSR = 128, mode baromètre

périphérique.write(0x26, (octet)0x39);

Thread.sommeil(1000);

// Lecture de 4 octets de données à partir de l'adresse 0x00(00)

// état, appuyez sur msb1, appuyez sur msb, appuyez sur lsb

device.read (0x00, données, 0, 4);

// Convertir les données en 20 bits

int pres = (((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16;

double pression = (pres / 4,0) / 1000,0;

// Sortie des données à l'écran

System.out.printf("Pression: %.2f kPa %n", pression);

System.out.printf("Altitude: %.2f m %n", altitude);

System.out.printf("Température en Celsius: %.2f C %n", cTemp);

System.out.printf("Température en Fahrenheit: %.2f F %n", 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é: