Obsah:

Teplotný sonda ESP32 NTP s teplomerom s korekciou Steinhart-Hart a teplotným alarmom: 7 krokov (s obrázkami)
Teplotný sonda ESP32 NTP s teplomerom s korekciou Steinhart-Hart a teplotným alarmom: 7 krokov (s obrázkami)

Video: Teplotný sonda ESP32 NTP s teplomerom s korekciou Steinhart-Hart a teplotným alarmom: 7 krokov (s obrázkami)

Video: Teplotný sonda ESP32 NTP s teplomerom s korekciou Steinhart-Hart a teplotným alarmom: 7 krokov (s obrázkami)
Video: Использование термопары MAX6675 с ESP32 Bluetooth 2024, Júl
Anonim
Image
Image
Teplomer na varenie teplotnej sondy ESP32 NTP s korekciou Steinhart-Hart a teplotným alarmom
Teplomer na varenie teplotnej sondy ESP32 NTP s korekciou Steinhart-Hart a teplotným alarmom

Stále na ceste k dokončeniu „nadchádzajúceho projektu“je „teplomer na varenie teplotnej sondy ESP32 NTP s korekciou a teplotným alarmom Steinhart-Hart“návod, ktorý ukazuje, ako do svojho kapacitného dotykového ovládača pridám teplotnú sondu NTP, piezový bzučiak a softvér. Kapacitný dotykový vstup ESP32 pomocou „zástrčiek s kovovou dierou“na tlačidlá vytvorí jednoduchý, ale presný teplomer na varenie s programovateľným alarmom teploty.

Tri kapacitné dotykové tlačidlá umožňujú nastaviť úroveň teplotného alarmu. Stlačením stredného tlačidla sa zobrazí obrazovka „Nastaviť teplotu alarmu“, ktorá umožní ľavým a pravým tlačidlom znížiť alebo zvýšiť teplotu alarmu. Stlačením a uvoľnením ľavého tlačidla sa zníži teplota budíka o jeden stupeň, zatiaľ čo stlačením a podržaním ľavého tlačidla sa teplota budíka nepretržite zníži, kým sa neuvoľní. Podobne stlačením a uvoľnením pravého tlačidla sa zvýši teplota budíka o jeden stupeň, zatiaľ čo stlačením a podržaním pravého tlačidla sa teplota budíka nepretržite zvyšuje, kým sa neuvoľní. Po dokončení nastavovania teploty alarmu sa znova dotknite stredného tlačidla, aby ste sa vrátili na zobrazenie teploty. Kedykoľvek je teplota rovnaká alebo vyššia ako teplota alarmu, zaznie piezový bzučiak.

A ako už bolo spomenuté, pri návrhu sa používa teplotná sonda NTP spolu s rovnicami Steinhart-Hart a koeficientmi potrebnými na presné odčítanie teploty. Do kroku 1 som zahrnul prehnane podrobný popis Steinhartovej-Hartovej rovnice, Steinhart-Hartových koeficientov, deličov napätia a algebry (ako bonus ma pri každom prečítaní uspí, takže si možno budete priať preskočte krok 1 a pokračujte rovno krokom 2: Zostavenie elektroniky, pokiaľ samozrejme nepotrebujete šlofíka).

Ak sa rozhodnete zostrojiť tento teplomer na varenie, na prispôsobenie a 3D tlač som pridal tieto súbory:

  • Súbor Arduino „AnalogInput.ino“obsahujúci softvér pre návrh.
  • CAD súbory Autodesk Fusion 360 pre prípad, ktoré ukazujú, ako bolo puzdro navrhnuté.
  • Súbory Cura 3.4.0 STL „Case, Top.stl“a „Case, Bottom.stl“pripravené na 3D tlač.

Budete tiež potrebovať znalosť prostredia Arduino, spájkovacie schopnosti a vybavenie a okrem toho možno budete potrebovať prístup k presným digitálnym ohmmetrom, teplomerom a zdrojom teploty na kalibráciu.

A ako obvykle, pravdepodobne som zabudol jeden alebo dva súbory alebo ktovie čo ešte, takže ak máte akékoľvek otázky, neváhajte sa ma opýtať, pretože robím veľa chýb.

Elektronika bola navrhnutá pomocou ceruzky, papiera a solárnej kalkulačky Radio Shack EC-2006a (kat. Č. 65-962a).

Softvér bol navrhnutý pomocou programu Arduino 1.8.5.

Puzdro bolo navrhnuté pomocou programu Autodesk Fusion 360, nakrájaného na plátky pomocou Cura 3.4.0 a vytlačeného v PLA na zariadeniach Ultimaker 2+ Extended a Ultimaker 3 Extended.

A jedna poznámka na záver, nedostávam žiadnu náhradu v akejkoľvek forme, vrátane, ale nie výlučne, bezplatných vzoriek, za akékoľvek komponenty použité v tomto dizajne

Krok 1: Matematika, matematika a ďalšia matematika: Steinhart – Hart, koeficienty a rozdeľovače rezistorov

Matematika, matematika a ďalšia matematika: Steinhart – Hart, koeficienty a rozdeľovače rezistorov
Matematika, matematika a ďalšia matematika: Steinhart – Hart, koeficienty a rozdeľovače rezistorov

Moje predchádzajúce návrhy zahŕňajúce teplotnú sondu NTC používali technológiu tabuľkového vyhľadávania na konverziu prichádzajúceho napätia z deliča odporu na teplotu. Pretože ESP32 je schopný dvanásťbitového analógového vstupu a pretože som navrhoval zvýšenie presnosti, rozhodol som sa implementovať rovnicu „Steinhart-Hart“do kódu prevodu napätia na teplotu.

Steinhartova-Hartova rovnica, ktorú v roku 1968 prvýkrát publikovali John S. Steinhart a Stanley R. Hart, definuje vzťah odolnosti voči teplote teplotnej sondy NTC nasledovne:

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

kde:

  • T sú stupne Kelvina.
  • A, B, C sú Steinhart-Hartove koeficienty (o tom viac o chvíľu).
  • A Termistor je hodnota odporu termistora teplotnej sondy pri aktuálnej teplote.

Prečo je teda táto zdanlivo komplikovaná Steinhart-Hartova rovnica potrebná pre jednoduchý digitálny teplomer na báze teplotnej sondy NTC? „Ideálna“teplotná sonda NTC by poskytovala lineárnu reprezentáciu odporu skutočnej teploty, takže jednoduchá lineárna rovnica zahŕňajúca vstup napätia a zmenu mierky by viedla k presnej prezentácii teploty. Teplotné sondy NTC však nie sú lineárne a v kombinácii s nelineárnym analógovým vstupom prakticky všetkých lacných jednodoskových procesorov, ako je napríklad WiFi Kit 32, produkujú nelineárne analógové vstupy, a teda nepresné hodnoty teploty. Použitím rovnice, ako je Steinhart-Hart, spolu s dôkladnou kalibráciou je možné dosiahnuť veľmi presné odčítanie teploty pomocou teplotných sond NTC s lacným jednodoskovým procesorom generovaním veľmi tesnej aproximácie skutočnej teploty.

Takže späť k Steinhartovej-Hartovej rovnici. Rovnica používa tri koeficienty A, B a C na určenie teploty ako funkcie odporu termistora. Odkiaľ pochádzajú tieto tri koeficienty? Niektorí výrobcovia poskytujú tieto koeficienty svojimi teplotnými sondami NTC a iní nie. Okrem toho koeficienty poskytnuté výrobcom môžu alebo nemusia byť pre presnú teplotnú sondu, ktorú si môžete kúpiť, a sú pravdepodobne koeficienty reprezentujúce veľkú vzorku všetkých teplotných sond, ktoré počas určitého obdobia vyrábajú. A nakoniec som jednoducho nemohol nájsť koeficienty pre sondu použitú v tomto návrhu.

Bez potrebných koeficientov som vytvoril tabuľkový procesor Steinhart-Hart, kalkulačku založenú na tabuľkovom procesore, ktorá pomáha pri generovaní potrebných koeficientov pre teplotnú sondu NTC (stratil som odkaz na podobnú webovú kalkulačku, ktorú som používal pred mnohými rokmi, a tak som vytvoril túto). Aby som určil koeficienty pre teplotnú sondu, začnem odmeraním hodnoty odporu 33k použitého v deliči napätia digitálnym ohmmetrom a hodnotu zadám do žltej oblasti tabuľky označenej ako „Rezistor“. Ďalej umiestnim teplotnú sondu do troch prostredí; prvá izbová teplota, druhá ľadová voda a tretia vriaca voda spolu so známym presným digitálnym teplomerom a umožňujú čas na stabilizáciu teploty na teplomere a počte vstupov termistora na displeji súpravy WiFi Kit 32 (viac o tom neskôr). Keď je počet vstupov teploty a termistora stabilizovaný, zadám teplotu indikovanú známym presným teplomerom a počet termistorov zobrazených na displeji súpravy WiFi Kit 32 do žltej oblasti tabuľky označenej „Stupne F z teplomera“a „AD“Počítajte so súpravou WiFi 32 “v každom z týchto troch prostredí. Po zadaní všetkých meraní poskytuje zelená plocha tabuľky koeficienty A, B a C požadované Steinhartovou-Hartovou rovnicou, ktoré sa potom jednoducho skopírujú a vložia do zdrojového kódu.

Ako už bolo spomenuté, výstup Steinhartovej-Hartovej rovnice je v stupňoch Kelvina a tento návrh zobrazuje stupne Fahrenheita. Prevod zo stupňov Kelvina na stupne Fahrenheita je nasledujúci:

Najprv preveďte stupne Kelvina na stupne Celzia odčítaním 273,15 (stupňov Kelvina) z Steinhartovej-Hartovej rovnice:

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

A za druhé, preveďte stupne Celzia na stupne Fahrenheita nasledovne:

Stupne F = ((stupne C * 9) / 5) + 32

Keď je rovnica Steinhart-Hart a koeficienty úplné, na prečítanie výstupu deliča rezistora je potrebná druhá rovnica. Model odporového deliča použitého v tomto návrhu je:

vRef <--- Termistor <--- vOut <--- Rezistor <--- Zem

kde:

  • vRef v tomto dizajne je 3.3vdc.
  • Termistor je teplotná sonda NTC používaná v odporovom deliči.
  • vOut je napäťový výstup deliča rezistora.
  • Rezistor je 33k odpor použitý v deliči rezistora.
  • A zem je, dobre, zem.

vOd odporový delič v tomto prevedení je pripojený k analógovému vstupu A0 súpravy WiFi (pin 36) súpravy WiFi Kit 32 a výstup napätia deliča rezistora sa vypočíta nasledovne:

vOut = vRef * Rezistor / (Rezistor + Termistor)

Ako je však uvedené v Steinhartovej-Hartovej rovnici, na získanie teploty je potrebná hodnota odporu termistora, nie napäťový výstup deliča odporu. Preto preusporiadanie rovnice na výstup hodnoty termistora vyžaduje použitie malej algebry nasledovne:

Vynásobte obe strany "(odpor + termistor)", čo má za následok:

vOut * (odpor + termistor) = vRef * odpor

Rozdeľte obe strany na „vOut“, čo má za následok:

Rezistor + termistor = (vRef * odpor) / vVýstup

Odpočítajte „odpor“z oboch strán, čo má za následok:

Termistor = (vRef * Rezistor / vOut) - odpor

A nakoniec pomocou distribučnej vlastnosti zjednodušte:

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

Nahradením počtu analógových vstupov súpravy WiFi Kit 32 A0 od 0 do 4095 pre vOut a nahradením hodnoty 4096 pre vRef rovnica deliča rezistora poskytujúca hodnotu odporu termistora požadovanú Steinhartovou-Hartovou rovnicou sa stáva:

Termistor = odpor * ((4096 / počet analógových vstupov) - 1)

Takže keď máme matematiku za sebou, poďme zostaviť nejakú elektroniku.

Krok 2: Zostavenie elektroniky

Zostavenie elektroniky
Zostavenie elektroniky
Zostavenie elektroniky
Zostavenie elektroniky
Zostavenie elektroniky
Zostavenie elektroniky

Pokiaľ ide o elektroniku, predtým som zostavil demonštračný modul ESP32 Capacitive Touch https://www.instructables.com/id/ESP32-Capacitive… Pri tejto zostave sú potrebné nasledujúce ďalšie komponenty:

  • Päť, 4 "kusy 28awg drôtu (jeden červený, jeden čierny, jeden žltý a dva zelené).
  • Jedna sonda Maverick „Teplotná sonda ET-72“(https://www.maverickthermometers.com/product/pr-003/).
  • Jeden, 2,5 mm „telefónny“konektor, montáž na panel (https://www.mouser.com/ProductDetail/502-TR-2A).
  • Jeden, 33 kOhm 1% 1/8 W odpor.
  • Jeden, piezoelektrický bzučiak https://www.adafruit.com/product/160. Ak vyberiete iný piezo bzučiak, uistite sa, že zodpovedá špecifikáciám tohto (štvorcový priebeh, <= prúdový výstup ESP32).

Na zostavenie ďalších komponentov som vykonal nasledujúce kroky:

  • Odizolujte a pocínujte konce každého 4 -palcového drôtu, ako je znázornené na obrázku.
  • Spájkujte jeden koniec žltého vodiča a jeden koniec odporu 33 kOhm na kolík „Tip“konektora telefónu.
  • Spájkujte jeden koniec čierneho vodiča na voľný koniec odporu 33 kOhm a odstrihnite nadbytočný drôt rezistora.
  • Na drôty a odpor sú použité zmršťovacie hadičky.
  • Jeden koniec červeného vodiča pripájajte na kolík „Sleeve“na konektore telefónu.
  • Voľný koniec žltého vodiča spájkujte na kolík 36 v súprave WiFi 32.
  • Voľný koniec čierneho vodiča spájkujte s kolíkom GND v súprave WiFi 32.
  • Voľný koniec červeného vodiča spájkujte s kolíkom 3V3 v súprave WiFi 32.
  • Spájkujte jeden zelený vodič na jeden vývod piezoelektrického bzučiaka.
  • Zostávajúci zelený vodič spájkujte so zvyšným vývodom piezoelektrického bzučiaka
  • Voľný koniec jedného zo zelených piezo drôtov spájkujte na pin 32 v súprave WiFi 32.
  • Voľný koniec zostávajúcich zelených piezoelektrických vodičov spájkujte s kolíkom GND v súprave WiFi 32.
  • Pripojte teplotnú sondu do konektora telefónu.

Keď sú všetky káble dokončené, dvakrát som skontroloval svoju prácu.

Krok 3: Inštalácia softvéru

Inštalácia softvéru
Inštalácia softvéru

Súbor „AnalogInput.ino“je súborom prostredia Arduino obsahujúcim softvér pre návrh. Okrem tohto súboru budete potrebovať grafickú knižnicu "U8g2lib" pre OLED displej WiFi Kit32 (ďalšie informácie o tejto knižnici nájdete na

S nainštalovanou grafickou knižnicou U8g2lib vo vašom adresári Arduino a načítaním „AnalogInput.ino“do prostredia Arduino skompilujte a stiahnite softvér do sady WiFi Kit 32. Po stiahnutí a spustení sa zobrazí horný riadok displeja OLED v súprave WiFi 32 by malo znieť „Teplota“s aktuálnou teplotou zobrazenou veľkým textom v strede displeja.

Dotykom stredného tlačidla (T5) zobrazíte obrazovku „Nastaviť teplotu alarmu“. Nastavte teplotu budíka stlačením ľavého tlačidla (T4) alebo pravého tlačidla (T6) podľa popisu v úvode. Na otestovanie alarmu nastavte teplotu alarmu na rovnakú alebo nižšiu ako aktuálna teplota a alarm by mal znieť. Po dokončení nastavenia teploty budíka sa dotknite stredného tlačidla, aby ste sa vrátili na zobrazenie teploty.

Hodnoty dProbeA, dProbeB, dProbeC a dResistor v softvéri sú hodnoty, ktoré som určil počas kalibrácie sondy, ktorú som použil v tomto návrhu, a mali by vytvárať hodnoty teploty s presnosťou na niekoľko stupňov. Ak nie, alebo ak je požadovaná vyššia presnosť, potom nasleduje kalibrácia.

Krok 4: Kalibrácia teplotnej sondy NTP

Kalibrácia teplotnej sondy NTP
Kalibrácia teplotnej sondy NTP

Na kalibráciu teplotnej sondy sú potrebné nasledujúce položky:

  • Jeden digitálny ohmmeter.
  • Jeden známy presný digitálny teplomer schopný 0 až 250 stupňov F.
  • Jeden pohár ľadovej vody.
  • Jeden hrniec vriacej vody (buďte veľmi, veľmi opatrní!).

Začnite získaním skutočnej hodnoty odporu 33 k:

  • Odpojte napájanie z dosky WiFi Kit 32.
  • Odpojte teplotnú sondu z konektora telefónu (v závislosti od digitálneho ohmmetra môže byť tiež potrebné odpájkovať čierny vodič zo sady WiFi 32).
  • Otvorte tabuľku Steinhart-Hart.
  • Zmerajte hodnotu odporu 33 kOhm pomocou digitálneho ohmmetra a zadajte ho do žltého poľa „Odpor“v tabuľke a do premennej „dResistor“v softvéri. Aj keď sa to môže zdať prehnané, 1% odpor 33 kOhm môže skutočne ovplyvniť presnosť zobrazenia teploty.
  • Pripojte teplotnú sondu do konektora telefónu.

Ďalej získajte Steinhart-Hartove koeficienty:

  • Zapnite známy presný digitálny teplomer.
  • Pripojte zdroj napájania USB k súprave WiFi 32.
  • Súčasne stlačte a podržte ľavé (T4) a pravé (T6) tlačidlo, kým sa nezobrazí displej „Termistor sa počíta“.
  • Nechajte displeje digitálneho teplomera a počítadla termistora stabilizovať.
  • Zadajte teplotu a počty termistorov do žltých stĺpcov „Stupne F z teplomera“a „Počet AD z ESP32“v riadku „Izba“.
  • Vložte digitálny teplomer a sondy termistora do ľadovej vody a nechajte obidva displeje stabilizovať.
  • Zadajte teplotu a počty termistorov do žltých stĺpcov „Stupne F z teplomera“a „Počet AD z ESP32“v riadku „Studená voda“.
  • Vložte digitálny teplomer a sondy termistora do vriacej vody a nechajte obidva displeje stabilizovať.
  • Zadajte teplotu a počty termistorov do žltých stĺpcov „Stupne F z teplomera“a „Počet AD z ESP32“v riadku „Vriaca voda“.
  • Skopírujte zelený koeficient „A:“do premennej „dProbeA“v zdrojovom kóde.
  • Skopírujte zelený koeficient „B:“do premennej „dProbeB“v zdrojovom kóde.
  • Skopírujte zelený koeficient „C:“do premennej „dProbeC“v zdrojovom kóde.

Skompilovajte a stiahnite softvér do súpravy WiFi Kit 32.

Krok 5: 3D tlač puzdra a konečná montáž

3D tlač puzdra a finálna montáž
3D tlač puzdra a finálna montáž
3D tlač puzdra a konečná montáž
3D tlač puzdra a konečná montáž
3D tlač puzdra a finálna montáž
3D tlač puzdra a finálna montáž

Vytlačil som „Case, Top.stl“aj „Case, Bottom.stl“vo výške vrstvy.1 mm, 50% výplň, bez podpier.

Po vytlačení puzdra som zostavil elektroniku a puzdro nasledovne:

  • Odspájkoval som vodiče z troch zástrčiek s dierami, zatlačil diery do polohy v puzdre „Case, Top.stl“a potom som znova spájkoval káble k dieram, pričom som pozorne zaznamenal ľavý (T4), stredný (T5) a pravý konektor. (T6) a príslušné tlačidlá.
  • Zaistite konektor telefónu k okrúhlemu otvoru v puzdre „Bottom.stl“pomocou priloženej matice.
  • Piezo bzučiak je umiestnený v spodnej časti puzdra vedľa konektora telefónu a zaistený na mieste obojstrannou páskou.
  • Zasuňte súpravu WiFi Kit 32 na miesto do spodnej zostavy puzdra a uistite sa, že je port USB v súprave WiFi Kit 32 zarovnaný s oválnym otvorom v spodnej časti puzdra (NETLAČTE na displej OLED, aby ste súpravu WiFi 32 umiestnili do spodnej časti puzdra zhromaždenie, v tomto mi dôverujte, len to nerobte!).
  • Horná zostava puzdra je pritlačená na spodnú zostavu skrinky a zaistená na mieste pomocou malých bodiek hrubého kyanoakrylátového lepidla v rohoch.

Krok 6: O softvéri

O softvéri
O softvéri

Súbor „AnalogInput.ino“je úpravou súboru „Buttons.ino“z môjho predchádzajúceho Instructable „https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/“. Pôvodné tri sekcie kódu „setup ()“, „loop ()“a „InterruptService ()“som upravil tak, aby obsahovali softvér pre sondu a alarm, a pridal som ďalšie tri sekcie kódu „Analog ()“, „Tlačidlá ()“a „Displej ()“na vyčistenie „slučky ()“a na pridanie potrebného softvéru pre sondu a alarm.

„Analog ()“obsahuje kód potrebný na načítanie počtu termistorov do poľa, priemer priemerov poľa počtov, pomocou deliča napätia generujte hodnotu termistora a nakoniec použite Steinhart-Hartove rovnice a rovnice konverzie teploty na generovanie stupňov Fahrenheita.

„Buttons ()“obsahuje kód potrebný na spracovanie stlačení tlačidiel a úpravu teploty alarmu.

„Displej ()“obsahuje kód potrebný na zobrazenie informácií na displeji OLED.

Ak máte akékoľvek otázky alebo pripomienky týkajúce sa kódu alebo akéhokoľvek iného aspektu tohto pokynu, pokojne sa pýtajte a ja sa budem snažiť na ne odpovedať.

Dúfam, že sa vám to páčilo (a stále ste hore)!

Krok 7: „Pripravovaný projekt“

The
The

Nadchádzajúci projekt „Intelligrill® Pro“je monitor s fajčením s dvojitou teplotou, ktorý ponúka:

  • Výpočty teplotnej sondy Steinhart-Hart (na rozdiel od „vyhľadávacích“tabuliek) na zvýšenie presnosti zahrnuté v tomto návode.
  • Prediktívny čas na dokončenie na sonde 1 zahŕňajúci zvýšenú presnosť odvodenú z výpočtov Steinhart-Hart.
  • Druhá sonda, sonda 2, na monitorovanie teploty fajčiara (obmedzená na 32 až 399 stupňov).
  • Kapacitné dotykové ovládacie prvky vstupu (ako v predchádzajúcom návode).
  • Diaľkové monitorovanie WIFI (s pevnou IP adresou umožňuje monitorovanie postupu fajčiara odkiaľkoľvek, kde je k dispozícii internetové pripojenie).
  • Rozšírený teplotný rozsah (32 až 399 stupňov).
  • Zvukové alarmy dokončenia vo vysielači Intelligrill® a na väčšine monitorovacích zariadení s podporou WiFi.
  • Zobrazenie teploty v stupňoch F alebo stupňoch C.
  • Formát času buď v HH: MM: SS alebo HH: MM. Zobrazenie batérie vo voltoch alebo v % nabitých.
  • A výstup PID pre fajčiarov na báze šneku.

„Intelligrill® Pro“stále testuje, aby sa stal najpresnejším, funkciami nabitým a spoľahlivým procesorom Intelligrill založeným na HTML, ktorý som navrhol. Je to stále v teste, ale s jedlom, ktoré mi pomáha pripraviť sa počas testovania, som pribral viac ako niekoľko kíl.

Ešte raz dúfam, že si to užijete!

Odporúča: