Verkkokamera-skripti

Aloittaja weatherc, lauantai, 23.10.2010, 17:44

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

weatherc

"Yleisön pyynnöstä" tässä tulee skriptit/ohjeet jolla saada sivulle verkkokameran kuva siten että kuvaan on liitetty myös säätietoja ;D
Alla olevilla skripteillä saa aikaseksi samanlaisen kuvan jota löytyy omalta kamerasivulta täällä.

Tarvitset:
- Sääaseman + softan (WD,Cumulus tai WUHU)
- Verkkokameran (Skripteissä käytetty Vivotekin kameraa mutta toimii millä tahansa josta saa still-kuvaa ulos)

Liitteenä skriptit jossa säädöt datatiedostoille seuraavasti:
-vivowd.php.txt -> WD:n clientraw.txt:lle
-vivocumulus.php.txt -> Cumuluksen realtime.txt
-vivowuhu.php.txt -> Wuhu:n currdata.lst:lle

Tiedostot ovat nimetty .txt:ksi jotta ei rivit mene sekaisin.
Valitse tiedosto sen mukaan mikä sääohjelma sinulla käytössä ja uudelleen-nimeä se .php:ksi.

Kuvan saaminen ulos kamerasta sääsivullesi
Tämä on se koko systeemin ehkä hankalin kohta.
1. Mene vaikkapa dyndns.org:iin ja rekisteröi itsellesi dynaaminen verkko-osoite, esim minunkamera.dyndns.org (minunkamera on se osoite minkä valitset)
2. Kaiva esiin adsl-purkkisi käyttöopus ja määritä kameran ip/dyndns.org-osoite. Tämä riippuu täysin adsl-purkistasi ja voi vaatia pitkää pinnaa ennenkuin alkaa toimimaan. Kannattaa myös asettaa sille joku eri portti kuin 80, esimerkiksi 8080. Kun toimii, sinun pitäisi päästä kameran asetuksiin kiinni menemällä selaimella osoitteeseen minunkamera.dyndns.org, ja kameran still-kuvaan menemällä http://minunkamera.dyndns.org:8080/cgi-bin/viewer/video.jpg.

Skriptin alussa on 4 asetusta:
$image -> tuo äsken määrittämäsi osoite sekä polku stillkuvaan (esimerkissä Vivotekin polku valmiina)
$font -> fonttitiedosto, uppaa fonttitiedosto palvelimellesi windowsin fonttikansiosta, esimerkissä käytetty tahomabd.ttf:ää, mutta voi käyttää mitä tahansa
$clientrawfile -> polku sääohjelmasi datatiedostoon
$cstring -> "nimi", vaikkapa domainisi, näkyy kamerakuvan alalaidassa

Noin...
Uppaa skripti palvelimellesi ja mene selaimella siihen, http://domain.com/vivowd.php, jos kaikki menee hyvin pitäisi ruutuun ilmestyä kamerasi kuva teksteineen alareunassa  ;D
jollei, jossain on jotain vikaa...

Kuvan liittäminen sivulle
<img src="http://www.nordicweather.net/vivowd.php?<?php echo time() ?>" alt="Webcam Halikko" />

Jotta ei kuka tahansa voisi pölliä kuvasi
..on skriptissä mukana hotlink-esto. Tämä on kuitenkin poistetu käytöstä rakennusvaiheen ajaksi (muuten et voi testata skriptiä suoraan).
Jos haluat sen käyttöön (suosittelen), poista /* ja */ seuraavasta pätkästä:
/*
if(!isset($PHP_SELF)) {$PHP_SELF = $_SERVER['PHP_SELF']; }
$t = pathinfo($PHP_SELF);
$Program = $t['basename'];
$ourHost = str_replace('', '', $_SERVER[HTTP_HOST]);
$mc = parse_url($_SERVER['HTTP_REFERER']);
$masterHost = $mc['host'];
if ($ourHost <> $masterHost) { exit;}
*/

Tämän jälkeen skriptiä ei voi kutsua suoraan eikä sitä voi käyttää muualla kuin samalla domainilla jossa skriptikin on.

teutari

WOW..., taas on weatcher tuupannut mainiot ohjeet!  ;D

Tuon ADSL-purkin konfaaminen siinä kaikkein hankalinta on kun eri merkkisissä purkeissa on aina omat jipponsa noiden reikien tekemiseen. ::)
Mulla on käytössä A-Link RR24Ap(i+) johon tuo reikä on ainakin helppo tehdä NATin Virtual Serveriin ip-kameran LAN IP Address ja portti sille auki mitkä on laittanut ip-kameran asetuksiin.

teutari

Tein testauksen tuosta skriptistä ja hienosti näytti ainakin täällä toimivan. :D
Täällä metsän siimeksessä on sen verran pimeätä että kuva on sen mukainen, ei killitä kun kaukana olevan hevostallin pihavalo. ;)

weatherc

Juu, se on ihan perus GD-skripti jossa otetaan kuva x ja pusketaan ulos lähes sellaisenaan (tekstit lisättynä).
Mainio esim. jos haluaa "piilottaa" alkuperäisen urlin kuten kotikoneen osoitteen. Sitähän voi sitten muokata kuten muuttaa ulostulevan kuvan kokoa tai vaikkapa rajata kuvaa tai vaikkapa lisätä logo jos haluaa. :)

Naruskan Ukka Matinpoika

Naruskan Ukka on osa sitä yleisöä, jonka pyynnöstä Teutarin välityksellä tämä ohje Halikosta saatiin. Naruskalla kumarretaan ja kiitetään. Uuden Vivotekin kameran asennustyöt ovat viivästyneet, mutta nyt on pitkästä aikaa päästy katolle kameran teknistä asentamista suorittamaan, eikä se kaukana valmiista enää ole. Eiköhän se kuvakin sieltä näytille saada, että Naruskan lumitilanteesta saadaan optimikuvaa kaikille muillekin kuin meille itselle. Täällähän vuorokauden lähes kymmenen sentin lumikertymä näkyy näppärästi ikkunasta.

Maapohja lumen alla ei taas kerran ole ehtinyt jäätyä yhtään, joten vaarana on taas kerran, että tämä lumi ei vielä jää pysyväksi alkutalven lumeksi. Saisi jäädä, koska rämpsykelit eivät soratien varrella asuvaa voisi juuri vähempää kiinnostaa, kun loska lentää. Entiaikaan talvi tuli aina kerralla tänne Lapin raukoille rajoille, mutta nykyvuosina sen kanssa on säiden haltija alkanut veivaamaan.

Jos kamera-asennukseen tulee mutkia matkaan, niin kyselen asioista tässä viestiketjussa. Mahdollinen onnistuminen näkyy nykyistä laadukkaampana kuvana täältä.


www.naruska.com

angle

#5
Tuli tätä koitettua, mutta tulee vaan valkoinen tyhjä sivu. Tuossa asetus rivit. Kokeilin myös image kohtaan jo valmiina palvelimelle ladattua kuvaa, mutta se tulosti jonkun virheen kuvan hakemisessa.
Lainaa<?php
$image = "http://xxx.xxx.xxx.xxx:portti/snapshot.cgi?user=muuta&pwd=muuta";
$font = "tahoma.ttf";
$clientrawfile = "./saa/clientraw.txt";
$cstring = "hovila weather";
Taas täällä tarvitaan helppiä. ???

weatherc

Todennäköisesti siinä on polkuvirhe johonkin filuun jota se tarvii (kuva, fontti tai clientraw)

angle

En löytänyt polku virhettä, joten rupesin tekemään niitä tarkoituksella.

1. Clientraw:lle väärä nimi. Tulos on tyhjä valkoinen sivu.
2. Fontille väärä nimi. Tulos on tyhjä valkoinen sivu.
3. Kuvalle väärä nimi. Tulos on tyhjä valkoinen sivu.

No kokeilin vielä tuota verkossa olevaa sääkuvan osoitetta ja se sentään tulostaa "error opening http://osoite... En vaan osaa. Ei kai tuon php:n nimi vaikuta asiaan, kun muutin sen toiseksi.


angle

#8
Filosofisen pohdinnan ja lukuisten kokeilujen jälkeen, olen sitä mieltä, että tyhjä sivu johtuu tuosta ekasta rivistä
Lainaa$image = "http://xxx.xxx.xxx.xxx:portti/snapshot.cgi?user=muuta&pwd=muuta";
Kameran cgi ohjetta hyväksi käyttäen muutin tuon osoitteen loppuun
$image = "http://xxx.xxx.xxx.xxx:portti/snapshot.cgi?user=muuta&pwd=muuta&next_url=kamera2.jpg";
Joka antaa kuvalle nimen. Nyt php tulostaa error opening http://jne.. Miten tästä eteenpäin?

Edit.
Kokeilinpa ihan mitä internet kuvaa tahansa niin aina tulee Error opening...

weatherc

Hmmm...Teeppä testi:


$image = "http://xxxx.dyndns.org:8080/cgi-bin/viewer/video.jpg";
$im2 = imagecreatefromjpeg($image);

header("Content-Type: image/jpeg");
imagejpeg($im2);
imagedestroy($im2);


Huomaa että tuo vaatii jpg-kuvan.