Lav din egen temperaturkontrol med en Arduino

Løft det perfekte brød, bryg den smukke øl og bag lykkelige kyllinger med en Arduino temperaturregulator. Hvis du bor i et mindre end pålideligt klima som England, er retninger, der fortæller dig at holde noget ved en bestemt temperatur, ikke særlig nyttige - vi har ikke klimaanlæg, og det er ikke praktisk at hæve termostaten til hele huset. bare laver et brød.

Løft det perfekte brød, bryg den smukke øl og bag lykkelige kyllinger med en Arduino temperaturregulator.  Hvis du bor i et mindre end pålideligt klima som England, er retninger, der fortæller dig at holde noget ved en bestemt temperatur, ikke særlig nyttige - vi har ikke klimaanlæg, og det er ikke praktisk at hæve termostaten til hele huset. bare laver et brød.
Reklame

Løft det perfekte brød, bryg den smukke øl og bag lykkelige kyllinger med en Arduino temperaturregulator. Hvis du bor i et mindre end pålideligt klima som England, er retninger, der fortæller dig at holde noget ved en bestemt temperatur, ikke særlig nyttige - vi har ikke klimaanlæg, og det er ikke praktisk at hæve termostaten til hele huset. bare laver et brød. Selv holdt inde, kan kyllinger dø, hvis temperaturen falder om natten; og få dem til at luge i første omgang har et endnu strengere temperaturområde. Men jeg har brug for mit brød, og kyllingerne skal udklække - så i stedet for at købe dyrt udstyr kan vi sammenkoble en kompetent temperaturregulator med en Arduino og husholdningsbit.

Det samme gælder også for at holde varer kølige - det kan være spildt at køre et helt køleskab for at lave yoghurt - men med en temperaturregulator er princippet det samme. I stedet for at aktivere et varmeelement, aktiverer du stikket på et minikøleskab eller andet køleelement, som en Peltier (termoelektrisk køler) - og selvfølgelig vil logikken blive vendt om.

Hvad du skal bruge

Dette er et Arduino-projekt - hvis du aldrig har arbejdet med Arduino før, er vores gratis nybegynder guide et fantastisk sted at starte.

  • Arduino
  • Temperaturføler - Jeg bruger en TMP36, en billig enkeltpakke enhed, der følger med Oomlout (UK) / Sparkfun (US) begynderpakken.
  • Relæ- eller RC-stikkontakter
  • Skrueterminaler
  • Boks for at fange varmen
  • Varmeelement eller glødelampe og armatur (eller begge dele)

Den sidste ting er blevet bevidst vagt. Hvis du har en glødelampe (den slags, der bliver varm, ikke en energibesparende pære) eller en varm lampe til sportsskader og sådan, er det sikkert det nemmeste at oprette. Jeg bruger et varmebånd - dybest set et bånd af gummi, der bliver varmt, når strømmen passerer igennem, der bruges på karrosserier og kegler til indledende gæringsfaser i vin eller ølproduktion - teknisk set kan dette være brandrisiko, når det ikke såres, så vær venlig at gøre det ikke, jeg bruger kun det til at teste . Du kan også købe varmepuder til samme formål.

Af sikkerhedsgrunde bruger jeg disse RC stik til at skifte AC-enheder, med en controller hacket fra hinanden detaljeret i denne hjem automatisering artikel Kontrol Apparater fra en Arduino: Starten af ​​Home Automation Control Apparater fra en Arduino: Starten af ​​Home Automation Sidste tiden viste jeg dig et par måder at gøre dine Arduino-projekter talestyrede via SiriProxy, OS X's indbyggede talbare genstande og nogle Automator-scripting eller endda en dedikeret maskinvarechip til talegenkendelse. Jeg ... Læs mere. Det er trådløst, så jeg må ikke på noget tidspunkt røre direkte ledninger.

Temperaturføling

Lad os begynde med at tilslutte og teste sensoren. [Diagram fra Adafruit]

Adafruit-tmp36

Med den flade side mod dig og benene med forsiden nedad, er TMP36 temperatursensoren tilsluttet +, signal, GND i den rækkefølge. + Går til 3.3 V output fra Arduino; du har også brug for en anden linje, der går fra +3, 3 V til AREF pin - dette fortæller Arduino at bruge 3.3 V til analog input reference i stedet for 5 V. Tilslut sensorens signalstift til A1. I tidligere forsøg havde jeg brugt TMP36 direkte på 5 V linjen; det virker, desværre, da det var parret med et relæ, var der en strømfald, når relæet blev aktiveret, hvilket resulterede i meget varierende aflæsninger.

Jeg brugte et gammelt netværkskabel som signalkabel - meget nyttigt at have rundt, da der er 8 ledninger inde. Kablet er dog ret tyndt, så sørg for at styrke den anden ende med loddet, hvor det bliver skruet ind i en klemme.

tmp36-sensor-kabelføring

Formlen i koden forudsætter, at du bruger tMP36 sensoren; du skal kunne finde en kodeprøve for andre sensorer. Denne prøvekode er fra Adafruit - læs den op og åbn seriekonsollen for at undersøge output.

tmp36-test

Sammenlign med et termometer, hvis det er muligt. Læsninger ikke rigtige?

  • Kontroller, at spændingen, der leveres, er faktisk 3, 3 V
  • Er AREF også forbundet med 3, 3 V?

Tilføjelse i Switch Logic

For at styre varmeelementet bruger jeg disse stikkontakter fra Maplin og har fjernet controlleren. Kun jord- og kontrolstiften skal tilsluttes. Jeg har ændret koden til at omfatte de relevante biblioteker, som du kan downloade herfra.

rc-afbrydere

På dette tidspunkt vil jeg også fjerne alle referencer til Farenheit og fortsætte med at arbejde med Celsius. Jeg har derefter defineret en ønsket temperatur til at opretholde og tilføjet i en simpel kontrolstruktur som sådan:

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

Der er intet komplekst her, som du ikke forstår - bare at sammenligne den aktuelle temperaturaflæsning til den ønskede, og tænde kontakten, hvis den er lavere; Ellers skal du slukke for den.

Den komplette kode kan findes her, selvom du skal justere dette, hvis du bruger et relæ (det er ikke svært). Her er det komplette ledningsdiagram, jeg brugte:

ledninger

Samler det hele

Tape sensoren inde i den boks, du bruger, og anbring varmeelementet, hvor det passer. Indstil den ønskede temperatur, og tænd den helt. Hvis du holder din pc tilsluttet for nu, kan du bruge seriekonsollen til at observere ændringer, når din boks opvarmes.

temperatur-controller-box

Yderligere arbejde

  • For at mindske virkningen af ​​temperaturvariationer, kan du forsøge at udjævne resultaterne. Opret en matrix for at gemme 10 aflæsninger, og beregne et gennemsnit på hver sløjfe.
  • For at undgå hurtig aktivering og deaktivering af varmeelementet, lav en variabel for at gemme en nedtælling. Hver gang du aktiverer eller deaktiverer, skal du registrere den aktuelle tid i nedtællingen, og inden du skifter tilstanden, skal du igen kontrollere, om X tid er gået siden den sidste tilstandsændring.
  • For et computer-mindre projekt skal du tilslutte en lille LCD-skærm til at vise den aktuelle temperatur og lade dig se den aktuelle og ønskede temperatur.

Sætte det til testen

Endelig, hvad ville dette projekt være uden en lille test? Jeg piskede en parti færdigblandet dej i brødmaskinen og opdelte den i to brød. Den ene syrnet inde i kassen var mild, større, men den omgivende lufttemperatur i dag er alligevel omkring 26 grader Celsius - det ville være meget mere nyttigt om vinteren. Uanset om jeg hellere skal gøre lidt suppe til at ledsage dette dejlige brød.

brød-test

Så hvad ville du lave, der kræver en konstant temperatur?

Billedkredit: Ian Watkins / flickr

In this article