Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Buitenthermometer met trend, max. en min. temperatuur

Componenten en benodigdheden

Arduino UNO
× 1
Precisie temperatuursensor TS-NTC-103, 10 kΩ
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
RobotGeek-voeding 12VDC 2.0A - VS
× 1
Condensator 100 nF
× 2
Condensator 470 µF
× 1
Metaalfilmweerstand 10k tolerantie 0,1%
× 1
drukknop (normaal uit)
× 1
Draaipotentiometer (generiek)
× 1
Weerstand 10k ohm
× 1

Over dit project

Inleiding

Ik heb deze thermometer gemaakt voor de lol, maar ook om wat ervaring op te doen met het schrijven van Arduino software en met het gebruik van een LCD display. Terwijl ik eraan werkte, besloot ik wat functionaliteit toe te voegen. Gemeten maximumtemperatuur, minimumtemperatuur en een pijl omhoog of omlaag op het display die de temperatuurtrend aangeeft. Een drukknop wordt gebruikt om de weergegeven min en max temperatuur te resetten naar de huidige temperatuur.

Hoe het te bouwen

Het bouwen ervan is vrij eenvoudig. Sluit de componenten aan zoals aangegeven in het schema. De 5V-uitgang van de Arduino Uno moet worden gekoppeld aan alle +5V-aansluitingen (pijlen.) Verbind ook alle aardpennen. De thermometer wordt gevoed door een externe voeding van 12 V DC aangesloten op de Arduino. Download de schets en upload deze naar je Arduino en je bent klaar.

Wat je nodig hebt:

  • Arduino Uno
  • LCD-scherm 1602A
  • 12 V gelijkstroomvoeding
  • B+B Thermo Technik TS-NTC-103 (10kΩ)
  • Metaalfilmweerstand 10kΩ, 0,1% tolerantie
  • potmeter 10kΩ lineair
  • Weerstand 820 (tolerantie niet belangrijk, 10%, 5% of beter is voldoende)
  • Weerstand 10 kΩ (tolerantie niet belangrijk)
  • Condensator 0,1 uF (=100nF) 16V (2 stuks)
  • Elco 470 uF 16V
  • drukknop (normaal uit)
  • Behuizing als je deze wilt inbouwen

De sensor, een NTC met hoge precisie

De NTC die ik gebruik is een precisie temperatuursensor van B+B Thermo Technik van 10 kΩ. Deze sensor heeft een weerstandstolerantie bij 25 °C van ±0,5%. De NTC temperatuursensoren van de serie TS-NTC hebben een breed meetbereik van -60 ... +150 °C en zijn daardoor geschikt voor toepassingen waar tot nu werden dure platina-weerstanden gebruikt. Zowel de basisweerstand als de B-waarde liggen binnen een tolerantie van ±0,5%, zodat het onderdeel in veel toepassingen kan worden gebruikt zonder temperatuurkalibratie en ook kan worden vervangen zonder opnieuw af te stellen. Zo kan door middel van een eenvoudige weerstandsmeting een nauwkeurigheid van ± 0,12 K bij 25 °C worden bereikt. In het temperatuurbereik van -60 ...+85 °C is de maximale fout ongeveer ±0,5K. Je kunt elke andere NTC met hoge precisie gebruiken, maar dan moet je de Steinhart-Hart-coëfficiënten in de schets aanpassen om in die NTC te passen (zie Steinhart-Hart-benadering.)

Het is duidelijk dat voor zeer nauwkeurige temperatuurmetingen de andere weerstand van de spanningsdeler, in serie met de NTC, ook van het type met lage tolerantie moet zijn. Ik gebruikte een metaalfilmweerstand van 10kΩ, tolerantie 0,1%, 0,6W, temperatuurcoëfficiënt 25 ppm. Elke andere weerstand met een tolerantie van 0,5% of minder is voldoende.

NTC-kabel pikt ruis op

De NTC wordt buiten het huis geplaatst. In mijn geval met een paar meter kabel. Om interferentie van andere elektrisch 'lawaaierige' apparatuur in huis te voorkomen heb ik een ontkoppelcondensator van 0,1 uF van de analoge temperatuur ingang van de Arduino Uno (pin 14) naar aarde geplaatst. De oscilloscoop vertoonde daarna nog wat ruis op pin 14. Het geluid werd veroorzaakt door de klok van het 1602 LCD-scherm. Het verdween nadat een ontkoppelcondensator van 0,1 uF tussen de VDD en de Vss-pin van het LCD-scherm was geplaatst. Deze condensator moet rechtstreeks op de LCD-printplaat worden gesoldeerd met zo kort mogelijke draden (maximaal 1 cm).

De oscilloscoop gaf aan dat het signaal op pin 14 daarna schoon was. Om ruis en rimpeling van de schakelende voeding te voorkomen heb ik een elco van 470 uF tussen de 5V en gnd van de Arduino geplaatst

Plaatsing van de NTC

Om foutieve temperatuurmetingen te voorkomen, mogen de NTC en de behuizing nooit in de zon staan. Het moet dus in de schaduw worden geplaatst, bij voorkeur aan de noordkant van het huis (aan de zuidkant als je op het zuidelijk halfrond bent) of zelfs weg van het huis. Niet strak tegen de muur, maar minstens een paar mm buiten de muur, want de muur kan een paar graden warmer zijn dan de buitenlucht. En liefst een muur zonder verwarming erachter zoals de garagemuur.

Over de software.

De LiquidCrystal-bibliotheek is inbegrepen voor de 1602 LCD-opdrachten. Verschillende constanten en variabelen worden gedeclareerd. Lees de opmerkingen in de schets voor meer info. A, B en C zijn de Steinhart - Hart coëfficiënten voor de NTC die ik gebruik. Voor andere NTC's moet u deze coëfficiënten wijzigen. Het integer-interval op regel 17 definieert de tijd tussen twee opeenvolgende metingen, namelijk 3 seconden. Om een ​​vlotte voortgang van de temperatuurmeting te krijgen wordt een lopend gemiddelde berekend van 30 opeenvolgende metingen (numReadings op regel 22). De getoonde temperatuur is dus altijd het gemiddelde van de temperatuur van de laatste 90 seconden. Voor de berekening van het lopende gemiddelde wordt een array gebruikt:readings[numReadings] of in dit geval readings[30] op regel 21. Elke meting is een geheel getal tussen 0 en 1023.

Steinhart-Hart benadering

Een NTC (Negative Temperature Coefficient) is een weerstand met een temperatuurafhankelijke weerstand. De weerstand wordt lager als de temperatuur stijgt. Helaas is de relatie tussen weerstand en temperatuur niet lineair. Maar de R-T-curve kan worden benaderd met een formule. In de praktijk worden twee benaderingsformules gebruikt. De zogenaamde Beta-formule en de Steinhart-Hart-formule. Aangezien de laatste de beste benadering geeft, is dat degene die ik gebruik. Vaak geeft de fabrikant ons waarden voor beide benaderingen. De TS-NTC-103 kan echter worden gebruikt in een breed temperatuurbereik van -60...+150 graden Celsius. Omdat we het in een veel kleiner bereik van ca. -10...+30 graden Celsius krijgen we een betere benadering als we de coëfficiënten zelf speciaal voor dit bereik berekenen. Ik heb drie weerstand-temperatuurparen uit de specificaties van de fabrikant gebruikt in ons werkbereik (-10, 0 en +20 graden Celsius). Het berekenen van de coëfficiënten is eenvoudig met de online calculator van Stanford Reasearch Systems. In het onderstaande diagram zie je de gegevens (rode stippen) de bèta-modelbenadering en de Steinhart-Hart-benadering. In de rechter benedenhoek zie je dat met een weerstandswaarde van 10k, de geschatte temperatuur 25.0035 graden Celsius is met Steinhart-Hart-benadering, wat redelijk goed is, en 25.7716 graden Celsius met Beta-benadering, wat aanzienlijk minder goed is (de NTC is 10k bij 25 graden Celsius)

Link naar NTCcalculator

Code

Arduino
Versie 1.4 lost een conventieprobleem op in functiedeclaratie PrintPG() dat een compilerfout veroorzaakte in de offline editor, maar geen problemen in de webeditor versie 1.3 bevat hysterese voor de trendpijl

Schema's


Productieproces

  1. Toegangscontrole met QR, RFID en temperatuurverificatie
  2. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  3. Temperatuur aflezen met DS18B20 | Raspberry Pi 2
  4. Temperatuur meten met RASPBERRY PI
  5. Python- en Raspberry Pi-temperatuursensor
  6. Eenvoudige temperatuur en vochtigheid op Raspberry Pi
  7. Temperatuur bewaken met Raspberry Pi
  8. DIY:temperatuurbewaking en -regeling voor HomeBrew
  9. Raspberry Pi gecontroleerde kamertemperatuurbewaking met Gnuplot-beelduitvoer en e-mailwaarschuwingsmogelijkheid
  10. Raspberry Pi temperatuur- en lichtsensor
  11. Botten bouwen met Raspberry Pi en Python