Webbansluten väderstation

Om du liksom jag är lite fascinerad över att samla in data om vår omvärld och presentera denna på ett meningsfullt sätt så att datan får mening och ger upphov till information i någon mening så kan detta inlägg möjligen vara intressant. Jag tänkte nämligen i korta ordalag beskriva hur man med ganska medel ansluter en väderstation till webben.

Själva väderstationen
Om vi inte vill dona med egna sensorer är det praktiskt att använda en färdig väderstation. Jag har lagt vantarna på en modell från Clas Ohlson som känns tillräckligt avancerad för min hobbynivå. Den kostar dryga tusenlappen och har sensorer för temperatur, vind, nederbörd och lufttryck. Väderstationen säljs under olika märken och benämningar (det verkar vara flera företag som köper väderstationen från den kinesiska leverantören och även rätten att “branda” den) men den mest gångbara på webben tycks vara WH1080. Om du är sugen på att följa mitt exempel nedan rekommenderar jag att du införskaffar en likadan WH1080-kompatibel pryl. Den går att hitta billigare på nätet men Classe kan ju vara praktiskt om du vill vara säker på att få tag i en likadan samt kunna gå tillbaka om det är något problem osv.

Att ansluta väderstationen till en dator
Jag skulle nog med lite ansträngning kunna internetansluta själva väderstationen genom att montera en liten Matchbox webserver på själva väderstationen men så roligt ska vi inte ha denna gången. Med väderstationen följer en display som kan anslutas till en dator via USB. Voila, första steget, dvs att få väderdata från väderstationen till en dator (exempelvis din webbserver) blir plötsligt möjligt.

Mjukvara
Med väderstationen följer en mjukvara för MS Windows som heter EasyWeather. Den kan man prova en gång innan man beger sig ut på nätet för att jaga rätt på ett vettigt program som går att köra i ett riktigt OS. Först provade jag WeatherDisplay men det passade inte mina behov och sen stötte jag på Jim Easterbrooks webbsida där han även länkar till några Python-skript som han använder för att prata med sin väderstation som råkar vara identisk med Classes dito.

De ovan nämnda Python-skripten fungerade out-of-the-box i Ubuntu 8.10 men eftersom jag tänkte ansluta displayen till webbservern så att displayen kan ligga på fönsterbrädan i köket med usb-kabel dragen i kabelränna till hålet i väggen som tar kabeln till usb-porten på webbservern i klädkammaren så behövde jag köra skripten i Debian Etch. En riktig webbserver kör som bekant Debian och inga bleka kopior 🙂 (Eller ja, jag hade gärna kört en LTS-version av Ubuntu på webbservern men det lär inte hända på ett tag, det är Debian som gäller på webbservern.) Jag kanske borde nämna att det förstås går bra att ansluta datorn till godtyckligt nätverksansluten dator som sen överför datan till den dator som agerar webbserver (alternativt lagrar datan på nåt delat filsysem eller jada jada jada, ni förstår principen). Hursomhelst, jag ville ansluta displayen direkt till webbservern som kör Debian Etch. Och det är väl nu själva kunskapssteget kommer som gör det någorlunda meningsfullt att komma med en beskrivning av hur man gör eftersom iaf jag fick lägga några minuter på att få till det.

Få det att funka i Debian Etch
1. Python-skripten kräver Python 2.5 så om du inte redan har installerat så är det dags nu, sudo apt-get install python-2.5

2. Vidare krävs pyusb-modulen för Python 2.5 och jag fick bara med en 2.4-kompatibel modul när jag installerade python-usb-paketet. Ladda ner pyusb-källkoden och kompilera för Python 2.5. Jag la usb.so-filen i /usr/lib/python-support/python-usb/python2.5/

3. För att generera grafer används Gnuplot och det duger inte med 4.0 som kommer med Etch. Istället för att anpassa cmd-filerna för att passa till 4.0 valde jag att försöka uppgradera till 4.2. Hittade en kille som backportat 4.2 och han mailade filerna till mig (han hade lagt dem på googlepages som inte gillar tilde i filnamnen) men du slipper maila Kamaraju och kan istället ladda ner och sen installera med exempelvis “sudo dpkg -i *.deb” ifall du inte råkar ha fler deb-filer i samma katalog som du inte vill installera…

Knyt ihop säcken
Sådärja, om jag inte glömt något väsentligt förutom lite normalt pill (som att göra filer körbara (typ chmod 755)) och liknande så bör det fungera nu. För att kunna presentera dina ovärderliga data kan det vara lämpligt att schemalägga väderdatainhämtningen och grafritandet. Det medföljer ett skript som heter Hourly.py som du kan anpassa efter eget tycke och smak för att sedan mata crontab med. Som avslutande övning gör du en webbsida som inkluderar lite färdigformaterade html-filer och grafer alternativt tolkar du dat-filerna på egen hand och använder den kreativitet som du begåvats med (samt förhoppningsvis förädlat i skola och livet i övrigt :)).

Eftersom jag gjort stegen ovan och enbart fuskat lite på det där sista kreativa steget (lugn, jag ska fixa det sen) så finner du Guldhedens väderstation på http://webbservern.se/weather/

På återhörande och lycka till med ditt webbanslutna väder! (om du har läst så här långt måste du väl vara tillräckligt intresserad för att ro detta i land…)

Jojustja, om du faktiskt skaffar en väderstation och lägger upp en vädersida så vore det kul om du skrev en kommentar till detta inlägg med en länk till din sida. Vore schysst om vi kunde konkurrera ut SMHI tänker jag…

This entry was posted in datorer, elektronik, hårdvara, linux, webbprojekt, webbservern and tagged , , , , , , . Bookmark the permalink.

6 Responses to Webbansluten väderstation

  1. Julia says:

    phew.. det låter jättebra. Men det verkar vara lite varningar på vädersidan:

    Warning: main(/home/html/weatherdata/tmp/weather/6hrs.txt) [function.main]: failed to open stream: No such file or directory in /home/html/weather/index.php on line 14

    Warning: main() [function.include]: Failed opening ‘/home/html/weatherdata/tmp/weather/6hrs.txt’ for inclusion (include_path=’.:/usr/share/php:/usr/share/pear’) in /home/html/weather/index.php on line 14

  2. jonas says:

    Ooops, sorry. Jag döpte om en katalog och missade att ändra lite sökvägar. Fixat.

  3. Pingback: Väderstationsmjukvara « Jonas funderingar

  4. Erik says:

    Coolt. Tror att jag har samma station (köpte den på Kjell & Co).

    Jag har kopplat den till min NSLU2 (http://hepp.se/2008/08/08/nordigt/)

    och lägger upp ett diagram på http://hepp.se/vader/

    Kanske ska köra den som din variant.

  5. jonas says:

    Erik: Tufft! Jag ska hålla koll på http://hepp.se/vader/

Leave a Reply

Your email address will not be published. Required fields are marked *