Anda di halaman 1dari 5

Nilai output sensor suhu pada smartphone

Artikel ini akan menceritakan tentang proyek termometer, perbedaan utama dari proyek
serupa adalah bahwa nilai sensor suhu akan dikirim ke smartphone melalui Bluetooth dan
ditampilkan di layarnya. Sensor suhu semacam itu dapat ditempatkan di lokasi yang tidak
dapat diakses, seperti di belakang jendela atau di dalam lemari es. Dan Anda selalu dapat
memeriksa suhu tanpa kontak visual dengan sensor. Anda menjalankan aplikasi seluler,
terhubung melalui Bluetooth dan melihat layar Smartphone atau tablet untuk mengontrol
suhu. Sensor itu sendiri diimplementasikan menggunakan Arduino. Untuk
mengimplementasikan nilai transfer suhu pada ponsel cerdas kami menggunakan
perpustakaan RemoteXY.

Untuk membuat bagian listrik perangkat, Anda memerlukan papan Arduino, termistor 1K,
resistor 1K, juga kompartemen baterai yang diinginkan untuk daya mandiri
Arduino. Termistor akan muat pada resistansi apa pun dari 1 hingga 100 K, tetapi dalam
hal ini, resistor harus sama. Di bawah ini adalah diagram hubungan semua elemen
struktural. Kami melakukan semuanya bersama di atas papan tempat memotong roti.
Rangkaian termistor termasuk dalam pembagi tegangan, bahu kedua yang merupakan
resistansi konstan. Jadi, ketika perubahan suhu akan mengubah resistensi termistor, dan
karenanya satu lengan pembagi tegangan. Pembagi tegangan akan berubah seiring dengan
suhu. Titik tengah pembagi tegangan yang telah kita sambungkan ke input analog Arduino
dengan nomor A5.
Pengembangan program kita akan mulai dengan kalibrasi sensor. Kalibrasi kita melakukan
dua titik, dan untuk melakukan ini kita perlu suhu referensi. Saya memiliki termometer
ruangan yang menunjukkan 25 derajat Celcius, ini akan menjadi suhu referensi
pertama. Saya tahu bahwa suhu tubuh saya adalah 36,6 derajat Celcius, dan ini akan
menjadi suhu referensi kedua. Jadi mari kita asumsikan bahwa hambatan termistor kita
dalam batas-batas tertentu bervariasi secara linear tergantung pada suhu. Ini, selanjutnya,
untuk menghitung suhu saat ini akan menggunakan interpolasi linier.
Untuk kalibrasi, kita perlu menentukan nilai input Arduino ADC apa dengan sensor suhu
yang telah kita pilih referensi. Gunakan Serial dan port monitor, untuk mengirimkan nilai
ADC pada komputer sehingga kita dapat melihat apa itu ketika suhu referensi kita. Untuk
melakukan ini kita perlu sketsa Arduino sederhana berikut.
void setup()
{
Serial.begin(9600);
}

void loop()
{
int sensorValue = analogRead(A5);
Serial.println(sensorValue);
delay(1);
}

Sketsa ini dalam setiap siklus program mengukur tegangan pin analog A5,
mendigitalkannya, dan mengirimkannya ke Serial. Anda dapat menghubungkan monitor
port (Layanan / Port Monitor) dan melihat nilai apa yang dilewati. Sekarang kita perlu
mengingat nilai ADC ini pada suhu referensi yang dipilih. Suhu referensi pertama yang
Anda dapatkan, jika termistor Anda sudah cukup lama di dalam ruangan. Untuk
mendapatkan suhu referensi kedua, pasang termistor ke tubuh Anda dan tahan selama
beberapa menit. Tulis ulang nilai ADC, yang dikirim ke monitor port pada suhu ini. Kami
mendapat nilai-nilai berikut:
T = 25.0 ° C ADC = 580
T = 36,6 ° C ADC = 514
Buka editor online RemoteXY dan buat antarmuka manajemen. Ini terdiri dari bidang teks,
di mana ditransmisikan suhu yang diukur, dan label teks. Panjang bidang teks yang
ditentukan dalam pengaturan, ditentukan oleh panjang maksimum string yang
ditransmisikan. Dalam kasus kami itu bisa bernilai "-40.0" atau "100.0". Artinya, panjang
string tidak boleh melebihi 5 karakter. Anda dapat meninggalkan panjang sistem default 10
karakter.

Dipilih dalam pengaturan proyek platform target Arduino (SoftwareSerial), versi


perpustakaan dan kode sumber yang dihasilkan dari antarmuka kami. Jangan lupa
mengunduh RemoteXY library dan mengimpornya ke Arduino IDE (Sketch / Import library
/ Add library ...).
Untuk mentransmisikan nilai suhu pada layar smartphone kita perlu mendapatkan nilai
saat ini dari ADC, untuk mendapatkan nilai suhu saat ini menggunakan interpolasi linier
pada dua titik yang diketahui, konversikan nilai yang diterima menjadi string dan tulis
dalam bidang text_1 pola RemoteXY. Untuk mengonversi tipe ganda menjadi string
menggunakan fungsi:
dtostrf (floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf)
Masalah interpolasi linier yang akan kita pecahkan menggunakan rumus sederhana:

Mengumpulkan semuanya bersama-sama kita mendapatkan kode sumber berikut ini


adalah sketsa untuk Arduino:
/////////////////////////////////////////////
// RemoteXY include library //
/////////////////////////////////////////////

/* RemoteXY select connection mode and include library */


#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>

/* RemoteXY connection settings */


#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

/* RemoteXY configurate */
unsigned char RemoteXY_CONF[] =
{ 0,11,27,0,1,5,67,0,24,23
,54,16,2,11,129,0,23,12,39,9
,0,84,101,109,112,44,32,194,176,67
,0 };

/* this structure defines all the variables of your control interface */


struct {

/* output variable */
char text_1[11]; /* string end zero UNICODE */

/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */

} RemoteXY;

/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////

/* the first measured value of the first point */


#define SENS_1_VAL 514
#define SENS_1_TMP 36.6

/* the second measured value of the second point */


#define SENS_2_VAL 580
#define SENS_2_TMP 25.0

void setup()
{
RemoteXY_Init ();

Serial.begin(9600);
}

void loop()
{
RemoteXY_Handler ();

/* get the ADC value */


int sensorValue = analogRead(A5);
/*
calculated current temperature using
a linear interpolation on the two known points
*/
double temp = SENS_1_TMP + (SENS_2_TMP - SENS_1_TMP) /
(SENS_2_VAL - SENS_1_VAL) * (sensorValue - SENS_1_VAL);
/*
convert the temperature value into a string
and place it immediately in the field text_1 patterns RemoteXY
*/
dtostrf(temp, 0, 1, RemoteXY.text_1);

/*
send the value of the ADC to Serial
in order that we could check the values
*/
Serial.println(sensorValue);
delay(1);
}

Dalam kode ini, Anda harus mengubah nilai yang ditetapkan SENS_1_VAL, SENS_1_TMP,
SENS_2_VAL, SENS_2_TMP, menggantikannya dengan nilai yang Anda dapatkan ketika
Anda mengukur nilai kalibrasi.
Unggah sketsa ke Arduino Anda. Unduh ke aplikasi RemoteXY smartphone atau tablet
Anda . Dan dapat mengontrol suhu saat Anda jauh dari sensor Anda, menggunakan
Bluetooth.