Isi kandungan:

Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu .: 7 Langkah (dengan Gambar)
Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu .: 7 Langkah (dengan Gambar)

Video: Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu .: 7 Langkah (dengan Gambar)

Video: Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu .: 7 Langkah (dengan Gambar)
Video: ALAT PENGUKUR SUHU DAN KELEMBABAN MENGGUNAKAN DHT22 DAN ESP32 2024, Julai
Anonim
Image
Image
Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu
Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu

Masih dalam perjalanan untuk menyelesaikan "projek yang akan datang", "Termometer Memasak Probe Suhu ESP32 NTP Dengan Pembetulan Steinhart-Hart dan Penggera Suhu" adalah Instructable yang menunjukkan bagaimana saya menambahkan probe suhu NTP, piezo buzzer dan perisian ke sentuhan kapasitif saya. Input Sentuh Kapasitif ESP32 Menggunakan "Palam Lubang Logam" untuk Tombol "untuk membuat termometer memasak yang ringkas tetapi tepat dengan penggera suhu yang dapat diprogramkan.

Ketiga butang sentuh kapasitif membolehkan tahap penggera suhu ditetapkan. Menekan butang tengah memaparkan paparan "Tetapkan Suhu Penggera", yang membolehkan butang kiri dan kanan masing-masing mengurangkan atau meningkatkan suhu penggera. Menekan dan melepaskan butang kiri akan mengurangkan suhu penggera satu darjah, sementara menekan dan menahan butang kiri akan terus mengurangkan suhu penggera sehingga dilepaskan. Begitu juga, menekan dan melepaskan butang kanan akan meningkatkan suhu penggera satu darjah, sementara menekan dan menahan butang kanan akan terus meningkatkan suhu penggera sehingga dilepaskan. Setelah selesai menyesuaikan suhu penggera, cukup sentuh butang tengah sekali lagi untuk kembali ke paparan suhu. Pada bila-bila masa suhu sama dengan atau lebih tinggi daripada suhu penggera, bel piezo akan berbunyi.

Dan seperti yang disebutkan, probe suhu NTP digunakan dalam reka bentuk bersama dengan persamaan dan pekali Steinhart-Hart yang diperlukan untuk pembacaan suhu yang tepat. Saya telah memasukkan keterangan yang terlalu banyak mengenai persamaan Steinhart-Hart, pekali Steinhart-Hart, pembahagi voltan dan aljabar dalam Langkah 1 (sebagai bonus, ia membuatkan saya tidur setiap kali saya membacanya, jadi anda mungkin mahu langkau Langkah 1 dan terus ke Langkah 2: Memasang Elektronik, kecuali sudah tentu anda memerlukan tidur siang).

Sekiranya anda memutuskan untuk membina termometer memasak ini, untuk penyesuaian dan percetakan 3D, saya telah memasukkan fail berikut:

  • Fail Arduino "AnalogInput.ino" yang mengandungi perisian untuk reka bentuk.
  • Fail cad Autodesk Fusion 360 untuk kes yang menunjukkan bagaimana kes itu dirancang.
  • Fail Cura 3.4.0 STL "Case, Top.stl" dan "Case, Bottom.stl" siap dicetak 3D.

Anda juga memerlukan keakraban dengan persekitaran Arduino serta kemahiran dan peralatan pematerian, dan di samping itu mungkin memerlukan akses ke ohimeter digital, termometer dan sumber suhu yang tepat untuk penentukuran.

Dan seperti biasa, saya mungkin lupa satu atau dua fail atau yang tahu apa lagi, jadi jika anda mempunyai sebarang pertanyaan, jangan ragu untuk bertanya kerana saya melakukan banyak kesilapan.

Elektronik direka dengan menggunakan pensil, kertas dan kalkulator berkuasa suria Radio Shack EC-2006a (Cat. No. 65-962a).

Perisian ini dirancang menggunakan Arduino 1.8.5.

Sarung ini dirancang menggunakan Autodesk Fusion 360, diiris menggunakan Cura 3.4.0, dan dicetak dalam PLA pada Ultimaker 2+ Extended dan Ultimaker 3 Extended.

Dan satu catatan terakhir, saya tidak menerima pampasan dalam bentuk apa pun, termasuk tetapi tidak terhad kepada sampel percuma, untuk mana-mana komponen yang digunakan dalam reka bentuk ini

Langkah 1: Matematik, Matematik dan Matematik Lebih Banyak: Steinhart – Hart, Koefisien, dan Pembahagi Perintang

Matematik, Matematik dan Matematik Lebih Banyak: Steinhart – Hart, Koefisien, dan Pembahagi Perintang
Matematik, Matematik dan Matematik Lebih Banyak: Steinhart – Hart, Koefisien, dan Pembahagi Perintang

Reka bentuk saya yang terdahulu menggunakan probe suhu NTC menggunakan teknik mencari jadual untuk menukar voltan masuk dari pembahagi perintang ke suhu. Oleh kerana ESP32 mampu menghasilkan input analog dua belas bit, dan kerana saya merancang untuk meningkatkan ketepatan, saya memutuskan untuk melaksanakan persamaan "Steinhart-Hart" dalam kod untuk penukaran voltan ke suhu.

Pertama kali diterbitkan pada tahun 1968 oleh John S. Steinhart dan Stanley R. Hart, persamaan Steinhart-Hart mendefinisikan ketahanan terhadap hubungan suhu dari probe suhu NTC seperti berikut:

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

di mana:

  • T ialah darjah Kelvin.
  • A, B, C adalah pekali Steinhart-Hart (lebih banyak lagi dalam sekejap).
  • Dan Thermistor adalah nilai rintangan termistor probe suhu pada suhu semasa.

Jadi mengapa persamaan Steinhart-Hart yang kelihatan rumit ini diperlukan untuk termometer digital berasaskan probe suhu NTC yang sederhana? Probe suhu NTC yang "ideal" akan memberikan gambaran rintangan linier dari suhu sebenar, oleh itu persamaan linear sederhana yang melibatkan input voltan dan penskalaan akan menghasilkan persembahan suhu yang tepat. Walau bagaimanapun, probe suhu NTC tidak linear dan, apabila digabungkan dengan input analog bukan linear hampir semua pemproses papan tunggal kos rendah seperti Kit WiFi 32, menghasilkan input analog bukan linear dan dengan itu bacaan suhu tidak tepat. Dengan menggunakan persamaan seperti Steinhart-Hart bersama dengan penentukuran yang teliti, pembacaan suhu yang sangat tepat menggunakan probe suhu NTC dengan pemproses papan tunggal kos rendah dapat dicapai dengan menghasilkan penghitungan suhu yang sangat dekat.

Jadi kembali ke persamaan Steinhart-Hart. Persamaan menggunakan tiga pekali A, B dan C untuk menentukan suhu sebagai fungsi rintangan termistor. Dari mana ketiga-tiga pekali ini berasal? Beberapa pengeluar memberikan pekali ini dengan probe suhu NTC mereka, dan yang lain tidak. Tambahan pula, pekali yang disediakan pengeluar mungkin atau tidak mungkin untuk probe suhu yang tepat yang anda beli, dan kemungkinan besar pekali mewakili sampel besar dari semua probe suhu yang mereka buat dalam jangka masa tertentu. Dan akhirnya, saya tidak dapat mencari pekali untuk probe yang digunakan dalam reka bentuk ini.

Tanpa pekali yang diperlukan, saya membuat Steinhart-Hart Spreadsheet, kalkulator berasaskan spreadsheet yang membantu menghasilkan pekali yang diperlukan untuk probe suhu NTC (saya kehilangan pautan ke kalkulator berasaskan web serupa yang saya gunakan bertahun-tahun yang lalu, jadi saya membuatnya). Untuk menentukan pekali untuk probe suhu, saya mulakan dengan mengukur nilai perintang 33k yang digunakan dalam pembahagi voltan dengan ohmmeter digital, dan memasukkan nilainya ke kawasan kuning spreadsheet berlabel "Resistor". Seterusnya, saya meletakkan probe suhu di tiga persekitaran; suhu bilik pertama, air ais kedua dan air mendidih ketiga, bersama dengan termometer digital yang diketahui dengan tepat, dan memberi masa untuk suhu pada termometer dan jumlah input termistor yang muncul pada paparan WiFi Kit 32 (lebih lanjut mengenai ini kemudian) akan stabil. Dengan jumlah input suhu dan termistor stabil, saya memasukkan suhu yang ditunjukkan oleh termometer tepat yang diketahui dan kiraan termistor muncul pada paparan WiFi Kit 32 ke kawasan kuning spreadsheet berlabel "Degrees F from Thermometer" dan "AD Kira dari Kit WiFi 32 "masing-masing, untuk setiap tiga persekitaran. Setelah semua pengukuran dimasukkan, kawasan hijau spreadsheet memberikan pekali A, B dan C yang diperlukan oleh persamaan Steinhart-Hart yang kemudian hanya disalin dan ditampal ke dalam kod sumber.

Seperti yang telah disebutkan sebelumnya, output dari persamaan Steinhart-Hart adalah dalam darjah Kelvin, dan reka bentuk ini memaparkan darjah Fahrenheit. Penukaran dari darjah Kelvin ke darjah Fahrenheit adalah seperti berikut:

Pertama, ubah darjah Kelvin ke darjah Celsius dengan mengurangkan 273.15 (darjah Kelvin) dari persamaan Steinhart-Hart:

Darjah C = (A + (B * (log (Thermistor))) + (C * log (Thermistor) * log (Thermistor) * log (Thermistor))) - 273.15

Dan kedua, ubah darjah Celsius ke darjah Fahrenheit seperti berikut:

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

Dengan persamaan dan pekali Steinhart-Hart selesai, persamaan kedua diperlukan untuk membaca output pembahagi perintang. Model pembahagi perintang yang digunakan dalam reka bentuk ini adalah:

vRef <--- Thermistor <--- vOut <--- Resistor <--- Tanah

di mana:

  • vRef dalam reka bentuk ini ialah 3.3vdc.
  • Thermistor adalah probe suhu NTC yang digunakan dalam pembahagi perintang.
  • vOut adalah output voltan pembahagi perintang.
  • Resistor adalah perintang 33k yang digunakan dalam pembahagi perintang.
  • Dan tanah, baik, tanah.

vDaripada pembahagi perintang dalam reka bentuk ini dilampirkan pada input analog WiFi Kit 32 A0 (pin 36), dan output voltan pembahagi perintang dikira seperti berikut:

vOut = vRef * Perintang / (Perintang + Termistor)

Namun, seperti yang dinyatakan dalam persamaan Steinhart-Hart, nilai rintangan termistor diperlukan untuk mendapatkan suhu, bukan output voltan pembahagi perintang. Oleh itu, menyusun semula persamaan untuk mengeluarkan nilai termistor memerlukan penggunaan aljabar kecil seperti berikut:

Gandakan kedua-dua sisi dengan "(Resistor + Thermistor)" menghasilkan:

vOut * (Resistor + Thermistor) = vRef * Perintang

Bagilah kedua-dua belah pihak dengan "vOut" yang menghasilkan:

Resistor + Thermistor = (vRef * Resistor) / vOut

Kurangkan "Resistor" dari kedua belah pihak yang menghasilkan:

Thermistor = (vRef * Resistor / vOut) - Perintang

Dan akhirnya, dengan menggunakan harta pengagihan, permudahkan:

Thermistor = Perintang * ((vRef / vOut) - 1)

Menggantikan jumlah input analog Kit WiFi 32 A0 dari 0 hingga 4095 untuk vOut, dan menggantikan nilai 4096 untuk vRef, persamaan pembahagi perintang memberikan nilai rintangan termistor yang diperlukan oleh persamaan Steinhart-Hart menjadi:

Termistor = Perintang * ((Kira Masukan Analog 4096) - 1)

Jadi dengan matematik di belakang kita, mari kita mengumpulkan beberapa elektronik.

Langkah 2: Pemasangan Elektronik

Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik

Untuk elektronik, sebelum ini saya memasang demonstrator ESP32 Capacitive Touch https://www.instructables.com/id/ESP32-Capacitive… Dengan pemasangan itu, komponen tambahan berikut diperlukan:

  • Lima, 4 "kepingan dawai 28awg (satu merah, satu hitam, satu kuning dan dua hijau).
  • Satu, siasatan Maverick "ET-72 Temperature Probe" (https://www.maverickthermometers.com/product/pr-003/).
  • Satu, penyambung "telefon" 2.5mm, pemasangan panel (https://www.mouser.com/ProductDetail/502-TR-2A).
  • Satu, perintang 33k ohm 1% 1/8 watt.
  • Satu, piezo buzzer https://www.adafruit.com/product/160. Sekiranya anda memilih buzzer piezo yang lain pastikan ia sesuai dengan spesifikasi yang satu ini (gelombang persegi didorong, <= output semasa ESP32).

Untuk memasang komponen tambahan, saya melakukan langkah berikut:

  • Dilucutkan dan diikat hujung setiap panjang wayar 4 "seperti yang ditunjukkan.
  • Memateri satu hujung wayar kuning dan satu hujung perintang 33k ohm ke pin "Petua" penyambung telefon.
  • Memateri satu hujung wayar hitam ke hujung bebas perintang 33k ohm dan memotong lebihan wayar perintang.
  • Tiub pengecutan haba yang digunakan di atas wayar dan perintang.
  • Memateri satu hujung wayar merah ke pin "Lengan" pada penyambung telefon.
  • Memateri hujung bebas wayar kuning ke pin 36 pada WiFi Kit 32.
  • Memateri hujung wayar hitam percuma ke pin GND pada WiFi Kit 32.
  • Memateri hujung bebas wayar merah ke pin 3V3 pada WiFi Kit 32.
  • Memateri satu wayar hijau ke satu plumbum piezo.
  • Memateri baki dawai hijau ke plumbum buzzer piezo yang tersisa
  • Memateri hujung percuma salah satu wayar piezo hijau ke pin 32 pada WiFi Kit 32.
  • Memateri hujung kabel piezo hijau yang tersisa ke pin GND pada Kit WiFi 32.
  • Pasang probe suhu ke penyambung telefon.

Dengan semua pendawaian selesai, saya memeriksa semula kerja saya.

Langkah 3: Memasang Perisian

Memasang Perisian
Memasang Perisian

Fail "AnalogInput.ino" adalah fail persekitaran Arduino yang mengandungi perisian untuk reka bentuk. Sebagai tambahan kepada fail ini, anda memerlukan pustaka grafik "U8g2lib" untuk paparan OLED WiFi Kit32 (lihat https://github.com/olikraus/u8g2/wiki untuk maklumat lebih lanjut mengenai perpustakaan ini).

Dengan pustaka grafik U8g2lib dipasang di direktori Arduino anda, dan "AnalogInput.ino" dimuat ke dalam persekitaran Arduino, menyusun dan memuat turun perisian ke dalam Kit WiFi 32. Setelah dimuat dan dijalankan, barisan teratas paparan OLED pada Kit WiFi 32 harus membaca "Suhu" dengan suhu semasa dipaparkan dalam teks besar di tengah paparan.

Sentuh butang tengah (T5) untuk menampilkan paparan "Tetapkan Suhu Penggera". Atur suhu penggera dengan menekan butang kiri (T4) atau butang kanan (T6) seperti yang dijelaskan dalam pendahuluan. Untuk menguji penggera, atur suhu penggera agar sama atau lebih rendah daripada suhu semasa dan penggera harus berbunyi. Setelah selesai menetapkan suhu penggera, sentuh butang tengah untuk kembali ke paparan suhu.

Nilai dProbeA, dProbeB, dProbeC dan dResistor dalam perisian adalah nilai yang saya tentukan semasa penentukuran probe yang saya gunakan dalam reka bentuk ini dan harus menghasilkan bacaan suhu tepat dalam beberapa darjah. Sekiranya tidak, atau jika ketepatan yang lebih tinggi diinginkan, penentukuran seterusnya.

Langkah 4: Menentukur Probe Suhu NTP

Menentukur Probe Suhu NTP
Menentukur Probe Suhu NTP

Item berikut diperlukan untuk mengkalibrasi probe suhu:

  • Satu ohmmeter digital.
  • Satu termometer digital tepat yang diketahui mampu 0 hingga 250 darjah F.
  • Satu gelas air ais.
  • Satu periuk air mendidih (berhati-hatilah!).

Mulakan dengan mendapatkan nilai perintang 33k sebenar:

  • Keluarkan kuasa dari papan WiFi Kit 32.
  • Keluarkan probe suhu dari penyambung telefon (mungkin juga perlu untuk menanggalkan kabel hitam dari Kit WiFi 32, bergantung pada ohmmeter digital anda).
  • Buka Spreadsheet Steinhart-Hart.
  • Ukur nilai perintang 33k ohm menggunakan ohmmeter digital dan masukkan ke dalam kotak "Resistor" kuning di hamparan dan ke dalam pemboleh ubah "dResistor" dalam perisian. Walaupun ini mungkin kelihatan berlebihan, penahan 33% ohm 1% memang boleh mempengaruhi ketepatan paparan suhu.
  • Pasangkan probe suhu ke penyambung telefon.

Seterusnya dapatkan pekali Steinhart-Hart:

  • Hidupkan termometer digital tepat yang diketahui.
  • Pasang sumber kuasa USB ke dalam WiFi Kit 32.
  • Serentak tekan dan tahan butang kiri (T4) dan kanan (T6) sehingga paparan "Thermistor Counts" muncul.
  • Benarkan paparan bilangan termometer digital dan termistor stabil.
  • Masukkan pengiraan suhu dan termistor ke dalam lajur "Degree F from Thermometer" dan "Hitungan AD dari ESP32" kuning pada baris "Room".
  • Masukkan probe termometer digital dan termistor ke dalam air ais dan biarkan kedua paparan stabil.
  • Masukkan pengiraan suhu dan termistor ke dalam lajur "Derajat F dari Termometer" kuning dan "Kiraan AD dari ESP32" pada baris "Air Sejuk".
  • Masukkan probe termometer digital dan termistor ke dalam air mendidih dan biarkan kedua paparan stabil.
  • Masukkan pengiraan suhu dan termistor ke dalam lajur "Derajat F dari Termometer" kuning dan "Kiraan AD dari ESP32" pada baris "Air Mendidih".
  • Salin pekali "A:" hijau ke dalam pemboleh ubah "dProbeA" dalam kod sumber.
  • Salin pekali hijau "B:" ke dalam pemboleh ubah "dProbeB" dalam kod sumber.
  • Salin pekali "C:" hijau ke dalam pemboleh ubah "dProbeC" dalam kod sumber.

Susun dan muat turun perisian ke dalam WiFi Kit 32.

Langkah 5: Mencetak 3D Kes dan Perhimpunan Akhir

3D Mencetak Kes dan Perhimpunan Akhir
3D Mencetak Kes dan Perhimpunan Akhir
3D Mencetak Kes dan Perhimpunan Akhir
3D Mencetak Kes dan Perhimpunan Akhir
3D Mencetak Kes dan Perhimpunan Akhir
3D Mencetak Kes dan Perhimpunan Akhir

Saya mencetak kedua-dua "Case, Top.stl" dan "Case, Bottom.stl" pada ketinggian lapisan.1mm, isian 50%, tanpa sokongan.

Dengan cetakan yang dicetak, saya memasang elektronik dan begnya seperti berikut:

  • Saya melepaskan wayar dari palam tiga lubang, menekan palam lubang ke kedudukan dalam "Case, Top.stl", kemudian menyisipkan semula wayar ke palam lubang, dengan berhati-hati mencatat kiri (T4), tengah (T5) dan kanan (T6) wayar dan butang masing-masing.
  • Pasangkan penyambung telefon ke lubang bulat di "Case, Bottom.stl" menggunakan mur yang disertakan.
  • Letakkan buzzer piezo di unit bawah casing di sebelah penyambung telefon, dan diikat dengan pita dua sisi.
  • Geserkan Kit WiFi 32 ke kedudukan ke dalam unit bawah casing, pastikan port USB pada Kit WiFi 32 sejajar dengan lubang bujur di bahagian bawah casing (JANGAN tekan pada paparan OLED untuk meletakkan Kit WiFi 32 di bahagian bawah casing perhimpunan, percayalah pada yang ini, jangan buat!).
  • Menekan sarung atas casing ke unit bawah casing dan diikat di tempatnya dengan menggunakan titik-titik kecil gam cyanoacrylate tebal di sudut.

Langkah 6: Mengenai Perisian

Mengenai Perisian
Mengenai Perisian

Fail "AnalogInput.ino" adalah pengubahsuaian fail "Buttons.ino" dari Instructable saya sebelumnya "https://www.instructables.com/id/ESP32-Capacitive-Touch-Buttons/". Saya telah mengubahsuai tiga bahagian kod asal "setup ()", "loop ()" dan "InterruptService ()" untuk memasukkan perisian untuk siasatan dan penggera, dan saya telah menambahkan tiga bahagian kod tambahan "Analog ()", "Tombol ()" dan "Paparan ()" untuk membersihkan "gelung ()" dan untuk menambahkan perisian yang diperlukan untuk siasatan dan penggera.

"Analog ()" mengandungi kod yang diperlukan untuk membaca kiraan termistor menjadi array, rata-rata susunan kiraan, menggunakan pembahagi voltan untuk menghasilkan nilai termistor dan akhirnya menggunakan persamaan Steinhart-Hart dan persamaan penukaran suhu untuk menghasilkan darjah Fahrenheit.

"Butang ()" mengandungi kod yang diperlukan untuk memproses penekanan butang dan mengedit suhu penggera.

"Display ()" mengandungi kod yang diperlukan untuk menunjukkan maklumat pada paparan OLED.

Sekiranya anda mempunyai pertanyaan atau komen mengenai kod tersebut, atau aspek lain dari Instructable ini, jangan ragu untuk bertanya dan saya akan berusaha sebaik mungkin untuk menjawabnya.

Saya harap anda menikmatinya (dan masih terjaga)!

Langkah 7: "Projek Akan Datang"

The
The

Projek yang akan datang, "Intelligrill® Pro", adalah monitor perokok probe suhu ganda yang menampilkan:

  • Pengiraan probe suhu Steinhart-Hart (berbanding dengan jadual "cari") untuk peningkatan ketepatan seperti yang digabungkan dalam Instructable ini.
  • Masa ramalan hingga selesai pada probe 1 yang menggabungkan peningkatan ketepatan yang diperoleh dari pengiraan Steinhart-Hart.
  • Probe kedua, probe 2, untuk memantau suhu perokok (terhad kepada 32 hingga 399 darjah).
  • Kawalan input sentuhan kapasitif (seperti dalam Instructable sebelumnya).
  • Pemantauan jarak jauh berasaskan WIFI (dengan alamat IP tetap, membolehkan pemantauan kemajuan perokok dari mana sahaja sambungan internet tersedia).
  • Julat suhu yang dilanjutkan (32 hingga 399 darjah).
  • Penggera penyelesaian yang dapat didengar baik dalam pemancar Intelligrill® dan pada kebanyakan peranti pemantauan berkemampuan WiFi.
  • Paparan suhu sama ada darjah F atau darjah C.
  • Format masa sama ada HH: MM: SS atau HH: MM. Paparan bateri sama ada volt atau% dicas.
  • Dan output PID untuk perokok berasaskan auger.

"Intelligrill® Pro" masih diuji untuk menjadi Intelligrill® berasaskan HTML yang paling tepat, dilengkapi dengan ciri dan boleh dipercayai. Masih dalam ujian, tetapi dengan makanan yang membantu untuk disiapkan semasa ujian, saya mendapat lebih daripada beberapa paun.

Sekali lagi, saya harap anda menikmatinya!

Disyorkan: