Re: Malá domáca meteostanica - Micro Light2
Dik, vyzkousim
Btw je to pro starsi verzi 4.2 nebo pro novou 5?
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz
Network Monitoring System - SDS - Síťový Dohledový Systém
Nejste přihlášen. Přihlaste se, nebo se zaregistrujte.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » Pochlubte se ! » Malá domáca meteostanica - Micro Light2
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
Dik, vyzkousim
Btw je to pro starsi verzi 4.2 nebo pro novou 5?
Teď jsem si uvědomil, že jsem to předělal. Toto nebylo "ošetřené" pro zápornou teplotu. Teď posílám teplotu přímo z čidla a dělím až na servru - takže doplnit do index.php dělení $temp= round($temp/100,2);. Ještě je dobré posílat i nějaké heslo a kontrolovat ho v index.php, ať to někdo z legrace neposílá vymyšlení teploty.
Hm tak to bude na dlouho nez to vsechno poberu
Neslo by to pls nejak bliz specifikovat nebo poslat k nahlednuti jak to mate?
Jinak zkousim compil. a hazi error
13: coding error : invalid declaration found !
pocitadlo++;
Dik
Před main chybí deklarace
var t,tc,td,posl_minuta,pocitadlo;
var zbytek;
init
{
echoclear();
posl_minuta=999; //nějaké číslo, aby se poprvé nerovnalo minutě
pocitadlo=0;
sys[64]=60; // další odeslání za 1 minutu
}
Ale chce to předělat, jak jsem psal. Když tak večer to pošlu.
Budu rad, diky
Tak to posílám. Mělo by to fungovat. Funguje to i s verzí 5. Do index.php se musí doplnit třeba za řádek 51 toto :
$temp= round($temp/100,2);
Jinak jde jenom o poslání teploty pomocí httpget a ten jeho program všechno udělá. Teda po založení databáze a nastavení configu.
var t;
init
{
echoclear();
sys[64]=60; // další odeslání za 1 minutu
}
main
{
echo('[0] start');
// s čím začínáme
echo('[1] sys[65]=', sys[65]);
dns_resolv('www.mojestranka.cz');
cekam_na_dns:
// dokud se něco nestane (sys[65] se nastaví na nějakou hodnotu)
if (sys[65]==0) goto cekam_na_dns;
echo('[2] sys[65]=', sys[65]);
// takže:
cekam_na_odpoved:
if (sys[65]==514)
{
echo('cekam na odpoved, dns-server-ip:', sys[70],'.',sys[71],'.',sys[72],'.',sys[73]);
wait(1000);
goto cekam_na_odpoved;
}
echo('[3] hotovo,dns-server-ip:', sys[70],'.',sys[71],'.',sys[72],'.',sys[73]);
echo('[3] sys[65]=', sys[65]);
echo('RESOLV: ', sys[66],'.',sys[67],'.',sys[68],'.',sys[69]);
// hotovo, výsledek je v sys[66] až sys[69]
//cakanie na presny cas po zapnuti
label cekam_na_cas:
if (sys[7] == 1970)
{
echo ('Cakam na presny cas...');
wait(1000);
goto cekam_na_cas;
}
echo(sys[5],'.',sys[6],'.',sys[7],' - ',sys[8],':',sys[9],':',sys[10],' Presny cas OK. ');
label hlavni_smycka:
//čtení teploty
label cekam_na_teplotu:
t=sys[310];
if (t == 16777216) goto cekam_na_teplotu;
if (sys[64]==0) {
http_get(sys[66],sys[67],sys[68],sys[69],'www.mojestranka.cz','/maderovec_2/app/index.php?temp=',t);
label cekam_na_http2:
if (sys[65] == 0)
{
echo ('Cekam na HTTP');
goto cekam_na_http2;
}
//pokud server má problém:
if ((sys[65] != 1024)||(sys[75] != 200))
{
echo ('Chyba HTTP',sys[65],'-->',sys[75]);
//goto chyba_www_serveru;
}
sys[64]=60; // další odeslání za 1 minutu
}
goto hlavni_smycka;
label konec:
}
Len pre zaujímavosť:
Po približne roku prevádzky je v databáze necelých 500 000 záznamov. Veľkosť databázy je 17 MB (12 MB data a 5 MB indexy).
Niekoho to tu na fóre zaujímalo.
d.
Tak uz me to nacita do db, akorat to deleni teploty me nejak nechce fungovat.
Btw ma nekdo rozjete pro vicero teplotnich cidel?
Do index.php se musí doplnit třeba za řádek 51 toto :
$temp= round($temp/100,2);
Sem v tom hrabu a deleni furt nic
No prostě tu hodnotu, co přečteš v index.php pomocí
$teplota = $_GET['temp'];
podělíš pomocí PHP 100 tj.
$teplota= round($teplota/100,2);
Vracém se k měření rychlosti větru. Pořídil jsem si vzpomínané čidlo t114-anemometr-k-meteos
Parametry: poloměr košíčků 73 mm, počet pulsů na otáčku - 2.
Mám MikroLight první verze a poslední firmware.
Pokusný program
init
{
echo('Začínám měřit rychlost větru');
sys[64]=1;
}
main
{
if (sys[64]==0)
{
echo('Pocet pulsu:',sys[495]);
sys[64]=1;
sys[495]=0;
}
}
I když na to foukám fenem a točí se to jak zběsilé, tak to píše 10 pulsů.
Tzn. o=2.Pí.r=458,7 mm
Dráha 458.7*10/(2.1000)=2,3 m/s
To je zřejmě špatně. Kde je chyba?
to máš jenom 8 km/h ...
Jak bude trošku tepleji a bude více času, tak zkusím podobný pokus na mojí stanici ... já mám origoš WS 2300
T by bylo fajn. V tom prográmku asi nebude chyba, že?
T by bylo fajn. V tom prográmku asi nebude chyba, že?
Program bude v pořádku, porovnávám to tady : http://meteo.resslovaci.net/?page=about
Nevím jestli používat sys[64], tam nemusí být sekunda pokaždé přesně sekunda :-)
Já mám na sys[64] spínání co 6 hodin, t.j. 21600, spustil jsem to přesně v 18.00 a po pěti dnech se mi to posunulo o 3 hodiny !!! Ale to spíš poradí Adamn ....
mám dojem že se tady na foru řešilo to, že SO vstup nezaznamenává impulsy kratší než nějaká hodnota nastavená ve FW
takže pokud můžete zkontrolujete impulzy na vstupu osciloskopem, podle parametrů těch impulzů by mělo jít upravit firmware v SDS
Tak jsem se tu někde dočetl, že min. délka impulsu je 5 ms. Jaká je ale frekvence? Kdyby byla 10 ms tak to je 100 pulsů. Protože jsou 2 pulsy na otáčku, tak max rychlost by byla cca 23 m/s (82 km/hod). Nějaké omezení by to bylo, ale ne zase tak veliké.
Pokud máte volný AD vstup, dal by se použít převodník f/U a vyřešit za Vás trable s chytáním pulsů (např. LM2917N, LM2907 nebo podobný, kolem 50Kč)...
No prostě tu hodnotu, co přečteš v index.php pomocí $teplota = $_GET['temp']; podělíš pomocí PHP 100 tj.
$teplota= round($teplota/100,2);
Jen maličkost.. zbytečné zaokrouhlovat na setiny, když se dělí stem. Takže stačí $teplota = $_GET['temp']/100;
Pro informaci:
Minimální délka akceptováno pulsu (zařízením SDS) je 4 msec (to je měřeno jako vzdálenost dvou padajících hran signálu), cokoliv kratšího je ignorováno - lze to ale změnit ve webové konfiguraci.
Aktuálně, norma pro S0 rozhraní požaduje minimální délku pulsu 16 msec...
Pro kvalifikované posouzení proč ten snímač rychlosti funguje nebo nefunguje, bude potřeba vidět osciloskopický záznam napětí... pak to bude vše zřejmé.
Tak jsem dal anemometr na osciloskop. Přikládám dva snímky. Dle osciloskopu je to v pořádku. SDS micro ukazovalo 11 pulsů, osciloskop taky.
Odkaz na obrázky :
http://www.kolo-bezky.cz/osciloskop/snimek1.jpg
http://www.kolo-bezky.cz/osciloskop/snimek2.jpg
Takže to zkusím zkalibrovat s anemometrem na střeše auta.
Ještě tu padlo, že sys[64] není přesné. Je to tak?
o sys[64] jsem psal ja ... nevím z čeho se bere ten čas ale měl jsem nulování po 14400, t.j. co 6x za den neboli co 4 hodiny, a ono se to po 3 dnech šíleně opožďovalo ! Teoreticky i prakticky mi to vyšlo, že co hodinu se to opozdí o 1 minutu a 1 vteřinu !
Jestli na to má vliv že mám několikrát použito wait(), to nevím ... Snad tady napíšou profíci :-)
Pořád se mi nezdá nějak ta rychlost. Na interneti jsem narazil na :
Pro začátek jsem vycházel z velmi přibližného předpokladu, že vítr uběhne třikrát větší vzdálenost, než kolik činí dráha opsaná miskami anemometru (není to obecné pravidlo, záleží na mech. provedení, v mém případě běží středy tří hliníkových padesátimilimetrových misek po kružnici o průměru 140mm). Proto jsem do paměti cyklocomputeru do položky "obvod kola" uložil třikrát větší hodnotu než kolik čítá obvod kružnice, kterou misky Robinsonova kříže opisují.
Je to pravda? Jak by teda měl vypadat vzorec?
Tak jsem pátral a :
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3386737/
http://www.osti.gov/bridge/servlets/pur … 485403.pdf
Jestli jsem pochopil, tak by se to mělo násobit konstanotiu v rozmezí 2-3 a počtem pulsů na otáčku.
Neco jsem nasel k tem cidlum
http://www.sparkfun.com/datasheets/Sens … embly..pdf
Anemometer
The cup-type anemometer measures wind speed by closing a contact as a magnet moves past a switch. A wind speed of 1.492 MPH (2.4 km/h) causes the switch to close once per second.
Zdravim vsechny,
jsem tu uplne novy a s SDS nemam zadnou zkusenost.
Zalozil jsem si ucet na eportalu, vygeneroval program. Vse vypada super.
Mam svuj maly web server, kde jsem si rozjel tuto aplikaci aplikace pro TME/TH2E – TMEP 6.3
Chtel bych si tam posilat data z jednoho cidla a ukladat si u sebe.
Narazil jsem na nize uvedeny prispevek, ale nevim si rady jak upravit vygenerovany program a zakoponovat odesilani teploty na vlastni web server.
Je ochoten me to nekdo pomoct upravit?
Cely program vygenerovany s eportalu se me sem nedari nahrat
Dekuji za ochotu
kod je třeba upravit podle vašeho serveru
řádek
dns_resolv('www.mojestranka.cz');
vložíte doménu na které je TME
podobně
http_get(sys[66],sys[67],sys[68],sys[69],'www.mojestranka.cz','/maderovec_2/app/index.php?temp=',t);
kde nastavíte cestu na hlavní stránku TME
tak pokud TME bude na serveru www.bures.cz/teplota/index.php
pak by to vypadalo nějak takto
dns_resolv('www.bures.cz');
...
http_get(sys[66],sys[67],sys[68],sys[69],'www.bures.cz','/teplota/index.php?temp=',t);
pak je ještě zkontrolovat jestli teplota je na sys[310]; - první pozice v seznamu teplotních čidel
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » Pochlubte se ! » Malá domáca meteostanica - Micro Light2