Gør det selv regnmåler

Når man bor i regnvåde Bergen, frister det ikke altid at bevæge sig udenfor. Man kan lige så godt prøve at få det bedste ud af det, så hvorfor ikke prøve at måle nedbøren?

Man kan selvfølgelig stille en beholder ud i regnvejret og måle, hvor meget vand der ender i den, men hvor kedeligt er det ikke? Nej, der skal være strøm og internet involveret, før det er noget ved.

Udgangspunktet var at tage en Raspberry Pi og lave en vejrstation. Den skal måle forskellige vejrdata med jævne mellemrum og gemme dem i en database. Ovenpå det skal der være en webside, hvor data kan læses – både her & nu samt historiske data.

Regnmåleren er i bund og grund ret simpel: En tragt leder vandet ned i et af kamrene i en todelt beholder. Beholderen står på en akse og vipper, når det ene kammer er fuldt, så kammeret tømmes mens nyt vand løber ned i det andet kammer. Siden man kender arealet på tragten og hvor mange milliliter vand kamrene kan rumme, kan man beregne hvor mange millimeter regn et vip svarer til. Dette kaldes også en tipping bucket rain gauge.

Når man bygger regnmåleren, bør man være nøje med at kalibrere rigtigt, så begge kamre rummer lige meget vand. Siden det er ret små mængder, vi snakker om, er det en god ide at gå på apoteket og købe den mindste sprøjte, de har. Med den kan man fylde små mængder vand i et kammer ad gangen og på den måde finde ud af, hvor meget vand der skal til, før beholderen tipper.

Vores regnmåler endte med en overflade med en diameter på 9cm, og hvert kammer kan indeholde 5ml vand. Det betyder, at hvert vip svarer til omtrent 0,8mm regn.

Udregningen er 5ml / ((4,5cm2 * π)/10) = 0,78mm.

En opløsning på 0,8mm per vip er lidt i overkanten. Man bør stræbe efter 0,1 – 0,2mm. Vi håber på at lave en version 2.0 med bedre opløsning.

For at aflæse regnmåleren bruger vi en fotoresistor, som lyses op af en diode. Fotoresistoren er koblet til en kondensator, som lades op af strømmen den får. Et lille “flag” på en arm på bægeret vil skiftevis skygge for fotoresistoren eller ikke. Et program vil jævnligt aflæse strømmen fra fotoresistoren ved at måle den tid, det tager at lade kondensatoren op. Tiden siger noget om, om der er lys på fotoresistoren eller ikke, og man kan dermed finde ud af, om armen har bevæget sig siden forrige aflæsning.

Selve aflæsningen kan gøres bedre, og vi kommer forhåbentligvis til at ændre det i version 2.0. I en perfekt verden sendes der et signal til computeren, når flaget bryder lysstrålen – ikke noget med at huske på hvad forrige status var. Siden en Raspberry Pi udelukkende har digitale indgange, kræver det at man laver et smart kredsløb, der kan sende strømmen videre til inputtet kun når lysstrålen brydes.

Pi’en har ikke alverden med diskplads eller CPU-kræfter, så jeg valgte at gemme dataene på en server – i dette tilfælde en EC2 hos Amazon. Der har jeg et lille REST API som tager imod aflæsninger fra Pi’en, og en webside viser aggregerede tal til min store fornøjelse.

Planen er at open source hele molevitten, men jeg vil gerne have modnet og strømlinet koden lidt mere, før jeg viser det frem.