Inhaltsverzeichnis:

Temperaturmessung mit XinaBox und einem Thermistor - Gunook
Temperaturmessung mit XinaBox und einem Thermistor - Gunook

Video: Temperaturmessung mit XinaBox und einem Thermistor - Gunook

Video: Temperaturmessung mit XinaBox und einem Thermistor - Gunook
Video: ESP8266 mit Arduino programmieren, mein Basisvideo 2024, November
Anonim
Temperaturmessung mit XinaBox und einem Thermistor
Temperaturmessung mit XinaBox und einem Thermistor

Messen Sie die Temperatur einer Flüssigkeit mit einem analogen Eingang xChip von XinaBox und einer Thermistorsonde.

Schritt 1: Dinge, die in diesem Projekt verwendet werden

Hardware-Komponenten

  • XinaBox SX02 x 1 xChip analoger Eingangssensor mit ADC
  • XinaBox CC01 x 1 xChip-Version von Arduino Uno basierend auf ATmega328P
  • Widerstand 10k Ohm x 1 10k Widerstand für Spannungsteilernetzwerk
  • Thermistorsonde x 1 10k bei 25°C NTC wasserdichte Thermistorsonde
  • XinaBox IP01 x 1 xChip USB Programmierer basierend auf FT232R von FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED-Display
  • XinaBox XC10 x 4 xChip-Bus-Anschlüsse
  • XinaBox PU01 x 1 xChip USB (Typ A) Netzteil
  • 5V USB Netzteil x 1 Powerbank oder ähnlich

Software-Apps und Online-Dienste

Arduino-IDE

Handwerkzeuge und Fertigungsmaschinen

Schlitzschraubendreher Zum Anziehen oder Lösen der Schraubklemmenklemme

Schritt 2: Geschichte

Einführung

Ich wollte die Temperatur einer Flüssigkeit messen, indem ich ein einfaches Thermometer herstellte. Durch die Verwendung von XinaBox xChips konnte ich dies relativ einfach erreichen. Ich habe den SX02 Analogeingang xChip verwendet, der 0 - 3,3 V akzeptiert, den CC01 xChip basierend auf dem ATmega328P und den OD01 OLED Display xChip, um meine Temperaturergebnisse anzuzeigen.

Thermistor zur Messung der Wassertemperatur in einem Glas

Schritt 3: Notwendige Dateien herunterladen

Sie benötigen folgende Bibliotheken und Software:

  • xSX0X- Analogeingangssensorbibliothek
  • xOD01 - OLED-Display-Bibliothek
  • Arduino IDE - Entwicklungsumgebung

Klicken Sie hier, um zu sehen, wie Sie die Bibliotheken installieren.

Sobald Sie die Arduino IDE installiert haben, öffnen Sie sie und wählen Sie "Arduino Pro oder Pro Mini" als Board aus, auf das Sie Ihr Programm hochladen möchten. Stellen Sie außerdem sicher, dass der Prozessor ATmega328P (5V, 16MHz) ausgewählt ist. Siehe Bild unten.

Wählen Sie das Arduino Pro oder Pro Mini Board und den ATmega328P (5V, 16MHz) Prozessor

Schritt 4: Zusammenbauen

Klicken Sie den Programmierer-xChip, IP01 und den ATmega328P-basierten CC01-xChip zusammen mit den XC10-Busanschlüssen wie unten gezeigt an. Um zum CC01 hochzuladen, müssen Sie die Schalter in die Positionen 'A' bzw. 'DCE' bringen.

IP01 und CC01 zusammengeklickt

Als nächstes nehmen Sie Ihren 10kΩ-Widerstand und schrauben ein Ende in die mit "IN" gekennzeichnete Klemme und das andere Ende in die Masseklemme "GND" am SX02. Nehmen Sie die Leitungen der Thermistorsonde und schrauben Sie ein Ende in Vcc, "3.3V", und das andere Ende in die "IN"-Klemme. Siehe die Grafik unten.

SX02-Anschlüsse

Kombinieren Sie jetzt OD01 und SX02 mit CC01, indem Sie sie einfach über XC10-Busverbinder zusammenklicken. Siehe unten. Das Silberelement im Bild ist die Thermistorsonde.

Komplettgerät zum Programmieren

Schritt 5: Programm

Stecken Sie das Gerät in den USB-Port Ihres Computers. Laden Sie den folgenden Code herunter oder kopieren Sie ihn und fügen Sie ihn in Ihre Arduino-IDE ein. Kompilieren Sie den Code und laden Sie ihn in Ihr Board hoch. Nach dem Hochladen sollte Ihr Programm starten. Wenn sich Ihre Sonde bei Raumtemperatur befindet, sollten Sie ±25 °C auf dem OLED-Display wie unten gezeigt beobachten.

Beobachten Sie nach dem Hochladen die Raumtemperatur auf dem OLED-Display

Schritt 6: Tragbares Thermometer

Entfernen Sie das Gerät von Ihrem Computer. Zerlegen Sie das Gerät und bauen Sie es mit PU01 anstelle von IP01 wieder zusammen. Nehmen Sie nun Ihr tragbares 5V-USB-Netzteil wie eine Powerbank oder ähnliches und setzen Sie die neue Baugruppe ein. Sie haben jetzt Ihr eigenes cooles tragbares Thermometer mit guter Genauigkeit. Sehen Sie sich das Titelbild an, um es in Betrieb zu sehen. Ich habe heißes Wasser in einem Glas gemessen. Die folgenden Bilder zeigen Ihre komplette Einheit.

Komplette Einheit bestehend aus CC01, OD01, SX02 und PU02.

Schritt 7: Fazit

Dieses Projekt dauerte weniger als 10 Minuten zum Zusammenbauen und weitere 20 Minuten zum Programmieren. die einzige erforderliche passive Komponente war ein Widerstand. Die xChips klicken einfach zusammen, was es sehr praktisch macht.

Schritt 8: Code

ThermTemp_Display.ino Arduino Research Thermistoren, um die Berechnungen im Code zu verstehen.

#include // Kernbibliothek für xCHIPs einbinden

#include // Analogeingangssensorbibliothek einbinden #include // OLED-Display-Bibliothek einbinden #include // Mathefunktionen einbinden#define C_Kelvin 273.15 // für die Konvertierung von Kelvin in Celsius #define series_res 10000 // Wert des Vorwiderstands in Ohm #define B 3950 // B-Parameter für Thermistor #define room_tempK 298.15 // Raumtemperatur in Kelvin #define room_res 10000 // Widerstand bei Raumtemperatur in Ohm #define vcc 3.3 // Versorgungsspannung xSX01 SX01(0x55); // Stellen Sie die Float-Spannung der i2c-Adresse ein; // Variable mit der gemessenen Spannung (0 - 3,3 V) float therm_res; // Thermistorwiderstand float act_tempK; // aktuelle Temperatur Kelvin float act_tempC; // Ist-Temperatur in Celsius Void setup () { // Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen: // Variablen auf 0 initialisieren Spannung = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // serielle Kommunikation starten Serial.begin (115200); // i2c-Kommunikation starten Wire.begin (); // Starten Sie den analogen Eingangssensor SX01.begin (); // OLED-Anzeige starten OLED.begin (); // Anzeige löschen OD01.clear (); // Verzögerung zum Normalisieren der Verzögerung (1000); aufrechtzuerhalten. Void loop () { // Setzen Sie Ihren Hauptcode hier ein, um ihn wiederholt auszuführen: // Lesen Sie die Spannung SX01.poll (); // Spannungsspannung speichern = SX01.getVoltage(); // Thermistorwiderstand berechnen therm_res = ((vcc * series_res) / voltage) - series_res; // die aktuelle Temperatur in Kelvin berechnen act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res)); // Kelvin in Celsius umwandeln act_tempC = act_tempK - C_Kelvin; // Drucktemperatur auf OLED-Display // manuelle Formatierung zur Anzeige in der Mitte OD01.set2X (); OD01.println(""); OD01.println(""); OD01.print(" "); OD01.print (act_tempC); OD01.print("C"); OD01.println(""); Verzögerung (2000); // Anzeige alle 2 Sekunden aktualisieren }

Empfohlen: