Съдържание:

Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и температурна аларма: 7 стъпки (със снимки)
Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и температурна аларма: 7 стъпки (със снимки)

Видео: Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и температурна аларма: 7 стъпки (със снимки)

Видео: Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и температурна аларма: 7 стъпки (със снимки)
Видео: Электронный кухонный термометр со щупом TP101 -50°C ... +300°C 2024, Юли
Anonim
Image
Image
Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и аларма за температура
Термометър за готвене с температурна сонда ESP32 NTP с корекция на Steinhart-Hart и аларма за температура

Все още на път да завършите „предстоящ проект“, „Термометър за готвене с температурна сонда ESP32 NTP с термометър за корекция и температура на Steinhart-Hart“е инструкция, показваща как добавям NTP температурна сонда, пиезо зумер и софтуер към капацитивния си сензорен инструмент с инструкции ESP32 Капацитивен сензорен вход Използвайки "Метални щепсели за отвори" за бутони "за създаване на прост, но точен термометър за готвене с програмируема аларма за температура.

Трите капацитивни сензорни бутона позволяват да се настрои нивото на алармата за температурата. Натискането на централния бутон показва дисплея "Set Alarm Temperature", който дава възможност на левия и десния бутон съответно да намалят или увеличат температурата на алармата. Натискането и освобождаването на левия бутон ще намали температурата на алармата с един градус, докато натискането и задържането на левия бутон непрекъснато ще намали температурата на алармата, докато се освободи. По същия начин натискането и освобождаването на десния бутон ще повиши температурата на алармата с един градус, докато натискането и задържането на десния бутон непрекъснато ще повишава температурата на алармата, докато се освободи. Когато приключите с регулирането на температурата на алармата, просто докоснете отново централния бутон, за да се върнете към дисплея на температурата. По всяко време температурата е равна или по -висока от температурата на алармата, пиезо зумерът ще прозвучи.

Както бе споменато, при проектирането се използва NTP температурна сонда заедно с уравненията и коефициентите на Steinhart-Hart, необходими за точните показания на температурата. Включих прекалено подробно описание на уравнението на Steinhart-Hart, коефициентите Steinhart-Hart, делителите на напрежението и алгебрата в Стъпка 1 (като бонус, това ме приспива всеки път, когато го чета, така че може да пожелаете да пропуснете Стъпка 1 и преминете направо към Стъпка 2: Сглобяване на електрониката, освен ако разбира се нямате нужда от дрямка).

Ако решите да изградите този термометър за готвене, за персонализиране и 3D печат съм включил следните файлове:

  • Arduino файл "AnalogInput.ino", съдържащ софтуера за проектиране.
  • Autodesk Fusion 360 cad файлове за калъфа, показващи как е проектиран калъфът.
  • Cura 3.4.0 STL файлове "Case, Top.stl" и "Case, Bottom.stl" готови за 3D печат.

Ще ви е необходимо и запознаване със средата Arduino, както и умения и оборудване за запояване, а освен това може да се нуждаете от достъп до точни цифрови омметри, термометри и източници на температура за калибриране.

И както обикновено, вероятно съм забравил файл или два или кой знае какво друго, така че ако имате въпроси, моля не се колебайте да попитате, тъй като правя много грешки.

Електрониката е проектирана с помощта на молив, хартия и калкулатор със слънчева енергия Radio Shack EC-2006a (кат. № 65-962a).

Софтуерът е проектиран с помощта на Arduino 1.8.5.

Калъфът е проектиран с помощта на Autodesk Fusion 360, нарязан с Cura 3.4.0 и отпечатан в PLA на Ultimaker 2+ Extended и Ultimaker 3 Extended.

И една последна бележка, не получавам компенсация под каквато и да е форма, включително, но без да се ограничава до безплатни проби, за всеки от компонентите, използвани в този дизайн

Стъпка 1: Математика, математика и още математика: Steinhart – Hart, коефициенти и резисторни разделители

Математика, математика и още математика: Steinhart – Hart, коефициенти и резисторни делители
Математика, математика и още математика: Steinhart – Hart, коефициенти и резисторни делители

По -ранните ми проекти, включващи температурна сонда NTC, използваха техника за търсене на таблица за преобразуване на входящото напрежение от резисторен делител към температура. Тъй като ESP32 е способен на дванадесет битов аналогов вход и тъй като проектирах за повишена точност, реших да внедря уравнението "Steinhart-Hart" в кода за преобразуване на напрежение в температура.

За първи път публикувано през 1968 г. от John S. Steinhart и Stanley R. Hart, уравнението на Steinhart-Hart определя съотношението устойчивост към температура на температурна сонда NTC, както следва:

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

където:

  • T е градуси по Келвин.
  • A, B, C са коефициентите на Steinhart-Hart (повече за това след малко).
  • Термисторът е стойността на терморезистора на температурния датчик при текущата температура.

И така, защо това привидно сложно уравнение на Steinhart-Hart е необходимо за обикновен цифров термометър, базиран на NTC температурна сонда? "Идеалната" NTC температурна сонда би осигурила линейно съпротивление на действителната температура, като по този начин просто линейно уравнение, включващо входно напрежение и мащабиране, би довело до точно представяне на температурата. Температурните сонди NTC обаче не са линейни и, когато се комбинират с нелинейния аналогов вход на почти всички евтини процесори с единична платка, като например WiFi Kit 32, произвеждат нелинейни аналогови входове и по този начин неточни показания на температурата. Чрез използване на уравнение като Steinhart-Hart заедно с внимателно калибриране, могат да се постигнат много точни показания на температурата с помощта на температурни сонди NTC с евтин процесор с единична платка чрез генериране на много близко приближение на действителната температура.

И така, обратно към уравнението на Steinhart-Hart. Уравнението използва трите коефициента A, B и C за определяне на температурата като функция на съпротивлението на термистора. Откъде идват тези три коефициента? Някои производители предоставят тези коефициенти със своите NTC температурни сонди, а други не. Освен това, предоставените от производителя коефициенти могат или не могат да бъдат за точната температурна сонда, която можете да закупите, и най -вероятно са коефициенти, представителни за голяма проба от всички температурни сонди, които произвеждат за определен период от време. И накрая, просто не можах да намеря коефициентите за сондата, използвана в този дизайн.

Без необходимите коефициенти създадох Steinhart-Hart Spreadsheet, електронно-базиран калкулатор, който помага за генерирането на необходимите коефициенти за NTC температурна сонда (загубих връзката към подобен уеб базиран калкулатор, който използвах преди много години, затова създадох този). За да определя коефициентите за температурна сонда, започвам като измервам стойността на 33k резистора, използван в делителя на напрежението с цифров омметър, и въвеждам стойността в жълтата област на електронната таблица с надпис „Резистор“. След това поставям температурната сонда в три среди; първа стайна температура, втора ледена вода и трета вряла вода, заедно с известен точен цифров термометър, и позволяват време за стабилизиране на температурата на термометъра и броя на входа на термистора на дисплея на WiFi Kit 32 (повече за това по -късно). При стабилизиране както на температурата, така и на броя на входа на термистора, въвеждам температурата, посочена от известния точен термометър и броя на термисторите, които се появяват на дисплея на WiFi Kit 32 в жълтата област на електронната таблица с надпис „Степени F от термометъра“и „AD Пребройте от WiFi Kit 32 съответно за всяка от трите среди. След като всички измервания са въведени, зелената зона на електронната таблица предоставя коефициентите A, B и C, изисквани от уравнението на Steinhart-Hart, които след това просто се копират и поставят в изходния код.

Както бе споменато по-рано, изходът на уравнението на Steinhart-Hart е в градуси по Келвин и този дизайн показва градуси по Фаренхайт. Преобразуването от градуси по Келвин в градуси по Фаренхайт е както следва:

Първо, преобразувайте градуси Келвин в градуси по Целзий, като извадите 273,15 (градуса по Келвин) от уравнението на Steinhart-Hart:

Степени C = (A + (B * (log (Thermistor))) + (C * log (Thermistor) * log (Thermistor) * log (Thermistor))) - 273.15

И второ, конвертирайте градуси по Целзий в градуси по Фаренхайт, както следва:

Степени F = ((Степени C * 9) / 5) + 32

С уравнението и коефициентите на Steinhart-Hart е необходимо второ уравнение за отчитане на изхода на резисторния делител. Модел на резисторния разделител, използван в този дизайн, е:

vRef <--- Термистор <--- vOut <--- Резистор <--- Заземяване

където:

  • vRef в този дизайн е 3.3vdc.
  • Термисторът е температурната сонда NTC, използвана в резисторния разделител.
  • vOut е изходното напрежение на резисторния делител.
  • Резисторът е 33k резистор, използван в резисторния разделител.
  • И земята е, добре, земята.

vOut на резисторния разделител в този дизайн е прикрепен към WiFi Kit 32 аналогов вход A0 (щифт 36), а изходното напрежение на резисторния делител се изчислява, както следва:

vOut = vRef * Резистор / (Резистор + термистор)

Въпреки това, както е отбелязано в уравнението на Steinhart-Hart, стойността на термисторното съпротивление е необходима, за да се получи температура, а не изходното напрежение на резисторния делител. Така че пренареждането на уравнението за извеждане на стойността на термистора изисква използването на малка алгебра, както следва:

Умножете двете страни с "(резистор + термистор)", което води до:

vOut * (резистор + термистор) = vRef * резистор

Разделете двете страни с „vOut“, което води до:

Резистор + термистор = (vRef * резистор) / vOut

Извадете "Резистор" от двете страни, което води до:

Термистор = (vRef * Резистор / vOut) - Резистор

И накрая, използвайки разпределителното свойство, опростете:

Термистор = Резистор * ((vRef / vOut) - 1)

Замествайки броя на аналоговите входове на WiFi Kit 32 A0 от 0 до 4095 за vOut и замествайки стойността от 4096 за vRef, уравнението на разделителя на резистора, осигуряващо стойността на съпротивлението на термистора, изисквана от уравнението на Steinhart-Hart, става:

Термистор = Резистор * ((4096 / Брой аналогови входове) - 1)

Така че с математиката зад гърба си, нека съберем малко електроника.

Стъпка 2: Сглобяване на електрониката

Сглобяване на електрониката
Сглобяване на електрониката
Сглобяване на електрониката
Сглобяване на електрониката
Сглобяване на електрониката
Сглобяване на електрониката

За електрониката преди това бях сглобил демонстратора за капацитивно докосване ESP32 https://www.instructables.com/id/ESP32-Capacitive …… С този монтаж са необходими следните допълнителни компоненти:

  • Пет, 4 "парчета тел 28awg (едно червено, едно черно, едно жълто и две зелено).
  • Една, сонда "Температурна сонда ET-72" на Maverick (https://www.maverickthermometers.com/product/pr-003/).
  • Един, 2,5 мм "телефон" конектор, монтаж на панел (https://www.mouser.com/ProductDetail/502-TR-2A).
  • Един, 33k ohm 1% 1/8 ват резистор.
  • Първо, пиезо зумер https://www.adafruit.com/product/160. Ако изберете различен пиезо зумер, уверете се, че отговаря на спецификациите на този (управляван с квадратна вълна, <= текущ изход на ESP32).

За да сглобя допълнителните компоненти, изпълних следните стъпки:

  • Оголени и калайдисани краищата на всяка 4 -инчова дължина тел, както е показано.
  • Запояват единия край на жълтия проводник и единия край на резистора от 33k ohm към щифта "Tip" на конектора на телефона.
  • Запоява се единият край на черния проводник към свободния край на резистора от 33k ohm и се отрязва излишният проводник на резистора.
  • Приложена термосвиваема тръба върху проводниците и резистора.
  • Припоен единия край на червения проводник към щифта "Sleeve" на конектора на телефона.
  • Запоява се свободният край на жълтия проводник към щифт 36 на WiFi Kit 32.
  • Запоява се свободният край на черния проводник към щифта GND на WiFi Kit 32.
  • Запоява се свободният край на червения проводник към щифта 3V3 на WiFi Kit 32.
  • Запоява се един зелен проводник към един проводник на пиезо зумера.
  • Запоява се останалата зелена жица към останалия проводник на пиезо зумера
  • Запоява се свободният край на един от зелените пиезо проводници към щифт 32 на WiFi Kit 32.
  • Запояват свободния край на останалите зелени пиезо проводници към щифта GND на WiFi Kit 32.
  • Включете температурната сонда в конектора на телефона.

С приключването на всички кабели проверих работата си отново.

Стъпка 3: Инсталиране на софтуера

Инсталиране на софтуера
Инсталиране на софтуера

Файлът "AnalogInput.ino" е файл на среда на Arduino, съдържащ софтуера за проектиране. В допълнение към този файл, ще ви е необходима графичната библиотека "U8g2lib" за OLED дисплея WiFi Kit32 (вижте https://github.com/olikraus/u8g2/wiki за допълнителна информация за тази библиотека).

С графичната библиотека U8g2lib, инсталирана във вашата директория Arduino, и „AnalogInput.ino“, заредена в средата на Arduino, компилирайте и изтеглете софтуера в WiFi Kit 32. След като бъде изтеглен и стартиран, горният ред на OLED дисплея на WiFi Kit 32 трябва да чете "Температура" с текущата температура, показана с голям текст в центъра на дисплея.

Докоснете централния бутон (T5), за да се покаже дисплеят "Set Alarm Temperature". Регулирайте температурата на алармата, като натиснете левия бутон (T4) или десния бутон (T6), както е описано във въведението. За да тествате алармата, настройте температурата на алармата да бъде равна или по -ниска от текущата температура и алармата трябва да прозвучи. Когато приключите с настройката на температурата на алармата, докоснете централния бутон, за да се върнете към дисплея на температурата.

Стойностите dProbeA, dProbeB, dProbeC и dResistor в софтуера са стойностите, които определих по време на калибрирането на сондата, която използвах в този дизайн, и трябва да генерират показания за температура с точност до няколко градуса. Ако не, или ако се иска по -висока точност, следва калибрирането.

Стъпка 4: Калибриране на температурната сонда NTP

Калибриране на температурната сонда NTP
Калибриране на температурната сонда NTP

За калибриране на температурната сонда са необходими следните елементи:

  • Един цифров омметър.
  • Един известен точен цифров термометър, способен от 0 до 250 градуса F.
  • Една чаша ледена вода.
  • Една тенджера с вряща вода (бъдете много, много внимателни!).

Започнете с получаване на действителната стойност на резистора 33k:

  • Изключете захранването от платката WiFi Kit 32.
  • Извадете температурната сонда от конектора на телефона (може също да се наложи да премахнете запояването на черния проводник от WiFi Kit 32, в зависимост от вашия цифров омметър).
  • Отворете електронната таблица на Steinhart-Hart.
  • Измерете стойността на 33k омовия резистор с помощта на цифровия омметър и го въведете в жълтото поле "Резистор" в електронната таблица и в променливата "dResistor" в софтуера. Въпреки че това може да изглежда прекалено, резисторът от 33% ома 1% наистина може да повлияе на точността на показването на температурата.
  • Включете температурната сонда в конектора на телефона.

След това получете коефициентите на Steinhart-Hart:

  • Включете известния точен цифров термометър.
  • Включете USB източник на захранване в WiFi Kit 32.
  • Едновременно натиснете и задръжте левия (T4) и десния (T6) бутон, докато се появи дисплеят "Thermistor Counts".
  • Оставете дисплеите за цифров термометър и термистор да се стабилизират.
  • Въведете температурата и броенето на термистора в жълтите колони „Степени F от термометъра“и „AD брои от ESP32“на реда „Стая“.
  • Поставете цифровия термометър и термисторните сонди в ледена вода и оставете двата дисплея да се стабилизират.
  • Въведете температурата и броенето на термистора в жълтите колони „Степени F от термометъра“и „AD Брой от ESP32“на реда „Студена вода“.
  • Поставете цифровия термометър и термисторните сонди във вряща вода и оставете двата дисплея да се стабилизират.
  • Въведете температурата и броенето на термистора в жълтите колони „Степени F от термометъра“и „AD Брой от ESP32“на реда „Кипяща вода“.
  • Копирайте зеления коефициент "A:" в променливата "dProbeA" в изходния код.
  • Копирайте зеления коефициент "B:" в променливата "dProbeB" в изходния код.
  • Копирайте зеления коефициент "C:" в променливата "dProbeC" в изходния код.

Компилирайте и изтеглете софтуера в WiFi Kit 32.

Стъпка 5: 3D отпечатване на корпуса и окончателното сглобяване

3D отпечатване на корпуса и окончателно сглобяване
3D отпечатване на корпуса и окончателно сглобяване
3D отпечатване на корпуса и окончателно сглобяване
3D отпечатване на корпуса и окончателно сглобяване
3D отпечатване на корпуса и окончателно сглобяване
3D отпечатване на корпуса и окончателно сглобяване

Отпечатах "Case, Top.stl" и "Case, Bottom.stl" на.1 мм височина на слоя, 50% пълнеж, без опори.

С отпечатания калъф сглобих електрониката и корпуса, както следва:

  • Разпаявах проводниците от трите пробки с отвори, притиснах тапите с отвори на място в "Case, Top.stl", след това отново запоявах проводниците към тапите за отвори, внимателно отбелязвайки лявата (T4), централната (T5) и дясната (T6) проводници и съответните бутони.
  • Закрепете конектора на телефона към кръглия отвор в "Калъф, отдолу.stl" с помощта на включената гайка.
  • Поставете пиезо зумера в долната част на кутията до телефонния конектор и го закрепете на място с двустранна лента.
  • Плъзнете WiFi Kit 32 на място в долната част на кутията, като се уверите, че USB портът на WiFi Kit 32 е подравнен с овалния отвор в долната част на кутията (НЕ натискайте върху OLED дисплея, за да позиционирате WiFi Kit 32 в дъното на кутията монтаж, повярвайте ми в това, просто не го правете!).
  • Притиснете горната част на кутията към долната част на кутията и я закрепете с помощта на малки точки от дебело цианоакрилатно лепило по ъглите.

Стъпка 6: За софтуера

Относно Софтуера
Относно Софтуера

Файлът "AnalogInput.ino" е модификация на файла "Buttons.ino" от предишния ми Instructable "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/". Промених първоначалните три кодови секции „setup ()“, „loop ()“и „InterruptService ()“, за да включа софтуер за сондата и алармата, и добавих още три кодови секции „Analog ()“, "Buttons ()" и "Display ()" за почистване на "loop ()" и за добавяне на необходимия софтуер за сондата и алармата.

"Analog ()" съдържа кода, необходим за четене на броя на термисторите в масив, осредняване на масива от числа, използване на делителя на напрежението за генериране на стойността на термистора и накрая използва уравненията на Steinhart-Hart и уравненията за преобразуване на температурата за генериране на градуси по Фаренхайт.

"Бутони ()" съдържа кода, необходим за обработка на натискането на бутони и редактиране на температурата на алармата.

„Дисплей ()“съдържа кода, необходим за представяне на информацията на OLED дисплея.

Ако имате въпроси или коментари относно кода или друг аспект на тази инструкция, не се колебайте да попитате и аз ще направя всичко възможно да отговоря на тях.

Надявам се да ви е харесало (и все още сте будни)!

Стъпка 7: „Предстоящ проект“

The
The

Предстоящият проект, "Intelligrill® Pro", е монитор за пушачи с двойна температурна сонда, включващ:

  • Изчисленията на температурната сонда на Steinhart-Hart (за разлика от таблиците "търсене") за повишена точност, включена в тази инструкция.
  • Предсказващо време за завършване на сонда 1, включващо повишената точност, получена от изчисленията на Steinhart-Hart.
  • Втора сонда, сонда 2, за наблюдение на температурата на пушача (ограничена от 32 до 399 градуса).
  • Капацитивни контроли за вход с докосване (както в предишната инструкция).
  • Отдалечен мониторинг, базиран на WIFI (с фиксиран IP адрес, позволява наблюдение на напредъка на пушача отвсякъде, където е налична интернет връзка).
  • Разширен температурен диапазон (32 до 399 градуса).
  • Звукови аларми за завършване както в предавателя Intelligrill®, така и на повечето устройства за наблюдение, поддържащи WiFi.
  • Показване на температурата в градуси F или градуси C.
  • Формат на часа в HH: MM: SS или HH: MM. Дисплей на батерията или в волта, или в % на зареждане.
  • И PID изход за пушачи на шнек.

„Intelligrill® Pro“все още се тества, за да се превърне в най -точния, функционален и надежден HTML базиран Intelligrill®, който съм проектирал. Все още се тества, но с ястията, които помага да се приготви по време на тестването, качих повече от няколко килограма.

Отново се надявам да ви хареса!

Препоръчано: