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, Juli
Anonim
Image
Image
ESP32 NTP Temperaturna sonda za kuhanje Termometar sa Steinhart-Hart korekcijom i temperaturnim alarmom
ESP32 NTP Temperaturna sonda za kuhanje Termometar sa Steinhart-Hart korekcijom i temperaturnim alarmom

Još uvijek na putu dovršetka "nadolazećeg projekta", "Termometar za kuhanje sonde ESP32 NTP s termometrom za kuhanje sa Steinhart-Hartovom korekcijom i temperaturnim alarmom" uputstvo je koje prikazuje kako dodajem NTP temperaturnu sondu, piezo zujalicu i softver u svoj kapacitivni dodir s instrukcijom ESP32 kapacitivni dodirni ulaz pomoću "metalnih utikača za rupice" za tipke "za stvaranje jednostavnog, ali preciznog termometra za kuhanje s programabilnim temperaturnim alarmom.

Tri kapacitivna tastera na dodir omogućavaju podešavanje nivoa alarma za temperaturu. Pritiskom na centralno dugme prikazuje se ekran "Set Alarm Temperature" (Zadana temperatura alarma), omogućavajući lijevo i desno dugme da smanje ili povećaju temperaturu alarma. Pritiskom i otpuštanjem lijevog dugmeta temperatura alarma će se smanjiti za jedan stepen, dok će pritiskanje i držanje lijevog dugmeta kontinuirano smanjivati temperaturu alarma sve dok se ne otpusti. Slično, pritiskom i otpuštanjem desnog dugmeta temperatura alarma će se povećati za jedan stepen, dok će pritiskanje i držanje desnog dugmeta stalno povećavati temperaturu alarma sve dok se ne otpusti. Kada završite s podešavanjem temperature alarma, jednostavno ponovo dodirnite središnje dugme za povratak na prikaz temperature. Kad god je temperatura jednaka ili viša od temperature alarma, oglasit će se piezo zvučni signal.

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

Ako se odlučite za izradu ovog termometra za kuhanje, za prilagođavanje 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 štampanje.

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 preciznim 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 koristeći Arduino 1.8.5.

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

I posljednja napomena, ne primam nikakvu nadoknadu u bilo kojem obliku, uključujući, ali ne ograničavajući se na besplatne uzorke, za bilo koju komponentu korištenu 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 "Steinhart-Hart" jednadžbu u kod za pretvaranje napona u temperaturu.

Steinhart-Hart jednadžba koju su prvi objavili 1968. 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 * (dnevnik (termistor))) + (C * dnevnik (termistor) * dnevnik (termistor) * dnevnik (termistor))

gdje:

  • T su stepeni Kelvina.
  • A, B, C su Steinhart-Hart koeficijenti (o tome uskoro).
  • Termistor je otpor otpornosti termistora temperaturne sonde na trenutnoj temperaturi.

Pa zašto je ova naizgled komplicirana Steinhart-Hartova jednadžba neophodna za jednostavan digitalni termometar temeljen na NTC temperaturnoj sondi? "Idealna" NTC temperaturna sonda pružila bi linearni prikaz otpora stvarne temperature, pa bi jednostavna linearna jednadžba koja uključuje ulaz napona i skaliranje rezultirala tač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 precizna očitanja temperature pomoću NTC temperaturnih sondi s jeftinim procesorom na jednoj ploči mogu se postići generiranjem vrlo bliske aproksimacije stvarne temperature.

Vratimo se na Steinhart-Hartovu jednadžbu. Jednačina 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 su dali koeficijente koji mogu ili ne moraju biti za tačnu temperaturnu sondu koju možete kupiti, i najvjerojatnije su koeficijenti reprezentativni za veliki uzorak svih temperaturnih sondi koje proizvode u određenom vremenskom periodu. I na kraju, jednostavno nisam mogao locirati koeficijente za sondu koja se koristi u ovom dizajnu.

