Taula de continguts:
Vídeo: Raspberry Pi - Sensor d’altímetre de precisió MPL3115A2 Tutorial de Java: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
El MPL3115A2 utilitza un sensor de pressió MEMS amb una interfície I2C per proporcionar dades de pressió / altitud i temperatura precises. Les sortides del sensor es digitalitzen mitjançant un ADC de 24 bits d'alta resolució. El processament intern elimina les tasques de compensació del sistema MCU amfitrió. És capaç de detectar un canvi de només 0,05 kPa que equival a un canvi d’altitud de 0,3 m. Aquí teniu la demostració amb raspberry pi mitjançant codi Java.
Pas 1: el que necessiteu..
1. Raspberry Pi
2. MPL3115A2
3. Cable I²C
4. Escut I²C per a Raspberry Pi
5. Cable Ethernet
Pas 2: connexions:
Agafeu un escut I2C per a raspberry pi i passeu-lo suaument per sobre dels pins gpio de raspberry pi.
A continuació, connecteu l'extrem del cable I2C al sensor MPL3115A2 i l'altre extrem a l'escut I2C.
Connecteu també el cable Ethernet al pi o podeu utilitzar un mòdul WiFi.
Les connexions es mostren a la imatge superior.
Pas 3: Codi:
El codi java per a MPL3115A2 es pot descarregar des del nostre dipòsit github- DCUBE Store.
Aquí teniu l’enllaç per al mateix:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Hem utilitzat la biblioteca pi4j per al codi Java; aquí es descriuen els passos per instal·lar pi4j al raspberry pi:
pi4j.com/install.html
També podeu copiar el codi des d’aquí, es dóna de la següent manera:
// Distribuïda amb llicència de lliure voluntat.
// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.
// MPL3115A2
// Aquest codi està dissenyat per funcionar amb el mini mòdul MPL3115A2_I2CS I2C disponible a
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
importació java.io. IOException;
classe pública MPL3115A2
{
public static void main (String args ) llança Excepció
{
// Crea un bus I2C
Bus I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Obteniu un dispositiu I2C, l'adreça I2C MPL3115A2 és 0x60 (96)
I2CDevice device = Bus.getDevice (0x60);
// Seleccioneu el registre de control
// Mode actiu, OSR = 128, mode altímetre
device.write (0x26, (byte) 0xB9);
// Seleccioneu el registre de configuració de dades
// Esdeveniment preparat per a dades habilitat per a altitud, pressió i temperatura
device.write (0x13, (byte) 0x07);
// Seleccioneu el registre de control
// Mode actiu, OSR = 128, mode altímetre
device.write (0x26, (byte) 0xB9);
Thread.sleep (1000);
// Llegir 6 bytes de dades de l'adreça 0x00 (00)
// estat, tHeight msb1, tHeight msb, tHight lsb, temp msb, temp lsb
byte dades = byte nou [6];
device.read (0x00, dades, 0, 6);
// Converteix les dades a 20 bits
int tHeight = (((((dades [1] i 0xFF) * 65536) + ((dades [2] i 0xFF) * 256) + (dades [3] i 0xF0)) / 16);
int temp = ((dades [4] * 256) + (dades [5] i 0xF0)) / 16;
doble altitud = tAlçada / 16,0;
doble cTemp = (temp / 16.0);
doble fTemp = cTemp * 1,8 + 32;
// Seleccioneu el registre de control
// Mode actiu, OSR = 128, mode baròmetre
device.write (0x26, (byte) 0x39);
Thread.sleep (1000);
// Llegir 4 bytes de dades de l'adreça 0x00 (00)
// estat, pres msb1, pres msb, pres lsb
device.read (0x00, dades, 0, 4);
// Converteix les dades a 20 bits
int pres = (((dades [1] i 0xFF) * 65536) + ((dades [2] i 0xFF) * 256) + (dades [3] i 0xF0)) / 16;
doble pressió = (pres / 4.0) / 1000.0;
// Sortiu les dades a la pantalla
System.out.printf ("Pressió:%.2f kPa% n", pressió);
System.out.printf ("Altitud:%.2f m% n", altitud);
System.out.printf ("Temperatura en centígrads:%.2f C% n", cTemp);
System.out.printf ("Temperatura en Fahrenheit:%.2f F% n", fTemp);
}
}
Pas 4: aplicacions:
Diverses aplicacions de MPL3115A2 inclouen altimetria d’alta precisió, telèfons intel·ligents / tauletes, altimetria electrònica personal, etc. També es pot incorporar a GPS Dead Reckoning, millora GPS per a serveis d’emergència, assistència de mapes, navegació i equips d’estacions meteorològiques.
Recomanat:
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: 8 passos
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Rellotge de precisió: 3 passos
Rellotge de precisió: tots necessitem rellotges, així que, per què no els feu vostres en aquest instructiu? Vaig a mostrar-vos com fer un rellotge de precisió un cop hàgiu configurat, farà un seguiment automàtic de l’hora actual al fons de tot. Tot i que només necessita molt poc
Registre remot de dades d'alta precisió mitjançant el multímetre / Arduino / pfodApp: 10 passos (amb imatges)
Registre de dades remot d’alta precisió mitjançant l’aplicació Multimeter / Arduino / pfod: actualitzat el 26 d’abril de 2017 Circuit i placa revisats per utilitzar-los amb comptadors USB 4000ZC. No es necessita codificació d’Android. per a registre i
Un experiment de rectificació de precisió: 11 passos
Un experiment de rectificació de precisió: recentment he fet un experiment sobre un circuit de rectificació de precisió i he obtingut algunes conclusions aproximades. Tenint en compte que el circuit de rectificació de precisió és un circuit comú, els resultats d’aquest experiment poden proporcionar una certa informació de referència
Oxímetre de pols amb una precisió molt millorada: 6 passos (amb imatges)
Polsímetre amb una precisió molt millorada: si heu visitat recentment un metge, és probable que una infermera hagi examinat els vostres signes vitals bàsics. Pes, alçada, pressió arterial i freqüència cardíaca (FC) i saturació d’oxigen a la sang perifèrica (SpO2). Potser, els dos últims es van obtenir de