Sisukord:

ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega: 7 sammu (piltidega)
ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega: 7 sammu (piltidega)

Video: ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega: 7 sammu (piltidega)

Video: ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega: 7 sammu (piltidega)
Video: ESP8266/ESP32: Дата и время. Синхронизация, NTP-клиент 2024, Juuli
Anonim
Image
Image
ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega
ESP32 NTP temperatuurisondi küpsetustermomeeter koos Steinhart-Harti korrektsiooni ja temperatuurihäirega

Jätkates "eelseisva projekti" lõpuleviimist, on "ESP32 NTP temperatuurisondiga keedutermomeeter koos Steinhart-Harti korrigeerimise ja temperatuurihäirega" juhendatav, mis näitab, kuidas ma lisan oma mahtuvuslikule puutetundlikule puutetundlikule juhisele NTP temperatuurisondi, piesosummerit ja tarkvara ESP32 mahtuvuslik puutetundlik sisend, kasutades nuppude jaoks mõeldud metallist aukude pistikuid, et luua lihtne, kuid täpne küpsetustermomeeter koos programmeeritava temperatuurialarmiga.

Kolm mahtuvuslikku puutetundlikku nuppu võimaldavad temperatuuri alarmi taset seadistada. Kui vajutate keskmist nuppu, kuvatakse ekraanile "Set Alarm Temperature", mis võimaldab vasakul ja paremal nupul vastavalt alarmi temperatuuri vähendada või tõsta. Vasakpoolse nupu vajutamine ja vabastamine vähendab alarmi temperatuuri ühe kraadi võrra, samal ajal kui vasakut nuppu vajutades ja all hoides, langeb häire temperatuur pidevalt, kuni see vabastatakse. Samamoodi tõstab parema nupu vajutamine ja vabastamine häire temperatuuri ühe kraadi võrra, samal ajal kui parema nupu vajutamine ja all hoidmine tõstab pidevalt häire temperatuuri, kuni see vabastatakse. Kui olete häire temperatuuri reguleerimise lõpetanud, puudutage lihtsalt uuesti kesknuppu, et naasta temperatuurinäidikule. Mis tahes ajal on temperatuur häiretemperatuuriga võrdne või kõrgem, kostab piesosummer.

Ja nagu mainitud, kasutatakse konstruktsioonis NTP temperatuurisondi koos täpsete temperatuurinäitude jaoks vajalike Steinhart-Harti võrrandite ja koefitsientidega. Lisasin Steinhart-Harti võrrandi, Steinhart-Harti koefitsientide, pingejagurite ja algebra liiga üksikasjaliku kirjelduse 1. etapis (boonusena paneb see mind magama iga kord, kui seda loen, nii et võite jätke 1. samm vahele ja minge otse 2. sammu juurde: elektroonika kokkupanek, kui muidugi pole vaja uinakut).

Kui otsustate selle küpsetamistermomeetri ehitada, lisasin kohandamiseks ja 3D -printimiseks järgmised failid:

  • Arduino fail "AnalogInput.ino", mis sisaldab disaini tarkvara.
  • Korpuse jaoks mõeldud Autodesk Fusion 360 cad -failid, mis näitavad korpuse kujundamist.
  • Cura 3.4.0 STL -failid "Case, Top.stl" ja "Case, Bottom.stl" on 3D -printimiseks valmis.

Samuti peate tundma Arduino keskkonda, samuti jootmisoskusi ja -seadmeid ning lisaks vajate kalibreerimiseks juurdepääsu täpsetele digitaalsetele oommeetritele, termomeetritele ja temperatuuri allikatele.

Ja nagu tavaliselt, unustasin tõenäoliselt faili või kaks või kes teab veel midagi, nii et kui teil on küsimusi, ärge kartke küsida, sest ma teen palju vigu.

Elektroonika kujundamisel kasutati pliiatsit, paberit ja raadiosaatjat EC-2006a (kataloog nr 65-962a) päikeseenergial töötavat kalkulaatorit.

Tarkvara on loodud Arduino 1.8.5 abil.

Korpus on loodud Autodesk Fusion 360 abil, viilutatud Cura 3.4.0 abil ja trükitud PLA -vormingus Ultimaker 2+ Extended ja Ultimaker 3 Extended.

Ja viimane märkus: ma ei saa mingis vormis, sealhulgas, kuid mitte ainult, tasuta näidiseid, hüvitist ühegi selles disainis kasutatud komponendi eest

1. samm: matemaatika, matemaatika ja muu matemaatika: Steinhart – Hart, koefitsiendid ja takisti jagajad

Matemaatika, matemaatika ja muu matemaatika: Steinhart – Hart, koefitsiendid ja takisti jagajad
Matemaatika, matemaatika ja muu matemaatika: Steinhart – Hart, koefitsiendid ja takisti jagajad

Minu varasemates konstruktsioonides, mis sisaldasid NTC temperatuurisondi, kasutati tabeli otsimise tehnikat takisti jagaja sissetuleva pinge teisendamiseks temperatuuriks. Kuna ESP32 on võimeline kaheteist bitist analoogsisendit ja kuna ma kavandasin suurema täpsuse jaoks, otsustasin rakendada pinge ja temperatuuri muundamise koodis "Steinhart-Hart" võrrandi.

Esmakordselt avaldati 1968. aastal John S. Steinharti ja Stanley R. Harti poolt, Steinhart-Harti võrrand määratleb NTC temperatuurisondi vastupidavuse temperatuuri suhtele järgmiselt:

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

kus:

  • T on Kelvini kraadid.
  • A, B, C on Steinhart-Harti koefitsiendid (sellest pikemalt).
  • Ja termistor on temperatuurianduri termistori takistuse väärtus praegusel temperatuuril.

Miks on see näiliselt keeruline Steinhart-Harti võrrand vajalik lihtsa NTC temperatuurianduril põhineva digitaalse termomeetri jaoks? "Ideaalne" NTC temperatuuriandur esitaks tegeliku temperatuuri lineaarse takistuse, seega annaks pinge sisendit ja skaleerimist hõlmav lihtne lineaarne võrrand täpse temperatuuri esituse. Kuid NTC temperatuuriandurid ei ole lineaarsed ja koos praktiliselt kõigi odavate üheplaadiprotsessorite, näiteks WiFi-komplekti 32, mittelineaarse analoogsisendiga annavad mittelineaarsed analoogsisendid ja seega ebatäpsed temperatuurinäidud. Kasutades sellist võrrandit nagu Steinhart-Hart koos hoolika kalibreerimisega, on võimalik saavutada väga täpsed temperatuurinäidud, kasutades NTC temperatuurisondi koos odava üheplaadiprotsessoriga, luues tegeliku temperatuuri väga lähedase lähenduse.

Nii et tagasi Steinhart-Harti võrrandi juurde. Võrrand kasutab temperatuuri määramiseks termistori takistuse funktsioonina kolme koefitsienti A, B ja C. Kust need kolm koefitsienti tulevad? Mõned tootjad esitavad need koefitsiendid oma NTC temperatuurianduritega ja teised mitte. Lisaks on tootja esitatud koefitsiendid, mis võivad olla või mitte olla teie ostetud täpse temperatuurianduri jaoks, ja tõenäoliselt on need koefitsiendid, mis esindavad kõigi nende teatud aja jooksul toodetud temperatuuriandurite suurt proovi. Ja lõpuks, ma lihtsalt ei suutnud leida selles konstruktsioonis kasutatud sondi koefitsiente.

Ilma vajalike koefitsientideta lõin arvutustabelipõhise kalkulaatori Steinhart-Hart Spreadsheet, mis aitab genereerida NTC temperatuurisondi jaoks vajalikke koefitsiente (kaotasin lingi sarnasele veebipõhisele kalkulaatorile, mida kasutasin palju aastaid tagasi, seega lõin selle). Temperatuuri anduri koefitsientide määramiseks mõõdan alustuseks pingejagajas kasutatava 33k takisti väärtust digitaalse oommeetriga ja sisestan selle väärtuse tabeli kollasele alale, millel on silt "Resistor". Järgmisena asetan temperatuurianduri kolme keskkonda; esimene toatemperatuur, teine jäävesi ja kolmas keev vesi koos teadaoleva täpse digitaalse termomeetriga ning oodake, kuni termomeetri temperatuur ja WiFi -komplekti 32 ekraanil kuvatav termistori sisendarv stabiliseeruvad (sellest lähemalt hiljem). Kui temperatuur ja termistori sisendarv on stabiliseeritud, sisestan teadaoleva täpse termomeetri näidatud temperatuuri ja WiFi komplekti 32 ekraanil kuvatava termistori arvu arvutustabeli kollasesse piirkonda siltidega „Kraadid F termomeetrist” ja „AD Loe WiFi -komplektist 32 "vastavalt igale kolmele keskkonnale. Kui kõik mõõtmised on sisestatud, annab arvutustabeli roheline ala A-, B- ja C-koefitsiendid, mida nõuab Steinhart-Harti võrrand, mis seejärel lihtsalt kopeeritakse ja kleebitakse lähtekoodi.

Nagu varem mainitud, on Steinhart-Harti võrrandi väljund Kelvini kraadides ja see disain näitab Fahrenheiti kraadi. Teisendamine Kelvini kraadidest Fahrenheiti kraadideks on järgmine:

Esiteks teisendage Kelvini kraadid Celsiuse kraadideks, lahutades Steinhart-Harti võrrandist 273,15 (Kelvini kraadi):

Kraadid C = (A + (B * (log (termistor)))) + (C * log (termistor) * log (termistor) * log (termistor))) - 273,15

Ja teiseks, teisendage Celsiuse kraadid Fahrenheiti kraadideks järgmiselt:

Kraadid F = ((kraadid C * 9) / 5) + 32

Kui Steinhart-Harti võrrand ja koefitsiendid on valmis, on takisti jagaja väljundi lugemiseks vajalik teine võrrand. Selles konstruktsioonis kasutatud takisti jagaja mudel on järgmine:

vRef <--- Termistor <--- vOut <--- Takisti <--- Maandus

kus:

  • vRef selles disainis on 3.3vdc.
  • Termistor on takisti jagajas kasutatav NTC temperatuurisond.
  • vOut on takisti jagaja pinge väljund.
  • Takisti on 33k takisti, mida kasutatakse takisti jagajas.
  • Ja maa on hästi jahvatatud.

v Selle konstruktsiooni takisti jagajast on ühendatud WiFi -komplekti 32 analoogsisend A0 (tihvt 36) ja takisti jagaja pingeväljund arvutatakse järgmiselt:

vOut = vRef * takisti / (takisti + termistor)

Kuid nagu on märgitud Steinhart-Harti võrrandis, on temperatuuri saamiseks vaja termistori takistuse väärtust, mitte takisti jagaja pingeväljundit. Nii et võrrandi ümberkorraldamine termistori väärtuse väljastamiseks nõuab väikese algebra kasutamist järgmiselt:

Korrutage mõlemad pooled "(takisti + termistor)" tulemuseks:

vOut * (takisti + termistor) = vRef * takisti

Jagage mõlemad pooled sõnaga "vOut", mille tulemuseks on:

Takisti + termistor = (vRef * takisti) / vOut

Lahutage mõlemalt poolt "takisti", mille tulemuseks on:

Termistor = (vRef * takisti / vOut) - takisti

Ja lõpuks, jaotusomaduste abil lihtsustage:

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

Asendades vOut WiFi komplekti 32 A0 analoogsisendite arvu 0 kuni 4095 ja asendades väärtuse 4096 väärtusega vRef, saab takisti jagaja võrrand, mis annab Steinhart-Harti võrrandi nõutud termistori takistuse väärtuse:

Termistor = takisti * ((4096 / analoogsisendite arv) - 1)

Nii et kui matemaatika on seljataga, paneme kokku elektroonika.

2. samm: elektroonika kokkupanek

Elektroonika kokkupanek
Elektroonika kokkupanek
Elektroonika kokkupanek
Elektroonika kokkupanek
Elektroonika kokkupanek
Elektroonika kokkupanek

Elektroonika jaoks olin ma varem kokku pannud ESP32 Capacitive Touch demonstraatori https://www.instructables.com/id/ESP32-Capacitive… Selle koostuga on vaja järgmisi lisakomponente:

  • Viis, 4 tolli 28awg traati (üks punane, üks must, üks kollane ja kaks rohelist).
  • Üks, Mavericki sond "ET-72 Temperature Probe" (https://www.maverickthermometers.com/product/pr-003/).
  • Üks 2,5 mm "telefoni" pistik, paneelikinnitus (https://www.mouser.com/ProductDetail/502-TR-2A).
  • Üks 33k oomine 1% 1/8 vatti takisti.
  • Üks piesosummer https://www.adafruit.com/product/160. Kui valite mõne muu piesosummeri, veenduge, et see vastaks selle spetsifikatsioonidele (ruutlainepõhine, <= ESP32 praegune väljund).

Lisakomponentide kokkupanekuks tegin järgmised toimingud:

  • Iga 4 -tollise traadi otsad eemaldati ja konserveeriti, nagu näidatud.
  • Joodatud kollase juhtme üks ots ja 33k oomise takisti üks ots telefoni pistiku pistiku "Vihje" külge.
  • Joodeti musta juhtme üks ots 33k oomise takisti vaba otsa ja kärbiti üleliigne takistusjuhe ära.
  • Juhtmete ja takisti kohale rakendati termokahanevaid torusid.
  • Joodeti punase juhtme üks ots telefoni pistiku pistiku "Sleeve" külge.
  • Joodati kollase juhtme vaba ots WiFi komplekti 32 tihvti 36 külge.
  • Joodeti musta juhtme vaba ots WiFi komplekti 32 GND tihvti külge.
  • Joodeti punase juhtme vaba ots WiFi -komplekti 32 3V3 tihvti külge.
  • Üks roheline juhe piesohelisignaali ühe juhtme külge.
  • Ülejäänud roheline juhe joodeti piesosummeri ülejäänud juhtme külge
  • Joodati ühe rohelise piesotraadi vaba ots WiFi komplekti 32 tihvti 32 külge.
  • Ülejäänud roheliste piesotraatide vaba ots joodeti WiFi -komplekti 32 GND -tihvti külge.
  • Ühendas temperatuurianduri telefoni pistikuga.

Kui kõik juhtmed on valmis, kontrollisin oma tööd kaks korda.

Samm: tarkvara installimine

Tarkvara installimine
Tarkvara installimine

Fail "AnalogInput.ino" on Arduino keskkonnafail, mis sisaldab disaini tarkvara. Lisaks sellele failile vajate WiFi Kit32 OLED -ekraani jaoks graafikakogu "U8g2lib" (selle teegi kohta lisateabe saamiseks vt

Kui U8g2lib graafikakogu on installitud teie Arduino kataloogi ja "AnalogInput.ino" on Arduino keskkonda laaditud, kompileerige ja laadige tarkvara alla WiFi -komplekti 32. Pärast allalaadimist ja käivitamist kuvatakse WiFi -komplekti OLED -ekraani ülemine rida 32 peaks lugema "Temperatuur", kusjuures praegune temperatuur kuvatakse suure tekstiga ekraani keskel.

Puudutage kesknuppu (T5), et kuvada ekraan "Set Alarm Temperature". Reguleerige alarmi temperatuuri, vajutades vasakut nuppu (T4) või paremat nuppu (T6), nagu on kirjeldatud sissejuhatuses. Alarmi testimiseks reguleerige alarmi temperatuur praegusele temperatuurile võrdseks või sellest madalamaks ja alarm peaks helisema. Kui olete äratustemperatuuri seadistamise lõpetanud, puudutage temperatuurinäidikule naasmiseks keskmist nuppu.

Tarkvaras olevad väärtused dProbeA, dProbeB, dProbeC ja dResistor on väärtused, mille määrasin selles konstruktsioonis kasutatud sondi kalibreerimisel ja need peaksid looma mõne kraadi täpsed temperatuurinäidud. Kui ei, või kui soovitakse suuremat täpsust, on järgmine kalibreerimine.

4. samm: NTP temperatuurisondi kalibreerimine

NTP temperatuurisondi kalibreerimine
NTP temperatuurisondi kalibreerimine

Temperatuuri anduri kalibreerimiseks on vaja järgmisi elemente:

  • Üks digitaalne oommeeter.
  • Üks teadaolev täpne digitaalne termomeeter, mille temperatuur on 0 kuni 250 kraadi F.
  • Üks klaas jäävett.
  • Üks pott keeva veega (olge väga, väga ettevaatlik!).

Alustage 33k takisti tegeliku väärtuse hankimisega:

  • Eemaldage WiFi Kit 32 plaadilt toide.
  • Eemaldage temperatuuriandur telefoni pistikust (olenevalt teie digitaalsest oommeetrist võib osutuda vajalikuks ka musta juhtme jootmine WiFi-komplektist 32).
  • Avage Steinhart-Harti arvutustabel.
  • Mõõtke digitaalse oommeetri abil 33 k oomi takisti väärtus ja sisestage see arvutustabeli kollasesse lahtrisse „Resistor“ja tarkvara muutuja „dRististor“. Kuigi see võib tunduda ülemäärane, võib 33k oomi 1% takistus tõepoolest mõjutada temperatuurinäidu täpsust.
  • Ühendage temperatuuriandur telefoni pistikuga.

Seejärel hankige Steinhart-Harti koefitsiendid:

  • Lülitage sisse tuntud täpne digitaalne termomeeter.
  • Ühendage USB -toiteallikas WiFi -komplekti 32.
  • Vajutage ja hoidke samaaegselt vasakut (T4) ja paremat (T6) nuppu, kuni ilmub ekraanile "Termistori loendused".
  • Laske nii digitaalse termomeetri kui ka termistoriloendurite kuvadel stabiliseeruda.
  • Sisestage temperatuuri ja termistori loendused rea "Ruum" kollastesse veergudesse "Kraadid F termomeetrist" ja "Reklaamide arv ESP32 -st".
  • Sisestage nii digitaalne termomeeter kui ka termistorisondid jäävette ja laske mõlemal ekraanil stabiliseeruda.
  • Sisestage temperatuuri ja termistori loendused rea "Külm vesi" kollastesse veergudesse "Kraadid F termomeetrist" ja "Reklaamide arv ESP32 -st".
  • Sisestage nii digitaalne termomeeter kui ka termistorisondid keevasse vette ja laske mõlemal näidikul stabiliseeruda.
  • Sisestage temperatuuri ja termistori loendused rea "Keev vesi" kollastesse veergudesse "Kraadid F termomeetrist" ja "Reklaamide arv ESP32 -st".
  • Kopeerige roheline "A:" koefitsient lähtekoodi muutujaks "dProbeA".
  • Kopeerige roheline "B:" koefitsient lähtekoodi muutujaks "dProbeB".
  • Kopeerige roheline "C:" koefitsient lähtekoodi muutujaks "dProbeC".

Kompileerige ja laadige tarkvara alla WiFi -komplekti 32.

Samm: korpuse ja lõpliku kokkupaneku 3D -printimine

Korpuse 3D -printimine ja lõplik kokkupanek
Korpuse 3D -printimine ja lõplik kokkupanek
Korpuse 3D -printimine ja lõplik kokkupanek
Korpuse 3D -printimine ja lõplik kokkupanek
Korpuse 3D -printimine ja lõplik kokkupanek
Korpuse 3D -printimine ja lõplik kokkupanek

Trükkisin nii "Case, Top.stl" kui ka "Case, Bottom.stl".1mm kihi kõrgusele, 50% täidisega, ilma toeta.

Kui ümbris oli trükitud, panin elektroonika ja korpuse kokku järgmiselt:

  • Keerasin juhtmed kolme auguga pistikutelt lahti, surusin aukud korpuses "Case, Top.stl" asendisse, seejärel jootsin juhtmed uuesti aukude külge, märkides hoolikalt vasakut (T4), keskele (T5) ja paremale (T6) juhtmed ja vastavad nupud.
  • Kinnitage telefoni pistik kaasasoleva mutri abil jaotises "Case, Bottom.stl" ümmarguse augu külge.
  • Asetati piesosummer ümbrise alumisse komplekti telefoni pistiku kõrvale ja kinnitati kahepoolse teibiga.
  • Libistage WiFi -komplekt 32 korpuse alumisse komplekti, veendudes, et WiFi -komplekti 32 USB -port oleks joondatud korpuse põhjas oleva ovaalse avaga (ärge vajutage OLED -ekraani, et paigutada WiFi -komplekt 32 korpuse põhja) kokkupanek, usaldage mind selles, lihtsalt ärge tehke seda!).
  • Vajutati korpuse ülemine komplekt korpuse alumisele osale ja kinnitati paika, kasutades nurkades väikseid täpikesi paksu tsüanoakrülaatliimi.

6. samm. Teave tarkvara kohta

Teave tarkvara kohta
Teave tarkvara kohta

Fail "AnalogInput.ino" on minu eelmise juhendi "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/" faili "Buttons.ino" modifikatsioon. Olen muutnud kolme algset koodiosa "setup ()", "loop ()" ja "InterruptService ()", et need hõlmaksid sondi ja häire tarkvara ning lisasin veel kolm koodilõiku "Analog ()", "Nupud ()" ja "Kuva ()" "silmuse ()" puhastamiseks ning sondi ja häire jaoks vajaliku tarkvara lisamiseks.

"Analoog ()" sisaldab koodi, mis on vajalik termistori arvu massiiviks lugemiseks, loendusmassiivi keskmistamiseks, termistori väärtuse genereerimiseks pingejaguri abil ja lõpuks Fahrenheiti kraadide saamiseks Steinhart-Harti võrrandite ja temperatuuri teisendusvõrrandite kasutamiseks.

"Nupud ()" sisaldab koodi, mis on vajalik nupuvajutuste töötlemiseks ja häire temperatuuri muutmiseks.

"Ekraan ()" sisaldab koodi, mis on vajalik teabe esitamiseks OLED -ekraanil.

Kui teil on koodi või selle juhendi mõne muu aspekti kohta küsimusi või kommentaare, küsige julgelt ja annan endast parima, et neile vastata.

Loodan, et teile meeldis (ja olete endiselt ärkvel)!

Samm: eelseisev projekt

The
The

Tulevane projekt "Intelligrill® Pro" on kahe temperatuuriga sondi suitsetajamonitor, mis sisaldab:

  • Steinhart-Harti temperatuurianduri arvutused (erinevalt "otsingu" tabelitest) suurema täpsuse saavutamiseks, nagu on lisatud selles juhendis.
  • Prognoositav aeg lõpuleviimiseni sondil 1, mis sisaldab Steinhart-Harti arvutustest saadud täpsust.
  • Teine sond, sond 2, suitsetaja temperatuuri jälgimiseks (piiratud 32 kuni 399 kraadi).
  • Mahtuvuslikud puutesisendi juhtnupud (nagu eelmises juhendis).
  • WIFI -põhine kaugjälgimine (fikseeritud IP -aadressiga võimaldab jälgida suitsetaja arengut kõikjal, kus Interneti -ühendus on saadaval).
  • Laiendatud temperatuurivahemik (32 kuni 399 kraadi).
  • Helisignaalid lõpetamiseks nii Intelligrill® saatjas kui ka enamikus WiFi -toega jälgimisseadmetes.
  • Temperatuuri näidik kas F või C kraadides.
  • Ajavorming kas HH: MM: SS või HH: MM. Aku kuva kas voltides või % laetud.
  • Ja PID -väljund tigupõhistele suitsetajatele.

"Intelligrill® Pro" katsetab endiselt, et saada kõige täpsemaks, funktsionaalsemaks ja usaldusväärsemaks HTML -põhiseks Intelligrill® -iks, mille olen välja töötanud. See on veel testimisel, kuid söögikordadega, mida see testimise ajal aitab valmistada, olen juurde võtnud paar kilo.

Jällegi, loodan, et naudite!

Soovitan: