Pemantau Suhu dengan Bluetooth menggunakan Arduino Nano
Komponen dan Perlengkapan
Arduino Nano R3
×
1
Kabel jumper (umum)
×
1
Modul Bluetooth HC-06
×
1
Termistor NTC
×
1
Resistor 10k ohm
×
1
Resistor 1k ohm
×
1
Resistor 2.21k ohm
×
1
Alat dan Mesin yang Diperlukan
Paiol solder (umum)
Opsional
Printer 3D (umum)
Opsional
Aplikasi dan Layanan Online
MIT App Inventor 2
Tentang Proyek Ini
Dalam tutorial ini saya akan menunjukkan kepada Anda cara menyiapkan pengontrol suhu Arduino yang mengirim nilai ke aplikasi Android melalui koneksi Bluetooth.
Mari kita mulai dengan bahan yang Anda butuhkan untuk membangun proyek ini:
Arduino nano.
Termistor NTC, periksa resistansi 25°C karena ini akan diperlukan dalam kode Arduino untuk mengevaluasi suhu dengan benar menggunakan rumus beta.
Resistor, 2k, 1k dan satu dengan magnitudo yang sama dengan termistor.
Modul Bluetooth HC 06.
Berbagai jumper.
Pertama-tama Anda perlu mulai merangkaikan pembagi tegangan yang digunakan untuk termistor, gambar 1 menunjukkan koneksi yang Anda perlukan untuk menghitung resistansi tidak diketahui termistor sebagai fungsi suhu.
Gambar 1 Pembagi tegangan untuk evaluasi resistansi termistor.
Sirkuit ini memungkinkan Arduino menentukan penurunan tegangan setelah resistor tidak diketahui. Dengan menggunakan nilai resistansi lainnya, kita dapat menghitung nilai resistor tidak diketahui menggunakan bagian kode berikut (gambar 2).
raw= analogRead(analogPin); if(raw) { ratio = raw * Vin; Vout = (ratio)/1024.0; ratio = (Vin/Vout) -1; R2= R1 * ratio;
Gambar 2 Kode Arduino untuk evaluasi resistansi termistor.
Resistansi yang diperoleh kemudian dikonversi menjadi suhu menggunakan rumus beta (figura 3).
CATATAN: nilai beta termistor Anda dan Ro pada 25°C tersedia pada datasheet termistor Anda! Periksa sebelum menjalankan kode!
Anda kemudian perlu menyiapkan modul Bluetooth Anda, gambar 4 akan menunjukkan cara menghubungkan modul Bluetooth seperti yang saya gunakan dalam proyek ini ke yang sebelumnya. Pembagi tegangan diperlukan untuk menghubungkan pin TX1 Arduino ke pin RX modul karena ini hanya menerima 3.3V sebagai input.
Gambar 4 Skema Arduino dengan modul HC 06.
Data kemudian dapat dikirim melalui modul Bluetooth dengan menginisialisasi port serial dan mencetak nilai yang diinginkan. Dalam contoh ini saya memerlukan perangkat untuk mengukur suhu dalam rentang 25 - 75°C, untuk mulai menghitung sekitar 300 detik pada suhu tinggi dan kemudian mengubah pesan yang dicetak (gambar 5).
Gambar 5 Kode Arduino untuk inisialisasi serial dan pencetakan nilai.
Perangkat akhir yang dirangkaikan pada breadboard dapat dilihat dalam gambar 6.
Gambar 6 Perangkat lengkap pada breadboard.
Langkah terakhir adalah koneksi modul Bluetooth ke ponsel Android untuk visualisasi data. Sebuah aplikasi sederhana telah diprogram menggunakan MIT AppInventor 2. Gambar 7 dan gambar 8 menunjukkan masing-masing antarmuka pengguna dan blok pemrograman.
Gambar 7 Antarmuka pengguna yang dibuat dengan AppInventor2.
Gambar 8 Blok pemrograman AppInventor2.
Aplikasi yang diusulkan tersedia di galeri App inventor pada tautan berikut: https://ai2.appinventor.mit.edu/#5876233188016128
Meskipun menggunakan sistem pemrograman blok sederhana dan intuitif app inventor, banyak aplikasi lain dapat dibuat untuk memenuhi tujuan apa pun yang Anda inginkan. Misalnya saya memerlukan aplikasi untuk memberi tahu saya dengan suara jika suhu menurun di bawah 25°C untuk melakukan beberapa pengukuran dan untuk memberi tahu setelah 5 menit pada 75°C bahwa siklus pemanasan saya selesai.
Opsional: Langkah akhir dapat berupa soldering komponen dan mencetak 3D kotak untuk menyatukan bagian-bagian. Gambar 9 menunjukkan hasil pendekatan tersebut.
Gambar 9 Perangkat lengkap siap digunakan.
Sebuah lubang telah dibuat di sisi kotak ini untuk memajang Arduino dengan kabel mini usb. Kabel panjang merah dan hitam telah ditambahkan hanya untuk meningkatkan jarak antara termistor dan bagian lain dari perangkat (saya memerlukan termistor untuk memeriksa suhu larutan, jadi saya ingin komponen elektronik sejauh mungkin).
Saya harap proyek sederhana ini akan membantu Anda memahami dasar-dasar komunikasi serial dengan modul Bluetooth agar dapat menerapkannya ke proyek Anda sendiri.
Jika Anda menemukan beberapa kesalahan atau ingin bertanya sesuatu, silakan beri tahu saya.
EDIT: Saya menemukan kesalahan dalam penataan kabel skema untuk pembagi tegangan yang diperlukan untuk modul Bluetooth. Ini telah diselesaikan.
EDIT2: Jika Anda mengalami masalah mengunggah kode Anda ke papan, cobalah dengan mencabut modul Bluetooth.
Kode
Pemantau suhu dengan modul Bluetooth
Pemantau suhu dengan modul BluetoothArduino
Untuk menghitung resistansi termistor NTC, 5V diterapkan padanya secara beruntun dengan resistor yang diketahui sekitar magnitudo yang sama (dalam contoh ini 10kohm). Melalui pin analog A0, tegangan pembagi tegangan yang dibuat dari resistansi beruntun dihitung dan menggunakan nilai satu resistansi yang diketahui, resistansi NTC dihitung. Nilai ini kemudian dikonversi ke suhu menggunakan persamaan beta (ganti beta dengan yang Anda gunakan) dan dikirim ke aplikasi Android menggunakan modul Bluetooth. Kode dapat diubah untuk memantau rentang suhu tertentu, dalam contoh ini saya perlu memantau antara 25 dan 75°C dan menunggu 5 menit pada suhu yang lebih tinggi.
// Temperature monitor with bluetooth module int analogPin= 0; int raw= 0; int Vin= 5; float Vout= 0; float R1= 10000; //change to your system float Ro= 10000; //change to your system float R2= 0; float ratio= 0; float Temp = 0; float Beta = 3694; //change to your system float To = 298.15; // thermistor goes from 10k at 25°C. Choose reference resistance accondingly void setup() { Serial.begin(9600); } void loop() { raw= analogRead(analogPin); if(raw) { ratio = raw * Vin; Vout = (ratio)/1024.0; ratio = (Vin/Vout) -1; R2= R1 * ratio; Temp = Beta/log(R2/(Ro*exp(-Beta/To))); Temp = Temp -273.15; if(Temp >= 74) { for (int i = 0; i <= 30; i++) { Serial.print("Temperature >= 74 °C"); //change to your system delay(10000); } Serial.print("Heating Complete"); delay(10000); } else if (Temp <= 26){ Serial.print("Temperature <= 25 °C"); //change to your system delay(10000); } else { Serial.print("Temperature: "); //change to your system Serial.println(Temp); delay(10000); } } }
Skema
Resistansi R2 harus diubah sesuai dengan resistansi termistor yang akan Anda gunakan. Kesalahan dalam pembacaan suhu meningkat dengan bias (Runknow - R2).