Isi kandungan:

Pengukuran Suhu Menggunakan XinaBox dan Thermistor: 8 Langkah
Pengukuran Suhu Menggunakan XinaBox dan Thermistor: 8 Langkah

Video: Pengukuran Suhu Menggunakan XinaBox dan Thermistor: 8 Langkah

Video: Pengukuran Suhu Menggunakan XinaBox dan Thermistor: 8 Langkah
Video: Membuat pengukur Suhu tanpa sentuh dengan mlx90614 dan Android 2024, November
Anonim
Pengukuran Suhu Menggunakan XinaBox dan Thermistor
Pengukuran Suhu Menggunakan XinaBox dan Thermistor

Ukur suhu cecair menggunakan input analog xChip dari XinaBox dan termistor probe.

Langkah 1: Perkara Yang Digunakan dalam Projek Ini

Komponen perkakasan

  • Sensor input analog XinaBox SX02 x 1 xChip dengan ADC
  • XinaBox CC01 x 1 xChip versi Arduino Uno berdasarkan ATmega328P
  • Perintang 10k ohm x 1 10k perintang untuk rangkaian pembahagi voltan
  • Thermistor Probe x 1 10k pada 25 ° C NTC termistor kalis air probe
  • Pengaturcara USB XinaBox IP01 x 1 xChip berdasarkan FT232R Dari FTDI Limited
  • Paparan OLED Pixel XinaBox OD01 x 1 xChip 128x64
  • Penyambung bas XinaBox XC10 x 4 xChip
  • Bekalan Kuasa XinaBox PU01 x 1 xChip USB (Jenis A)
  • Bekalan Kuasa USB 5V x 1 Power Bank atau yang serupa

Aplikasi perisian dan perkhidmatan dalam talian

Arduino IDE

Alatan tangan dan mesin fabrikasi

Pemutar Skru Flathead Untuk mengetatkan atau melonggarkan pengapit skru terminal

Langkah 2: Cerita

Pengenalan

Saya mahu mengukur suhu cecair dengan membuat termometer sederhana. Dengan menggunakan XinaBox xChips saya dapat mencapai ini dengan kesederhanaan relatif. Saya menggunakan input analog SX02 xChip yang menerima 0 - 3.3V, CC01 xChip berdasarkan ATmega328P dan paparan OLD OD01 xChip untuk melihat hasil suhu saya.

Termistor mengukur suhu air dalam gelas

Langkah 3: Muat turun Fail yang Diperlukan

Anda memerlukan perpustakaan dan perisian berikut:

  • xSX0X- Perpustakaan sensor input analog
  • xOD01 - Pustaka paparan OLED
  • Arduino IDE - Persekitaran pembangunan

Klik di sini untuk melihat cara memasang perpustakaan.

Setelah anda memasang Arduino IDE, buka dan pilih "Arduino Pro atau Pro Mini" sebagai papan untuk memuat naik program anda. Pastikan juga pemproses ATmega328P (5V, 16MHz) dipilih. Lihat gambar di bawah.

Pilih papan Arduino Pro atau Pro Mini dan pemproses ATmega328P (5V, 16MHz)

Langkah 4: Berkumpul

Klik programmer xChip, IP01, dan CC01 xChip berasaskan ATmega328P bersama-sama menggunakan penyambung bas XC10 seperti gambar di bawah. Untuk memuat naik ke CC01, anda perlu meletakkan suis di kedudukan 'A' dan 'DCE' masing-masing.

IP01 dan CC01 diklik bersama

Seterusnya, ambil perintang 10kΩ anda dan skru satu hujung di terminal bertanda "IN" dan hujung yang lain di terminal tanah, "GND", pada SX02. Ikuti pendorong pada termistor probe dan skru satu hujung pada Vcc, "3.3V", dan hujung yang lain di terminal "IN". Lihat grafik di bawah.

Sambungan SX02

Sekarang gabungkan OD01 dan SX02 dengan CC01 dengan hanya mengkliknya bersama menggunakan sambungan bas XC10. Lihat di bawah. Unsur perak dalam gambar adalah probe termistor.

Unit lengkap untuk pengaturcaraan

Langkah 5: Program

Masukkan unit ke port USB pada komputer anda. Muat turun atau salin dan tampal kod di bawah ini ke Arduino IDE anda. Kumpulkan dan muat naik kod ke papan anda. Setelah memuat naik program anda harus mula berjalan. Sekiranya anda memeriksa keadaan suhu bilik, anda harus memerhatikan ± 25 ° C pada paparan OLED seperti gambar di bawah.

Selepas memuat naik perhatikan suhu bilik pada paparan OLED

Langkah 6: Termometer Mudah Alih

Keluarkan unit dari komputer anda. Bongkar unit dan pasang semula menggunakan PU01 dan bukannya IP01. Sekarang bawa bekalan kuasa mudah alih 5V USB anda seperti power bank atau yang serupa dan masukkan unit baru ke dalamnya. Anda kini mempunyai termometer mudah alih sejuk anda sendiri dengan ketepatan yang baik. Lihat gambar sampul untuk melihatnya beroperasi. Saya mengukur air panas dalam gelas. Gambar di bawah menunjukkan unit lengkap anda.

Unit lengkap yang terdiri daripada CC01, OD01, SX02 dan PU02.

Langkah 7: Kesimpulannya

Projek ini memerlukan masa kurang dari 10 minit untuk berkumpul dan 20 minit lagi untuk diprogramkan. satu-satunya komponen pasif yang diperlukan adalah perintang. XChips hanya klik bersama-sama menjadikannya sangat mudah.

Langkah 8: Kod

ThermTemp_Display.ino Arduino Penyelidik termistor untuk memahami pengiraan dalam kod.

#masuk // sertakan perpustakaan teras untuk xCHIPs

#include // include perpustakaan sensor input analog #include // include OLED library library #include // include maths function #efinisikan C_Kelvin 273.15 // untuk penukaran dari kelvin ke celsius #define series_res 10000 // nilai perintang siri dalam ohms #define B 3950 // B parameter untuk termistor #define room_tempK 298.15 // suhu bilik di kelvin #define room_res 10000 // ketahanan pada suhu bilik dalam ohm #define vcc 3.3 // voltan bekalan xSX01 SX01 (0x55); // tetapkan voltan apungan alamat i2c; // pemboleh ubah yang mengandungi voltan terukur (0 - 3.3V) terma terapung; // termistor rintangan termistor act_tempK; // suhu sebenar kelvin float act_tempC; // suhu sebenar dalam celsius void setup () {// masukkan kod persediaan anda di sini, untuk dijalankan sekali: // inisialisasi pemboleh ubah ke 0 voltan = 0; term_res = 0; act_tempK = 0; act_tempC = 0; // mulakan komunikasi bersiri Serial.begin (115200); // mulakan komunikasi i2c Wire.begin (); // mulakan sensor input analog SX01.begin (); // mulakan paparan OLED OLED.begin (); // paparan jelas OD01.clear (); // kelewatan untuk menormalkan kelewatan (1000); } gelung void () {// letakkan kod utama anda di sini, untuk dijalankan berulang kali: // baca voltan SX01.poll (); // simpan voltan voltan = SX01.getVoltage (); // hitung rintangan termistor term_res = ((vcc * series_res) / voltan) - siri_res; // hitung suhu sebenar dalam kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (term_res / room_res)); // tukar kelvin menjadi celsius act_tempC = act_tempK - C_Kelvin; // suhu cetak pada paparan OLED // pemformatan manual untuk dipaparkan di tengah OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print ("C"); OD01.println (""); kelewatan (2000); // kemas kini paparan setiap 2 saat}

Disyorkan: