Rozhodl jsem se napsat o modelářské meteostanici, o kterou se starám a pomalu měním a vylepšuji.
Původní projekt jsem zprovoznil na začátku roku 2015. Tehdy jsem použil RASPBERRY Pi 3 a USB kameru, plus čidla a anemometr a směr větru.
Všechno celkem fungovalo, ale celé zařízení se kousalo asi 1x za týden. Tak jsem udělal to, že se raspberry restartovalo každý den ráno. To bohužel zapříčinilo zničení mikro sd karty.
Tak jsem se rozhodl pro meteostanici postavené na arduinu.
Místo USB kamery byla použita nová, kvalitnější, WIFI kamera. Tato měla několikanásobný odběr proudu z baterie než stará USB kamera, proto bylo přikročeno k samostatnému napájení kamery a meteostanice z baterie 12V 95Ah. Tato je nabíjena přes regulátor ze solárního panelu. Řešení maximálního vybití baterie je omezením od solárního regulátoru. Při napětí 11.2V odpojí všechnu elektroniku. A pokud další den bude slunečno a baterie se nabije na hodnotu 12.4V, takse vše znovu připojí.
<br/>
Data z meteostanice jsou měřena Arduinem UNO a posílána přes ethernetovou desku W5100 na servr Thinkspeak.com. Tady je dovoleno uložit 8219 dat denně, a to zadarmo. Z tohoto servru je možno číst data a používat je na webových stránkách.
Anemometr a směr větru je použit z meteostanice WH1080.</t>
Měření směru větru.
Pro měření směru větru je použit analogový vstup arduina A0, ale pro větší přesnost porovnávám měřené napětí s referenční napětím, které měřím přes ADS1115, kterým se také měří přes odporový dělič, napětí na baterii.
Zkoušel jsem měřit směr větru a toto průměrovat, ale výsledné hodnoty nebyly dobré. Proto jsem použil filtr, který ze tří změřených hodnot odfiltruje nejmenší a největší hodnotu.
Měření rychlosti větru.
Spínací kontakt anemometru je přiveden na vstup 2 arduina a je použito programové přerušení.
Měření probíhá 6 sekund. Vyhodnocuje se nejdelší a nejkratší interval mezi sepnutím kontaktu anemometru, to odpovídá minimální a maximální rychlosti větru. Pro průměrnou hodnotu rychlosti větru se počítá počet sepnutí/6s.
Protože se mě projevila velká chyba měření maximální
Měření napětí baterií pro elektroletce.
Baterie 2x140Ah je napájena ze stejného solárního panelu jako meteostanice, ale přes samostatný regulátor.
Protože tyto regulátory mají společný +pól, nemohl jsem použít pro měření arduino UNO meteostanice.
Byl použit WEMOS D1 MINI a pro měření napětí baterie obvod INA 219. Tento byl zvolen proto, že nepotřebuje žádný napěťový dělič a může měřit napětí až 26V. Stačí jen naletovat odpor 100kOhm.
Napětí - data jsou posílána každou minutu na servr Thinkspeak.com. Jinak se WEMOS D1 MINI, po měření a odeslání dat, hluboce uspí.
Měření teploty, vlhkosti a barometrického tlaku.
Toto zatím zkouším doma na balkoně. Je použito WEMOS D1 s čidlem BME280. Napájení je z jedné baterie LION SAMSUNG 2600 mAh, přes Battery Shield V1.1.0 For WEMOS D1 mini, která je nabíjena ze solárního panelu 6V 0.6W přes shottky diodu a omezovač napětí DD08CRMA.
Přes ADS1115 se měří, napětí baterie, napětí ze solárního panel a napájecí napětí desky.
Měří se v intervalu 5 minut. Data se posílají na servr Thinkspeak.com. Je také použito hluboké uspání.
Pro konečnou variantu bude použit senzor VEML6070, pro měření osvitu ve W/m2.
Konečná varianta pro letiště, záleží na tom, jak přežije LION akumulátor zimu. Toto je zatím hlavní úkol pro testy, životnost baterie. Zatím se dá říci že to funguje i při noční teplotě -8.7°C a pár dnů v kuse okolo 0°C.
Jen se zatím projevuje nedostatek slunečního svitu pro nabíjení článku v zimním období. Slunce je příliš nízko nad obzorem a málo svítí nebo vůbec nesvítí. Budu zkoušet přidat ještě leden solární panel pootočený asi o 30°. A uvidíme.
Výsledky měření, jsou prezentovány na stránkách modelářského klubu http://www.modelari.estranky.cz/, ve formě grafů napětí bateriehttp://www.modelari.estranky.cz/clanky/ ... terii.html, směru a rychlosti větru http://www.modelari.estranky.cz/clanky/vitr.html, teploty a vlhkosti http://www.modelari.estranky.cz/clanky/teplota.html a ciferníkových ukazatelůhttp://www.modelari.estranky.cz/file/76 ... ri_mdk.htm nebo číselných hodnothttp://www.modelari.estranky.cz/file/77/index1.htm.
Modelářská meteostanice
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
-
- Příspěvky: 433
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Modelářská meteostanice
Dík, že sis dal práci s popisem vaší stanice. Se zájmem jsem si to přečetl.
Pavel
Pavel
-
- Příspěvky: 609
- Registrován: 26 říj 2017, 08:28
- Reputation: 1
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Modelářská meteostanice
Pěkné počtení ... díky
UNO, NANO, Mikro, PRO mini, DUE
http://pavel1tu.8u.cz/
http://pavel1tu.8u.cz/
Re: Modelářská meteostanice
Jenom pro doplnění uvedu filtr pro odfiltrování nejnižší a nejvyšší hodnoty ze tří měření.
Příklady ukazují, když se naměří 3 různé hodnoty směru větru. Střední hodnota je vždy směr J - jižní vítr.
min= 157 max= 205 prum= 180.00
Výsledek je 180.00
Příklady ukazují, když se naměří 3 různé hodnoty směru větru. Střední hodnota je vždy směr J - jižní vítr.
Kód: Vybrat vše
//int aa[]={180,180,180}; // Mereni smeru vetru 3x smer J,J,J
//int aa[]={205,180,180}; // Mereni smeru vetru 3x smer JZ,J,J
//int aa[]={157,180,180}; // Mereni smeru vetru 3x smer JV,J,J
int aa[]={205,157,180}; // Mereni smeru vetru 3x smer JZ,JV,J
//int aa[]={180,205,157}; // Mereni smeru vetru 3x smer J,JZ,JV
int pocet=3; //pocet mereni (prvku v poli)
float smer=0.00;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
smer=avergearray(aa,pocet);
Serial.println();
Serial.print("Vysledna hodnota smeru vetru = ");
Serial.print(smer);
}
void loop() {
// put your main code here, to run repeatedly:
}
double avergearray(int* arr, int number){
int i;
int max,min;
double avg;
long amount=0;
if(number<=0){
Serial.println("Error number for the array to avraging!/n");
return 0;
}
if(number<2){ //less than 5, calculated directly statistics
for(i=0;i<number;i++){
amount+=arr[i];
}
avg = amount/number;
return avg;
}else{
if(arr[0]<arr[1]){
min = arr[0];max=arr[1];
}
else{
min=arr[1];max=arr[0];
}
for(i=2;i<number;i++){
if(arr[i]<min){
amount+=min; //arr<min
min=arr[i];
}else {
if(arr[i]>max){
amount+=max; //arr>max
max=arr[i];
}else{
amount+=arr[i]; //min<=arr<=max
Serial.print(" ");Serial.print(arr[i]);
}
}//if
}//for
avg = (double)amount/(number-2);
}//if
Serial.println();
Serial.print("min= ");
Serial.print(min);
Serial.print(" max= ");
Serial.print(max);
Serial.print(" prum= ");
Serial.print(avg);
return avg;
}
Výsledek je 180.00
Re: Modelářská meteostanice
Moc hezke počtení. Pro me i hodne inspirativni.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host