Bez potrebnih koeficijenata, stvorio sam Steinhart-Hart proračunsku tablicu, kalkulator zasnovan na proračunskoj tablici koji pomaže u stvaranju potrebnih koeficijenata za NTC temperaturnu sondu (izgubio sam vezu do sličnog kalkulatora na webu koji sam koristio prije mnogo godina, pa sam stvorio ovaj). Da bih odredio koeficijente za temperaturnu sondu, počinjem mjerenjem vrijednosti otpornika od 33 k koji se koristi u razdjelniku napona digitalnim ohmmetrom i unosim vrijednost 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 preciznim digitalnim termometrom, i omogućuju vrijeme da se temperatura na termometru i unos termistora pojavljuju na zaslonu WiFi Kit 32 (više o tome kasnije) za stabilizaciju. Sa stabilizacijom temperature i broja termistorskih ulaza, unosim temperaturu koju pokazuje poznati precizni termometar i broj termistora koji se pojavljuju na ekranu WiFi Kit -a 32 u žuto područje proračunske tablice s oznakom "Stepeni 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 A, B i C koeficijente koje zahtijeva Steinhart-Hart jednadžba, a zatim se 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 stepene Kelvina u stepene Celzijusa oduzimanjem 273,15 (stepeni Kelvina) iz Steinhart-Hartove jednačine:

Stepeni 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:

Stepeni F = ((Stepeni C * 9) / 5) + 32

Sa Steinhart-Hartovom jednadžbom i koeficijentima potpuna, potrebna je druga jednadžba za čitanje izlaza djelitelja 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 WiFi Kit 32 analogni ulaz A0 (pin 36), a naponski izlaz razdjelnika otpornika izračunava se na sljedeći način:

vOut = vRef * Otpornik / (Otpornik + Termistor)

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

Pomnožite obje strane sa "(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 rezultira:

Termistor = (vRef * Otpornik / vOut) - Otpornik

I na kraju, koristeći svojstvo distribucije, 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 koja daje vrijednost otpora termistora potrebnu Steinhart-Hartovom jednadžbom postaje:

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

Dakle, s matematikom iza nas, skupimo malo elektronike.

Korak 2: Sastavljanje elektronike

Sklapanje elektronike
Sklapanje elektronike
Sklapanje elektronike
Sklapanje elektronike
Sklapanje elektronike
Sklapanje elektronike

Za elektroniku sam prethodno sastavio ESP32 demonstrator kapacitivnog dodira 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, Maverick-ova "sonda za temperaturu ET-72" (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, 33k ohm 1% 1/8 vat otpornik.
  • 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).

Da bih sastavio dodatne komponente, izvršio sam sljedeće korake:

  • Ogoljeni i kalajisani krajevi svake 4 "žice dužine kako je prikazano.
  • Lemljen je jedan kraj žute žice i jedan kraj otpornika od 33 k ohma na pin "vrh" konektora telefona.
  • 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 za pin "Sleeve" na konektoru telefona.
  • Lemio je slobodni kraj žute žice na pin 36 na WiFi kompletu 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 jedan provodnik 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.
  • Ukopčajte temperaturnu sondu u konektor za telefon.

Nakon što je ožičenje završeno, 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 biblioteka "U8g2lib" za WiFi Kit32 OLED ekran (za više informacija o ovoj biblioteci pogledajte

S grafičkom bibliotekom U8g2lib instaliranom u vašem Arduino direktoriju i "AnalogInput.ino" učitanim u Arduino okruženje, kompajlirajte i preuzmite softver u WiFi Kit 32. Nakon preuzimanja i pokretanja, gornja linija OLED ekrana na WiFi Kit -u 32 treba da glasi "Temperatura" sa trenutnom temperaturom prikazanom velikim tekstom u sredini ekrana.

Dodirnite centralno dugme (T5) za prikaz prikaza "Set Alarm Temperature". Podesite temperaturu alarma pritiskom na lijevo dugme (T4) ili desno dugme (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 podešavanjem temperature alarma, dodirnite središnje dugme za povratak na prikaz temperature.

Vrijednosti dProbeA, dProbeB, dProbeC i dResistor u softveru su vrijednosti koje sam odredio tokom kalibracije sonde koju sam koristio u ovom dizajnu i trebale bi generirati očitanja temperature tačne do nekoliko stepeni. 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 kalibraciju temperaturne sonde potrebne su sljedeće stavke:

  • Jedan digitalni ohmmetar.
  • Jedan poznati precizni digitalni termometar sposoban od 0 do 250 stepeni F.
  • Jedna čaša ledene vode.
  • Jedan lonac ključale 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% zaista može utjecati na točnost prikaza temperature.
  • Uključite temperaturnu sondu u konektor za telefon.

Zatim dobijemo Steinhart-Hart koeficijente:

  • Uključite poznati precizni digitalni termometar.
  • Priključite USB izvor napajanja u WiFi Kit 32.
  • Istovremeno pritisnite i držite lijevo (T4) i desno (T6) dugme dok se ne pojavi prikaz "Termistor se broji".
  • 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 redu "Soba".
  • Umetnite i digitalni termometar i termistorske sonde u ledenu vodu i ostavite oba ekrana da se stabilizuju.
  • Unesite temperaturu i odbrojavanje termistora u žute stupce "Stepeni F iz termometra" i "AD broji iz ESP32" u redu "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 redu "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.

Kompilirajte i preuzmite softver u WiFi Kit 32.

Korak 5: 3D štampanje kućišta i završne montaže

3D štampanje kućišta i završne montaže
3D štampanje kućišta i završne montaže
3D štampanje kućišta i završne montaže
3D štampanje kućišta i završne montaže
3D štampanje kućišta i završne montaže
3D štampanje kućišta i završne montaže

Štampao 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 za rupe u položaj u "Case, Top.stl", zatim sam ponovo zalemio žice na čepove za rupe, pažljivo primjećujući lijevu (T4), središnju (T5) i desnu stranu (T6) žice i odgovarajuće tipke.
  • Priključite telefonski konektor na okruglu rupu u "kućištu, donjem dijelu.stl" pomoću priložene matice.
  • Postavite piezo zvučni signal u donji dio kućišta pored konektora za telefon i pričvrstite ga dvostranom trakom.
  • Gurnite WiFi Kit 32 na mjesto u donji sklop kućišta, pazeći da USB priključak na WiFi kompletu 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 raditi!).
  • Pritisnite gornji sklop kućišta na donji dio kućišta i učvrstite ga pomoću malih točkica gustog ljepila cijanoakrilata na uglovima.

Korak 6: O softveru

O softveru
O softveru

Datoteka "AnalogInput.ino" je modifikacija datoteke "Buttons.ino" iz mog prethodnog uputstva "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 neophodan za očitavanje broja termistora u niz, prosjek niza brojeva, korištenje razdjelnika napona za generiranje vrijednosti termistora i konačno korištenje Steinhart-Hartovih jednadžbi i jednadžbi pretvorbe temperature za generiranje stupnjeva Fahrenheita.

"Buttons ()" sadrži kôd neophodan za obradu pritiska na tastere i uređivanje temperature alarma.

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

Ako imate bilo kakvih pitanja ili komentara u vezi koda ili bilo kojeg drugog aspekta ovog uputstva, slobodno pitajte, a ja ću se potruditi da na njih odgovorim.

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

Korak 7: "Predstojeći projekat"

The
The

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

  • Steinhart-Hart-ovi proračuni temperaturnih sondi (za razliku od tabela sa pregledom) radi povećane tačnosti kako je uključeno u ovu Instrukciju.
  • Prediktivno vrijeme dovršetka na sondi 1 koje uključuje povećanu tačnost izvedenu iz Steinhart-Hartovih proračuna.
  • Druga sonda, sonda 2, za praćenje temperature pušača (ograničena na 32 do 399 stepeni).
  • Kapacitivne kontrole unosa dodirom (kao u prethodnom uputstvu).
  • WIFI daljinski nadzor (sa fiksnom IP adresom, omogućava praćenje napretka pušača s bilo koje lokacije koja je dostupna na internetu).
  • Prošireni temperaturni raspon (32 do 399 stepeni).
  • Zvučni alarmi završetka kako u okviru odašiljača Intelligrill®, tako 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ža.

"Intelligrill® Pro" se još uvijek testira kako bi postao najprecizniji, najfunkcionalniji i najpouzdaniji Intelligrill® zasnovan na HTML -u koji sam dizajnirao. Još uvijek se testira, ali uz obroke koje pomaže u pripremi tijekom testiranja, udebljao sam se više od nekoliko kilograma.

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

Preporučuje se: