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

Arduino-Außenthermometer mit Trend, Min/Max-Werten

Komponenten und Zubehör

KomponenteMengeHinweis
Arduino UNO1
Präzisionstemperatursensor TS-NTC-103, 10 kΩ1B+B Thermo Technik, Toleranz ±0,5 % bei 25 °C
Adafruit Standard LCD 16×2 (weiß auf blau)1
Netzteil 12 V DC 2,0 A1
Keramikkondensator 100 nF2Entkopplung
Elko 470 µF 16 V1Gegen Schaltnetzteil-Ripple
Metallfilmwiderstand 10 kΩ, 0,1 % Toleranz1Für Spannungsteiler mit NTC
Taster (Normalerweise offen)1Zum Zurücksetzen von Min/Max
Drehpotentiometer 10 kΩ linear1LCD-Kontrasteinstellung
Widerstand 10 kΩ1Allgemein

Projektbeschreibung

Einführung

Dieses Thermometer wurde zum Spaß und zum Erlernen von Arduino-Programmierung sowie LCD-Ansteuerung gebaut. Später kamen Funktionen hinzu: Anzeige von Maximal- und Minimaltemperatur sowie ein Trendpfeil (steigend/fallend). Ein Taster setzt Min/Max auf den aktuellen Wert zurück.

Aufbau

Der Aufbau ist einfach: Alle Komponenten werden gemäß Schaltplan verbunden. Der 5 V-Ausgang des Arduino versorgt alle +5 V-Anschlüsse (Pfeile im Plan), alle GND-Pins werden miteinander verbunden. Die Stromversorgung erfolgt über ein externes 12 V-Netzteil am Arduino.

Benötigte Bauteile:

Der Sensor – ein hochpräziser NTC

Der verwendete NTC (TS-NTC-103) hat einen Widerstand von 10 kΩ bei 25 °C mit ±0,5 % Toleranz. Der Messbereich reicht von −60 °C bis +150 °C. Sowohl Basiswiderstand als auch B-Wert liegen innerhalb von ±0,5 %, sodass der Sensor ohne Kalibrierung eingesetzt und ausgetauscht werden kann. Durch einfache Widerstandsmessung lässt sich eine Genauigkeit von ±0,12 K bei 25 °C erreichen; im Bereich −60 °C bis +85 °C beträgt der Maximalfehler ca. ±0,5 K.

Für hohe Messgenauigkeit muss auch der Vorwiderstand des Spannungsteilers präzise sein. Hier wurde ein 10 kΩ Metallfilmwiderstand mit 0,1 % Toleranz, 0,6 W, TK 25 ppm verwendet. Jeder Widerstand mit ≤0,5 % Toleranz ist geeignet.

Störsignale am NTC-Kabel

Der NTC wird außerhalb des Hauses platziert (mehrere Meter Kabel). Um Störungen durch im Haus befindliche elektrisch „rauschende“ Geräte zu vermeiden, wurde ein Entkopplungskondensator von 100 nF vom analogen Temperatur-Eingang (Pin A0/14) gegen Masse geschaltet. Das Oszilloskop zeigte jedoch weiterhin Rauschen, verursacht durch den Takt des 1602-LCD. Nachdem ein weiterer 100 nF-Kondensator direkt zwischen VDD und VSS des LCD (mit maximal 1 cm Leitungslänge) gelötet wurde, war das Signal sauber. Ein 470 µF-Elko zwischen 5 V und GND des Arduino unterdrückt Ripple des Schaltnetzteils.

Platzierung des NTC

Um Fehlmessungen zu vermeiden, darf der NTC niemals direkter Sonneneinstrahlung ausgesetzt sein. Ideal ist die Nordseite des Hauses (Südseite auf der Südhalbkugel) oder ein freier Standort abseits des Hauses. Der Sensor sollte einige Millimeter von der Wand entfernt montiert werden, da die Wand wärmer sein kann als die Umgebungsluft. Eine unbeheizte Garagenwand eignet sich gut.

Arduino-Außenthermometer mit Trend, Min/Max-Werten
Arduino-Außenthermometer mit Trend, Min/Max-Werten

Software

Die LiquidCrystal-Bibliothek steuert das 1602-LCD. Konstanten und Variablen sind im Sketch kommentiert. A, B, C sind die Steinhart-Hart-Koeffizienten für den verwendeten NTC. Bei anderen NTCs müssen diese angepasst werden. Das Messintervall beträgt 3 Sekunden (Zeile 17). Für eine glatte Anzeige wird ein gleitender Mittelwert über 30 Messwerte (90 Sekunden) gebildet (numReadings = 30, Zeile 22). Jeder Rohwert ist ein Integer 0‑1023.

Steinhart-Hart-Näherung

Ein NTC (Negative Temperature Coefficient) ändert seinen Widerstand nichtlinear mit der Temperatur. Zwei gängige Näherungen sind die Beta-Formel und die Steinhart-Hart-Formel. Letztere liefert die bessere Approximation. Da der TS-NTC-103 einen weiten Bereich (−60 °C bis +150 °C) abdeckt, wir ihn aber nur in ca. −10 °C bis +30 °C nutzen, berechneten wir die Koeffizienten speziell für diesen engen Bereich. Dazu dienten drei Widerstand-Temperatur-Paare aus dem Datenblatt (−10 °C, 0 °C, +20 °C). Der Online-Rechner von Stanford Research Systems erleichtert die Berechnung.

Im Diagramm (roter Punkte = Daten, blaue Kurve = Beta-Modell, grüne Kurve = Steinhart-Hart) zeigt sich: Bei 10 kΩ ergibt Steinhart-Hart 25,0035 °C (sehr gut), Beta liefert 25,7716 °C (deutlich schlechter).

Arduino-Außenthermometer mit Trend, Min/Max-Werten

Link zum NTC-Rechner

Quellcode

Version 1.4 behebt ein Konventionsproblem in PrintPG(), das im Offline-Editor einen Compilerfehler verursachte (im Web-Editor nicht). Version 1.3 fügte Hysterese für den Trendpfeil hinzu.

Der vollständige Sketch ist im Repository verfügbar.

Schaltpläne

Schaltplan wird nachgereicht.

Herstellungsprozess

  1. Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
  2. Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
  3. Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
  4. Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
  5. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  6. Nahtlose Temperatur- & Feuchtigkeitsüberwachung am Raspberry Pi mit EzTemp
  7. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
  8. DIY Heimbrau-Temperaturregelung: Überwachen & Steuern mit Arduino
  9. Raspberry Pi Raumtemperatur-Überwachung mit Gnuplot-Graphen & E-Mail-Alerts
  10. Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20