Kazalo:

Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom: 7 korakov (s slikami)
Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom: 7 korakov (s slikami)

Video: Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom: 7 korakov (s slikami)

Video: Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom: 7 korakov (s slikami)
Video: Всегда «холодная» голова с указателем температуры в холодильнике автодома. 2024, November
Anonim
Image
Image
Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom
Kuhalni termometer za temperaturno sondo ESP32 NTP s Steinhart-Hartovim popravkom in temperaturnim alarmom

Še vedno sem na poti do dokončanja "prihajajočega projekta", "Termometer za kuhanje s temperaturno sondo ESP32 NTP s Steinhart-Hartovim korekcijskim in temperaturnim alarmom" je navodilo, ki prikazuje, kako v kapacitivni dotik, ki je na dotik, dodajam temperaturno sondo NTP, piezo-brenčalo in programsko opremo. ESP32 kapacitivni vhod na dotik z uporabo "kovinskih vtičev za luknje" za gumbe "za ustvarjanje preprostega, a natančnega termometra za kuhanje s programabilnim temperaturnim alarmom.

Trije kapacitivni gumbi na dotik omogočajo nastavitev alarmnega nivoja temperature. S pritiskom na osrednji gumb se prikaže zaslon "Set Alarm Temperature" (Nastavitev temperature alarma), ki levi in desni tipki omogoča znižanje ali zvišanje temperature alarma. Če pritisnete in spustite levi gumb, se temperatura alarma zniža za eno stopinjo, medtem ko pritisk in držanje leve tipke nenehno znižuje temperaturo alarma, dokler se ne sprosti. Podobno pritisk in sprostitev desnega gumba poveča temperaturo alarma za eno stopinjo, medtem ko pritisk in držanje desnega gumba nenehno povečuje temperaturo alarma, dokler se ne sprosti. Ko končate s prilagajanjem temperature alarma, se znova dotaknite sredinskega gumba, da se vrnete na prikaz temperature. Kadar koli je temperatura enaka ali višja od alarmne temperature, se oglasi piezo -zvočni signal.

Kot že omenjeno, se pri načrtovanju uporablja temperaturna sonda NTP skupaj z Steinhart-Hartovimi enačbami in koeficienti, potrebnimi za natančne odčitke temperature. V prvi korak sem vključil preveč podroben opis enačbe Steinhart-Hart, koeficientov Steinhart-Hart, delilnikov napetosti in algebre (kot bonus me zaspi vsakič, ko jo preberem, zato boste morda želeli preskočite 1. korak in pojdite naravnost na 2. korak: Sestavljanje elektronike, razen če seveda potrebujete dremež).

Če se odločite za izdelavo tega kuhalnega termometra, sem za prilagoditev in 3D tiskanje vključil naslednje datoteke:

  • Arduino datoteka "AnalogInput.ino", ki vsebuje programsko opremo za oblikovanje.
  • Autodesk Fusion 360 cad datoteke za ohišje, ki prikazujejo, kako je bilo ohišje zasnovano.
  • Cura 3.4.0 STL datoteke "Case, Top.stl" in "Case, Bottom.stl" pripravljene za 3D tiskanje.

Potrebovali boste tudi poznavanje okolja Arduino, pa tudi sposobnosti spajkanja in opreme, poleg tega pa boste morda potrebovali dostop do natančnih digitalnih ohmmetrov, termometrov in temperaturnih virov za kalibracijo.

In kot ponavadi sem verjetno pozabil kakšno datoteko ali dve ali kdo ve, kaj še, zato če imate kakšno vprašanje, ne oklevajte in vprašajte, saj delam veliko napak.

Elektronika je bila zasnovana s pomočjo svinčnika, papirja in kalkulatorja na sončni pogon Radio Shack EC-2006a (kat. Št. 65-962a).

Programska oprema je bila zasnovana z uporabo Arduino 1.8.5.

Ohišje je bilo zasnovano z uporabo Autodesk Fusion 360, narezano s programom Cura 3.4.0 in natisnjeno v PLA na Ultimaker 2+ Extended in Ultimaker 3 Extended.

In še zadnja opomba: ne prejemam nobene odškodnine v nobeni obliki, vključno z, vendar ne omejeno na brezplačne vzorce, za katero koli komponento, uporabljeno v tej zasnovi

1. korak: matematika, matematika in več matematika: Steinhart – Hart, koeficienti in razdelilniki uporov

Matematika, matematika in drugo matematika: Steinhart – Hart, koeficienti in uporniški delilniki
Matematika, matematika in drugo matematika: Steinhart – Hart, koeficienti in uporniški delilniki

Moje prejšnje zasnove, ki so vključevale temperaturno sondo NTC, so uporabljale tehniko iskanja tabele za pretvorbo vhodne napetosti iz razdelilnika upora na temperaturo. Ker ESP32 zmore dvanajst-bitni analogni vhod in ker sem načrtoval večjo natančnost, sem se odločil, da bom v kodo za pretvorbo napetosti v temperaturo uvedel enačbo "Steinhart-Hart".

Steinhart-Hartjeva enačba, ki so jo leta 1968 prvič objavili John S. Steinhart in Stanley R. Hart, definira razmerje odpornosti na temperaturo temperaturne sonde NTC na naslednji način:

1 / T = A + (B * (dnevnik (termistor))) + (C * dnevnik (termistor) * dnevnik (termistor) * dnevnik (termistor))

kje:

  • T je Kelvinova stopinja.
  • A, B, C so Steinhart-Hartovi koeficienti (več o tem v trenutku).
  • Termistor je vrednost odpornosti termistorja temperaturne sonde pri trenutni temperaturi.

Zakaj je torej ta na videz zapletena Steinhart-Hartova enačba potrebna za preprost digitalni termometer na osnovi temperaturne sonde NTC? "Idealna" temperaturna sonda NTC bi zagotovila linearni upor dejanske temperature, zato bi preprosta linearna enačba, ki vključuje vnos napetosti in skaliranje, povzročila natančno predstavitev temperature. Vendar temperaturne sonde NTC niso linearne in v kombinaciji z nelinearnim analognim vhodom skoraj vseh poceni procesorjev z eno ploščo, kot je WiFi Kit 32, proizvajajo nelinearne analogne vhode in s tem netočne odčitke temperature. Z uporabo enačbe, kot je Steinhart-Hart, skupaj s skrbnim umerjanjem je mogoče doseči zelo natančne odčitke temperature z uporabo temperaturnih sond NTC z nizkocenovnim procesorjem z eno ploščo z ustvarjanjem zelo blizu približka dejanske temperature.

Torej nazaj k enačbi Steinhart-Hart. Enačba uporablja tri koeficiente A, B in C za določanje temperature kot funkcije upora termistorja. Od kod prihajajo ti trije koeficienti? Nekateri proizvajalci s svojimi temperaturnimi sondami NTC zagotavljajo te koeficiente, drugi pa ne. Poleg tega lahko proizvajalci določijo koeficiente za natančno temperaturno sondo, ki jo lahko kupite, ali pa tudi ne, in so najverjetneje koeficienti, ki predstavljajo velik vzorec vseh temperaturnih sond, ki jih v določenem obdobju izdelajo. In končno, preprosto nisem mogel najti koeficientov za sondo, uporabljeno pri tej zasnovi.

Brez potrebnih koeficientov sem ustvaril Steinhart-Hart Spreadsheet, kalkulator, ki temelji na preglednicah in pomaga ustvariti potrebne koeficiente za temperaturno sondo NTC (izgubil sem povezavo do podobnega spletnega kalkulatorja, ki sem ga uporabljal pred mnogimi leti, zato sem ustvaril tega). Za določitev koeficientov za temperaturno sondo začnem z merjenjem vrednosti upora 33k, ki se uporablja v delilniku napetosti z digitalnim ohmmetrom, in vnesem vrednost v rumeno območje preglednice z oznako "Resistor". Nato temperaturno sondo postavim v tri okolja; prva sobna temperatura, druga ledena voda in tretja vrela voda, skupaj z znanim natančnim digitalnim termometrom in omogočajo čas, da se temperatura na termometru in število vhodov termistorja prikažeta na zaslonu WiFi Kit 32 (več o tem kasneje), da se stabilizirajo. Pri stabiliziranju temperature in števila vhodov termistorja vnesem temperaturo, ki jo označujeta znani natančen termometer in število termistorjev, ki se pojavita na zaslonu kompleta WiFi 32, v rumeno območje preglednice z oznako "Stopinje F od termometra" in "AD" Odštejte od kompleta WiFi 32 "za vsako od treh okolij. Ko so vnesene vse meritve, zelena površina preglednice zagotavlja koeficiente A, B in C, ki jih zahteva Steinhart-Hartjeva enačba, ki se nato preprosto kopirajo in prilepijo v izvorno kodo.

Kot smo že omenili, je izhod Steinhart-Hartove enačbe v stopinjah Kelvin in ta zasnova prikazuje stopinje Fahrenheita. Pretvorba iz stopinj Kelvina v stopinje Fahrenheita je naslednja:

Najprej pretvorite stopinje Kelvina v stopinje Celzija tako, da od enačbe Steinhart-Hart odštejete 273,15 (stopinje Kelvina):

Stopinje C = (A + (B * (log (Termistor))) +

In drugič, stopinje Celzija pretvorite v stopinje Fahrenheita na naslednji način:

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

Ko sta Steinhart-Hartova enačba in koeficienti dokončani, je potrebna druga enačba za branje izhoda delilnika upora. V tej zasnovi je uporabljen model razdelilnika upora:

vRef <--- Termistor <--- vOut <--- Upor <--- Ozemljitev

kje:

  • vRef v tej zasnovi je 3.3vdc.
  • Termistor je temperaturna sonda NTC, ki se uporablja v razdelilniku uporov.
  • vOut je izhodna napetost delilnika upora.
  • Upor je 33k upor, ki se uporablja v razdelilniku uporov.
  • In zemlja je, no, zemlja.

v Izhod delilnika upora v tej zasnovi je priključen na analogni vhod A0 WiFi Kit 32 (pin 36), izhodna napetost delilnika upora pa se izračuna na naslednji način:

vOut = vRef * upor / (upor + termistor)

Vendar je, kot je navedeno v enačbi Steinhart-Hart, vrednost upora termistorja potrebna za dosego temperature, ne pa izhodne napetosti razdelilnika upora. Zato preureditev enačbe za prikaz vrednosti termistorja zahteva uporabo male algebre, kot sledi:

Obe strani pomnožite z "(upor + termistor)", kar bo povzročilo:

vOut * (upor + termistor) = vRef * upor

Obe strani razdelite z "vOut", kar bo povzročilo:

Upor + termistor = (vRef * upor) / vOut

Od obeh strani odštejte "upor" in dobite:

Termistor = (vRef * Resistor / vOut) - Upor

In končno, z uporabo distribucijske lastnosti poenostavite:

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

Če zamenjate število analognih vhodov WiFi Kit 32 A0 od 0 do 4095 za vOut in zamenjate vrednost 4096 za vRef, enačba uporniškega delilnika, ki zagotavlja vrednost upora termistorja, ki jo zahteva Steinhart-Hartova enačba, postane:

Termistor = upor * ((4096 / Število analognih vhodov) - 1)

Torej z matematiko za nami sestavimo nekaj elektronike.

2. korak: Sestavljanje elektronike

Sestavljanje elektronike
Sestavljanje elektronike
Sestavljanje elektronike
Sestavljanje elektronike
Sestavljanje elektronike
Sestavljanje elektronike

Za elektroniko sem že sestavil demonstrator kapacitivnega dotika ESP32 https://www.instructables.com/id/ESP32-Capacitive…. S tem sklopom so potrebne naslednje dodatne komponente:

  • Pet, 4 "kosov žice 28awg (ena rdeča, ena črna, ena rumena in dve zeleni).
  • Ena, Maverickova sonda "ET-72 Temperature Sonde" (https://www.maverickthermometers.com/product/pr-003/).
  • En 2,5 mm "telefonski" konektor, nosilec za ploščo (https://www.mouser.com/ProductDetail/502-TR-2A).
  • En, 33k ohm 1% 1/8 vatni upor.
  • Eden, piezo zvočni signal https://www.adafruit.com/product/160. Če izberete drug piezo -zvočni signal, se prepričajte, da ustreza specifikacijam tega (pogon na kvadratni val, <= trenutni izhod ESP32).

Za sestavljanje dodatnih komponent sem izvedel naslednje korake:

  • Odstranite in pokosite konce vsake 4 "dolžine žice, kot je prikazano.
  • Spajamo en konec rumene žice in en konec upora 33k ohm na zatič "Tip" telefonskega priključka.
  • Spajkali smo en konec črne žice na prosti konec upora 33 k ohmov in odrezali odvečno žico upora.
  • Nanešene toplotno skrčljive cevi preko žic in uporov.
  • Spajkajte en konec rdeče žice na zatič "Tulec" na priključku telefona.
  • Spajkala je prosti konec rumene žice na pin 36 na WiFi Kit 32.
  • Spajkala je prosti konec črne žice na pin GND na WiFi Kit 32.
  • Prosti konec rdeče žice je bil spajkan na zatič 3V3 na kompletu WiFi 32.
  • Spajkali smo eno zeleno žico na eno žico piezo brenčalnika.
  • Preostalo zeleno žico spajkamo na preostalo vodilo piezo brenčalnika
  • Spajkala je prosti konec ene od zelenih piezo žic na pin 32 na WiFi Kit 32.
  • Spajkala je prosti konec preostalih zelenih piezo žic na pin GND na WiFi Kit 32.
  • Temperaturno sondo priključite v telefonski priključek.

Ko so vse napeljave končane, sem dvakrat preveril svoje delo.

3. korak: Namestitev programske opreme

Namestitev programske opreme
Namestitev programske opreme

Datoteka "AnalogInput.ino" je datoteka okolja Arduino, ki vsebuje programsko opremo za oblikovanje. Poleg te datoteke boste potrebovali grafično knjižnico "U8g2lib" za zaslon OLED WiFi Kit32 (za dodatne informacije o tej knjižnici glejte

Z grafično knjižnico U8g2lib, ki je nameščena v vašem imeniku Arduino, in »AnalogInput.ino«, naloženo v okolje Arduino, sestavite in naložite programsko opremo v komplet WiFi 32. Ko je naložena in zagnana, se prikaže zgornja vrstica zaslona OLED v kompletu WiFi 32 naj se glasi "Temperatura" s trenutno temperaturo, prikazano v velikem besedilu na sredini zaslona.

Dotaknite se sredinskega gumba (T5), da se prikaže zaslon "Nastavi temperaturo alarma". Temperaturo alarma prilagodite tako, da pritisnete levi gumb (T4) ali desni gumb (T6), kot je opisano v uvodu. Če želite preizkusiti alarm, nastavite temperaturo alarma tako, da bo enaka ali nižja od trenutne temperature in alarm se mora oglasiti. Ko končate z nastavitvijo temperature alarma, se dotaknite sredinskega gumba, da se vrnete na prikaz temperature.

Vrednosti dProbeA, dProbeB, dProbeC in dResistor v programski opremi so vrednosti, ki sem jih določil med kalibracijo sonde, ki sem jo uporabil pri tej zasnovi, in bi morale ustvariti odčitke temperature, natančne do nekaj stopinj. Če ne, ali če želite večjo natančnost, potem sledi umerjanje.

4. korak: Umerjanje temperaturne sonde NTP

Umerjanje temperaturne sonde NTP
Umerjanje temperaturne sonde NTP

Za umerjanje temperaturne sonde so potrebni naslednji elementi:

  • En digitalni ohmmeter.
  • Eden znanih natančnih digitalnih termometrov z zmožnostjo od 0 do 250 stopinj F.
  • En kozarec ledene vode.
  • En lonec vrele vode (bodite zelo, zelo previdni!).

Začnite tako, da pridobite dejansko vrednost upora 33k:

  • Odklopite napajanje iz plošče WiFi Kit 32.
  • Odstranite temperaturno sondo iz telefonskega priključka (morda bo treba odstraniti tudi spajkanje črne žice iz kompleta WiFi 32, odvisno od vašega digitalnega ohmmetra).
  • Odprite preglednico Steinhart-Hart.
  • Izmerite vrednost upora 33 k ohmov z digitalnim ohmmetrom in jo vnesite v rumeno polje "Upor" v preglednici in v spremenljivko "dResistor" v programski opremi. Čeprav se to morda zdi pretirano, lahko 1 -odstotni upor 33k ohma resnično vpliva na natančnost prikaza temperature.
  • Temperaturno sondo priključite v telefonski priključek.

Nato dobite Steinhart-Hartov koeficient:

  • Vklopite znani natančen digitalni termometer.
  • Priključite vir napajanja USB v komplet WiFi 32.
  • Hkrati pritisnite in držite levi (T4) in desni (T6) gumb, dokler se ne prikaže zaslon "Termistor šteje".
  • Dovolite, da se prikaza digitalnega termometra in termistorja stabilizirata.
  • Temperaturo in štetje termistorja vnesite v rumene stolpce "Stopinje F iz termometra" in "Štetje AD iz ESP32" v vrstici "Soba".
  • Digitalni termometer in termistorske sonde vstavite v ledeno vodo in pustite, da se oba zaslona stabilizirata.
  • Temperaturo in štetje termistorja vnesite v rumene stolpce "Stopinje F iz termometra" in "Štetje AD iz ESP32" v vrstici "Hladna voda".
  • Digitalni termometer in sonde termistorja vstavite v vrelo vodo in pustite, da se oba zaslona stabilizirata.
  • Temperaturo in štetje termistorja vnesite v rumene stolpce "Stopinje F iz termometra" in "Štetje AD iz ESP32" v vrstici "vrela voda".
  • Kopirajte zeleni koeficient "A:" v spremenljivko "dProbeA" v izvorni kodi.
  • Kopirajte zeleni koeficient "B:" v spremenljivko "dProbeB" v izvorni kodi.
  • Kopirajte zeleni koeficient "C:" v spremenljivko "dProbeC" v izvorni kodi.

Zberite in naložite programsko opremo v komplet WiFi 32.

5. korak: 3D tiskanje ohišja in končni sklop

3D tiskanje ohišja in končni sklop
3D tiskanje ohišja in končni sklop
3D tiskanje ohišja in končni sklop
3D tiskanje ohišja in končni sklop
3D tiskanje ohišja in končni sklop
3D tiskanje ohišja in končni sklop

Natisnil sem "Case, Top.stl" in "Case, Bottom.stl" na višini plasti 1 mm, 50% polnilo, brez podpor.

Z natisnjenim ohišjem sem sestavil elektroniko in ohišje na naslednji način:

  • Odpahnil sem žice iz treh čepov za luknje, vtičnice za luknje pritisnil v položaj v "Case, Top.stl", nato sem žice ponovno spajkal na čepe za luknje, pri čemer sem previdno opazil levo (T4), sredino (T5) in desno Žice (T6) in ustrezne tipke.
  • Priključek telefona pritrdite na okroglo luknjo v ohišju "Bottom.stl" s pomočjo priložene matice.
  • Piezo zvočni signal postavite v spodnji sklop ohišja poleg priključka za telefon in ga pritrdite z dvostranskim trakom.
  • Komplet WiFi 32 namestite v spodnji sklop ohišja, pri tem pazite, da bodo vrata USB na kompletu WiFi 32 poravnana z ovalno luknjo na dnu ohišja (NE pritiskajte na zaslon OLED, da postavite komplet WiFi 32 na dno ohišja montaža, verjemite mi pri tem, le tega ne storite!).
  • Zgornji del ohišja pritisnite na spodnji del ohišja in ga pritrdite z majhnimi pikami debelega lepila iz cianoakrilata na vogalih.

6. korak: O programski opremi

O programski opremi
O programski opremi

Datoteka "AnalogInput.ino" je sprememba datoteke "Buttons.ino" iz mojega prejšnjega Instructable "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/". Prilagodil sem prvotne tri kodne odseke "setup ()", "loop ()" in "InterruptService ()", da vključim programsko opremo za sondo in alarm, in dodal sem še tri kode "Analog ()", "Gumbi ()" in "Zaslon ()" za čiščenje "zanke ()" in za dodajanje potrebne programske opreme za sondo in alarm.

"Analog ()" vsebuje kodo, potrebno za branje števila termistorjev v matriko, povprečje matrike števila, uporabo delilnika napetosti za ustvarjanje vrednosti termistorja in končno uporabo Steinhart-Hartovih enačb in enačb pretvorbe temperature za ustvarjanje stopinj Fahrenheita.

"Gumbi ()" vsebujejo kodo, potrebno za obdelavo pritiskov na tipke in urejanje temperature alarma.

"Zaslon ()" vsebuje kodo, potrebno za prikaz informacij na zaslonu OLED.

Če imate kakršna koli vprašanja ali pripombe glede kode ali katerega koli drugega vidika tega navodila, vas prosimo, da vam odgovorim.

Upam, da ste uživali (in ste še budni)!

7. korak: "Prihajajoči projekt"

The
The

Prihajajoči projekt, "Intelligrill® Pro", je monitor za kadilce z dvojno temperaturno sondo, ki vsebuje:

  • Steinhart-Hart-ovi izračuni temperaturnih sond (v nasprotju s tabelami iskanja) za večjo natančnost, kot je vključeno v ta navodila.
  • Predvidljivi čas dokončanja na sondi 1, ki vključuje povečano natančnost, pridobljeno iz Steinhart-Hartovih izračunov.
  • Druga sonda, sonda 2, za nadzor temperature kadilca (omejena na 32 do 399 stopinj).
  • Kapacitivne kontrole vnosa na dotik (kot v prejšnjih navodilih).
  • Oddaljeno spremljanje na osnovi WIFI (s fiksnim naslovom IP omogoča spremljanje napredka kadilca od koder koli je na voljo internetna povezava).
  • Razširjeno temperaturno območje (od 32 do 399 stopinj).
  • Zvočni alarmi za dokončanje tako v oddajniku Intelligrill® kot na večini nadzornih naprav, ki podpirajo WiFi.
  • Prikaz temperature v stopinjah F ali stopinjah C.
  • Časovna oblika v HH: MM: SS ali HH: MM. Prikaz baterije v voltih ali % napolnjenosti.
  • In izhod PID za kadilce na osnovi polža.

"Intelligrill® Pro" se še vedno preizkuša, da bi postal najbolj natančen, zmogljiv in zanesljiv Intelligrill® na osnovi HTML, ki sem ga oblikoval. Še vedno je na preizkušnji, a z obroki, ki si jih pomaga pripraviti med testiranjem, sem pridobil več kot nekaj kilogramov.

Še enkrat upam, da boste uživali!

Priporočena: