Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Temperaturgesteuerter Holzkohle-Räucherofen

Komponenten und Verbrauchsmaterialien

Arduino MKR1000
× 1
bürstenloses 5V-Gebläse
× 1
MOSFET IRF520N-Treibermodul
× 1
100K Ohm NTC-Thermistoren
× 1
Breadboard (generisch)
× 1
Jumper (generisch)
× 1
3,7 V Lipo-Akku>=700 mAh
× 1

Apps und Onlinedienste

Arduino-IDE
Microsoft Visual Studio 2015

Über dieses Projekt

Die Hintergrundgeschichte

Die meisten ernsthaften BBQ-Raucher wissen, dass der beste Geschmack durch die Verwendung von Holzkohle zum Erhitzen ihrer Raucher entsteht. Propan- und Elektroraucher haben eine bessere Temperaturkontrolle, verlieren aber den Holzkohlegeschmack. Als Wärmequelle kann Holzkohle schmerzhaft sein. Sie müssen die Temperatur ständig überwachen, die Belüftungsöffnungen anpassen, um die richtige Temperatur zu erreichen, und ein paar Mal damit spielen, um sie genau richtig zu machen. Dann müssen Sie dies jede halbe Stunde tun, wenn sich der Holzkohlegehalt im Raucher ändert. Wäre es nicht toll, sich einfach auf der Couch zurückzulehnen, das kalte Lieblingsgetränk und die Sportveranstaltung im Fernsehen zu genießen, während der Raucher sein Ding machen lässt?

Das Projekt

Erstellen Sie einen Controller, der die Temperatur im Räucherofen überwacht und den Luftstrom an die Holzkohle anpasst, um die richtige Temperatur aufrechtzuerhalten. Stellen Sie außerdem eine Möglichkeit bereit, die Temperaturen des Räucherofens und der Fleischsonden aus der Ferne zu überwachen. Dies basiert auf dem in Kürze erscheinenden Arduino MKR1000 mit integriertem Wi-Fi und Unterstützung zum Aufladen eines LiPo-Akkus.

Die Hardware

Die Temperatur im Rauch wird mit einem 100K NTC-Thermistor in einem Spannungsteiler überwacht, der an einen der analogen Eingänge des MKR angeschlossen ist. Dieser Thermistor wurde ausgewählt, da er für Prusa RepRab Hot Ends in 3D-Druckern verwendet wird, sodass sie weit verbreitet und kostengünstig sind. Der kann bereits mit Hochtemperatur-Silizium-isoliertem Draht verlötet gekauft werden, um den idealen Temperaturfühler herzustellen. Der Thermistor wird zum physischen Schutz in ein dünnes Edelstahlrohr (1/4 Zoll oder kleiner) eingesetzt, wobei ein Ende zum Schließen abgequetscht und die Drähte am anderen Ende mit Schrumpfschlauch befestigt werden.

Der Spannungsteiler verwendet einen 10K-Widerstand als die andere Hälfte des Spannungsteilers. Dieser Wert wurde gewählt, da er dem Widerstand des 100K NTC-Thermistors bei typischen Rauchertemperaturen (225 F) nahe kommt. Dies ergibt einen guten Bereich für die Temperaturmessung und liefert Messwerte von etwa 50 F bis über 300 F mit angemessener Granularität.

Mit A0 wird die Temperatur überwacht. Es verwendet eine kürzere Sonde, die auf dem Rost im Inneren des Räucherofens platziert wird. Die anderen analogen Pins können verwendet werden, um mehr Thermistorsonden und Spannungsteiler zu erstellen, die in das zu räuchernde Fleisch eingeführt werden, um die Innentemperatur des Fleisches zu überwachen, um zu wissen, wann es gegart wird.

Auf der anderen Seite ist ein kleines Gebläse an der Lüftungsöffnung des Smokers angebracht. Eine kleine Hundefutterschale aus Edelstahl wird über der Lüftungsöffnung des Räucherofens angebracht und das Gebläse wird am Loch im Boden der Schale befestigt. Dies dient zwei Funktionen, erstens die Belüftungsöffnung vollständig abzudecken und zweitens eine gewisse thermische Isolierung zwischen dem Körper des Rauchers und dem Gebläse bereitzustellen. Das Gebläse wird über einen N-Kanal-MOSFET gesteuert. Dies könnte direkt verdrahtet werden, aber zur Vereinfachung der Konstruktion wurde ein MOSFET-Modell verwendet. Das Gate des MOSFET ist mit dem digitalen Pin des Arduino verbunden

Der Build

Für die erste Implementierung wird alles auf einem Steckbrett durchgeführt, um die Dinge einfach zu halten. Die Thermistorbrücke(n) sind einfach zu verdrahten, der 10K-Widerstand von Vcc (3,3V für den MKR) an eine Seite des Thermistors und die andere Seite an Masse. Schließen Sie einen Jumper zwischen der Mitte der Brücke und einem analogen Pin am MKR an. Schneiden Sie ein Schlauchstück für die Sonde zu. Crimpen Sie ein Ende in einen Schraubstock, um es abzudichten. Mit einer Zange werden dann die Ecken des gecrimpten Schlauchs gefaltet, um eine schärfere Spitze zu erzielen. Schieben Sie den Thermistor in den Schlauch, bis er das Ende erreicht. Schieben Sie ein Stück Schrumpffolie über das andere Ende und die Drähte. Wenden Sie Hitze an, um es zu schrumpfen und die Drähte zu sichern.

Die Gebläseseite ist fast genauso einfach. Befestigen Sie die Kabel zum Gebläse an der Ausgangsklemmenleiste des MOSFET-Moduls und achten Sie dabei auf die Polarität. Schließen Sie Ihren LiPo-Akku und die Drähte eines JST-Steckers an den Stromanschlussblock des MOSFET-Moduls an und achten Sie dabei erneut auf die Polarität. Stecken Sie den JST-Stecker in die JST-Buchse für das Batterieladegerät am MKR. Führen Sie drei Jumper für Vcc, Masse und das Steuerkabel von den Pins auf der MOSFET-Platine zum MKR. Ein 10.000-mAh-Akku wurde verwendet, um dem Gebläse eine lange Akkulaufzeit zu bieten.

Auf dem Steckbrett wurden ein paar Elemente hinzugefügt, die nicht im Schaltplan enthalten sind. Es gibt einen variablen 10K-Widerstand, mit dem Spannungen erzeugt werden können, um die Skizze zu testen, indem einer der Jumper von einem Thermistor auf den Schieber am variablen Widerstand umgeschaltet wird (die Enden des Widerstands sind mit Vcc und Masse verbunden). Es gibt auch eine LED mit einem 330 Ohm Strombegrenzungswiderstand, der an den Ausgangspin 0 angeschlossen ist, um anzuzeigen, wann die Skizze den Lüfter ein- und ausschaltet.

Die Software

Es sind zwei Softwarekomponenten beteiligt. Eine ist die Skizze zur Steuerung des Arduino und die andere ist eine universelle Windows-App, sodass der Raucher auf jedem Windows 10-Gerät aus der Ferne überwacht werden kann.

Die Skizze basiert weitgehend auf einer Wi-Fi-Server-Skizze in Simon Monks' Buch "Programming Arduino Next Steps:Going Further with Sketches" (http://www.amazon.com/Programming-Arduino-Next-Steps-Sketches/dp /0071830251/ref=sr_1_6?ie=UTF8&qid=1459448622&sr=8-6).

Es erstellt im Grunde einen einfachen Webserver, der eine Seite mit den gemessenen Temperaturen bereitstellt und die Einstellung der Zieltemperatur für den Räucherofen ermöglicht. Die Initialisierung umfasst das Einrichten des Wi-Fi-Adapters und das Zuweisen einer festen IP-Adresse, um zu wissen, womit eine Verbindung hergestellt werden muss, wenn keine Verbindung zu einem Computer besteht, um eine DHCP-zugewiesene Adresse anzuzeigen. Pin 0 ist auf Ausgang gesetzt. In der Schleife prüft es, ob ein Client versucht, eine Verbindung herzustellen, und stellt in diesem Fall die Webseite bereit. Bei einer Anfrage wird auch geprüft, ob der Parameter in der URL zum Einstellen der Zieltemperatur enthalten ist. Es überprüft dann die Temperatur des Smokers und schaltet das Gebläse ein, wenn sie unter der Zieltemperatur liegt, und aus, wenn sie darüber liegt.

Die Temperaturmessung mit einem Thermistor im Spannungsteiler ist relativ einfach. Zuerst können wir aus dem Analogeingangsmesswert den Spannungsabfall über dem Festwiderstand bestimmen (Der Messwert, wenn der Festwiderstand mit Masse verbunden ist, Vcc - der Messwert, wenn er mit Vcc verbunden ist) Wir verwenden dann das Ohmsche Gesetz (V=IR) um den Strom (I) durch den Widerstand zu berechnen (I =V/R) Da der gleiche Strom durch den Thermistor fließt, verwenden wir wieder das Ohmsche Gesetz, um den Widerstand des Thermistors zu berechnen. R =V/I wobei V der Spannungsabfall des Thermistors ist (der Analogeingangsmesswert oder Vcc - der Messwert hängt davon ab, auf welcher Seite des Teilers er liegt) und I der gerade berechnete Strom ist. Mit R können wir es in die Thermistor-Beta-Gleichung einfügen:

1/T =1/T0 + 1/Beta * ln(R/R0)

Wobei R0 der Widerstand des Thermistors bei T0 ist

(Beachten Sie, dass alle Temperaturen in Kelvin angegeben sind. Berücksichtigen Sie dies also)

Das Bereitstellen der einfachen HTML-Webseite beinhaltet im Wesentlichen das Senden der HTML-Headerblöcke und HTML-Formatierungscodes um die gemessenen Temperaturen herum. Es enthält auch eine Eingabe für die Zieltemperatur und eine Schaltfläche, um sie in eine Anfrage zurück an den Server einzubeziehen.

Die universelle Windows-App

Dies ist das Stück, das es Ihnen ermöglicht, sich zurückzulehnen und zu entspannen, während Sie wissen, dass Ihr Raucher einige der besten geräucherten Rinderbruststücke westlich des Pecos (oder eines anderen Flusses Ihrer Wahl) produziert. Es lädt regelmäßig die Webseite vom Smoker, analysiert die Temperaturen und zeigt sie an. Außerdem können Sie die Zieltemperatur für den Räucherofen einstellen.

Code sowohl für den Sketch als auch für die Universal-App ist im unten aufgeführten GitHub-Repository verfügbar.

Code

  • Smoker-Controller-Skizze
Smoker Controller SketchArduino
// sketch_12_04_server_wifi#include #include char ssid[] ="BeeBar2"; // Ihre Netzwerk-SSID (Name)char pass[] ="9254582716"; // Ihr Netzwerk-PasswortWiFiServer-Server(80);WiFiClient-Client;const int numPins =10;int pins[] ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int pinState[] ={0, 0, 0, 0, 0, 0, 0, 0, 0, 0};char line1[100];char buffer[100];IPAddress server_IP(192,168,123,90);float targetTemperature =225;float smokerTemperature =225;float v0;void setup () { Serial.begin (9600); while (!Seriell) {}; // Leonardo braucht dies für (int i =0; i "); sendAnalogReadings(); client.println("
"); client.print("\n

Zieltemperatur:


"); client.println("\n
\n");}void sendAnalogReadings(){ client.println("

Temperaturen

\n"); Serial.print("Pin(");Serial.print(0);Serial.print("):V=");Serial.print(v0);Serial.print("Temperatur="); Serial.println (Rauchertemperatur); client.print(""); for (int i =1; i <7; i++) {int Reading =analogRead (i); if (Lesen> 0) { Float v =(Float) Lesung / 1241.0; Schwimmer T =ThermisterTemp(v, 100000, 10000, 3950, 25); Serial.print ("Pin ("); Serial.print (i); Serial.print ("):"); Serial.print (Lesen); Serial.print ("V ="); Serial.print (v);Seriell.print(" Temperatur="); Serial.println (T); client.print(""); } } client.println("
Raucher"); client.print(""); client.print (Rauchertemperatur); client.println(" F
Probe "); client.print(i); client.print(""); client.print (T); client.println(" F
");}void readHeader(){readRequestLine(line1); while (readRequestLine(buffer)> 1 &&buffer[0] !='\n') {}}int readRequestLine(char *line){ char ch; int i =0; while (ch !='\n' &&i <100 &&client.available()) { if (client.available()) { ch =client.read(); line[i] =ch; ich ++; } } Zeile[i] ='\0'; return i;}boolean pageNameIs(char* name){ // Seitenname beginnt bei char pos 4 // endet mit Leerzeichen int i =4; char ch =Zeile1[i]; while (ch !=' ' &&ch !='\n' &&ch !='?') { if (name[i - 4] !=line1[i]) { return false; } i++; ch =Zeile1[i]; } true zurückgeben;}float readTargetTempParam(){//Serial.print("Parsing targetTemperature");Serial.println(line1); int len ​​=strlen(line1); for (int i =0; i
Smoker Controller Sketch &Universal App
https://github.com/DuncanBarbee/SmokerController

Schaltpläne

Der Mrkr1000 wird durch einen Arduino Nano repräsentiert Smoker.fzzDer Mrkr1000 wird durch einen Arduino Nano repräsentiert
Das Fritzing-Tool hatte das Teil nicht.

Herstellungsprozess

  1. Arduino Digital Dice
  2. Temperatur- und Feuchtigkeitsdatenlogger
  3. Iron Man
  4. Finde mich
  5. Arduino 3D-gedruckter Roboterarm
  6. Arduino-Befeuchtersteuerung
  7. Kontaktloses Temperaturüberwachungstor
  8. NeoMatrix Arduino Pong
  9. Arduino-Joystick
  10. Arduino TEA5767 FM-Radioempfänger