Table des matières:

À l'aide de Raspberry Pi, mesurez l'altitude, la pression et la température avec le MPL3115A2 : 6 étapes
À l'aide de Raspberry Pi, mesurez l'altitude, la pression et la température avec le MPL3115A2 : 6 étapes

Vidéo: À l'aide de Raspberry Pi, mesurez l'altitude, la pression et la température avec le MPL3115A2 : 6 étapes

Vidéo: À l'aide de Raspberry Pi, mesurez l'altitude, la pression et la température avec le MPL3115A2 : 6 étapes
Vidéo: Améliorez vos photos avec l'AUTOGUIDAGE! Tout ce qu'il faut savoir pour débuter! 2024, Novembre
Anonim
Image
Image
L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin

Sachez ce que vous possédez et sachez pourquoi vous le possédez

C'est intriguant. Nous vivons à l'ère de l'automatisation d'Internet alors qu'elle plonge dans une pléthore de nouvelles applications. En tant que passionnés d'informatique et d'électronique, nous avons beaucoup appris avec le Raspberry Pi et avons décidé de fusionner nos intérêts. Ce projet prend environ une heure si vous débutez dans les connexions I²C et la configuration logicielle, et c'est un excellent moyen d'étendre les capacités du MPL3115A2 avec Raspberry Pi en Java.

Étape 1: L'équipement indispensable dont nous avons besoin

L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin
L'équipement indispensable dont nous avons besoin

1. Framboise Pi

La première étape consistait à obtenir une carte Raspberry Pi. Ce petit génie est utilisé par les amateurs, les enseignants et dans la création d'environnements innovants.

2. Bouclier I2C pour Raspberry Pi

L'INPI2 (adaptateur I2C) fournit au Raspberry Pi 2/3 un port I²C à utiliser avec plusieurs appareils I2C. Il est disponible sur Dcube Store.

3. Altimètre, capteur de pression et de température, MPL3115A2

Le MPL3115A2 est un capteur de pression MEMS avec une interface I²C pour fournir des données de pression, d'altitude et de température. Ce capteur utilise le protocole I²2 pour communiquer. Nous avons acheté ce capteur sur Dcube Store.

4. Câble de connexion

Nous avons utilisé le câble de connexion I²C disponible chez Dcube Store.

5. Câble micro-USB

Le Raspberry Pi est alimenté par une alimentation micro USB.

6. Amélioration de l'accès Internet - Câble Ethernet/module WiFi

L'une des premières choses que vous voudrez faire est de connecter votre Raspberry Pi à Internet. Vous pouvez vous connecter à l'aide d'un câble Ethernet ou d'un adaptateur Wireless USB Nano WiFi.

7. Câble HDMI (facultatif, votre choix)

Vous pouvez connecter Raspberry Pi à un moniteur à l'aide d'un câble HDMI. En outre, vous pouvez accéder à distance à votre Raspberry Pi en utilisant SSH/PuTTY.

Étape 2: Connexions matérielles pour assembler le circuit

Connexions matérielles pour assembler le circuit
Connexions matérielles pour assembler le circuit
Connexions matérielles pour assembler le circuit
Connexions matérielles pour assembler le circuit

Faites le circuit selon le schéma montré. En général, les connexions sont assez simples. Suivez les instructions et les images ci-dessus, et vous ne devriez avoir aucun problème. Lors de la planification, nous avons examiné le matériel et le codage ainsi que les bases de l'électronique. Nous voulions concevoir un schéma électronique simple pour ce projet. Dans le schéma, vous pouvez remarquer les différentes pièces, composants de puissance et capteur I²C suivant les protocoles de communication I²C. Espérons que cela illustre à quel point l'électronique de ce projet est simple.

Connexion du Raspberry Pi et du Shield I2C

Pour cela, Raspberry Pi et placez le Shield I²C dessus. Appuyez doucement sur le bouclier (voir la photo).

Connexion du capteur et du Raspberry Pi

Prenez le capteur et connectez-y le câble I²C. Assurez-vous que la sortie I²C se connecte TOUJOURS à l'entrée I²C. La même chose sera suivie par le Raspberry Pi avec le blindage I²C monté dessus. Nous avons le blindage I²C et les câbles de connexion I²C de notre côté comme un très gros avantage car il ne nous reste que l'option plug and play. Plus de problème de broches et de câblage et, par conséquent, la confusion a disparu. Quel soulagement de s'imaginer dans le réseau de fils et d'y entrer. Aussi simple que cela !

Remarque: Le fil marron doit toujours suivre la connexion de masse (GND) entre la sortie d'un appareil et l'entrée d'un autre appareil

