Första datat från brunnen

Första versionen sparade data var 15:e minut och höll reda minsta och högsta djup under hela perioden (den mätte varje sekund). Min första gissning var att vattnet inte rann till jättefort, så man skulle se förändringen bra även med 15 minuters intervall. Resultatet var förvånande. Det var mindre variation än väntat.

Första dygnets mätvärden

Direkt efter jag startade apparaten så satte mamma på tvättmaskinen. Den gör av med över 50 liter per tvätt. Varje centimeter vatten i brunnen motsvarar 6,36 liter vatten. En tvätt skulle totalt minska brunnen med 8 cm. Det tar två timmar för maskinen att tvätta. Precis mot slutet vid 13:15 och 13:30 var vattnet nere på 89 cm. Det var i slutet när den sköljde tvätten. Den började på 91 cm och låg runt 92 i en timme innan den sjönk till 91 och sen 89. Det är inte orimligt, men jag trodde att det skulle synas mer än bara tre cm under den tiden.

Normalnivån låg runt 92-93 cm. Grafen över tiden var ganska förväntad. Lägsta värdet i grafen är 87 cm vid 11:00. Under natten steg värdet tillbaka 93 cm. Förvånansvärt var att minsta uppmätta värdet under hela perioden var 72 cm. Eftersom jag inte kan något om grävda brunnar och hur vatten rinner till så har jag inte någon aning om det är rimligt eller om det är ett felaktigt värde. Om det inte är fel så rinner vattnet till rätt fort. I så fall borde man logga data oftare för att se förändringarna. Det är inte helt orimligt att man kan få felmätningar om vattenytan inte är helt plant. Exempelvis om man tappar brunnen på vatten från båda pumparna samtidigt.

Läste på lite mer om Arduino och tänkte att jag kunde logga värden var 5:minut och hålla reda på max, min och snittvärdet mellan varje mätning. Genom att spara värdena i EEPROM-minnet  kunde jag programmera Arduinon så den kan skicka över mätvärdena till datorn via USB-sladden. EEPROM-minnet är 1024 bytes och behåller värdena även om strömmen stängs av. Värdena för den här mätningen skrev jag av för hand, vilket funkar när det bara är 96 värden. Räknade med att spara 200 mätningar med fyra värden per gång. Förhoppningsvis går det se större förändringar då.

Installation av nivåmätaren

Är tillbaka i stan med stabilare internetuppkoppling. Kan fortsätta skriva. WordPress och min 3G-uppkoppling lirade inte så bra tillsammans.

Fick ägna en del tid till att programmera Arduinon. Det var ett tag sen jag programmerade C och det här är en förenklad version av C++. Det är rätt annorlunda mot det jag jag gör på jobbet. Framför allt knapparna var det jobbigaste. När man tycker in en knapp så blir det en mekanisk studs (kontaktstuds) mellan kontakterna inne i den. Den går inte direkt från av till på utan svänger snabbt mellan av och på och stabiliseras sen. Programmet går så fort att det kan verka som knappen byter mellan av och på många gånger vid ett tryck. Man får hålla koll på när knappen byter läge och vänta ett tag innan tolkar det som den bytt tillbaka.

När jag fått igång knapparna som jag ville var det inte så jobbigt att skriva dialog för inställningar. Det blev bra med två knappar. Man får ställa in tiden (timmar och minuter), brunnens totala djup och sensorns avstånd från brunnens topp. Det finns ingen realtidsklocka i den så tiden måste ställas in varje gång man sätter på den.

Ställ tiden

Ställ in tiden, först timmar sen minuter. Siffrorna man ställer in blinkar. Set stegar upp ett snäpp per klick och ökar kontinuerligt om man håller inne knappen (1 för timmar och 5 för minuter).

Ställa in djupet

Det funkar likadant för djupet (0 – 500 cm). Håller man inne den ökar den 10 cm.

Ställ sensorns avstånd från toppen

När den startar

Apparaten igång, men sensorn inte inkopplad än. Ett långt uppmätt värde ger ett lågt vattendjup. Undre raden anger hur många värden som lagrats. Det finns begränsat minne så det går inte att lagra så mycket. Bestämde mig för att börja med att logga värdena var 15 minut. Det blir 96 värden på 24h. Hade hoppats på att jag skulle kunna ladda över värdena till datorn via USB, men det visade sig att Ardouinon resettas när man slår på seriellmonitorn och då försvinner alla värden ur minnet. Jag hade inte lärt mig att använda EEPROM-minnet än (skrivbart minne som är kvar efter strömmen stängs av). Hade inte riktigt läst hårdvaruspecen för Arduinon. Löste det senare.

Ställningen

Uffe skruvar ihop ställningen för sensorn.

Sensorn hängs på plats

Sensorn på plats

Sensorn har tätats med en plastpåse och lite silvertejp (Löser-allt™).

Lådan på plats

Lådan på plats i pumphuset.

Ett litet jack för sladden

Uffe fixar ett jack för sladden. Det gick överraskande lätt att såga upp.

Gamla mätmetoden

Uffe och det gamla mätinstrumentet.

Brunnen dag 6, dags för första testet

Fäste elledningsröret i över skivan som sen sattes fast i röret med sensorn. Har monterat på två knappar på fronten också. Dom har ingen funktion än, men när jag skriver om programmet så ska dom ha det.

Allt ihopsatt

Vi öppnade upp brunnen och kollade hur det såg ut. För ovanlighetens skull var det riktigt mycket vatten. Flera decimeter mer än vanligt. Det såg ut som det fanns okej med yta nere mellan rören (där min spegelbild syns i bilden nedan).

Brunnen

Vi mätte vatten djupet och brunnens djup. Sen hängde vi ner sensorn en bit. Meningen är att den ska hänga lodrät så ultraljudselementen ligger horisontellt.

Sensorn

Resultatet var över förväntan. Den angav exakt det beräknade värdet. Vilket innebär att det egentligen kanske diffade en eller två cm. Vi var inte jättenoga när vi mätte, men det spelar ingen roll just. Det intressanta är att sensorn alltid ger samma värde för en viss höjd. Vi provade högre och lägre höjd, och det stämde fortfarande inom en cm.

Nästa steg är att täta sensorn, bygga ett ställning som ska hålla sensorn på plats när locket ligger på. Jag måste också programmera om Arduinon. Än så länge mäter den bara avståndet just nu. Jag vill att den ska mäta minst en gång i timmen och jag vill kunna få över värdena till datorn. Har inte riktigt bestämt hur det ska funka. Jag vill helst att man ska kunna få bra info på LCD-skärmen direkt utan att behöva använda datorn.

Brunnen dag 1

Jag hade en oanvänd elektroniklåda hemma som jag köpt för länge sen. Den skulle passa bra för projektet. Packade ned den och alla elektronikkomponenter jag behövde innan jag åkte. Hade lött ihop ett litet temporärt kretskort för LCD-skärmen så man kunde reglera ljusstyrkan och kontrasten med två trimpotentiometrar.

Började med att såga till plywoodbitar som jag kunde fästa komponenterna i.

Bottenplatta som Arduinon fästs i.

Bottenplatta som Arduinon fästs i.

Hittade lite udda skruvar som gick att använda.

Platta för skärmen

Platta för skärmen

Mejslar bort det som inte ska vara med

Plattan på plats

Skärmen på plats

Skärmen fick fästas med nubb. Hittade inga tillräckligt små skruvar.

Med Arduinon och skärmen på plats kunde jag börja koppla ihop dom. Allt hade funkat i hemma i stan, men det gick inte lika smidigt nu. Fick inte ut det jag ville på skärmen och den betedde sig lite inkonsekvent. Till slut kom jag fram till att det förmodligen var fel på sladdarna som var lite för tunna som gjorde att det blev glappkontakt. Det var lite stressigt innan jag stack från stan, så jag hade också missat lite med mitt lilla kretskort. Kunde inte koppla ihop allt som jag ville. Det skulle kunna funka om jag kunde löda ihop några av sladdarna. Min morbror Ulf hade en lödkolv, men det saknades lödtenn. Efter lite övervägande bestämde jag mig för att beställa lite extra material från Electrokit. Det skulle förmodligen lösa mitt strul. Vågade inte chansa på att sladdarna skulle gå att använda som det var. Beställde en torsdagkväll och hoppades på snabb leverans.

Projekt brunnen: idé

Vårt sommarställe på Fårö ligger väldigt nära vattnet. Varje år måste vi kolla vattennivån i brunnen. Det är alltid oro över om det finns tillräckligt med vatten i den och om det rinner till i rätt takt. Det är lite meckigt att mäta nivån, så vi gör det inte så ofta. Brunnslocket är rätt tungt. Förra året tänkte jag att man kanske skulle kunna göra en egen mätare med hjälp av en Arduino. Idén var att använda en ultraljudssensor för att mäta avståndet till vattenytan. Då man sen räkna ut hur mycket vatten som finns i brunnen. Den skulle även kunna logga mätvärdena så man kan se hur nivån förändras över ett dygn.

Skissen

Arduinon är ett litet kretskort med en microcontroller. Den har digitala in- och utgångar och analoga ingångar. Med den kan man koppla in olika elektroniska komponenter för att bygga sin egen apparat. Man skriver sitt program på datorn och laddar sen över det via USB. Det är en open source-plattform så man kan löda sin egen från scratch, men enklast är att köpa en färdig. Jag köpte min från Electrokit. Bra priser och snabba på att leverera.

Arduino Duemilanove

Innan semestern skaffade jag komponenter för apparaten. Det finns massa olika ultraljudssensorer att välja på. Folk använder det för bland annat robotprojekt. Jag valde PING))) från Parallax. Den är väldigt enkel att använda. Har bara en extra kontakt förutom strömkontakterna. Den skickar ut en ultraljudssignal och talar sen om när ekot studsat tillbaka. Tiden det tog för ljudet att studsa tillbaka använder man för att räkna ut hur långt avståndet är i cm.

PING)))

LCD-display köpte jag först en som inte funkade med Arduino. Den använde ett annat protokoll än det som dom flesta tydligen använder sig av. Vissa saker får man lära sig den hårda vägen. Beställde en av en annan typ och den funkade på en gång. Det kändes mycket stort när den visade ”Pineapple”. Använde mig av exemplet: Wiring up an LCD to an Arduino. Mycket roligare att skriva ”pineapple” än ”hello world”. Jag ska fortsätta med det i framtiden.