Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: sob 16.01.2021 9:23 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
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 ... 4c4d09jB0x
Modul měření tlaku vzduchu a teploty vzduchu Barometric Pressure Shield V1.0.0 https://www.aliexpress.com/item/3294720 ... 4154.pic_4

V 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 Arduinu
Kó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 terminal
Kó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
 Profil  
 
 
PříspěvekNapsal: sob 16.01.2021 10:18 
Nováček serveru
Nováček serveru

Registrován: 1.11.2016
Příspěvky: 6
Bydliště: Zvolen, SK
Možno by bolo lepšie použiť napr. modul : https://www.aliexpress.com/item/32840380584.html?spm=a2g0o.productlist.0.0.11118a55dNkjyI&algo_pvid=72514ffe-1f23-4f8a-8ff3-556bf5b9ccc3&algo_expid=72514ffe-1f23-4f8a-8ff3-556bf5b9ccc3-0&btsid=0b0a556b16107880910325951e82b6&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
, ten už vráti po I2C zbernici výšku n.morom.

Na stránkach :
http://rcmodely.cevaro.sk/index.php?id=940&n=vyskomer-tlakomer-teplomer-so-senzorom-mpl3115a2-%E2%80%93-1cast
http://rcmodely.cevaro.sk/index.php?id=944&n=vyskomer-tlakomer-teplomer-so-senzorom-mpl3115a2-%E2%80%93-2cast

je tam celkom detailny popis práce a výpočtu výšky.


Nahoru
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 10:32 
Mazák
Mazák
Uživatelský avatar

Registrován: 12.2.2016
Příspěvky: 1724
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 11:16 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
Bydliště: Šternberk, ČR
Obrázek

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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 11:32 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 12:03 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 3.5.2003
Příspěvky: 11141
Bydliště: Břeclav
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 12:19 
Mazák
Mazák
Uživatelský avatar

Registrován: 12.2.2016
Příspěvky: 1724
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 13:21 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
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í... :D
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 13:45 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 16.8.2008
Příspěvky: 7164
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 14:42 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
Bydliště: Šternberk, ČR
Myslím že to chápu spráně... (snad)

Obrázek

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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 15:03 
Nováček serveru
Nováček serveru

Registrován: 15.1.2021
Příspěvky: 6
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 15:49 
Zkušený debatér
Zkušený debatér

Registrován: 31.10.2006
Příspěvky: 239
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
 Profil {RCalbum.cz}  
 
PříspěvekNapsal: sob 16.01.2021 17:02 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.2.2015
Příspěvky: 1288
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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 17:54 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4442
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 ... calculator

Samozrejme 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
 Profil  
 
PříspěvekNapsal: sob 16.01.2021 18:03 
Moderátor serveru
Moderátor serveru
Uživatelský avatar

Registrován: 22.3.2007
Příspěvky: 4442
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
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 47 ]  Přejít na stránku 1, 2, 3, 4  Další

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 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

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz