Header image  
-Godt øl er et håndværk.  
line decor
  
line decor
 
 
 
 

 
 
Arduino
Mine eksperimenter med brug af Ardino platformet i bryggeriet.

Jeg havde længe haft lyst til at overvåge min gæringsproces. Det har aldrig været noget jeg har gået meget op i, og det vil nok forblive sådan, men jeg vil gerne have lidt mere viden om hvordan forløbet er. Jeg tænkte derfor at jeg måtte lave noget der kunne måle udviklingen af temperaturen for på den måde at få mere viden om hvorfor gæren udvikler de smagsnoter den gør. Der er meget blandede meninger om hvor meget varme der udvikles under gæringen af små batches.Så derfor vil jeg nu have konkret viden om det.

Vinteren 2012-13 blev så der jeg fandt en platform som så ud til at kunne foretage de målinger jeg ville. Det var vigtigt for mig at det ikke var en PC der slugte en masse strøm, og fyldte i stuen (hvor jeg gærer de fleste ales) eller i køleskabet (hvor jeg undergærer)
Valget faldt på Arduino som er en simpel platform med en forholdsvis lav opstartsomkostning, og da jeg i sin tid er uddannet som programmør tænkte jeg at det ville være til at gå til med kodningen.
Selve platformen er unik idet det er en opensource platform, hvilket ikke er så almindeligt for hardware. Der er altså en masse producenter, og da projektet bygger på en ret udbredt microprocesser er der mange stumper der passer ind i platformen.

Jeg bestilt en bunke stumper fra forskellige forhandlere i Kina, de er meget billigere end i DK, men det tager så ca. 1 måned for dem at nå frem. Jeg havde kun en meget overordnet ide om hvad jeg skulle bruge så jeg bestilte ud fra mine databehov som jeg mente var:

  • Temperatur
  • Tidspunkt
  • Aktivitet i gærrør
  • Mulighed for at vise data i en browser (LAN)
  • Statusindikatorer på systemets tilstand
  • Lagring af data på et SD kort, så jeg kunne hente dem ind i excell senere.
  • Da jeg ikke var helt klar over om jeg skulle måle aktivitet i gærrøret ved at registrere vibrationer eller ved at "kigge" på røret (fotocelle) bestilte jeg lidt stumper til begge metoder.

    Påsken 2013 gik jeg så i gang med de stumper jeg havde modtaget, det var meget simple ting jeg kunne få Arduinoen til at gøre de første dag. Men efterhånden fik jeg de enkelte stumper til at gøre som jeg ville, og jeg gik i gang med at sætte dem sammen, og fik efter et par dage lavet en dims der kunne måle en temperatur og gemme den på et SD-kort med et tidsstempel på målingen så jeg kunne se hvornår målingen var foretaget.

    Den første prototype så sådan her ud:

    Det kan godt se lidt rodet ud, men det smarte ved denne måde at gøre det på er den hvide plastic dims (Breadboard) der gør det muligt at samle det hele uden brug af lodninger eller krokodillenæb (der altid giver løse forbindelser) dette gør at man nemt kan flytte rundt på ledninger og prøve andre opsætninger.
    Alt kode jeg skulle bruge fandt jeg på nettet (OpenSource!) og klippede det sammen til noget der faktisk virkede ganske godt. Når jeg hev data ind i Excell fik jeg en pæn graf der viste temperaturen over tid:

    Efter at have fået alle dele til at virke hver for sig og delvist også samlet opdagede jeg at Arduinoen ikke kunne håndtere både SD og Ethernet kortene. De bruger den samme pin og selvom det burde kunne lade sig gøre kunne jeg ikke få det til at virke.
    Jeg prøvede at rode lidt med koden til de enkelte moduler, men det blev noget rod så jeg besluttede at forsøge mig med et ethernetshield som jeg fandt billigt i Kina.
    Det virkede fint, men jeg havde stadigvæk udfordringen med at tælle boblerne i gærrøret. Løsningen fandt jeg på en hjemmeside i USA, hvor en brygger havde monteret en IR-Photogate på en S-gærlås:

    Indlægget kan ses her: Bubble Logger og bedst som jeg troede problermerne var løst fandt jeg så ud af at den Photogate ikke længere var på lager, og Brinck kunne ikke levere en af samme størrelse...
    Løsningen blev en tur på eBay, og 47,- fattigere var der 10 stk på vej fra Kina, det var kun selve Photogaten jeg fandt, så jeg måtte selv i gang med loddekolben og et par modstande. Dette krævede en printplade som blev bestilt på dx.com, men det skulle ikke afhold emig fra at forsøge mig med de nyligt indkøbte dimser, så jeg lavede en testopstilling:

    Pilen viser placeringen af Photogaten.
    Heldigvis har sparkfun været flinke nok til at offentliggøre et diagram der viser hvordan deres Photogate er lavet:

    Så jeg var ikke helt tabt da jeg gik i gang med at teste, og det virkede da også fint.

    Jeg gik derfor i gang med at lave en principskitse over hvordan jeg tænker mig min opstilling skal se ud:

    Jeg er endnu ikke helt sikker på at jeg vil bruge ethernet og relæstyringen, da jeg ofte overgærer mine ales i stuen giver det ikke mening at bruge relæstyringen, men den kan være rar til mine undergærede bryg, men når jeg undergærer foregår det i et køleskab udenfor og der har jeg ikke ethernet stik. Derfor har jeg forberedt opstillingen til at man kan slå de 2 dele til og fra. Det skal så kodes ind at funktionerne til ethernet og relæer kun skal bruges hvis kontakterne "giver lov"

    Efter nogle måneders pause blev projektet genoptaget, da jeg som regel ikke roder med computere om sommeren hvor tiden går med en masse aktiviteter i haven og bryggeriet. Efter mange overvejelser besluttede jeg mig for at droppe ethernet funktionen
    Jeg fik sammensat en opstilling der så sådan her ud:

    hvilket ser meget forvirrende ud, men når man ser en tegning er det lidt nemmere at se hvordan den bliver opbygget:


    klik på billedet for at se det i fuld størrelse

    Jeg har besluttet at jeg vil montere temperatur følere på følgende steder:

  • I gærspanden
  • Udenpå gærspanden
  • På relæet til køling
  • På relæet til varme

  • Dette skulle give mig data om gæringen og hvis et relæ bliver for varmt er jeg i stand til at slukke for det, jeg overvejer om jeg skal montere en diode/buzzer der kan vise hvis der er temperatur alarm. Dette kan også vises i displayet.
    I denne version er denne funktionalitet dog ikke med på tegningen. Lige nu udlæser jeg 5 stykker data til displayet: 

  • Antal bobler siden sidste logføring
  • Seneste temperatur måling i gærspanden.
  • Om der er tændt for en varme/kulde kilde.
  • Hvor længe kilden har været tændt.
  • Hvor længe siden en kilde blev slukket.
  • Disse data er også dem jeg skriver til 2 tekstfiler på SD-kortet. Den ene fil indeholder oplysninger om temperaturer (fra alle følere) og bobler. Den anden fil indeholder oplysninger om hvad der er tændt og slukket og hvornår. Det er muligt at tænde og slukket for temperaturstyringen under hele processen, idet jeg har en kontakt der kan angive overfor softwaren om den skal bruge styringen eller ej. Jeg har også tilføjet en kontakt til displayet da jeg ikke ønsker lyset tændt i det hele tiden (strømforbrug og irriterende klart lys) men denne kontakt er dog meget lavpraktisk monteret dirkete på displayet og kan ikke "aflæses" af Arduinoen.
    Der er bestilt et større display i Kina, og jeg overvejer om jeg skal bruge det i stedet, da 2 gange 16 karakterer er i underkanten hvis jeg også ønsker at vise temperaturer fra de andre målere.

    Nu er boksen klar i version 0.9, jeg valgte at bruge det lille display da det store ikke kunne være i kassen. Jeg har tilføjet yderligere funktionalitet idet de 2 kontakter der sidder på fronten har LED i sig. DIsse 2 er sat til arduinoen så jeg nu har 5 LED på fronten.

    • Grøn: Heartbeat - denne blinker hurtigt og viser om programmet kører.
    • Rød: VIser at der er tændt for varmen.
    • Blå: Viser at der er tændt for kølingen.
    • Rød på kontakt til styring: Viser om styring er aktiveret.
    • Rød på kontakt til lys i display: Viser om der er en temperatur alarm på et af relæerne.

    Når boksen starter op undersøger den om der er kontakt til RTC (ur), SD-kort og temperaturfølerne. Herefter udlæser den parametrene for brygningen:

    27>T<35 angiver at T skal ligge mellem 27 og 35 grader, Alarm angiver hvor varme relæerne må blive, SOT viser minimumstiden en kilde skal være tændt før den må slukkes igen og Vent angiver hvor længe der må gå fra en kilde slukkes til en kilde må tændes.

    Når den arbejder viser den aktuel status på displayet (temperaturer bliver målt hvert minut):

    B er antal bobler registreret siden sidste logføring (opdateres hver gang der registreres en boble), HR viser temperaturen på varmerelæet (hvis køling er aktiv vises CR - temperatur på kølingsrelæ), * angiver at blæseren ved relæerne er tændt, T viser den seneste registrerede temperatur i gærspanden, P viser hvor lang tid der er gået siden en kilde blev slukket, A viser hvor længe den aktuelle kilde har været tændt.

    Selve temperaturfølerne der leverer data er baseret på DS18B20 følerne som er nemme at tilslutte og arbejde med:

    Der er 2 eksterne følere, en der måler temperaturen udenfor gærspanden som er placeret i den røde krympflex, og en der sænkes ned i øllet (rustfri stål) som jeg har overtrukket med noget silikoneslange for at sikre den ikke afgiver noget til øllet fra ledningen. Det lille printkort er det der er omtalt tidligere, og bruges til at reistrere bobler i gærlåsen.
    Derudover sidder der 2 følere på relæerne inden i kassen som bruges til at overvåge om de bliver for varme.
    For at prøve at skabe lidt luftcirkulation i kassen har jeg monteret en lille blæser ved relæerne (og monteret nogle små heatsinks på relæerne)

    Men denne blæser kunne desværre ikke få strøm nok når den bare sad på en almindelig udgang på Arduinoen, så jeg har monteret den med en kondensator som styrer et direkte flow af 5V fra arduinoen. Kondensatoren er sat op mod alukassens låg så den ikke bliver for varm.

     


     

     

    "Reality is an illusion, caused by lack of alcohol."
    -annonymous