Water-over-IP (2)
Af Christian Panton,
fredag 03. sep 2010 kl. 15:54
I sidste blogpost fortalte jeg om min altankasse som skulle kobles på internettet, så jeg kunne vande den i min ferie. Ferien er nu slut og derfor vil jeg gerne berette om hvad som der virkede og hvilke vanskeligheder der var undervejs.
Konstruktionen
Selve vandingsanlæget er som tidligere antydet lavet af akvarieslanger og en slangepumpe. Jeg forsøgte til at starte med at fordele trykket jævnt ved at have lige lange slanger og have dem i samme højde. Det virkede for de første 2 slanger jeg havde sat på, men da jeg begyndte at udskifte T-kryds med 4-vejs kryds, ja så betød det at vandet løb lige igennem krydset og løb med trykket.
Det ledte mig tilbage til min barndom, da jeg byggede et vandingsanlæg af en colaflaske og en slange med min morfar. Problemet med trykket blev dengang reguleret ved hjælp af en rustfri skrue som var skruet op i slangen. Dette skulle naturligvis prøves og det virkede som en drøm. Altankassen har nu 8 steder med drypvanding som individuelt kan justeres i vandmængde.
Jeg ville også gerne måle fugtigheden i jorden. Jeg stak to lange rustfrie skruer med en fast afstand ned i altankassen ca. 5 cm ved siden af drypvandingen til den Schweiziske mynte. Ved hjælp af en simpel spændings-deler (er det det korrekte ord på dansk?) bestående af de to skruer som den ene modstand og et potentiometer som den anden, forbandt jeg midterpunktet til ADC indgangen på en arduino. Derefter tunede jeg potentiometeret så jeg udnyttede den fulde 1024 bit opløsning på arduinoen. For at undgå at opbygge en masse ioner på mine elektroder, bruger jeg en anden digital I/O-pin til at levere probe-spændingen med, således at der kun er et spænding på i mindre end et par hundrede milisekunder.
En af de digitale I/O-pins på Arduinoen forbandt jeg med en Darlington transistor. Men da jeg ikke havde nogle transistor, brugte jeg et helt Darlington-array. Nu havde Arduinoen en udgang som kunne trække op til 2A ved hjælp af transistorene, så nu kunne jeg trygt forbinde min pumpe motor, og så kunne jeg styre motoren ved hjælp af Arduinoen og i sidste ende den Netbook som jeg havde dedikeret til projektet.
Selv om den ovenstående øvelse virker simpel, så tog det mig alligvel en god 2-3 timer at indse at jeg havde forbundet Darlington-arrayet forkert. Jeg havde glemt at det var en NPN-version og jeg gik og tænkte i mit hoved det var en PNP. Da den lille misforståelse blev løst, ja så har det virket lige siden.
Interfacing med internettet
Da jeg skulle være væk et stykke tid ville jeg gerne lave et interface med video, så jeg kunne holde øje med planterne når de blev vandet.
Efter at have indset at plug-and-play videochat biblioteker ikke rigtigt findes i åbne løsninger endnu, valgte jeg Skypes API til at facilitere chat og video fra min altankasse.

Netop det valg viste sig at være den største svaghed ved projektet, da Skypes API'er til Linux er ganske ustabile, især Python versionen, som ville få Skype til at crashe, hvis man ikke kælede computeren blidt mens scriptet kørte. Det holdt sig dog lige akkurat oppe til jeg sad i toget på vej hjem fra ferie, hvor pludseligt Skype besluttede sig for at bruge en hver ressource på systemet og jeg blev nød til at hive batteriet ud af den bærbare, for at få den til at holde på med det.
Hjemme igen
Mine planter overlevede, hvilket må være den bedste måde at sige på at projektet var en succes. Men derudover havde jeg logget fugtigheden i min altankassen og den har jeg plottet nedenfor. Dagene er angivet på x-aksen og den reciprokke værdi af ADC'en er min approksimation af fugtigheden i jorden på y-aksen.

Kode