Lav din egen temperaturregulator med en Arduino

  • Peter Holmes
  • 0
  • 2306
  • 581
Reklame

Hæv det perfekte brød, bryg smuk øl og bageste glade 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 indstillet temperatur, ikke særlig nyttige - vi har ikke klimaanlæg, og at hæve termostaten til hele huset er ikke praktisk til bare laver et brød. Selv hvis kyllingerne holdes inde, kan kyllinger dø, hvis temperaturen falder om natten; og at få dem til at klekkes i første omgang har et endnu strengere temperaturområde. Men jeg har brug for mit brød, og kyllingerne har brug for udklækning - så i stedet for at købe dyrt udstyr, kan vi kakle sammen en kompetent temperaturregulator med en Arduino og husholdningsbits.

Det samme gælder også for at holde emnerne kølige - det kan være spildt at køre et helt køleskab bare 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 et andet køleelement, som en Peltier (termoelektrisk køler) - og selvfølgelig vil logikken vendes.

Hvad du har brug for

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

  • Arduino
  • Temperatursensor - Jeg bruger en TMP36, en billig enhedspakkeenhed, der leveres med Oomlout (UK) / Sparkfun (USA) begyndersættet.
  • Relæ- eller RC-stikkontakter
  • Skru klemmer
  • Kasse til at fange varmen
  • Varmeelement eller glødepære og armatur (eller begge dele)

Det sidste punkt er blevet bevidst vagt. Hvis du har en glødepære (den slags der bliver varm, ikke en energibesparende pære) eller en varm lampe til sportsskader og sådan, er det sandsynligvis den nemmeste at installere. Jeg bruger et opvarmningsbånd - dybest set et gummibånd, der bliver varmt, når elektricitet føres igennem, brugt på carboys og tønder til de første fermenteringsstadier i vin- eller ølfremstilling - teknisk kan dette være en brandrisiko, når det ikke vikles omkring noget , så skal du ikke gøre dette, jeg bruger kun det til at teste. Du kan også købe varmepuder til samme formål.

Af sikkerhedsmæssige årsager bruger jeg disse RC-stik til at skifte vekselstrømsenheder, med en controller, der er hacket fra hinanden, beskrevet i denne hjemmeautomatiseringsartikel Kontrolapparater fra en Arduino: Starten med hjemmeautomatisering Kontrolapparater fra en Arduino: Starten med hjemmeautomation sidst gang, viste jeg dig et par måder at gøre dine Arduino-projekter tale styret via SiriProxy, OS Xs indbyggede talbare elementer og nogle Automator-scripting eller endda en dedikeret stemmegenkendelseshardware-chip. Jeg…. Det er trådløst, så jeg behøver ikke på noget tidspunkt at røre ved direkte ledninger.

Temperaturføling

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

Med den flade side mod dig og benene vendt nedad, er TMP36 temperatursensoren kablet op +, 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-stiften - dette fortæller Arduino at bruge 3,3 V til analog indgangsreference i stedet for 5 V. Tilslut signalstiften på sensoren til A1. I tidligere forsøg havde jeg brugt TMP36 direkte på 5 V linjen; det fungerer, desværre, når det er parret med et relæ, var der et effektfald hver gang relæet blev aktiveret, hvilket resulterede i meget svingende aflæsninger.

Jeg brugte et gammelt netværkskabel som signalkabel - meget nyttigt at have, da der er 8 ledninger inde. Kablet er dog ganske tynd, så sørg for at styrke den anden ende med lodde, hvor det skrues fast i en terminalblok.

Formlen i koden antager, at du bruger tMP36-sensoren; du skal være i stand til at finde en kodeeksempel til andre sensorer. Denne prøvekode er fra Adafruit - indlæs den, og åbn seriekonsollen for at undersøge output.

Sammenlign med et termometer om muligt. Aflæsninger ikke korrekt?

  • Kontroller, at den spænding, der leveres, faktisk er 3,3 V
  • Er AREF også tilsluttet 3,3 V?

Tilføjelse i switch logik

For at styre varmeelementet bruger jeg disse RC-stikstik fra Maplin og har taget styreenheden fra hinanden. Kun jord og kontrolnål skal tilsluttes. Jeg har ændret koden til at omfatte de relevante biblioteker, som du kan downloade herfra.

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

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

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

Den komplette kode kan findes her, selvom du bliver nødt til at justere denne, hvis du bruger et relæ (det er ikke svært). Her er det komplette ledningsdiagram, jeg brugte:

Samler det hele

Bånd sensoren inde i den kasse, du bruger, og anbring varmeelementet, hvor det er passende. Indstil den ønskede temperatur, og tænd for det hele. Hvis du holder din pc tilsluttet i øjeblikket, kan du bruge seriekonsollen til at observere ændringer, når din kasse bliver varm.

Yderligere arbejde

  • For at mindske virkningen af ​​temperatursvingninger kan du prøve at udjævne resultaterne. Opret en matrix til at gemme 10 aflæsninger og beregne et gennemsnit på hver sløjfe.
  • For at undgå hurtig aktivering og deaktivering af varmeelementet skal du oprette en variabel til at gemme en nedtælling. Hver gang du aktiverer eller deaktiverer, skal du registrere det aktuelle klokkeslæt i nedtællingen og derefter kontrollere, om X tid er gået siden den sidste tilstandsændring, før du skifter tilstand igen.
  • For et computerfrit projekt skal du tilslutte en lille LCD-skærm for at vise den aktuelle temperatur og give dig mulighed for at se den aktuelle og den ønskede temperatur.

Sæt det på prøve

Endelig, hvad ville dette projekt være uden en lille test? Jeg piskede op et parti færdigblandet dej i brødmaskinen og delte den i to brød. Den, der er syret inde i kassen, var mildere større, men så er den omgivende lufttemperatur i dag ca. 26 grader Celsius - dette ville være meget mere nyttigt om vinteren. Uanset hvad skal jeg hellere lave lidt suppe til at ledsage dette dejlige brød.

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




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.