Obsah:
- Krok 1: Nepostradatelné vybavení, které potřebujeme
- Krok 2: Hardwarová připojení k sestavení obvodu
- Krok 3: Programování Raspberry Pi v Javě
- Krok 4: Praktičnost kodexu (fungující)
- Krok 5: Aplikace a funkce
- Krok 6: Závěr
Video: Pomocí Raspberry Pi změřte nadmořskou výšku, tlak a teplotu pomocí MPL3115A2: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Vědět, co vlastníte, a vědět, proč to vlastníte
Je to zajímavé. Žijeme v době internetové automatizace, která se vrhá do velkého množství nových aplikací. Jako nadšenci počítačů a elektroniky jsme se s Raspberry Pi hodně naučili a rozhodli jsme se spojit naše zájmy. Tento projekt trvá asi hodinu, pokud jste nováčkem v připojení I²C a nastavení softwaru, a je to skvělý způsob, jak rozšířit možnosti MPL3115A2 s Raspberry Pi v Javě.
Krok 1: Nepostradatelné vybavení, které potřebujeme
1. Raspberry Pi
Prvním krokem bylo získání desky Raspberry Pi. Tento malý génius používají fandové, učitelé a při vytváření inovativních prostředí.
2. I2C štít pro Raspberry Pi
INPI2 (adaptér I2C) poskytuje port Raspberry Pi 2/3 a I²C pro použití s více zařízeními I2C. Je k dispozici v Dcube Store.
3. Výškoměr, snímač tlaku a teploty, MPL3115A2
MPL3115A2 je tlakový senzor MEMS s rozhraním I²C, který poskytuje údaje o tlaku, nadmořské výšce a teplotě. Tento senzor používá ke komunikaci protokol I²2. Tento senzor jsme zakoupili v Dcube Store.
4. Připojovací kabel
Použili jsme propojovací kabel I²C dostupný v Dcube Store.
5. Micro USB kabel
Raspberry Pi je napájeno micro USB.
6. Vylepšení přístupu k internetu - ethernetový kabel/modul WiFi
Jednou z prvních věcí, které budete chtít udělat, je připojení vašeho Raspberry Pi k internetu. Připojit se můžete pomocí ethernetového kabelu nebo pomocí bezdrátového USB Nano WiFi adaptéru.
7. Kabel HDMI (volitelný, vaše volba)
Raspberry Pi můžete připojit k monitoru pomocí kabelu HDMI. Ke svému Raspberry Pi můžete také vzdáleně přistupovat pomocí SSH/PuTTY.
Krok 2: Hardwarová připojení k sestavení obvodu
Vytvořte obvod podle zobrazeného schématu. Všeobecně jsou připojení poměrně jednoduchá. Postupujte podle výše uvedených pokynů a obrázků a neměli byste mít žádné problémy. Při plánování jsme se zabývali hardwarem a kódováním a také základy elektroniky. Chtěli jsme pro tento projekt navrhnout jednoduché schéma elektroniky. V diagramu si můžete všimnout různých částí, napájecích komponent a čidla I²C podle komunikačních protokolů I²C. Naštěstí to ukazuje, jak jednoduchá je elektronika pro tento projekt.
Připojení Raspberry Pi a I2C Shield
Za tímto účelem Raspberry Pi a umístěte na něj I²C Shield. Jemně stiskněte štít (viz obrázek).
Připojení senzoru a Raspberry Pi
Vezměte snímač a připojte k němu kabel I²C. Ujistěte se, že se výstup I²C VŽDY připojí ke vstupu I²C. To samé bude následovat Raspberry Pi s I²C štítem přes něj. Máme I²C Shield a I²C propojovací kabely na naší straně jako velmi velkou výhodu, protože nám zbývá pouze možnost plug and play. Už žádné problémy s kolíky a kabeláží, a proto zmatek zmizel. Jaká to úleva, když si představíte sami sebe v síti drátů a pustíte se do toho. Tak jednoduché jako toto!
Poznámka: Hnědý vodič by měl vždy sledovat uzemnění (GND) mezi výstupem jednoho zařízení a vstupem jiného zařízení
Zásadní význam má připojení k internetu
Aby byl náš projekt úspěšný, potřebujeme pro náš Raspberry Pi přístup na internet. V tomto máte možnosti, jako je připojení ethernetového (LAN) kabelu. Také jako alternativní, ale působivý způsob použití adaptéru WiFi.
Napájení obvodu
Zapojte kabel Micro USB do napájecího konektoru Raspberry Pi. Zapněte a voilá, můžeme vyrazit!
Připojení k obrazovce
Buď můžeme mít kabel HDMI připojený k monitoru, nebo můžeme být trochu inovativní při výrobě našeho bezhlavého Pi (pomocí -SSH/PuTTY), což pomáhá snížit dodatečné náklady, protože jsme tak nějak fandové.
Když zvyk začne stát peníze, říká se mu koníček
Krok 3: Programování Raspberry Pi v Javě
Kód Java pro snímač Raspberry Pi a MPL3115A2. Je k dispozici v našem úložišti Github.
Než přejdete ke kódu, přečtěte si pokyny uvedené v souboru Readme a podle něj nastavte svůj Raspberry Pi. Bude to chvíli trvat. Nadmořská výška se vypočítá z tlaku pomocí následující rovnice:
h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (hodnota registru)
kde p0 = tlak hladiny moře (101326 Pa) a h je v metrech. MPL3115A2 používá tuto hodnotu, protože offsetový registr je definován jako 2 Pascaly na LSB. Kód je jasně před vámi a je v nejjednodušší formě, jakou si dokážete představit, a neměli byste mít žádné problémy.
Také zde můžete zkopírovat funkční kód Java pro tento senzor.
// Distribuováno s licencí svobodné vůle.// Používejte jej libovolným 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, který je k dispozici na ControlEverything.com. //
importovat com.pi4j.io.i2c. I2CBus;
importovat com.pi4j.io.i2c. I2CDevice; importovat com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
veřejná třída MPL3115A2
{public static void main (String args ) throws Exception {// Create I2C bus I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // Získejte zařízení I2C, adresa MPL3115A2 I2C je 0x60 (96) I2CDevice zařízení = Bus.getDevice (0x60); // Vyberte řídicí registr // Aktivní režim, OSR = 128, režim výškoměru device.write (0x26, (byte) 0xB9); // Vyberte registr konfigurace dat // Událost připravenosti dat povolena pro nadmořskou výšku, tlak, teplotu zařízení.write (0x13, (byte) 0x07); // Vyberte řídicí registr // Aktivní režim, OSR = 128, režim výškoměru device.write (0x26, (byte) 0xB9); Thread.sleep (1000);
// Přečíst 6 bajtů dat z adresy 0x00 (00)
// stav, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = nový byte [6]; device.read (0x00, data, 0, 6);
// Převod dat na 20 bitů
int tHeight = ((((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16); int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16; dvojnásobná nadmořská výška = tVýška / 16,0; double cTemp = (temp / 16.0); zdvojnásobit fTemp = cTemp * 1,8 + 32;
// Vyberte řídicí registr
// Aktivní režim, OSR = 128, barometr v režimu device.write (0x26, (byte) 0x39); Thread.sleep (1000); // Přečíst 4 bajty dat z adresy 0x00 (00) // stav, pres msb1, pres msb, pres lsb zařízení.read (0x00, data, 0, 4);
// Převod dat na 20 bitů
int pres = (((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16; dvojnásobný tlak = (pres / 4,0) / 1000,0; // Výstup dat na obrazovku System.out.printf ("Tlak: %.2f kPa %n", tlak); System.out.printf ("Nadmořská výška: %.2f m %n", nadmořská výška); System.out.printf ("Teplota ve stupních Celsia: %.2f C %n", cTemp); System.out.printf ("Teplota ve stupních Fahrenheita: %.2f F %n", fTemp); }}
Krok 4: Praktičnost kodexu (fungující)
Nyní si stáhněte (nebo git pull) kód a otevřete jej v Raspberry Pi. Spusťte příkazy pro kompilaci a nahrání kódu na terminál a podívejte se na výstup na monitoru. Po několika sekundách se zobrazí všechny parametry. Poté, co se ujistíte, že vše funguje hladce, můžete tento projekt převést na větší projekt.
Krok 5: Aplikace a funkce
Běžné použití senzoru přesného výškoměru MPL3115A2 je v aplikacích, jako je mapa (asistence mapy, navigace), magnetický kompas nebo GPS (GPS mrtvé počítání, vylepšení GPS pro nouzové služby), vysoce přesná výškoměr, chytré telefony/tablety, osobní elektronická výškoměr a Satelity (vybavení meteorologické stanice/předpovědi).
Například pro Pomocí tohoto senzoru a Rasp Pi můžete postavit digitální vizuální výškoměr, nejdůležitější součást parašutistického vybavení, které dokáže měřit nadmořskou výšku, tlak vzduchu a teplotu. Můžete přidat větrnou gázu a další senzory, aby byly zajímavější.
Krok 6: Závěr
Protože je program úžasně přizpůsobitelný, existuje mnoho zajímavých způsobů, jak můžete tento projekt rozšířit a ještě vylepšit. Například výškoměr/interferometr by zahrnoval několik výškoměrů namontovaných na stožárech, které by snímaly měření současně, čímž by poskytovaly kontinuální, jedno- nebo více-výškoměrové širokopásmové pokrytí. Máme zajímavý videonávod na YouTube, který vám může pomoci lépe porozumět tomuto projektu.
Doporučuje:
M5STACK Jak zobrazit teplotu, vlhkost a tlak na M5StickC ESP32 pomocí Visuino - snadné provedení: 6 kroků
M5STACK Jak zobrazit teplotu, vlhkost a tlak na M5StickC ESP32 pomocí Visuino - snadné provedení: V tomto tutoriálu se naučíme, jak naprogramovat ESP32 M5Stack StickC s Arduino IDE a Visuino tak, aby zobrazoval teplotu, vlhkost a tlak pomocí snímače ENV (DHT12, BMP280, BMM150)
Nadmořská výška, tlak a teplota pomocí Raspberry Pi s MPL3115A2: 6 kroků
Nadmořská výška, tlak a teplota pomocí Raspberry Pi s MPL3115A2: Zní to zajímavě. V této době, kdy všichni přecházíme do generace IoT, je to docela možné. Jako elektronický šílenec jsme si hráli s Raspberry Pi a rozhodli jsme se pomocí těchto znalostí dělat zajímavé projekty. V tomto projektu budeme
Změřte síťovou frekvenci pomocí Arduina: 7 kroků (s obrázky)
Změřte frekvenci sítě pomocí Arduina: 3. dubna indický ministerský předseda Shri. Narendra Modi apeloval na indiány, aby zhasli světla a rozsvítili lampu (Diya) 5. dubna ve 21:00 na znamení boje Indie proti koronaviru. Hned po oznámení nastal velký chaos
Pomocí Raspberry Pi vyhodnoťte vlhkost a teplotu pomocí SI7006: 6 kroků
Pomocí Raspberry Pi vyhodnoťte vlhkost a teplotu pomocí SI7006: Protože jsme nadšenci pro Raspberry Pi, uvažovali jsme o dalších velkolepých experimentech s ním. V této kampani budeme měřit teplotu a vlhkost, které je třeba ovládat, pomocí Raspberry Pi a SI7006, Snímač vlhkosti a teploty
Změřte tlak pomocí mikro: bit: 5 kroků (s obrázky)
Měření tlaku pomocí mikroskopu: bit: Následující instrukce popisuje snadno sestavitelné a levné zařízení pro provádění měření tlaku a demonstraci Boyleova zákona pomocí mikro: bitu v kombinaci se snímačem tlaku/teploty BMP280. Zatímco tato stříkačka/tlak