Innholdsfortegnelse:
Video: Particle Photon - MPL3115A2 Precision Altimeter Sensor Tutorial: 4 Steps
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
MPL3115A2 bruker en MEMS -trykksensor med et I2C -grensesnitt for å gi nøyaktige trykk-/høyde- og temperaturdata. Sensorutgangene digitaliseres med en høyoppløselig 24-biters ADC. Intern behandling fjerner kompensasjonsoppgaver fra verts -MCU -systemet. Den er i stand til å oppdage en endring på bare 0,05 kPa som tilsvarer en endring i høyde på 0,3 m. Her er demonstrasjonen med Particle foton.
Trinn 1: Hva du trenger..
1. Partikkelfoton
2. MPL3115A2
3. I²C -kabel
4. I²C -skjold for partikkelfoton
Trinn 2: Tilkoblinger:
Ta et I2C -skjold for partikkelfoton og skyv det forsiktig over pinnene til partikkelfoton.
Koble deretter den ene enden av I2C -kabelen til MPL3115A2 -sensoren og den andre enden til I2C -skjoldet.
Tilkoblinger er vist på bildet ovenfor.
Trinn 3: Kode:
Partikkelkoden for MPL3115A2 kan lastes ned fra vår Github repository-DCUBE Store.
Her er lenken.
Vi har brukt to biblioteker for partikkelkode, som er application.h og spark_wiring_i2c.h. Spark_wiring_i2c -biblioteket er nødvendig for å lette I2C -kommunikasjonen med sensoren.
Du kan også kopiere koden herfra, den er gitt som følger:
// Distribuert med en fri viljelisens.
// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.
// MPL3115A2
// Denne koden er designet for å fungere med MPL3115A2_I2CS I2C Mini Module
#inkludere
#inkludere
// MPL3115A2 I2C -adressen er 0x60 (96)
#define Addr 0x60
flyte cTemp = 0,0, fTemp = 0,0, trykk = 0,0, høyde = 0,0;
int temp = 0, tHeight = 0; lang pres = 0;
ugyldig oppsett ()
{
// Angi variabel
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Partikkel.variabel ("trykk", trykk);
Particle.variable ("høyde", høyde);
// Initialiser I2C -kommunikasjon
Wire.begin ();
// Initialize Serial Communication, set baud rate = 9600
Serial.begin (9600);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg kontrollregister
Wire.write (0x26);
// Aktiv modus, OSR = 128, høydemåler modus
Wire.write (0xB9);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg datakonfigurasjonsregister
Wire.write (0x13);
// Dataklar hendelse aktivert for høyde, trykk, temperatur
Wire.write (0x07);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (300);
}
hulrom ()
{
usignerte int -data [6];
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg kontrollregister
Wire.write (0x26);
// Aktiv modus, OSR = 128, høydemåler modus
Wire.write (0xB9);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (1000);
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg dataregister
Wire.write (0x00);
// Stopp I2C -overføring
Wire.endTransmission ();
// Be om 6 byte med data
Wire.requestFrom (Addr, 6);
// Les 6 byte data fra adresse 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
hvis (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
// Konverter dataene til 20-bits
tHeight = (((((lang) data [1] * (lang) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
høyde = tHeight / 16,0;
cTemp = (temp / 16,0);
fTemp = cTemp * 1,8 + 32;
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg kontrollregister
Wire.write (0x26);
// Aktiv modus, OSR = 128, barometer modus
Wire.write (0x39);
// Stopp I2C -overføring
Wire.endTransmission ();
// Start I2C -overføring
Wire.beginTransmission (Addr);
// Velg dataregister
Wire.write (0x00);
// Stopp I2C -overføring
Wire.endTransmission ();
forsinkelse (1000);
// Be om 4 byte med data
Wire.requestFrom (Addr, 4);
// Les 4 byte med data
// status, pres msb1, pres msb, pres lsb
hvis (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Konverter dataene til 20-bits
pres = (((lange) data [1] * (lang) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
trykk = (pres / 4.0) / 1000.0;
// Utdata til dashbordet
Particle.publish ("Altitude:", String (altitude));
Particle.publish ("Pressure:", String (press));
Particle.publish ("Temperatur i Celsius:", String (cTemp));
Particle.publish ("Temperatur i Fahrenheit:", String (fTemp));
forsinkelse (1000);
}
Trinn 4: Søknader:
Ulike bruksområder for MPL3115A2 inkluderer høy nøyaktighet altimetri, smarttelefoner/nettbrett, personlig elektronikk altimetri osv. Den kan også integreres i GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigasjon samt værstasjonsutstyr.
Anbefalt:
Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: 4 trinn
Bevegelsessporing ved bruk av MPU-6000 og Particle Photon: MPU-6000 er en 6-akset bevegelsessensor som har 3-akset akselerometer og 3-akset gyroskop innebygd i den. Denne sensoren er i stand til effektivt å spore nøyaktig posisjon og plassering av et objekt i det tredimensjonale planet. Den kan brukes i
Måling av akselerasjon ved bruk av ADXL345 og Particle Photon: 4 trinn
Måling av akselerasjon ved bruk av ADXL345 og Particle Photon: ADXL345 er et lite, tynt, ultralavt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via I2 C digitalt grensesnitt. Den måler
Particle Photon - STS21 Temperature Sensor Tutorial: 4 Steps
Particle Photon - STS21 Temperature Sensor Tutorial: STS21 Digital Temperature Sensor tilbyr overlegen ytelse og et plassbesparende fotavtrykk. Den gir kalibrerte, lineariserte signaler i digitalt I2C -format. Fremstillingen av denne sensoren er basert på CMOSens -teknologi, som tilskrives den overlegne
Particle Photon - BH1715 Digital Ambient Light Sensor Tutorial: 4 trinn
Particle Photon - BH1715 Digital Ambient Light Sensor Tutorial: BH1715 er en digital Ambient Light Sensor med et I²C bussgrensesnitt. BH1715 brukes ofte til å skaffe data fra omgivelseslys for justering av bakgrunnsbelysning for LCD og tastatur for mobile enheter. Denne enheten tilbyr en 16-biters oppløsning og justeringer
IoT Cat Feeder Using Particle Photon Integrated With Alexa, SmartThings, IFTTT, Google Sheets: 7 Steps (with Pictures)
IoT Cat Feeder Using Particle Photon Integrated With Alexa, SmartThings, IFTTT, Google Sheets: Behovet for en automatisk kattemater er selvforklarende. Katter (katten vår heter Bella) kan være ubehagelige når de er sultne, og hvis katten din er som min, vil han spise bollen tørr hver gang. Jeg trengte en måte å dosere en kontrollert mengde mat på automatisk