Obsah:
Video: Částicový foton - Výukový senzor přesného výškoměru MPL3115A2: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
MPL3115A2 využívá tlakový senzor MEMS s rozhraním I2C, který poskytuje přesné údaje o tlaku/nadmořské výšce a teplotě. Výstupy senzorů jsou digitalizovány 24bitovým ADC s vysokým rozlišením. Interní zpracování odstraní úlohy kompenzace z hostitelského systému MCU. Je schopen detekovat změnu pouze o 0,05 kPa, což odpovídá změně výšky o 0,3 m. Zde je jeho ukázka s fotonem částic.
Krok 1: Co potřebujete..
1. Foton částic
2. MPL3115A2
3. I²C kabel
4. I²C štít pro částicový foton
Krok 2: Připojení:
Vezměte I2C štít pro částicový foton a jemně jej zatlačte přes kolíky fotonu částic.
Poté připojte jeden konec kabelu I2C k senzoru MPL3115A2 a druhý konec ke stínění I2C.
Připojení jsou znázorněna na obrázku výše.
Krok 3: Kód:
Částicový kód pro MPL3115A2 lze stáhnout z našeho úložiště Github-DCUBE Store.
Tady je odkaz.
Pro částicový kód jsme použili dvě knihovny, kterými jsou application.h a spark_wiring_i2c.h. Pro usnadnění komunikace I2C se senzorem je nutná knihovna Spark_wiring_i2c.
Odtud můžete také zkopírovat kód, který je uveden následovně:
// Distribuováno s licencí svobodné vůle.
// Používejte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.
// MPL3115A2
// Tento kód je navržen tak, aby fungoval s mini modulem MPL3115A2_I2CS I2C
#zahrnout
#zahrnout
// Adresa MPL3115A2 I2C je 0x60 (96)
#define Addr 0x60
float cTemp = 0,0, fTemp = 0,0, tlak = 0,0, nadmořská výška = 0,0;
int temp = 0, tHight = 0; long pres = 0;
neplatné nastavení ()
{
// Nastavit proměnnou
Proměnná částice ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Částice.proměnná ("tlak", tlak);
Částice.proměnná ("nadmořská výška", nadmořská výška);
// Inicializace komunikace I2C
Wire.begin ();
// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600
Serial.begin (9600);
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte řídicí registr
Wire.write (0x26);
// Aktivní režim, OSR = 128, režim výškoměru
Wire.write (0xB9);
// Zastavte přenos I2C
Wire.endTransmission ();
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte registr konfigurace dat
Wire.write (0x13);
// Událost připravenosti dat povolena pro nadmořskou výšku, tlak, teplotu
Wire.write (0x07);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (300);
}
prázdná smyčka ()
{
nepodepsaná int data [6];
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte řídicí registr
Wire.write (0x26);
// Aktivní režim, OSR = 128, režim výškoměru
Wire.write (0xB9);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (1000);
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte datový registr
Wire.write (0x00);
// Zastavte přenos I2C
Wire.endTransmission ();
// Vyžádejte si 6 bajtů dat
Wire.requestFrom (Addr, 6);
// Přečíst 6 bajtů dat z adresy 0x00 (00)
// stav, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
pokud (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 ();
}
// Převod dat na 20 bitů
tHeight = (((((dlouhá) data [1] * (dlouhá) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
nadmořská výška = tVýška / 16,0;
cTemp = (teplota / 16,0);
fTemp = cTemp * 1,8 + 32;
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte řídicí registr
Wire.write (0x26);
// Aktivní režim, OSR = 128, režim barometru
Wire.write (0x39);
// Zastavte přenos I2C
Wire.endTransmission ();
// Spusťte přenos I2C
Wire.beginTransmission (Addr);
// Vyberte datový registr
Wire.write (0x00);
// Zastavte přenos I2C
Wire.endTransmission ();
zpoždění (1000);
// Vyžádejte si 4 bajty dat
Wire.requestFrom (Addr, 4);
// Přečíst 4 bajty dat
// stav, pres msb1, pres msb, pres lsb
pokud (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Převod dat na 20 bitů
pres = (((dlouhá) data [1] * (dlouhá) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
tlak = (pres / 4,0) / 1000,0;
// Výstup dat na řídicí panel
Particle.publish ("Nadmořská výška:", Řetězec (nadmořská výška));
Particle.publish ("Tlak:", řetězec (tlak));
Particle.publish ("Teplota ve stupních Celsia:", řetězec (cTemp));
Particle.publish („Teplota ve stupních Fahrenheita:“, řetězec (fTemp));
zpoždění (1000);
}
Krok 4: Aplikace:
Různé aplikace MPL3115A2 zahrnují vysoce přesnou výškoměr, smartphony/tablety, osobní elektronickou výškoměr atd. Lze jej také začlenit do systému GPS Dead Reckoning, GPS Enhancement pro záchranné služby, Map Assist, Navigation a vybavení meteorologické stanice.
Doporučuje:
Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: 4 kroky
Raspberry Pi - MPL3115A2 Přesný snímač výškoměru Python Výuka: MPL3115A2 využívá tlakový senzor MEMS s rozhraním I2C, který poskytuje přesné údaje o tlaku/nadmořské výšce a teplotě. Výstupy senzorů jsou digitalizovány 24bitovým ADC s vysokým rozlišením. Interní zpracování odstraňuje úkoly kompenzace z
Senzor vlhkosti využívající foton částic: 6 kroků
Senzor vlhkosti využívající foton částic: Úvod V tomto tutoriálu budeme stavět senzor vlhkosti pomocí fotonu částic a jeho v lůžkové nebo externí anténě WiFi. Síla WiFi je závislá na množství vlhkosti ve vzduchu a také v zemi. Tento princip používáme
Modul 3,3 V pro ultrazvukové snímače (připravte HC-SR04 na logiku 3,3 V na ESP32/ESP8266, částicový foton atd.): 4 kroky
Modul 3,3 V pro ultrazvukové senzory (připravte HC-SR04 na logiku 3,3 V na ESP32/ESP8266, Particle Photon atd.): TL; DR: Na senzoru přerušte stopu na pin Echo a poté jej znovu připojte pomocí dělič napětí (Echo trace -> 2,7kΩ -> Echo pin -> 4,7kΩ -> GND). Upravit: Proběhla debata o tom, zda je ESP8266 ve skutečnosti tolerantní vůči 5V na GPIO v
IoT Cat Feeder využívající částicový foton integrovaný s Alexa, SmartThings, IFTTT, Google Sheets: 7 kroků (s obrázky)
IoT Cat Feeder využívající částicový foton integrovaný s Alexa, SmartThings, IFTTT, Google Sheets: Potřeba automatického krmítka pro kočky je samozřejmá. Kočky (naše kočka se jmenuje Bella) mohou být nepříjemné, když mají hlad, a pokud je vaše kočka jako já, pokaždé sní misku nasucho. Potřeboval jsem způsob, jak automaticky dávkovat kontrolované množství jídla
Mlhový senzor - částicový foton - ukládání dat online: 5 kroků (s obrázky)
Senzor mlhy - foton částic - ukládání dat online: Abychom změřili množství mlhy nebo kouře ve vzduchu, vyrobili jsme tento senzor mlhy. Měří množství světla, které LDR přijímá z laseru, a porovnává ho s množstvím světla v okolí. Data zveřejňuje na list Google v reálném čase prostřednictvím IFTTT