Sadržaj:
Video: Foton čestica - Vodič za senzor preciznog visinomjera MPL3115A2: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
MPL3115A2 koristi MEMS senzor tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sustava. Sposoban je otkriti promjenu od samo 0,05 kPa, što je jednako promjeni visine 0,3 m. Ovdje je njegova demonstracija s česticama fotona.
Korak 1: Što vam treba..
1. Foton čestica
2. MPL3115A2
3. I²C kabel
4. I²C štit za čestice fotona
Korak 2: Veze:
Uzmite I2C štit za foton čestice i nježno ga gurnite preko igle fotona čestica.
Zatim spojite jedan kraj I2C kabela na senzor MPL3115A2, a drugi kraj na I2C štit.
Priključci su prikazani na gornjoj slici.
Korak 3: Kôd:
Kod čestica za MPL3115A2 može se preuzeti s našeg Github spremišta-DCUBE Store.
Evo linka.
Za kod čestica koristili smo dvije knjižnice, a to su application.h i spark_wiring_i2c.h. Za olakšavanje I2C komunikacije sa senzorom potrebna je knjižnica Spark_wiring_i2c.
Ovdje možete i kopirati kôd, dat je na sljedeći način:
// Distribuirano s licencom slobodne volje.
// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.
// MPL3115A2
// Ovaj kôd je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom
#uključi
#uključi
// MPL3115A2 I2C adresa je 0x60 (96)
#define Addr 0x60
plovak cTemp = 0,0, fTemp = 0,0, tlak = 0,0, nadmorska visina = 0,0;
int temp = 0, tHeight = 0; long pres = 0;
void setup ()
{
// Postavi varijablu
Particle.variable ("i2cdevice", "MPL3115A2");
Čestica.varijabilna ("cTemp", cTemp);
Čestica.varijabilna ("tlak", tlak);
Particle.variable ("visina", nadmorska visina);
// Inicializirajte I2C komunikaciju
Wire.begin ();
// Pokretanje serijske komunikacije, postavljena brzina prijenosa = 9600
Serial.begin (9600);
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odaberite kontrolni registar
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada visinomjera
Wire.write (0xB9);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra konfiguracije podataka
Wire.write (0x13);
// Omogućen događaj spremnosti podataka za nadmorsku visinu, tlak, temperaturu
Wire.write (0x07);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (300);
}
void loop ()
{
nepotpisani int podaci [6];
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odaberite kontrolni registar
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada visinomjera
Wire.write (0xB9);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (1000);
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra podataka
Wire.write (0x00);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Zatražite 6 bajta podataka
Wire.requestFrom (Addr, 6);
// Očitavanje 6 bajtova podataka s adrese 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Wire.available () == 6)
{
podaci [0] = Wire.read ();
podaci [1] = Wire.read ();
podaci [2] = Wire.read ();
podaci [3] = Wire.read ();
podaci [4] = Wire.read ();
podaci [5] = Wire.read ();
}
// Pretvorimo podatke u 20-bitne
tHeight = ((((dugi) podaci [1] * (dugi) 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16);
temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16;
nadmorska visina = tHeight / 16,0;
cTemp = (temp / 16,0);
fTemp = cTemp * 1,8 + 32;
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odaberite kontrolni registar
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada barometra
Wire.write (0x39);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra podataka
Wire.write (0x00);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (1000);
// Zatražite 4 bajta podataka
Wire.requestFrom (Addr, 4);
// Očitavanje 4 bajta podataka
// status, pres msb1, pres msb, pres lsb
if (Wire.available () == 4)
{
podaci [0] = Wire.read ();
podaci [1] = Wire.read ();
podaci [2] = Wire.read ();
podaci [3] = Wire.read ();
}
// Pretvorimo podatke u 20-bitne
pres = (((dugi) podaci [1] * (dugi) 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16;
tlak = (pres / 4,0) / 1000,0;
// Izlaženje podataka na nadzornu ploču
Particle.publish ("Visina:", String (nadmorska visina));
Particle.publish ("Tlak:", niz (pritisak));
Particle.publish ("Temperatura u Celzijusima:", String (cTemp));
Particle.publish ("Temperatura u Fahrenheitu:", String (fTemp));
kašnjenje (1000);
}
Korak 4: Aplikacije:
Različite primjene MPL3115A2 uključuju altimetriju visoke točnosti, pametne telefone/tablete, altimetriju osobne elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri zemljovidu, navigaciju kao i opremu meteorološke postaje.
Preporučeni:
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Python Vodič: MPL3115A2 koristi MEMS osjetnik tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz
Foton čestica - TCN75A Senzor temperature Tutorial: 4 koraka
Foton čestica-TCN75A Temperaturni senzor Tutorial: TCN75A je dvožilni serijski temperaturni senzor ugrađen u pretvarač temperature u digitalni. Uključen je u programe koje može programirati korisnik i koji pružaju fleksibilnost za aplikacije osjetljivih na temperaturu. Postavke registra omogućuju korisnicima
Foton čestica - TMP100 Senzor temperature Tutorial: 4 koraka
Foton čestica-TMP100 Senzor temperature Tutorial: TMP100 I2C MINI modul, digitalni osjetnik temperature visoke preciznosti, male snage, digitalni osjetnik temperature. TMP100 je idealan za produženo mjerenje temperature. Ovaj uređaj nudi točnost od ± 1 ° C bez potrebe za kalibracijom ili kondicioniranjem signala vanjske komponente. On
Uvod u foton čestica i IoT: 4 koraka
Uvod u foton čestica i IoT: Foton čestica jedna je od najnovijih i po mom mišljenju najhladnijih razvojnih ploča. Ima WiFi integracije i RESTful API koji vam omogućuje jednostavnu interakciju s pločom, a čak ga možete povezati i s IFTTT -om
Senzor za maglu - Foton čestica - Spremite podatke na mreži: 5 koraka (sa slikama)
Senzor za maglu - Foton čestica - Spremite podatke na mreži: Za mjerenje količine magle ili dima u zraku napravili smo ovaj senzor za maglu. On mjeri količinu svjetlosti koju LDR prima od lasera i uspoređuje je s količinom svjetlosti u okruženju. On objavljuje podatke na google tablici u stvarnom vremenu putem IFTTT -a