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

Außenthermometer mit Trend-, Max- und Min-Temperatur

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Präzisions-Temperatursensor TS-NTC-103, 10 kΩ
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
RobotGeek Netzteil 12VDC 2,0A - USA
× 1
Kondensator 100 nF
× 2
Kondensator 470 µF
× 1
Metallfilmwiderstand 10k Toleranz 0,1%
× 1
Drucktaste (normalerweise aus)
× 1
Drehpotentiometer (allgemein)
× 1
Widerstand 10k Ohm
× 1

Über dieses Projekt

Einführung

Ich habe dieses Thermometer zum Spaß gemacht, aber auch, um Erfahrungen mit dem Schreiben von Arduino-Software und der Verwendung eines LCD-Displays zu sammeln. Während der Arbeit daran habe ich beschlossen, einige Funktionen hinzuzufügen. Gemessene Maximaltemperatur, Minimaltemperatur und ein Pfeil nach oben oder unten auf dem Display, der den Temperaturtrend anzeigt. Ein Druckknopf wird verwendet, um die angezeigte Min- und Max-Temperatur auf die aktuelle Temperatur zurückzusetzen.

So bauen Sie es

Der Aufbau ist ziemlich einfach. Verbinden Sie die Komponenten wie im Zeitplan gezeigt. Der 5V-Ausgang des Arduino Uno muss mit allen +5V-Anschlüssen (Pfeile) verbunden werden. Verbinden Sie auch alle Massestifte. Das Thermometer wird über ein externes Netzteil von 12 V DC mit Strom versorgt, das an den Arduino angeschlossen ist. Laden Sie die Skizze herunter und laden Sie sie auf Ihr Arduino hoch und Sie sind fertig.

Was Sie brauchen:

  • Arduino Uno
  • LCD-Display 1602A
  • 12-V-DC-Netzteil
  • B+B Thermo Technik TS-NTC-103 (10kΩ)
  • Metallfilmwiderstand 10kΩ, 0,1% Toleranz
  • Potentiometer 10kΩ linear
  • Widerstand 820 Ω (Toleranz nicht wichtig, 10 %, 5 % oder besser reichen aus)
  • Widerstand 10 kΩ (Toleranz nicht wichtig)
  • Kondensator 0,1 uF (=100nF) 16V (2 Stück)
  • Elco 470 uF 16V
  • Drucktaste (normalerweise aus)
  • Gehäuse, wenn Sie es einbauen möchten

Der Sensor, ein hochpräziser NTC

Der von mir verwendete NTC ist ein Präzisions-Temperatursensor von B+B Thermo Technik von 10 kΩ. Dieser Sensor hat eine Widerstandstoleranz bei 25 °C von ±0,5% jetzt wurden teure Platinwiderstände verwendet. Sowohl der Grundwiderstand als auch der B-Wert liegen innerhalb einer Toleranz von ±0,5%, so dass das Bauteil in vielen Anwendungen ohne Temperaturkalibrierung eingesetzt und auch ohne Nachjustierung ausgetauscht werden kann. Somit kann auf diese Weise durch einfache Widerstandsmessung eine Genauigkeit von ±0,12 K bei 25 °C erreicht werden. Im Temperaturbereich von -60 ...+85 °C beträgt der maximale Fehler ca. ±0,5K. Sie können jeden anderen hochpräzisen NTC verwenden, aber dann müssen Sie die Steinhart-Hart-Koeffizienten in der Skizze ändern, damit sie zu diesem NTC passen (siehe Steinhart-Hart-Approximation.)

Für hochpräzise Temperaturmessungen muss natürlich auch der andere Widerstand des Spannungsteilers in Reihe mit dem NTC ein Typ mit geringer Toleranz sein. Ich habe einen Metallschichtwiderstand von 10kΩ, Toleranz 0,1%, 0,6W, Temperaturkoeffizient 25 ppm verwendet. Jeder andere Widerstand mit einer Toleranz von 0,5% oder weniger ist ausreichend.

NTC-Kabel nimmt Geräusche auf

Der NTC wird außerhalb des Hauses aufgestellt. In meinem Fall mit ein paar Metern Kabel. Um Störungen durch andere elektrisch "verrauschte" Geräte im Haus zu vermeiden, habe ich einen Entkopplungskondensator von 0,1 uF vom analogen Temperatureingang des Arduino Uno (Pin 14) auf Erde gelegt. Das Oszilloskop zeigte danach immer noch etwas Rauschen an Pin 14 an. Das Rauschen wurde durch die Uhr des 1602-LCD-Displays verursacht. Es verschwand, nachdem ein Entkopplungskondensator von 0,1 uF zwischen VDD und Vss-Pin des LCD-Displays platziert wurde. Dieser Kondensator sollte mit möglichst kurzen Drähten (maximal 1 cm) direkt auf die LCD-PC-Platine gelötet werden.

Das Oszilloskop zeigte danach, dass das Signal an Pin 14 sauber war. Um Rauschen und Welligkeit vom Schaltnetzteil zu vermeiden, habe ich einen Elco von 470 uF zwischen den 5V und der Masse des Arduino platziert

Platzierung des NTC

Um fehlerhafte Temperaturmessungen zu vermeiden, dürfen der NTC und sein Gehäuse niemals in der Sonne stehen. Es sollte daher im Schatten platziert werden, vorzugsweise auf der Nordseite des Hauses (auf der Südseite, wenn Sie sich auf der Südhalbkugel befinden) oder sogar abseits des Hauses. Nicht dicht an der Wand, aber mindestens ein paar mm außerhalb der Wand, denn die Wand kann ein paar Grad wärmer sein als die Außenluft. Und am besten eine Wand ohne Heizung dahinter wie die Garagenwand.

Über die Software.

Die LiquidCrystal-Bibliothek ist für die 1602-LCD-Befehle enthalten. Es werden mehrere Konstanten und Variablen deklariert. Bitte lesen Sie die Kommentare in der Skizze für weitere Informationen. A, B und C sind die Steinhart-Hart-Koeffizienten für den von mir verwendeten NTC. Für andere NTCs müssen Sie diese Koeffizienten ändern. Das ganzzahlige Intervall in Zeile 17 definiert die Zeit zwischen zwei aufeinanderfolgenden Messungen, die 3 Sekunden beträgt. Um einen reibungslosen Ablauf der Temperaturmessung zu erhalten, wird aus 30 aufeinanderfolgenden Messungen ein laufender Mittelwert gebildet (numReadings in Zeile 22). Daher ist die angezeigte Temperatur immer der Durchschnitt der Temperatur der letzten 90 Sekunden. Für die Berechnung des laufenden Durchschnitts wird ein Array verwendet:Messwerte[numReadings] oder in diesem Fall Messwerte[30] in Zeile 21. Jeder Messwert ist eine ganze Zahl zwischen 0 und 1023.

Steinhart-Hart-Näherung

Ein NTC (Negative Temperature Coefficient) ist ein Widerstand mit einem temperaturabhängigen Widerstand. Der Widerstand wird geringer, wenn die Temperatur steigt. Leider ist der Zusammenhang zwischen Widerstand und Temperatur nicht linear. Aber die R-T-Kurve kann durch eine Formel angenähert werden. In der Praxis werden zwei Näherungsformeln verwendet. Die sogenannte Beta-Formel und die Steinhart-Hart-Formel. Da letztere die beste Näherung liefert, verwende ich diese. Oftmals geben uns die Hersteller Werte für beide Näherungen an. Der TS-NTC-103 kann jedoch in einem weiten Temperaturbereich von -60...+150 Grad Celsius eingesetzt werden. Da wir es in einem viel kleineren Bereich von ca. -10...+30 Grad Celsius erhalten wir eine bessere Näherung, wenn wir die Koeffizienten speziell für diesen Bereich selbst berechnen. In unserem Arbeitsbereich (-10, 0 und +20 Grad Celsius) habe ich drei Widerstands-Temperatur-Paare aus den Angaben des Herstellers verwendet. Es ist einfach, die Koeffizienten mit dem Online-Rechner von Stanford Research Systems zu berechnen. Im Diagramm unten sehen Sie die Daten (rote Punkte) der Beta-Modell-Approximation und der Steinhart-Hart-Approximation. In der rechten unteren Ecke sehen Sie, dass bei einem Widerstandswert von 10k die ungefähre Temperatur 25.0035 Grad Celsius mit Steinhart-Hart-Näherung beträgt, was ziemlich gut ist, und 25.7716 Grad Celsius mit Beta-Näherung, was wesentlich weniger gut ist (der NTC beträgt 10k bei 25 Grad Celsius)

Link zum NTC-Rechner

Code

Arduino
Version 1.4 löst ein Konventionsproblem in der Funktionsdeklaration PrintPG(), das einen Compilerfehler im Offline-Editor verursachte, aber keine Probleme im Web-Editor Version 1.3 enthält Hysterese für den Trendpfeil

Schaltpläne


Herstellungsprozess

  1. Zutrittskontrolle mit QR, RFID und Temperaturüberprüfung
  2. Messen Sie Temperaturen mit einem 1-Draht-DS18B20-Sensor und Raspberry Pi
  3. Temperatur lesen mit DS18B20 | Raspberry Pi 2
  4. Temperaturmessung mit RASPBERRY PI
  5. Python- und Raspberry Pi-Temperatursensor
  6. Einfache Temperatur und Luftfeuchtigkeit auf Raspberry Pi
  7. Überwachen der Temperatur mit Raspberry Pi
  8. DIY:Temperaturüberwachung und -regulierung für HomeBrew
  9. Raspberry Pi gesteuerte Raumtemperaturüberwachung mit Gnuplot-Bildausgabe und E-Mail-Benachrichtigungsfunktion
  10. Raspberry Pi Temperatur- und Lichtsensor