Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2017:meteostation

Toto je starší verze dokumentu!


Meteostanice se senzory tlaku, teploty, vlhosti a O2

Zadáním tohoto projektu předmětu MPOA je naprogramovat meteostanici se výše uvedenými senzory. Původně měly být veličiny zobrazovány na LCD displeji, avšak z důvodu že použitý displej byl pouze pro 5V logiku a deska KL25Z pracuje na 3V3 logice (a během programování nebyl k dispozici převodník logické úrovně), jsou nakonec hodnoty posílány přes seriovou linku do PC, kde jsou v terminálu zobrazeny.


Použitý HW a SW

  • Senzor O2 FLUX 25%
  • Senzor tlaku MS5611-01BA03
  • Senzor teploty a rel. vlhkosti SHT-75
  • deska FRDM-KL25Z
  • MBed OS 5.0
  • PUTTY terminal

Senzor teploty a reativní vlhkosti

Jako senzor teploty a vlhkosti byl vybrán senzor SHT-75 od firmy Sensirion http://www.mouser.com/ds/2/682/Sensirion_Humidity_SHT7x_Datasheet_V5-469726.pdf. V porovnání s ostatními digitálními čidly na trhu, dosahuje nejlepší přesnosti měření při vysoké relativní vlhkosti a má dostatečný rozsah měřených hodnot. Velkou výhodou oproti ostatním snímačům teploty je, že měří nejen teplotu, ale i relativní vlhkost.

<file java>

void sht75_meas(void) {

  float temperature;                    // temperature -40 to 120 deg C
  float humidity;                       // relative humidity 1% to 100%
  float humi_f,rh_lin,rh_true;           // working registers for Illustration purposes
  int t;                                // temporary store for the temp ticks
  int h;                                // temp store for the humidity ticks
  sht.readTempTicks(&t);
  temperature = ((float)(t) * 0.01) - 39.61;
  sht.readHumidityTicks(&h);
  humi_f = (float)(h);
  rh_lin = C3 * humi_f * humi_f + C2 * humi_f + C1;
  rh_true=(((temperature/100)-25)*(T1+T2*humi_f)+rh_lin);
  if(rh_true>100)rh_true=100;                             //cut if the value is outside
  if(rh_true<1)rh_true=1;                                 //the physical possible range
  humidity = rh_true;
  pc.printf("Teplota: %2.2f C Rel. vlhkost: %2.2f %%\n\r",temperature, humidity);
  wait(2.0);

}

</file java>

2017/meteostation.1515942485.txt.gz · Poslední úprava: 2018/01/14 16:08 autor: Václav Kadlček