Autor |
Zpráva |
Wormsnake
|
Napsal: sob 16.01.2021 9:23 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
Výpočet nadmořské výšky z tlaku vzduchu Ahoj modeláři, Hraju jsi teď s ESP32 a modulem pro měření tlaku vzduchu a teploty vzduchu v prostředí Arduino. ESP32 Modul LOLIN D32 Pro V2.0.0 https://www.aliexpress.com/item/3288311 ... 4c4d09jB0xModul měření tlaku vzduchu a teploty vzduchu Barometric Pressure Shield V1.0.0 https://www.aliexpress.com/item/3294720 ... 4154.pic_4V Arduino aplikaci na PC jsem si stáhl příkladový program co vypisuje naměřenou hodnotu tlaku vzduchu a teplotu vzduchu na terminál a krásně mě to chodí a vypisuje hodnoty tlaku a teploty. Program v ArduinuKód: // This example gets individual Sensor objects for temperature/pressure!
#include <Adafruit_DPS310.h>
Adafruit_DPS310 dps; Adafruit_Sensor *dps_temp = dps.getTemperatureSensor(); Adafruit_Sensor *dps_pressure = dps.getPressureSensor();
void setup() { Serial.begin(115200); while (!Serial) delay(10);
Serial.println("DPS310"); if (! dps.begin_I2C()) { Serial.println("Failed to find DPS"); while (1) yield(); } Serial.println("DPS OK!");
// Setup highest precision dps.configurePressure(DPS310_64HZ, DPS310_64SAMPLES); dps.configureTemperature(DPS310_64HZ, DPS310_64SAMPLES);
dps_temp->printSensorDetails(); dps_pressure->printSensorDetails(); }
void loop() { sensors_event_t temp_event, pressure_event; if (dps.temperatureAvailable()) { dps_temp->getEvent(&temp_event); Serial.print(F("Temperature = ")); Serial.print(temp_event.temperature); Serial.println(" *C"); Serial.println(); }
// Reading pressure also reads temp so don't check pressure // before temp! if (dps.pressureAvailable()) { dps_pressure->getEvent(&pressure_event); Serial.print(F("Pressure = ")); Serial.print(pressure_event.pressure); Serial.println(" hPa"); Serial.println();
delay(5000); } } Výpis programu na terminalKód: 09:02:02.086 -> DPS310 09:02:02.324 -> DPS OK! 09:02:02.324 -> ------------------------------------ 09:02:02.324 -> Sensor: DPS310 09:02:02.324 -> Type: Ambient Temp (C) 09:02:02.324 -> Driver Ver: 1 09:02:02.324 -> Unique ID: 310 09:02:02.358 -> Min Value: 85.00 09:02:02.358 -> Max Value: -40.00 09:02:02.358 -> Resolution: 0.01 09:02:02.358 -> ------------------------------------ 09:02:02.358 -> 09:02:02.358 -> ------------------------------------ 09:02:02.358 -> Sensor: DPS310 09:02:02.358 -> Type: Pressure (hPa) 09:02:02.358 -> Driver Ver: 1 09:02:02.358 -> Unique ID: 311 09:02:02.358 -> Min Value: 1200.00 09:02:02.358 -> Max Value: 300.00 09:02:02.358 -> Resolution: 0.00 09:02:02.358 -> ------------------------------------ 09:02:02.358 -> 09:02:02.358 -> Temperature = 24.83 *C 09:02:02.358 -> 09:02:02.426 -> Pressure = 988.90 hPa 09:02:02.426 -> 09:02:07.447 -> Temperature = 24.85 *C 09:02:07.447 -> 09:02:07.516 -> Temperature = 24.85 *C 09:02:07.516 -> 09:02:07.620 -> Pressure = 988.89 hPa 09:02:07.620 ->
Jak spočítám svou nadmořskou výšku když znám a tlak vzduchu a jeho teplotu? Vstupní veličiny do vzorce budou asi tlak vzduchu a referenční hodnota tlaku vzduchu při hladině moře, případně teplota vzduchu ale myslím že teplota nebude nutná asi bude jen zpřesňovat měření. Googlil sem něco i našel ale moc mě to nenakoplo. Může mě někdo znalý posunout a dát sem vzorec pro výpočet abych s tím pohnul. V arduinu teprve začínám a z matematiky sem taky už dost zapomněl vzorec bych potřeboval ideálně v rozepsané formě bez zlomků tedy "vyska=nasobeni deleni scitani odcitani zavorky" abych to uměl do arduino kódu zapsat. Předem moc díky za vaše rady... Jura
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
|
|
|
petozv
|
Napsal: sob 16.01.2021 10:18 |
|
Nováček serveru
|
|
Registrován: 1.11.2016 Příspěvky: 11 Bydliště: Zvolen, SK
|
|
Nahoru |
|
|
ellet
|
Napsal: sob 16.01.2021 10:32 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1973 Bydliště: Vysočina, ČR
|
Obvykle se to dělá jinak. Výška se bere k nějakému vztažnému bodu. Na př. u éra, po zapnutí v místě startu změřím tlak a odvodím jako výšku nula. Od změny tlaku s výškou, lze potom odvodit výšku nad místem startu. (S nadmořskou výškou to moc společného nemá. Pokud senzor vrací přímo nadmořskou výšku, postup je stejný, jen se zjednoduší výpočet)
Naposledy upravil ellet dne sob 16.01.2021 11:39, celkově upraveno 1
|
|
Nahoru |
|
|
Wormsnake
|
Napsal: sob 16.01.2021 11:16 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
Pěkné tomu už konečně asi rozumím. Ještě si pročtu ty dva články. Odkazů. petozv Děkuji. Dám vědět jestli sem to rozchodil. PS kdyby někdo věděl jak se v ardunimu umocňuje dej vedet. Možná to najdu v těch odkazech. Děkuji musim teď běžet...
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
Wormsnake
|
Napsal: sob 16.01.2021 11:32 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
ellet píše: Obvykle se to dělá jinak. Výška se bere k nějakému vztažnému bodu. Na př. u éra, po zapnutí v místě startu změřím tlak a odvodím jako výšku nula. Od změny tlaku s výškou, lze potom odvodit výšku nad místem startu. (S nadmořskou výškou to moc společného nemá.) JJ to chápu, můžu to počítat od hladiny moře nebo od nadmořské výšky letiště ale vzorec bude bude stejný p0 bude hladina moře nebo nadmořská výška letiště. Ještě jednou dík.
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
zdzd
|
Napsal: sob 16.01.2021 12:03 |
|
Moderátor serveru
|
|
|
Registrován: 3.5.2003 Příspěvky: 11187 Bydliště: Břeclav, ČR
|
Wormsnake píše: JJ to chápu, můžu to počítat od hladiny moře nebo od nadmořské výšky letiště ale vzorec bude bude stejný p0 bude hladina moře nebo nadmořská výška letiště. Ještě jednou dík. Nebude. Tlak se mění s počasím, nulová výška se musí nakalibrovat vždy na začátku měření. I tak ale můžeš po třičtvrtěhodinovém letu přistávat deset metrů hluboko...
|
|
Nahoru |
|
|
ellet
|
Napsal: sob 16.01.2021 12:19 |
|
Mazák
|
|
|
Registrován: 12.2.2016 Příspěvky: 1973 Bydliště: Vysočina, ČR
|
zdzd píše: Nebude. Tlak se mění... Přesně tak, ten senzor měří tlak, neměří nadmořskou výšku, tu odvozuje. A tlak není nikde konstantní.
|
|
Nahoru |
|
|
Wormsnake
|
Napsal: sob 16.01.2021 13:21 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
Děkuju pánové za odpovědi. Už mi to tu nadmořskou výšku počítá správně. Tedy samo sebou relativně správně to určilo vyšku 213.33m. Dle googlu je tu nadmořská výška 268m. Dle mé další hračky nového GPS modulu Ublox m9n který umí určit polohu i výšku velmi precizně umí 4 globální navigační systémy naráz GPS Galileo Glonas a Beidou je tu výška 274m takže shoda s googlem precizní. Rozdíl je mezi skutečnou nadmořskou výškou a výškou zjištěnou měřením tlaku je tedy cca 60m a taky sem to čekal protože jak píšete tlak se mění s počasím a časem. Lítám s barometrem ve větroni už několik let. A znám tu situaci kdy po přistání sem klidně 15m výš či níž. Šlo mě o to znát ten výpočet a toho sem díky vašim radám dosáhl. Mohl bych tedy tento barometr užívat jako referenční barometr na zemi. Mohl bych tedy asi korigovat i změnu tlaku v čase, a znát tedy korekci výšky k přistání... Nechytejte mě moc za slovo nemyslím to váže že bych tohle řešil.
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
JirkaA
|
Napsal: sob 16.01.2021 13:45 |
|
Moderátor serveru
|
|
|
Registrován: 16.8.2008 Příspěvky: 6888 Bydliště: Moravský kras
|
Wormsnake píše: Děkuju pánové za odpovědi. Už mi to tu nadmořskou výšku počítá správně. Tedy samo sebou relativně správně to určilo vyšku 213.33m. Dle googlu je tu nadmořská výška 268m. Dle mé další hračky nového GPS modulu Ublox m9n který umí určit polohu i výšku velmi precizně umí 4 globální navigační systémy naráz GPS Galileo Glonas a Beidou je tu výška 274m takže shoda s googlem precizní. Rozdíl je mezi skutečnou nadmořskou výškou a výškou zjištěnou měřením tlaku je tedy cca 60m a taky sem to čekal protože jak píšete tlak se mění s počasím a časem. Asi máš chybně úvahu, že referenční tlak ve výpočtu je konstantní. To není pravda, například na leteckém barometrickém výškoměru máš nastavovací prvek, kterým musíš nastavit referenční tlak přepočtený na hladinu moře v místě, kde létáš (v komunikaci se používá zkratka QNH), pokud letíš řízeným prostorem, řídící letového prostoru ti ho automaticky sdělí při každém spojení. Takže abys měřil přesně, musel bys při každém měření anebo alespoň dostatečně často tento referenční tlak pro výpočet měnit. Co ale můžeš udělat snadno je změřit tlak po zapnutí a používat ho potom jako referenční tlak ve výpočtu. Výsledek je v tom případě relativní výška nad místem, kde jsi to zapnul. A pokud nebudeš měřit nějak extrémně dlouho nebo při extrémních podmínkách (například při rychlém poklesu atmosférického tlaku před bouřkou), můžeš dosáhnout relativně solidní přesnosti.
_________________ OK2WY
|
|
Nahoru |
|
|
Wormsnake
|
Napsal: sob 16.01.2021 14:42 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
Myslím že to chápu spráně... (snad) No když použiju vzorec z obrázku výšše do něj dám p0 aktuální naměřený tlak chvíli po bude měřit správně? (tedy relativně od výšky místa počátku měření) (zkalibruji jakože na místě kde sem začal měřit) Když budu mít barometry dva, jeden statický referenční (přibitý k zemi) a druhý nad ním ve vzduchu můžu měřit přesně a dlouho jak chci změna tlaku vzduchu v čase mě nerozhodí pač mám ten statický na zemi jako referenci. (hladina moře mě zrovna teď nezajímá, v letectví důležitá jistě aby letadlo nevrazilo třeba ve tmě do hor) Já to v tom programu počítám od hladiny moře jako jakési konstanty, ale to jenom aby to něco dělalo a ukazovalo metry. Chápu že takovéto měření nemá v reálu žádnou hodnotu. Beru to jako cvičení v programování a ne jako něco co mě určí přesnou nadmořskou výšku. Teď sleduju jak se mění tlak v čase ty hPa se mě blbe pamatujou teď to ukazuje 219.73m ... PS to čidlo je fakt přesný pozná to rozdíl 5cm výškových.
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
Bel Mondo
|
Napsal: sob 16.01.2021 15:03 |
|
Nováček serveru
|
|
Registrován: 15.1.2021 Příspěvky: 43
|
Pokud se data z modelu posílají na zem, je nejlepším řešením měřit zároveň druhým čidlem tlak v nulové výšce a v reálném čase z rozdílu tlaků počítat výšku modelu. Není to dnes nijak drahé a přesnost je skvělá.
|
|
Nahoru |
|
|
Smartyn34
|
Napsal: sob 16.01.2021 15:49 |
|
Zkušený debatér
|
|
Registrován: 31.10.2006 Příspěvky: 237 Bydliště: Strakonice
|
A nestačilo by vědět že na každých 100m poklesne tlak o 8 hPa, a pak jen na zemi vzít aktuální tlak jako nulovou výšku, a jednoduše připočítávat?
|
|
Nahoru |
|
|
Wormsnake
|
Napsal: sob 16.01.2021 17:02 |
|
Mazák
|
|
|
Registrován: 22.2.2015 Příspěvky: 1421 Bydliště: Šternberk, ČR
|
Smartyn34 píše: A nestačilo by vědět že na každých 100m poklesne tlak o 8 hPa, a pak jen na zemi vzít aktuální tlak jako nulovou výšku, a jednoduše připočítávat? Když už MCU má potřebná má proč je nespočítat a nezobrazit co de.
_________________ NazaM F550-Rozebraná, RCT800-Padená rozbitá Vektor XXL, EasyGlider,Taranis HB-D8T Brushless
|
|
Nahoru |
|
|
igorb
|
Napsal: sob 16.01.2021 17:54 |
|
Moderátor serveru
|
|
|
Registrován: 22.3.2007 Příspěvky: 4776 Bydliště: SK Bratislava
|
Zalezi ako presne to potrebujes, ak ta netrapi ze sa ustrelis o 20m na 200 metroch, tak to kludne mozes brat ako linearnu zalezitost :- )) Inak presne to mas tu: https://www.mide.com/air-pressure-at-al ... calculatorSamozrejme to plati pre standardnu atmosferu, staci si pozriet ako sa meni tlak redukovany na hladinu mora a pozriet aky ustrel to moze vyskovo urobit. Aktualny tlak sa da ziskat z meteorologickeho ustavu (predpovedbej mapy) a su na to aj nejake servery cez ktore ziskas po internete v realnom sace (keby si to robil na androide s pristupom na net) Ja som to robil opacne, teda z podmienok a vysky som potreboval hustotu vzduchu (nastavenia sutazneho modelu), uplne bohate staci linearizovat v predpokladanom rozmedzi, ako velmi to robi chybu vidno na tom grafe v linku. Ak ta chyba vadi mozes urobit dvojitu aproximaciu v dvoch roznych intervaloch, napriklad od 0 do 1000 a od 1000 do 2000 vyssie asi nepoletis.
|
|
Nahoru |
|
|
igorb
|
Napsal: sob 16.01.2021 18:03 |
|
Moderátor serveru
|
|
|
Registrován: 22.3.2007 Příspěvky: 4776 Bydliště: SK Bratislava
|
Wormsnake píše: PS kdyby někdo věděl jak se v ardunimu umocňuje dej vedet. Možná to najdu v těch odkazech. Děkuji musim teď běžet... pow()
|
|
Nahoru |
|
|
Kdo je online |
Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 7 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|