Maak je eigen temperatuurregelaar met een Arduino
Verhoog het perfecte brood, brouw mooi bier en kweek gelukkige kuikens met een Arduino-temperatuurregelaar. Als je in een minder dan betrouwbaar klimaat als Engeland woont, zijn aanwijzingen die je vertellen iets op een ingestelde temperatuur te houden niet bijzonder nuttig - we hebben geen airconditioners en het verhogen van de thermostaat voor het hele huis is niet praktisch voor gewoon een brood maken. Zelfs binnen gehouden, kunnen kuikens sterven als de temperatuur 's nachts daalt; en ze in de eerste plaats laten uitkomen heeft een nog strenger temperatuurbereik. Maar ik heb mijn brood nodig en de kuikens moeten worden uitgebroed - dus in plaats van dure apparatuur te kopen, kunnen we een bekwame temperatuurregelaar met een Arduino en huishoudelijke bits in elkaar klappen..
Hetzelfde geldt ook voor het koel houden van items - het kan verspillend zijn om een hele koelkast te gebruiken om yoghurt te maken - maar met een temperatuurregelaar is het principe hetzelfde. In plaats van een verwarmingselement te activeren, activeert u de stekker van een minikoelkast of ander koelelement, zoals een Peltier (thermo-elektrische koeler) - en natuurlijk wordt de logica omgekeerd.
Wat je nodig zult hebben
Dit is een Arduino-project - als je nog nooit met Arduino hebt gewerkt, is onze gratis beginnersgids een fantastische plek om te beginnen.
- Arduino
- Temperatuursensor - Ik gebruik een TMP36, een goedkoop apparaat met één pakket dat wordt meegeleverd met de Oomlout (UK) / Sparkfun (US) beginnersset.
- Relais- of RC-plugschakelaars
- Schroef terminals
- Kist om de warmte op te vangen
- Verwarmingselement of gloeilamp en armatuur (of beide)
Het laatste item is opzettelijk vaag gelaten. Als je een gloeilamp hebt (het soort dat heet wordt, geen energiebesparende lamp is), of een gloeilamp voor sportblessures en dergelijke, is dit waarschijnlijk het gemakkelijkst in te stellen. Ik gebruik een verwarmingsband - in feite een band van rubber die warm wordt als elektriciteit wordt doorgevoerd, wordt gebruikt op flessen en vaatjes voor de eerste gisting in de wijn of het maken van bier - technisch gezien kan dit een brandgevaar vormen wanneer het niet rond iets wordt gewikkeld , dus doe dit alsjeblieft niet, ik gebruik het alleen om te testen. U kunt ook verwarmingspads voor hetzelfde doel kopen.
Om veiligheidsredenen gebruik ik deze RC-pluggen om wisselstroomapparatuur te schakelen, met een controller die apart is gehackt in dit huisautomatiseringsartikel Controletoestellen van een Arduino: de start van domoticabesturingsapparatuur van een Arduino: de start van de automatisering van het huis Ik heb je een paar manieren laten zien om je Arduino-projecten spraakgestuurd te maken via SiriProxy, de ingebouwde sprekende items van OS X en enkele Automator-scripting, of zelfs een speciale hardware-chip voor spraakherkenning. Ik ... Lees meer. Het is draadloos, dus ik hoef op geen enkel moment onder spanning staande draden aan te raken.
Temperatuur meten
Laten we beginnen met het bedraden en testen van de sensor. [Diagram van Adafruit]
Met de platte kant naar u toe en de poten naar beneden gericht, is de TMP36-temperatuursensor bedraad +, signaal, GND in die volgorde. De + gaat naar de 3.3 V-uitgang van Arduino; je hebt ook een andere lijn nodig die van de +3,3 V naar de AREF-pin gaat - dit vertelt de Arduino om 3,3 V te gebruiken voor analoge ingangsreferentie in plaats van 5 V. Verbind de signaalpen van de sensor met A1. In eerdere pogingen had ik de TMP36 direct op de 5 V-lijn gebruikt; het werkt, bit helaas in combinatie met een relais, er was een stroomdaling wanneer het relais werd geactiveerd, resulterend in sterk fluctuerende metingen.
Ik gebruikte een oude netwerkkabel als signaalkabel - erg handig om in de buurt te hebben, omdat er 8 draden in zitten. De kabel is echter vrij dun, dus zorg ervoor dat je het andere uiteinde versterkt met soldeer waar het in een aansluitblok wordt geschroefd.
De formule in de code gaat ervan uit dat u de tMP36-sensor gebruikt; je zou een codevoorbeeld voor andere sensoren moeten kunnen vinden. Deze voorbeeldcode is van Adafruit - laad het op en open de Seriële console om de uitvoer te bekijken.
Vergelijk het zo mogelijk met een thermometer. Lezingen niet goed?
- Controleer of de geleverde spanning eigenlijk 3,3 V is
- Is de AREF ook verbonden met 3,3 V?
Toevoegen in Switch Logic
Om het verwarmingselement te regelen, gebruik ik deze RC-stekkerdozen van Maplin en heb ik de controller uit elkaar gehaald. Alleen de grond en de bedieningspen hoeven te worden aangesloten. Ik heb de code aangepast zodat deze de relevante bibliotheken bevat die u hier kunt downloaden.
Op dit punt ga ik ook alle verwijzingen naar Farenheit verwijderen en alleen met Celsius blijven werken. Ik heb vervolgens een gewenste temperatuur gedefinieerd om te onderhouden en toegevoegd in een eenvoudige besturingsstructuur zoals:
if (temperatureC < desiredTempC) mySwitch.switchOn(1,1); Serial.println("Heater ON"); else Serial.println("Heater OFF"); mySwitch.switchOff(1,1);
Er is hier niets gecompliceerds dat je niet begrijpt - gewoon de huidige temperatuurmeting vergelijken met de gewenste temperatuur en de schakelaar aanzetten als deze lager is; zet het anders uit.
De volledige code is hier te vinden, maar je moet dit aanpassen als je een relais gebruikt (het is niet moeilijk). Dit is het complete bedradingsschema dat ik heb gebruikt:
Alles samenvoegen
Plak de sensor in de doos die u gebruikt, en plaats het verwarmingselement waar dat nodig is. Stel de gewenste temperatuur in en schakel het allemaal in. Als u uw pc voor nu verbonden houdt, kunt u de seriële console gebruiken om wijzigingen te observeren terwijl uw doos wordt opgewarmd.
Verdere werkzaamheden
- Om de impact van eventuele temperatuurschommelingen te verminderen, kunt u proberen de resultaten te verzachten. Maak een array om 10 metingen op te slaan en bereken een gemiddelde voor elke lus.
- Om een snelle activering en deactivering van het verwarmingselement te vermijden, maakt u een variabele om een countdown op te slaan. Telkens wanneer u de functie activeert of deactiveert, noteert u de huidige tijd in het aftellen en controleert u vervolgens voordat u de status opnieuw inschakelt of de X-tijd is verstreken sinds de laatste statuswijziging.
- Voor een computerloos project sluit u een klein LCD-scherm aan om de huidige temperatuur weer te geven en kunt u de huidige en gewenste temperatuur bekijken.
Test het
Eindelijk, wat zou dit project zijn zonder een kleine test? Ik klopte een partij kant-en-klaar deeg in de broodmachine en splitste het in twee broden. De ene die binnen in de doos was gezuurd, was milder groter, maar dan is de temperatuur van de omgevingslucht vandaag toch ongeveer 26 graden Celsius - dit zou veel nuttiger zijn in de winter. Hoe dan ook, ik kan beter wat soep maken om dit heerlijke brood te begeleiden.
Dus, wat zou je doen dat een constante temperatuur vereist?
Ontdek meer over: Arduino.