La connectivité Internet est cruciale

Pour réussir notre projet, nous avons besoin d'un accès Internet pour notre Raspberry Pi. En cela, vous avez des options telles que la connexion d'un câble Ethernet (LAN). En outre, comme moyen alternatif mais impressionnant d'utiliser un adaptateur WiFi.

Alimentation du circuit

Branchez le câble Micro USB dans la prise d'alimentation du Raspberry Pi. Allumez-le et le tour est joué, nous sommes prêts à partir !

Connexion à l'écran

Nous pouvons soit connecter le câble HDMI à un moniteur, soit être un peu innovant pour fabriquer notre Pi sans tête (en utilisant -SSH/PuTTY), ce qui permet de réduire les coûts supplémentaires car nous sommes en quelque sorte des amateurs.

Lorsqu'une habitude commence à coûter de l'argent, cela s'appelle un passe-temps

Étape 3: Programmation Raspberry Pi en Java

Programmation Raspberry Pi en Java
Programmation Raspberry Pi en Java

Le code Java pour le Raspberry Pi et le capteur MPL3115A2. Il est disponible dans notre référentiel Github.

Avant de passer au code, assurez-vous de lire les instructions données dans le fichier Lisez-moi et configurez votre Raspberry Pi en conséquence. Cela ne prendra que quelques instants. L'altitude est calculée à partir de la pression à l'aide de l'équation ci-dessous:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Valeur de registre)

où p0 = pression au niveau de la mer (101326 Pa) et h est en mètres. Le MPL3115A2 utilise cette valeur puisque le registre de décalage est défini comme 2 Pascals par LSB. Le code est clairement devant vous et il est dans la forme la plus simple que vous puissiez imaginer et vous ne devriez avoir aucun problème.

Vous pouvez également copier le code Java fonctionnel de ce capteur à partir d'ici.

// 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 sur ControlEverything.com. //

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) I2CDevice device = Bus.getDevice(0x60); // Sélection du registre de contrôle // Mode actif, OSR = 128, mode altimètre device.write(0x26, (byte)0xB9); // Sélectionnez le registre de configuration des données // Événement de données prêtes activé pour l'altitude, la pression et la température device.write(0x13, (byte)0x07); // Sélection du registre de contrôle // Mode actif, OSR = 128, mode altimètre device.write(0x26, (byte)0xB9); Thread.sommeil(1000);

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

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = new byte[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 device.write(0x26, (byte)0x39); Thread.sommeil(1000); // Lire 4 octets de données à partir de l'adresse 0x00(00) // état, appuyez sur msb1, appuyez sur msb, appuyez sur lsb device.read (0x00, data, 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("Pressure: %.2f kPa %n", pressure); 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: L'aspect pratique du code (fonctionnement)

L'aspect pratique du code (fonctionnement)
L'aspect pratique du code (fonctionnement)

Maintenant, téléchargez (ou git pull) le code et ouvrez-le dans le Raspberry Pi. Exécutez les commandes pour compiler et télécharger le code sur le terminal et voir la sortie sur Monitor. Après quelques secondes, il affichera tous les paramètres. Après vous être assuré que tout fonctionne correctement, vous pouvez intégrer ce projet dans un projet plus vaste.

Étape 5: Applications et fonctionnalités

L'utilisation courante du capteur d'altimètre de précision MPL3115A2 est dans des applications telles que la carte (assistance cartographique, navigation), la boussole magnétique ou le GPS (GPS Dead Reckoning, amélioration du GPS pour les services d'urgence), l'altimétrie de haute précision, les smartphones/tablettes, l'altimétrie électronique personnelle et Satellites (équipement de station météo/prévision).

Par ex. En utilisant ce capteur et Rasp Pi, vous pouvez construire un altimètre visuel numérique, la pièce la plus importante de l'équipement de parachutisme, qui peut mesurer l'altitude, la pression atmosphérique et la température. Vous pouvez ajouter de la gaze anti-vent et d'autres capteurs pour en rendre un plus intéressant.

Étape 6: Conclusion

Étant donné que le programme est incroyablement personnalisable, il existe de nombreuses façons intéressantes d'étendre ce projet et de le rendre encore meilleur. Par exemple, un altimètre/interféromètre comprendrait plusieurs altimètres montés sur des mâts qui acquerraient des mesures simultanément, offrant ainsi une couverture étendue continue, mono ou multi-altimètre. Nous avons un tutoriel vidéo intéressant sur YouTube qui peut vous aider à mieux comprendre ce projet.

Conseillé: