Advertentie
Kweek het perfecte brood, brouw mooi bier en kweek gelukkige kuikens met een Arduino-temperatuurregelaar. Als je in een minder 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 om gewoon een brood. Zelfs binnen gehouden, kunnen kuikens sterven als de temperatuur 's nachts daalt; en ze in de eerste plaats laten uitkomen heeft een nog strikter temperatuurbereik. Maar ik heb mijn brood nodig en de kuikens moeten worden uitgebroed - dus in plaats van dure apparatuur aan te schaffen, kunnen we een bekwame temperatuurregelaar samen met een Arduino en huishoudelijke stukjes samenstellen.
Hetzelfde geldt ook voor het koel houden van items - het kan een verspilling 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, activeer je de stekker van een minikoelkast of ander koelelement, zoals een
Peltier (thermo-elektrische koeler) - en natuurlijk zal de logica worden omgekeerd.Wat je nodig zult hebben
Dit is een Arduino-project - als je nog nooit met Arduino hebt gewerkt, ons gratis beginnersgids Aan de slag met Arduino: een beginnershandleidingArduino is een open-source prototypeplatform voor elektronica, gebaseerd op flexibele, gebruiksvriendelijke hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Lees verder is een fantastische plek om te beginnen.
- Arduino
- Temperatuursensor - Ik gebruik een TMP36, een goedkoop apparaat met één pakket dat wordt geleverd met de Oomlout (VK) / Sparkfun (US) beginnerskit.
- Relais- of RC-stekkers
- Schroefklemmen
- Box om de warmte vast te houden
- Verwarmingselement of gloeilamp en armatuur (of beide)
Het laatste item is opzettelijk vaag gelaten. Als je een gloeilamp hebt (de soort die heet wordt, geen spaarlamp) of een hete lamp voor sportblessures en dergelijke, is dit waarschijnlijk het gemakkelijkst in te stellen. Ik gebruik een verwarmingsband - eigenlijk een rubberen band die warm wordt als er elektriciteit doorheen gaat, gebruikt op mandjes en vaatjes voor initiële fermentatiestadia bij het maken van wijn of bier - technisch gezien kan dit brandgevaar opleveren wanneer het niet ergens om wordt gewonden, dus doe dit alsjeblieft niet, ik gebruik het alleen om te testen. Voor hetzelfde doel kunt u ook verwarmingspads kopen.
Om veiligheidsredenen gebruik ik deze RC-stekkers om AC-apparaten te schakelen, met een controller die apart is gehackt dit domotica-artikel Bedien apparaten vanaf een Arduino: het begin van domoticaDe vorige keer liet ik je een paar manieren zien om je Arduino-projecten spraakgestuurd te maken via SiriProxy, OS X's ingebouwde spraakbare items en sommige Automator-scripts, of zelfs een speciale hardware voor spraakherkenning chip. IK... Lees verder . Het is draadloos, dus ik hoef op geen enkel moment echt live draden aan te raken.
Temperatuurmeting
Laten we beginnen met het bedraden en testen van de sensor. [Diagram van Adafruit]

Met de platte kant naar u toe en de benen naar beneden gericht, is de TMP36-temperatuursensor bedraad +, signaal, GND in die volgorde. De + gaat naar de 3,3 V output 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 signaalpin van de sensor met A1. Bij eerdere pogingen had ik de TMP36 direct op de 5 V-lijn gebruikt; het werkt, maar helaas in combinatie met een relais, was er een stroomstoring wanneer het relais werd geactiveerd, wat resulteerde in zeer fluctuerende metingen.
Ik gebruikte een oude netwerkkabel als signaalkabel - erg handig om bij de hand te hebben, aangezien er 8 draden in zitten. De kabel is echter vrij dun, dus zorg ervoor dat u 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; u 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 indien mogelijk met een thermometer. Lezingen niet goed?
- Controleer of de geleverde spanning eigenlijk 3,3 V is
- Is de AREF ook aangesloten op 3,3 V?
Toevoegen in Switch Logic
Om het verwarmingselement te bedienen, gebruik ik deze RC-stopcontacten van Maplin en hebben de controller uit elkaar gehaald. Alleen de grond en de stuurpen hoeven te worden aangesloten. Ik heb de code aangepast om de relevante bibliotheken op te nemen die je kunt download vanaf hier.

Op dit moment ga ik ook alle verwijzingen naar Farenheit verwijderen en doorgaan met alleen werken met Celsius. Ik heb vervolgens een gewenste temperatuur gedefinieerd om te handhaven en toegevoegd in een eenvoudige controlestructuur als volgt:
if (temperatureC
Er is hier niets ingewikkelds dat u niet zult begrijpen: vergelijk gewoon de huidige temperatuurmeting met de gewenste temperatuur en zet de schakelaar aan als deze lager is; zet hem anders uit.
De volledige code kan zijn hier gevonden, hoewel je dit moet aanpassen als je een relais gebruikt (het is niet moeilijk). Hier is het complete bedradingsschema dat ik heb gebruikt:

Alles bij elkaar brengen
Plak de sensor in de doos die je gebruikt en plak het verwarmingselement waar nodig. Stel de gewenste temperatuur in en zet alles aan. Als u uw pc voorlopig aangesloten houdt, kunt u de seriële console gebruiken om veranderingen waar te nemen naarmate uw box warmer wordt.

Verdere werkzaamheden
- Om de impact van 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 voorkomen, maakt u een variabele om een aftelling op te slaan. Telkens wanneer u activeert of deactiveert, noteert u de huidige tijd in het aftellen en controleert u voordat u de status opnieuw wijzigt 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 zien.
Het op de proef stellen
Wat zou tenslotte dit project zijn zonder een kleine test? Ik klopte een partij kant-en-klaar deeg in de broodmachine en verdeelde het in twee broden. De zuurdesem in de doos was iets groter, maar dan is de temperatuur van de omgevingslucht vandaag toch ongeveer 26 graden Celsius - dit zou in de winter veel nuttiger zijn. Hoe dan ook, ik kan maar beter wat soep gaan maken bij dit heerlijke brood.

Dus, wat zou je maken dat een constante temperatuur vereist?
James heeft een BSc in Artificial Intelligence en is CompTIA A + en Network + gecertificeerd. Hij is de hoofdontwikkelaar van MakeUseOf en brengt zijn vrije tijd door met het spelen van VR paintball en bordspellen. Hij bouwt al pc's sinds hij een kind was.