Sadržaj:

ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom: 7 koraka (sa slikama)
ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom: 7 koraka (sa slikama)

Video: ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom: 7 koraka (sa slikama)

Video: ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom: 7 koraka (sa slikama)
Video: Arduino Tutorial 24 - Measuring Temperature using NTC & LCD | SunFounder's ESP32 IoT Learnig kit 2024, Srpanj
Anonim
Image
Image
ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom
ESP32 NTP temperaturna sonda za kuhanje termometar sa Steinhart-Hartovom korekcijom i temperaturnim alarmom

Još uvijek na putu dovršetka "nadolazećeg projekta", "Termometar za kuhanje ESP32 NTP temperaturne sonde sa Steinhart-Hartovom korekcijom i temperaturnim alarmom" uputa je koja prikazuje kako dodajem NTP temperaturnu sondu, piezo zujalicu i softver svom kapacitivnom dodirnom Instructable " ESP32 kapacitivni dodirni ulaz pomoću "metalnih utikača za rupe" za tipke "za stvaranje jednostavnog, ali točnog termometra za kuhanje s programabilnim temperaturnim alarmom.

Tri kapacitivne tipke na dodir omogućuju postavljanje razine alarma za temperaturu. Pritiskom na središnji gumb prikazuje se zaslon "Set Alarm Temperature" (Zadana temperatura alarma) koji lijevoj i desnoj tipki omogućuje smanjenje odnosno povećanje temperature alarma. Pritiskom i otpuštanjem lijeve tipke temperatura alarma će se smanjiti za jedan stupanj, dok će pritiskanje i držanje lijeve tipke kontinuirano smanjivati temperaturu alarma sve dok se ne otpusti. Slično, pritiskom i otpuštanjem desne tipke temperatura alarma će se povećati za jedan stupanj, dok će pritiskom i držanjem desne tipke temperatura alarma neprestano rasti sve dok se ne otpusti. Kad završite s podešavanjem temperature alarma, jednostavno ponovno dodirnite središnji gumb za povratak na prikaz temperature. U bilo koje vrijeme temperatura je jednaka ili viša od temperature alarma, oglasit će se piezo zvučni signal.

Kao što je spomenuto, u projektiranju se koristi NTP temperaturna sonda zajedno sa Steinhart-Hartovim jednadžbama i koeficijentima potrebnim za točna očitanja temperature. Uključio sam previše detaljan opis Steinhart-Hartove jednadžbe, Steinhart-Hart koeficijenata, razdjelnika napona i algebre u Korak 1 (kao bonus, uspavljuje me svaki put kad je pročitam, pa ćete možda htjeti preskočite 1. korak i krenite ravno na 2. korak: Sastavljanje elektronike, osim ako vam naravno nije potrebno drijemanje).

Ako se odlučite za izradu ovog termometra za kuhanje, za prilagodbu i 3D ispis uključio sam sljedeće datoteke:

  • Arduino datoteka "AnalogInput.ino" koja sadrži softver za dizajn.
  • Autodesk Fusion 360 cad datoteke za kućište koje pokazuju kako je kućište dizajnirano.
  • Cura 3.4.0 STL datoteke "Case, Top.stl" i "Case, Bottom.stl" spremne za 3D ispis.

Također će vam trebati poznavanje Arduino okruženja, kao i vještina i oprema za lemljenje, a osim toga možda će vam za kalibraciju biti potreban pristup točnim digitalnim ohmmetrima, termometrima i izvorima temperature.

I kao i obično, vjerojatno sam zaboravio dosje ili dva ili tko zna što još, pa ako imate pitanja, ne ustručavajte se pitati jer griješim.

Elektronika je dizajnirana pomoću olovke, papira i kalkulatora na solarnu energiju Radio Shack EC-2006a (kat. Br. 65-962a).

Softver je dizajniran pomoću Arduina 1.8.5.

Kućište je dizajnirano pomoću Autodesk Fusion 360, izrezano pomoću Cure 3.4.0 i tiskano u PLA na Ultimaker 2+ Extended i Ultimaker 3 Extended.

