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 især nyttigt - vi har ikke klimaanlæg, og at hæve termostaten til hele huset er ikke praktisk til bare at lave en 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 f.eks
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, vores gratis begyndervejledning Kom godt i gang med Arduino: En begynderguideArduino er en open source-elektronikprototypeplatform baseret på fleksibel, letanvendelig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver, der er interesseret i at skabe interaktive objekter eller miljøer. Læs mere er et fantastisk sted at starte.
- Arduino
- Temperatursensor - Jeg bruger en TMP36, en billig enhedspakkeenhed, der leveres med Oomlout (UK) / Sparkfun (US) begyndersæt.
- 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 varmebånd - dybest set et gummibånd, der bliver varmt, når elektricitet føres igennem, bruges på carboys og tønder til indledende gæringsfaser i vin- eller ølfremstilling - teknisk set kan dette være en brandrisiko, når det ikke vikles omkring noget 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 hacket fra hinanden beskrevet i denne hjemmeautomatiseringsartikel Styr apparater fra en Arduino: Starten med automatisering af hjemmetSidste gang viste jeg dig et par måder at gøre dine Arduino-projekter tale kontrolleret via SiriProxy, OS X's indbyggede talbare genstande og nogle Automator-scripting eller endda en dedikeret stemmegenkendelseshardware chip. JEG... Læs mere . Det er trådløst, så jeg behøver ikke på noget tidspunkt at røre ved direkte ledninger.
Temperatursensor
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 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-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 virker, desværre, når det blev 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 rundt, da der er 8 ledninger inde. Kablet er dog ganske tynd, så sørg for at styrke den anden ende med lodde, hvor det bliver skruet fast i en terminalblok.

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

Sammenlign med et termometer om muligt. Aflæsninger ikke rigtigt?
- Kontroller, at den spænding, der leveres, faktisk er 3,3 V
- Er AREF tilsluttet til 3,3 V også?
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 download herfra.

På dette tidspunkt vil jeg også fjerne alle referencer til Farenheit og kun fortsætte med at arbejde med Celsius. Derefter har jeg defineret en ønsket temperatur, der skal opretholdes, og tilføjet i en simpel kontrolstruktur som sådan:
if (temperaturC
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 være fundet her, selvom du bliver nødt til at justere dette, 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 kassen, 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 eventuelle 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 kontroller, 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 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?
James har en BSc i kunstig intelligens og er CompTIA A + og Network + certificeret. Han er hovedudvikler af MakeUseOf og bruger sin fritid på at spille VR paintball og brætspil. Han har bygget pc'er siden han var barn.