INHOUDSOPGAWE:
Video: Particle Photon - MPL3115A2 Precision Altimeter Sensor Tutoriaal: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Die MPL3115A2 het 'n MEMS -druksensor met 'n I2C -koppelvlak om akkurate druk-/hoogte- en temperatuurdata te verskaf. Die sensoruitsette word gedigitaliseer deur 'n hoë-resolusie 24-bis ADC. Interne verwerking verwyder vergoedingstake uit die gasheer -MCU -stelsel. Dit is in staat om 'n verandering in slegs 0,05 kPa op te spoor wat gelykstaande is aan 'n hoogteverandering van 0,3 m. Hier is die demonstrasie daarvan met Particle foton.
Stap 1: wat u nodig het..
1. Deeltjie Photon
2. MPL3115A2
3. I²C -kabel
4. I²C -skild vir deeltjiesfoton
Stap 2: Verbindings:
Neem 'n I2C -skild vir deeltjiefoton en druk dit liggies oor die penne van deeltjiefoton.
Koppel dan die een kant van die I2C -kabel aan die MPL3115A2 -sensor en die ander kant aan die I2C -skild.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die deeltjiekode vir MPL3115A2 kan afgelaai word in ons Github-bewaarplek-DCUBE-winkel.
Hier is die skakel.
Ons het twee biblioteke vir deeltjiekode gebruik, wat application.h en spark_wiring_i2c.h is. Spark_wiring_i2c -biblioteek is nodig om die I2C -kommunikasie met die sensor te vergemaklik.
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// MPL3115A2
// Hierdie kode is ontwerp om te werk met die MPL3115A2_I2CS I2C Mini Module
#insluit
#insluit
// MPL3115A2 I2C adres is 0x60 (96)
#definieer Addr 0x60
dryf cTemp = 0.0, fTemp = 0.0, druk = 0.0, hoogte = 0.0;
int temp = 0, tHeight = 0; long pres = 0;
leemte opstelling ()
{
// Stel veranderlike
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Deeltjie.veranderlik ("druk", druk);
Particle.variable ("hoogte", hoogte);
// Initialiseer I2C -kommunikasie
Wire.begin ();
// Initialiseer seriële kommunikasie, stel baud rate = 9600 in
Serial.begin (9600);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies kontroleregister
Draad.skryf (0x26);
// Aktiewe modus, OSR = 128, hoogtemodus
Wire.write (0xB9);
// Stop I2C -oordrag
Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies datakonfigurasie register
Wire.write (0x13);
// Gereedheid vir data gereed vir hoogte, druk, temperatuur
Wire.write (0x07);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (300);
}
leemte lus ()
{
ongetekende int data [6];
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies kontroleregister
Draad.skryf (0x26);
// Aktiewe modus, OSR = 128, hoogtemodus
Wire.write (0xB9);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (1000);
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies dataregister
Wire.write (0x00);
// Stop I2C -oordrag
Wire.endTransmission ();
// Versoek 6 grepe data
Wire.requestFrom (Addr, 6);
// Lees 6 grepe data vanaf adres 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
as (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 ();
}
// Skakel die data om in 20-bisse
tHeight = (((((lang) data [1] * (lank) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
hoogte = tHoogte / 16,0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies kontroleregister
Draad.skryf (0x26);
// Aktiewe modus, OSR = 128, barometer af
Wire.write (0x39);
// Stop I2C -oordrag
Wire.endTransmission ();
// Begin I2C -oordrag
Wire.beginTransmission (Addr);
// Kies dataregister
Wire.write (0x00);
// Stop I2C -oordrag
Wire.endTransmission ();
vertraging (1000);
// Versoek 4 grepe data
Wire.requestFrom (Addr, 4);
// Lees 4 grepe data
// status, pres msb1, pres msb, pres lsb
as (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Skakel die data om in 20-bisse
pres = (((lang) data [1] * (lank) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
druk = (pres / 4.0) / 1000.0;
// Uitset data na paneelbord
Particle.publish ("Altitude:", String (altitude));
Particle.publish ("Pressure:", String (pressure));
Particle.publish ("Temperatuur in Celsius:", String (cTemp));
Particle.publish ("Temperatuur in Fahrenheit:", String (fTemp));
vertraging (1000);
}
Stap 4: Aansoeke:
Verskeie toepassings van MPL3115A2 sluit in hoë akkuraatheid altimetrie, slimfone/tablette, persoonlike elektronika altimetrie, ens. Dit kan ook opgeneem word in GPS Dead Reckoning, GPS -verbetering vir nooddienste, kaarthulp, navigasie sowel as weerstasie -toerusting.
Aanbeveel:
Particle Photon - TCN75A Temperatuur sensor Tutoriaal: 4 stappe
Particle Photon-TCN75A Temperatuursensor Tutoriaal: TCN75A is 'n tweedraad-seriële temperatuursensor wat saam met temperatuur-na-digitale omskakelaar is. Dit is geïntegreer met gebruikersprogrammeerbare registers wat buigsaamheid bied vir temperatuurwaarnemingstoepassings. Met die registerinstellings kan gebruikers
Particle Photon - ADT75 Temperatuur sensor Tutoriaal: 4 stappe
Particle Photon - ADT75 Temperatuur Sensor Tutoriaal: ADT75 is 'n hoogs akkurate, digitale temperatuursensor. Dit bestaan uit 'n band gaping temperatuur sensor en 'n 12-bis analoog na digitale converter vir die monitering en digitalisering van die temperatuur. Sy hoogs sensitiewe sensor maak dit vir my bekwaam genoeg
Particle Photon - STS21 Temperatuur sensor Tutoriaal: 4 stappe
Particle Photon - STS21 Temperatuursensor Tutoriaal: STS21 Digitale Temperatuur Sensor bied uitstekende prestasie en ruimtebesparende voetspoor. Dit bied gekalibreerde, lineêre seine in digitale I2C -formaat. Die vervaardiging van hierdie sensor is gebaseer op CMOSens -tegnologie, wat toegeskryf word aan die superieure
Particle Photon - HDC1000 Temperatuursensor Tutoriaal: 4 stappe
Particle Photon - HDC1000 Temperatuursensor -tutoriaal: Die HDC1000 is 'n digitale humiditeitsensor met 'n geïntegreerde temperatuursensor wat uitstekende meetnauwkeurigheid bied by baie lae krag. Die toestel meet humiditeit op grond van 'n nuwe kapasitiewe sensor. Die humiditeits- en temperatuursensors is
Particle Photon - TMP100 Temperatuursensor Tutoriaal: 4 stappe
Particle Photon-TMP100 Temperatuursensor Tutoriaal: TMP100 I2C MINI-module met hoë akkuraatheid, lae krag, digitale temperatuur sensor. Die TMP100 is ideaal vir uitgebreide temperatuurmeting. Hierdie toestel bied 'n akkuraatheid van ± 1 ° C sonder om kalibrasie of kondisionering van eksterne komponente te vereis. Hy