I posljednja napomena, ne dobivam nikakvu naknadu u bilo kojem obliku, uključujući, ali bez ograničenja, besplatne uzorke, za bilo koju od komponenti korištenih u ovom dizajnu

Korak 1: Matematika, matematika i više Matematika: Steinhart – Hart, koeficijenti i razdjelnici otpornika

Matematika, matematika i više matematika: Steinhart – Hart, koeficijenti i razdjelnici otpornika
Matematika, matematika i više matematika: Steinhart – Hart, koeficijenti i razdjelnici otpornika

Moji raniji projekti koji su uključivali NTC temperaturnu sondu koristili su tehniku traženja stola za pretvaranje dolaznog napona iz razdjelnika otpornika u temperaturu. Budući da je ESP32 sposoban za dvanaest bitni analogni ulaz, a budući da sam projektirao za veću točnost, odlučio sam implementirati jednadžbu "Steinhart-Hart" u kod za pretvorbu napona u temperaturu.

Steinhart-Hart jednadžba koju su 1968. prvi objavili John S. Steinhart i Stanley R. Hart, Steinhart-Hart jednadžba definira odnos otpora prema temperaturi NTC temperaturne sonde na sljedeći način:

1 / T = A + (B * (log (Termistor))) + (C * log (Termistor) * log (Termistor) * log (Termistor))

gdje:

  • T je stupnjevi Kelvina.
  • A, B, C su Steinhart-Hart koeficijenti (o tome uskoro).
  • Termistor je vrijednost otpora termistora temperaturne sonde pri trenutnoj temperaturi.

Pa zašto je ta naizgled komplicirana Steinhart-Hartova jednadžba neophodna za jednostavan digitalni termometar temeljen na NTC temperaturnoj sondi? "Idealna" NTC temperaturna sonda osigurala bi linearni prikaz otpora stvarne temperature, pa bi jednostavna linearna jednadžba koja uključuje ulaz napona i skaliranje rezultirala točnim prikazom temperature. Međutim, temperaturne sonde NTC nisu linearne i, u kombinaciji s nelinearnim analognim ulazom gotovo svih jeftinih procesora s jednom pločom, poput WiFi Kit 32, proizvode nelinearne analogne ulaze i na taj način netočna očitanja temperature. Korištenjem jednadžbe kao što je Steinhart-Hart zajedno s pažljivom kalibracijom, vrlo točna očitanja temperature pomoću NTC temperaturnih sondi s jeftinim procesorom s jednom pločom mogu se postići generiranjem vrlo bliske aproksimacije stvarne temperature.

Vratimo se dakle Steinhart-Hartovoj jednadžbi. Jednadžba koristi tri koeficijenta A, B i C za određivanje temperature kao funkcije otpora termistora. Odakle dolaze ova tri koeficijenta? Neki proizvođači daju ove koeficijente svojim NTC temperaturnim sondama, a drugi ne. Nadalje, proizvođači daju koeficijente koji mogu, ali i ne moraju biti za točnu temperaturnu sondu koju možete kupiti, i najvjerojatnije su koeficijenti reprezentativni za veliki uzorak svih temperaturnih sondi koje proizvode u određenom vremenskom razdoblju. I na kraju, jednostavno nisam mogao locirati koeficijente za sondu korištenu u ovom dizajnu.

Bez potrebnih koeficijenata, stvorio sam Steinhart-Hart proračunsku tablicu, kalkulator temeljen na proračunskoj tablici koji pomaže u generiranju potrebnih koeficijenata za temperaturnu sondu NTC (izgubio sam vezu do sličnog web-kalkulatora koji sam koristio prije mnogo godina, pa sam stvorio ovaj). Kako bih odredio koeficijente za temperaturnu sondu, počinjem mjerenjem vrijednosti otpornika od 33 k koji se koristi u razdjelniku napona digitalnim ohmmetrom, a vrijednost unosim u žuto područje proračunske tablice s oznakom "Otpornik". Zatim postavljam temperaturnu sondu u tri okruženja; prva sobna temperatura, druga ledena voda i treća kipuća voda, zajedno s poznatim točnim digitalnim termometrom, i omogućuju vrijeme dok se temperatura na termometru i broj ulaza termistora ne pojave na zaslonu WiFi Kit 32 (više o tome kasnije) za stabilizaciju. Kad su i temperatura i ulazni termistorski unosi stabilizirani, ulazim u temperaturu označenu poznatim točnim termometrom i brojem termistora koji se pojavljuju na zaslonu WiFi kompleta 32 u žuto područje proračunske tablice s oznakom "Stupnjevi F od termometra" i "AD" Računajte od WiFi Kit 32 "za svako od tri okruženja. Nakon što se unesu sva mjerenja, zelena površina proračunske tablice daje koeficijente A, B i C potrebne Steinhart-Hartovom jednadžbom koji se zatim jednostavno kopiraju i zalijepe u izvorni kod.

Kao što je ranije spomenuto, izlaz Steinhart-Hartove jednadžbe je u stupnjevima Kelvina, a ovaj dizajn prikazuje stupnjeve Fahrenheita. Pretvorba iz stupnjeva Kelvina u stupnjeve Fahrenheita je sljedeća:

Prvo, pretvorite stupnjeve Kelvina u stupnjeve Celzijusa oduzimanjem 273,15 (stupnjeva Kelvina) iz Steinhart-Hartove jednadžbe:

Stupnjevi C = (A + (B * (log (Termistor))) + (C * log (Termistor) * log (Termistor) * log (Termistor))) - 273,15

I drugo, pretvorite stupnjeve Celzijusa u stupnjeve Fahrenheita na sljedeći način:

Stupnjevi F = ((Stupnji C * 9) / 5) + 32

Sa Steinhart-Hartovom jednadžbom i koeficijentima potpuna, potrebna je druga jednadžba za čitanje izlaza razdjelnika otpornika. Model otporničkog razdjelnika koji se koristi u ovom dizajnu je:

vRef <--- Termistor <--- vOut <--- Otpornik <--- Uzemljenje

gdje:

  • vRef u ovom dizajnu je 3.3vdc.
  • Termistor je NTC temperaturna sonda koja se koristi u razdjelniku otpornika.
  • vOut je izlaz napona razdjelnika otpornika.
  • Otpornik je otpornik od 33 k koji se koristi u razdjelniku otpornika.
  • I tlo je, pa, tlo.

v Izdvajač otpornika u ovom dizajnu priključen je na analogni ulaz A0 WiFi Kit 32 (pin 36), a naponski izlaz razdjelnika otpornika izračunava se na sljedeći način:

vOut = vRef * Otpornik / (Otpornik + Termistor)

Međutim, kako je navedeno u Steinhart-Hartovoj jednadžbi, vrijednost otpora termistora potrebna je za dobivanje temperature, a ne napona izlaznog razdjelnika. Dakle, preuređivanje jednadžbe za izlaz vrijednosti termistora zahtijeva upotrebu male algebre na sljedeći način:

Pomnožite obje strane s "(otpornik + termistor)" što rezultira:

vOut * (Otpornik + Termistor) = vRef * Otpornik

Podijelite obje strane s "vOut" što rezultira:

Otpornik + Termistor = (vRef * Otpornik) / vOut

Oduzmite "Otpornik" s obje strane što će rezultirati:

Termistor = (vRef * Otpornik / vOut) - Otpornik

I na kraju, pomoću distribucijskog svojstva pojednostavite:

Termistor = Otpornik * ((vRef / vOut) - 1)

Zamjenom broja analognih ulaza WiFi Kit 32 A0 od 0 do 4095 za vOut i zamjenom vrijednosti 4096 za vRef, jednadžba razdjelnika otpornika daje vrijednost otpora termistora koju zahtijeva Steinhart-Hartova jednadžba:

