Lag din egen temperaturkontroll med en Arduino

Lag din egen temperaturkontroll med en Arduino / DIY

Løft det perfekte brød, bryg nydelig øl og bak glatte kyllinger med en Arduino temperaturkontroll. Hvis du bor i et mindre enn pålitelig klima som England, er retninger som forteller deg at du holder noe ved en bestemt temperatur ikke spesielt nyttig - vi har ikke klimaanlegg, og det er ikke praktisk å heve termostaten for hele huset. bare lage et brød. Selv holdt inne, kan kyllinger dø hvis temperaturen faller om natten; og får dem til å luke i utgangspunktet har et enda strengere temperaturområde. Men jeg trenger brødet mitt, og kyllingene trenger klekking - så i stedet for å kjøpe dyrt utstyr, kan vi sammenkoble en kompetent temperaturregulator med en Arduino og husholdningsbiter.

Det samme gjelder også for å holde ting kjølig - det kan være sløsing med å kjøre et helt kjøleskap bare for å lage yoghurt - men med en temperaturkontroll er prinsippet det samme. I stedet for å aktivere et varmeelement, aktiverer du pluggen på et minikjøleskap eller annet kjøleelement, som en Peltier (termoelektrisk kjøler) - og selvfølgelig vil logikken bli reversert.

Hva du trenger

Dette er et Arduino-prosjekt - hvis du aldri har jobbet med Arduino før, er vår gratis nybegynner guide et fantastisk sted å starte.

  • Arduino
  • Temperaturføler - Jeg bruker en TMP36, en billig enkeltpakke-enhet som følger med Oomlout (UK) / Sparkfun (US) nybegynnersett.
  • Relé- eller RC-pluggbrytere
  • Skrueterminaler
  • Boks for å fange varmen
  • Varmeelement eller glødelampe og armatur (eller begge deler)

Det siste elementet har blitt bevist bevisst vakt. Hvis du har en glødelampe (den typen som blir varm, ikke en energibesparende pære), eller en varm lampe for sportsskader og så er det sannsynligvis det enkleste å sette opp. Jeg bruker et varmebånd - i utgangspunktet et bånd av gummi som blir varmt når strømmen går gjennom, brukt på karbohydrater og keger for innledende gjæringsfaser i vin eller ølproduksjon - teknisk sett kan dette være brannrisiko når det ikke sår rundt noe , så Vennligst ikke gjør dette, jeg bruker bare den til å teste. Du kan også kjøpe oppvarming pads for samme formål.

Av sikkerhetsgrunner bruker jeg disse RC-pluggene for å bytte AC-enheter, med en kontroller hakket fra hverandre, detaljert i denne hjemautomatiseringsartikkelen. Kontrollapparater fra en Arduino: Starten av hjemmeautomatiseringsapparater fra en Arduino: Starten av hjemmautomatisering Sist Tid, jeg viste deg noen måter å gjøre Arduino-prosjektene dine talekontrollert via SiriProxy, OS Xs innebygde, talbare elementer, og noen Automator-skripting, eller til og med en dedikert maskinvarechip for stemmegjenkjenning. Jeg ... Les mer. Det er trådløst, så jeg trenger ikke å røre direkte ledninger.

Temperaturføling

La oss starte med å koble opp og teste sensoren. [Diagram fra Adafruit]

Med den flate siden mot deg og bena med forsiden ned, er TMP36 temperatursensoren koblet opp +, signal, GND i den rekkefølgen. + Går til 3.3 V utgang fra Arduino; Du trenger også en annen linje som går fra +3,3 V til AREF-pinnen - dette forteller at Arduino bruker 3.3 V for analog inngangsreferanse i stedet for 5 V. Koble signalpinnen til sensoren til A1. I tidligere forsøk hadde jeg brukt TMP36 direkte på 5 V linjen; det virker, litt dessverre da det var sammenkoblet med et relé, var det en strømfall når reléet ble aktivert, noe som resulterte i svært varierende avlesninger.

Jeg brukte en gammel nettverkskabel som signalkabel - veldig nyttig å ha rundt, siden det er 8 ledninger inni. Kabelen er ganske tynn skjønt, så sørg for å styrke den andre enden med loddetinn, hvor det blir skrudd inn i en klemme.

Formelen i koden forutsetter at du bruker tMP36-sensoren; Du bør kunne finne en kodeksempel for andre sensorer. Denne prøvekoden er fra Adafruit - last den opp og åpne seriekonsollen for å undersøke utgangen.

Sammenlign med et termometer hvis mulig. Lesing ikke riktig?

  • Kontroller at spenningen som leveres er faktisk 3,3 V
  • Er AREF koblet til 3,3 V også?

Legge til i Switch Logic

For å styre varmeelementet bruker jeg disse stikkontaktene fra Maplin, og har tatt fra styreenheten. Bare bakken og kontrollpinnen må være tilkoblet. Jeg har endret koden for å inkludere de relevante bibliotekene som du kan laste ned herfra.

På dette punktet skal jeg også fjerne alle referanser til Farenheit og fortsette å jobbe med Celsius bare. Jeg har da definert en ønsket temperatur for å vedlikeholde, og lagt til i en enkel kontrollstruktur som sådan:

if (temperatureC < desiredTempC) mySwitch.switchOn(1,1); Serial.println("Heater ON");  else Serial.println("Heater OFF"); mySwitch.switchOff(1,1);  

Det er ikke noe komplekst her som du ikke forstår - bare å sammenligne den nåværende temperaturavlesningen til ønsket, og slå på bryteren hvis den er lavere; ellers slå den av.

Den komplette koden kan bli funnet her, men du må justere dette hvis du bruker et relé (det er ikke vanskelig). Her er det komplette ledningsdiagrammet jeg brukte:

Sette alt sammen

Tape sensoren inne i esken du bruker, og plasser varmeelementet der det passer. Still inn ønsket temperatur og slå den på. Hvis du holder PCen tilkoblet for øyeblikket, kan du bruke Serial Console til å observere endringer når boksen oppvarmes.

Videre arbeid

  • For å redusere virkningen av temperaturvariasjoner, kan du prøve å utjevne resultatene. Lag en matrise for å lagre 10 avlesninger, og beregne et gjennomsnitt på hver sløyfe.
  • For å unngå rask aktivering og deaktivering av varmeelementet, opprett en variabel for å lagre nedtelling. Hver gang du aktiverer eller deaktiverer, registrerer du den nåværende tiden i nedtellingen, og før du slår på tilstanden, må du sjekke om X tid har gått siden den siste tilstanden endret seg.
  • For et datamaskin-mindre prosjekt, koble til en liten LCD-skjerm for å vise gjeldende temperatur og la deg se nåværende og ønsket temperatur.

Setter det til testen

Til slutt, hva ville dette prosjektet være uten en liten test? Jeg pisket opp en del ferdigblandet deig i brødmaskinen og delte den i to brød. Den ene syret inne i esken var mildig større, men da er omgivelsestemperaturen i dag omtrent 26 grader Celsius - det ville vært mye mer nyttig om vinteren. Uansett, jeg går bedre med å lage litt suppe til å følge dette nydelige brødet.

Så, hva ville du gjøre som krever en konstant temperatur?

Utforsk mer om: Arduino.