Termistor = otpornik * ((4096 / Broj analognih ulaza) - 1)

Pa s matematikom iza nas, skupimo malo elektronike.

Korak 2: Sastavljanje elektronike

Sastavljanje elektronike
Sastavljanje elektronike
Sastavljanje elektronike
Sastavljanje elektronike
Sastavljanje elektronike
Sastavljanje elektronike

Za elektroniku sam prethodno sastavio demonstrator kapacitivnog dodira ESP32 https://www.instructables.com/id/ESP32-Capacitive …… Uz taj sklop potrebne su sljedeće dodatne komponente:

  • Pet, 4 "komada žice od 28 awg (jedan crveni, jedan crni, jedan žuti i dva zelena).
  • Jedna, Maverickova sonda "ET-72 Temperature Probe" (https://www.maverickthermometers.com/product/pr-003/).
  • Jedan, 2,5 mm "telefonski" konektor, montaža na ploču (https://www.mouser.com/ProductDetail/502-TR-2A).
  • Jedan otpornik od 33 k ohma 1% 1/8 vata.
  • Jedan, piezo zujalica https://www.adafruit.com/product/160. Ako odaberete drugi piezo -zujalicu, provjerite odgovara li specifikacijama ove (pogon kvadratnog vala, <= trenutni izlaz ESP32).

Za sastavljanje dodatnih komponenti izvršio sam sljedeće korake:

  • Skinuti i pokositi krajeve svake 4 "žice duljine kako je prikazano.
  • Lemljen je jedan kraj žute žice i jedan kraj otpornika od 33 k ohma na pin "savjet" telefonskog priključka.
  • Lemljen je jedan kraj crne žice na slobodni kraj otpornika od 33 k ohma i odrezan višak žice otpornika.
  • Primijenjene termoskupljajuće cijevi preko žica i otpornika.
  • Lemljen je jedan kraj crvene žice na pin "Sleeve" na konektoru telefona.
  • Lemio je slobodni kraj žute žice na pin 36 na WiFi Kitu 32.
  • Lemio je slobodni kraj crne žice na GND pin na WiFi Kitu 32.
  • Lemio je slobodni kraj crvene žice na pin 3V3 na WiFi Kitu 32.
  • Lemljena je jedna zelena žica na jednu žicu piezo zujalice.
  • Lemio je preostalu zelenu žicu na preostali provodnik piezo zujalice
  • Lemio je slobodni kraj jedne od zelenih piezo žica na pin 32 na WiFi Kit 32.
  • Lemio je slobodni kraj preostalih zelenih piezo žica na GND pin na WiFi Kitu 32.
  • Sonda za temperaturu priključena je u telefonski priključak.

Sa svim ožičenjima, provjerio sam svoj rad.

Korak 3: Instaliranje softvera

Instaliranje softvera
Instaliranje softvera

Datoteka "AnalogInput.ino" je datoteka okruženja Arduino koja sadrži softver za dizajn. Osim ove datoteke, trebat će vam i grafička knjižnica "U8g2lib" za WiFi Kit32 OLED zaslon (za više informacija o ovoj biblioteci pogledajte

S grafičkom bibliotekom U8g2lib koja je instalirana u vašem Arduino direktoriju i "AnalogInput.ino" učitanom u Arduino okruženje, kompajlirajte i preuzmite softver u WiFi Kit 32. Nakon preuzimanja, gornji red OLED zaslona na WiFi Kit -u 32 treba da glasi "Temperatura" s trenutnom temperaturom koja je prikazana velikim tekstom u sredini zaslona.

Dodirnite središnji gumb (T5) za prikaz zaslona "Postavi temperaturu alarma". Podesite temperaturu alarma pritiskom na lijevu tipku (T4) ili desnu tipku (T6) kako je opisano u uvodu. Da biste testirali alarm, podesite temperaturu alarma na jednaku ili nižu od trenutne temperature i alarm bi se trebao oglasiti. Kada završite s postavljanjem temperature alarma, dodirnite središnji gumb za povratak na prikaz temperature.

Vrijednosti dProbeA, dProbeB, dProbeC i dResistor u softveru su vrijednosti koje sam odredio tijekom kalibracije sonde koju sam koristio u ovom dizajnu i trebale bi generirati očitanja temperature točne do nekoliko stupnjeva. Ako nije, ili ako se želi veća točnost, slijedi kalibracija.

Korak 4: Kalibriranje NTP temperaturne sonde

Kalibriranje NTP temperaturne sonde
Kalibriranje NTP temperaturne sonde

Za kalibriranje temperaturne sonde potrebne su sljedeće stavke:

  • Jedan digitalni ohmmetar.
  • Jedan poznati precizni digitalni termometar sposoban od 0 do 250 stupnjeva F.
  • Jedna čaša ledene vode.
  • Jedan lonac kipuće vode (budite vrlo, vrlo oprezni!).

Počnite s dobivanjem stvarne vrijednosti otpornika od 33 k:

  • Uklonite napajanje s ploče WiFi Kit 32.
  • Uklonite temperaturnu sondu iz telefonskog priključka (možda će biti potrebno i odlemiti crnu žicu iz WiFi kompleta 32, ovisno o vašem digitalnom ohmmetru).
  • Otvorite Steinhart-Hart proračunsku tablicu.
  • Izmjerite vrijednost otpornika od 33 k ohma pomoću digitalnog ohmmetra i unesite ga u žuti okvir "Otpornik" u proračunskoj tablici i u varijablu "dResistor" u softveru. Iako se ovo može činiti pretjeranim, otpornik od 33 k ohma i 1% doista može utjecati na točnost prikaza temperature.
  • Uključite temperaturnu sondu u telefonski priključak.

Zatim dobijte Steinhart-Hart koeficijente:

  • Uključite poznati točni digitalni termometar.
  • Priključite USB izvor napajanja u WiFi Kit 32.
  • Istodobno pritisnite i držite lijevu (T4) i desnu (T6) tipku dok se ne pojavi zaslon "Thermistor Counts".
  • Dopustite stabilizaciju prikaza digitalnog termometra i termistora.
  • Unesite temperaturu i odbrojavanje termistora u žute stupce "Stepeni F od termometra" i "AD broji od ESP32" u retku "Soba".
  • Umetnite i digitalni termometar i termistorske sonde u ledenu vodu i dopustite stabiliziranje oba zaslona.
  • Unesite temperaturu i odbrojavanje termistora u žute stupce "Stepeni F od termometra" i "AD broji od ESP32" u retku "Hladna voda".
  • Umetnite i digitalni termometar i termistorske sonde u kipuću vodu i dopustite da se oba zaslona stabilizuju.
  • Unesite temperaturu i odbrojavanje termistora u žute stupce "Stepeni F od termometra" i "AD broji od ESP32" u retku "Vrela voda".
  • Kopirajte zeleni koeficijent "A:" u varijablu "dProbeA" u izvornom kodu.
  • Kopirajte zeleni koeficijent "B:" u varijablu "dProbeB" u izvornom kodu.
  • Kopirajte zeleni koeficijent "C:" u varijablu "dProbeC" u izvornom kodu.

Sastavite i preuzmite softver u WiFi Kit 32.

Korak 5: 3D ispis kućišta i završni sklop

3D ispis kućišta i završni sklop
3D ispis kućišta i završni sklop
3D ispis kućišta i završni sklop
3D ispis kućišta i završni sklop
3D ispis kućišta i završni sklop
3D ispis kućišta i završni sklop

Ispisao sam "Case, Top.stl" i "Case, Bottom.stl" na visini sloja od 1 mm, 50% ispune, bez oslonaca.

S otisnutim kućištem sastavio sam elektroniku i kućište na sljedeći način:

  • Odspojio sam žice s tri čepa za rupe, pritisnuo utikače na mjesto u "Case, Top.stl", zatim ponovno lemio žice na čepove za rupe, pažljivo zapazivši lijevo (T4), središte (T5) i desno (T6) žice i odgovarajuće tipke.
  • Pričvrstite telefonski priključak na okruglu rupu u "kućištu, odozdo.stl" pomoću priložene matice.
  • Postavite piezo zvučni signal u donji dio kućišta pored priključka za telefon i učvrstite ga dvostranom trakom.
  • Gurnite WiFi Kit 32 na mjesto u donji sklop kućišta, pazeći da USB priključak na WiFi Kitu 32 bude poravnat s ovalnom rupom na dnu kućišta (NEMOJTE pritiskati na OLED zaslon da postavite WiFi Kit 32 u dno kućišta montaže, vjerujte mi na ovom, samo nemojte to učiniti!).
  • Pritisnite gornji sklop kućišta na donji dio kućišta i učvrstite ga malim točkicama gustog ljepila cijanoakrilata na uglovima.

Korak 6: O softveru

O softveru
O softveru

Datoteka "AnalogInput.ino" modifikacija je datoteke "Buttons.ino" iz mog prethodnog Instructable "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/". Izmijenio sam izvorna tri odjeljka koda "setup ()", "loop ()" i "InterruptService ()" tako da uključuju softver za sondu i alarm, a dodao sam i dodatna tri odjeljka koda "Analog ()", "Buttons ()" i "Display ()" za čišćenje "loop ()" i za dodavanje potrebnog softvera za sondu i alarm.

"Analog ()" sadrži kôd potreban za očitavanje broja termistora u niz, prosjek niza brojeva, korištenje razdjelnika napona za generiranje vrijednosti termistora i na kraju korištenje Steinhart-Hartovih jednadžbi i jednadžbi pretvorbe temperature za generiranje stupnjeva Fahrenheita.

"Gumbi ()" sadrže kôd potreban za obradu pritiska na tipke i uređivanje temperature alarma.

"Zaslon ()" sadrži kôd potreban za prikaz informacija na OLED zaslonu.

Ako imate bilo kakvih pitanja ili komentara o kodu ili bilo kojem drugom aspektu ovog Instructable -a, slobodno pitajte, a ja ću se potruditi odgovoriti na njih.

Nadam se da ste uživali (i još ste budni)!

Korak 7: "Predstojeći projekt"

The
The

Predstojeći projekt, "Intelligrill® Pro", je monitor za pušače s sondom s dvije temperature, koji sadrži:

  • Steinhart-Hart-ovi proračuni temperaturnih sondi (za razliku od tablica "traženja") radi veće točnosti kako je uključeno u ovaj Instructable.
  • Prediktivno vrijeme dovršetka na sondi 1 koje uključuje povećanu točnost izvedenu iz Steinhart-Hartovih izračuna.
  • Druga sonda, sonda 2, za praćenje temperature pušača (ograničena na 32 do 399 stupnjeva).
  • Kapacitivne kontrole unosa dodirom (kao u prethodnim uputama).
  • Daljinski nadzor temeljen na WIFI -ju (s fiksnom IP adresom, omogućuje praćenje napretka pušača s bilo koje lokacije na kojoj je dostupna internetska veza).
  • Prošireni temperaturni raspon (32 do 399 stupnjeva).
  • Zvučni alarmi dovršetka i u odašiljaču Intelligrill® i na većini uređaja za nadzor koji podržavaju WiFi.
  • Prikaz temperature u stupnjevima F ili stupnjevima C.
  • Format vremena bilo u HH: MM: SS ili HH: MM. Prikaz baterije u voltima ili % napunjenosti.
  • I PID izlaz za pušače na bazi puževa.

"Intelligrill® Pro" se još uvijek testira kako bi postao najprecizniji, najznačajniji i najpouzdaniji Intelligrill® temeljen na HTML -u koji sam dizajnirao. Još je na ispitu, ali s obrocima koje pomaže pripremiti tijekom testiranja, udebljao sam se više od nekoliko kilograma.

Još jednom, nadam se da ćete uživati!

Preporučeni: