Membuat Grafik Pengukuran Suhu Menggunakan Arduino dan Processing

grafik-suhu

Assalamualaikum.
Salam Sejahtera Untuk Kita Semua Sobat …

Pengukuran suhu sangat sering dibutuhkan dalam kehidupan sehari-hari, semisal untuk memantau suhu ruangan, suhu inkubator, suhu penyimpanan makanan, dan lain-lain. Nah pada tutorial kali ini NP akan mengsahre cara membuat grafik pengukuran suhu menggunakan Arduino dan Processing. Tampilan grafiknya akan kita tampilkan pada layar laptop/PC. Keren deh pokoknya hehehe 😀 . Monggo disimak sob … 😀 .

Seperti biasanya, komponen yang perlu kita persiapkan yakni :

  • 1 buah Arduino (bisa UNO, NANO, MEGA, dll, bisa didapat Di Sini)
  • 1 buah Sensor suhu LM35 (Bisa didapat Di Sini)
  • 1 buah LCD 16×2 (Opsional, Bisa didapat Di Sini)
  • 1 buah potensiometer 10K (Opsional)
  • Software Processing(silahkan download Di Sini)
  • Software Arduino IDE (Jika belum punya, maka download Di Sini)
  • Library LiquidCrystal.h (Jika belum punya, bisa download Di Sini)
  • Dan cara menambah library Arduino bisa dibaca Di Sini

 

 

 

Dan silahkan rangkai komponen tersebut sesuai dengan skema berikut ini :

grafik-suhu_bb

Keterangan Rangkaian :

  • Bisa Menggunakan Segala Jenis Arduino (UNO, NANO, MEGA, MINI, dll), Tinggal cocokkan Saja Pin-Pin nya.

  • Kaki RS LCD ===> pin 2 Arduino

  • Kaki E LCD ===> pin 3 Arduino

  • Kaki D1 LCD ===> pin 4 Arduino

  • Kaki D2 LCD ===> pin 5 Arduino

  • Kaki D3 LCD ===> pin 6 Arduino

  • Kaki D4 LCD ===> pin 7 Arduino

  • Kaki RW LCD ===> GND (Ground)

  • Kaki VO LCD ===> Output Potensio

  • Kaki  Output LM35  ===> pin A0 Arduino

 

 

 

 Dan sekarang saatnya memprogram, silahkan upload program seperti di bawah ini pada Arduino IDE. Ingat, program di bawah ini khusus untuk Arduino UNO. Jikalau menggunakan Arduino lain, programnya ada di bawah program ini.

/* --------- Grafik Pengukuran Suhu dengan Arduino dan Processing ---------- */
 /* --------------------- Dibuat oleh : M. Nofgi Y.P.U.---------------------- */
 /* --------------------- www.nofgipiston.wordpress.com --------------------- */
 /* --------------------- NF-308 SHOP, Arduino Workshop --------------------- */
 /* ----------------- Program ini khusus untuk Arduino UNO ------------------ */

//Tambahkan library lcd
 #include<LiquidCrystal.h>

//Inialisasi pin lcd
 LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

//Inialisasi pin sensor suhu
 const int pinSuhu = A0;
 //Inialisasi variabel suhu pada grafik dan lcd
 int suhuGrafik, suhuLcd;

void setup()
 {
  //Deklarasi baud rate serial monitor
  Serial.begin(9600);
  //Menggunakan referensi tegangan internal 1,1V
  //Perintah ini khusu untuk Arduino UNO
  //Jika menggunakan Arduino lain, hapus perintah ini
  analogReference(INTERNAL);

//Deklarasi jumlah baris dan kolom lcd
  lcd.begin(16, 2);
  //Membersihkan layar lcd
  lcd.clear();
  //Menuliskan karakter pada lcd
  lcd.setCursor(0, 0);
  lcd.print("Grafik");
  lcd.setCursor(0, 1);
  lcd.print("Pengukuran Suhu");
  delay(3000);
 }

void loop()
 {
  //Membaca tegangan analog dari pinSuhu
  suhuGrafik = analogRead(pinSuhu);
  //Menulis nilai yg dari pinSuhu ke serial monitor
  //Nilai berkisar antara 0-1023
  Serial.println(suhuGrafik);
  //Konversi nilai tegangan analog ke nilai suhu dalam celcius
  //Angka 0.1075269 didapat dari hasil = (110/1023)
  //110 adalah nilai suhu maksimum
  //1023 adalah nilai pembacaan tegangan analog maksimum
  //Nilai 0.1075269 ini khusus untuk Arduino UNO
  //kalau menggunakan Arduino lain gunakan hasil dari = (500/1023)
  //Kalau memakai Arduino lain, ubah perintah menjadi => suhuLcd = suhuGrafik * 0.4887586;
  suhuLcd = suhuGrafik * 0.1075269;

//Menuliskan hasil pembacaan suhu pada lcd
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Membaca Suhu");
  lcd.setCursor(0, 1);
  lcd.print("SUHU : ");
  lcd.print(suhuLcd);
  lcd.print(" C");
  //Delay ata jeda selama 30 milidetik
  delay(30);
 }

 

 

Dan program yang ini untuk Arduino lain selain UNO (Contoh : MEGA, NANO, MINI, dan lain-lain) :

/* --------- Grafik Pengukuran Suhu dengan Arduino dan Processing ---------- */
 /* --------------------- Dibuat oleh : M. Nofgi Y.P.U.---------------------- */
 /* --------------------- www.nofgipiston.wordpress.com --------------------- */
 /* --------------------- NF-308 SHOP, Arduino Workshop --------------------- */
 /* ----------------- Program ini untuk selain Arduino UNO ------------------ */

//Tambahkan library lcd
 #include<LiquidCrystal.h>

//Inialisasi pin lcd
 LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

//Inialisasi pin sensor suhu
 const int pinSuhu = A0;
 //Inialisasi variabel suhu pada grafik dan lcd
 int suhuGrafik, suhuLcd;

void setup()
 {
  //Deklarasi baud rate serial monitor
  Serial.begin(9600);

//Deklarasi jumlah baris dan kolom lcd
  lcd.begin(16, 2);
  //Membersihkan layar lcd
  lcd.clear();
  //Menuliskan karakter pada lcd
  lcd.setCursor(0, 0);
  lcd.print("Grafik");
  lcd.setCursor(0, 1);
  lcd.print("Pengukuran Suhu");
  delay(3000);
 }

void loop()
 {
  //Membaca tegangan analog dari pinSuhu
  suhuGrafik = analogRead(pinSuhu);
  //Menulis nilai yg dari pinSuhu ke serial monitor
  //Nilai berkisar antara 0-1023
  Serial.println(suhuGrafik);
  //Konversi nilai tegangan analog ke nilai suhu dalam celcius
  //Angka 0.4887586 didapat dari hasil = (500/1023)
  //500 adalah nilai suhu maksimum
  //1023 adalah nilai pembacaan tegangan analog maksimum
  suhuLcd = suhuGrafik * 0.4887586;

//Menuliskan hasil pembacaan suhu pada lcd
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Membaca Suhu");
  lcd.setCursor(0, 1);
  lcd.print("SUHU : ");
  lcd.print(suhuLcd);
  lcd.print(" C");
  //Delay ata jeda selama 30 milidetik
  delay(30);
 }

 

Dan setelah selesai, upload program ke Arduino sobat. Setelah itu buka sofware Processing, lalu uploadkan program seperti di bawah ini :

/* --------- Grafik Pengukuran Suhu dengan Arduino dan Processing ---------- */
  /* --------------------- Diedit oleh : M. Nofgi Y.P.U.---------------------- */
  /* --------------------- www.nofgipiston.wordpress.com --------------------- */
  /* --------------------- NF-308 SHOP, Arduino Workshop --------------------- */

/*Sumber inspirasi : https://tutorkeren.com/artikel/ploting-data-arduino-menggunakan-processing.htm. */

//Serial processing
  import processing.serial.*;
  Serial portSerial;
  int dataTerbaca;
  int byteData;
  int[] besarY;
  int w;
  PFont font;

void setup()
  {
   //Nilai pixel gambar
   size (900, 600);
   w = width-10;
   strokeWeight(5);
   smooth();
   besarY = new int[w];
   //Ganti nilai COM sesuai COM Arduino
   portSerial = new Serial(this, "COM4", 9600);
  }

void draw()
  {
   //Membaca data serial sampai enter (\n)
   String inString = portSerial.readStringUntil('\n');
   if (inString != null)
   {
   inString = trim(inString);
   byteData = int(inString);
   println(byteData);
   dataTerbaca = int(map(byteData, 0, 1023, 0+10, height-50));

dataTerbaca = height-dataTerbaca;
   background(70);

for (int i = 1; i < w; i++)
   {
   besarY[i-1] = besarY[i];
   }

besarY[w-1] = dataTerbaca;

//Konversi data analog ke suhu
   int suhu = ((byteData*110)/1023);

//Mengatur warna suhu
   if (suhu <=69)
   { 
   textSize(32);
   fill(255);
   text("Suhu :", 30, 30);
   fill(255);
   text(suhu, 120, 30);
   fill(255);
   text("C", 180, 30);
   } else if (suhu >=70 && suhu <=89)
   {
   textSize(32);
   fill(255, 0, 0);
   text("Suhu :", 30, 30);
   fill(255, 0, 0);
   text(suhu, 120, 30);
   fill(255, 0, 0);
   text("C", 180, 30);
   } else if (suhu >=90)
   {
   textSize(32);
   fill(255, 0, 0);
   text("Suhu :", 30, 30);
   fill(255, 0, 0);
   text(suhu, 120, 30);
   fill(255, 0, 0);
   text("C", 180, 30);
   fill(255, 0, 0);
   text("Bahaya ... !!!", 700, 30);
   }
   //Font tulisan
   font = loadFont("Calibri-BoldItalic-48.vlw");
   textFont(font, 30);
   fill(255);
   text("www.nofgipiston.wordpress.com", 20, 530);
   textFont(font, 30);
   fill(255);
   text("M. Nofgi Y.P.U.", 120, 560);
   textFont(font, 30);
   fill(255);
   text("NF-308 SHOP", 132, 590);

stroke(255);
   strokeWeight(2);
   line(0, 320, width, 320);

//Warna garis
   stroke(255, 0, dataTerbaca);
   //Tebal garis
   strokeWeight(3);
   line(w, dataTerbaca, width, dataTerbaca);
   line(0, dataTerbaca, width, dataTerbaca);

for (int i=2; i<w; i++)
   {
   //Tebal gelombang
   strokeWeight(4);
   //Warna gelombang
   stroke(255, 0, besarY[i]);
   line(i, besarY[i-1], i, besarY[i]);
   }
   }
  }

Dan berikut ini adalah video demonstrasi project kali ini :




Sedikit penjelasan dari program-program di atas yakni, saya membaca tegangan output dari LM35 dimana setiap kenaikan 1 C, maka output keluarannya naik sebesar 10mV. Nah pada rangkaian di atas, LM35 mampu mengukur suhu dari 2 C sampai 150 C .

Nah khusus program pada Arduino UNO, NP menggunakan tegangan referensi yaitu 1,1 V. Jadi pin analog input pada Arduino UNO nya saya setting hanya mampu membaca tegangan maksimal sebesar 1,1 V, dari normalnya yang mampu sampai 5V. Ini karena NP hanya butuh memonitoring suhu dari 2 C sampai 110 C saja. Sedangkan pada Arduino lain hal itu tidak bisa dilakukan, kecuali jika menggunakan tegangan referensi EXTERNAL. Tapi pada intinya pembacaannya sama saja kok antara program untuk Arduino UNO ataupun Arduino lain.

Selain pada grafik, nilai suhu juga akan keluar pada LCD 16×2 yang sudah dirangkai.

Berikut screenshoot tampilan grafiknya :

suhu-3

Pada pemrograman Processing, saya setting agar garis vertikal bergerak naik turun sesuai dengan naik turunnya gelombang dan warnanya pun mengikuti warna gelombang. Semakin panas suhunya, maka warna gelombang semakin merah.

Untuk nilai suhunya ditampilkan di pojok kiri atas. Di mana jika niali suhu di bwah 70 C, maka warna teksnya putih, sedangkan jika di atas 70 C, maka warnanya berubah menjadi merah. Dan saat suhu berniali di atas 90 C, maka akan muncul tulisan “Bahaya … !!!” pada pojok kanan atas.

Nah keren bukan sob ? Sekarang monitoring suhu tidak hanya bisa kita laukan pada LCD saja, tapi juga bisa kita tampilkan lewat tampilan grafik di PC/Laptop.

Silahkan dicoba ….. Silahkan berkomentar kalau masih kebingungan😀 .

Silahkan berkreasi tanpa batas😀 .

Salam Teknologi …🙂 .

Wassalamualaikum.

*

*

*

*

*

********************

#Maaf jika ada kesalahan, ambil sisi positifnya saja.
#Barangkali anda mempunyai kabar/berita seputar otomotif/mekatronika/robotika/elektronika atau ingin mengiklankan suatu produk di blog ini, silahkan kontak saya.

Jual Arduino, Sensor, Modul, SHIELD, dan Berbagai Komponen Elektronika/Robotika murah meriah … Best Quality Product … !!! (Klik di sini)

Menerima jasa pembuatan Project atau alat berbasis Arduino, Elektronika, Robotika, Mekatronika, dan sejenisnya …

Bisa untuk keperluan hobi, tugas kuliah/sekolah, project industri/rumahan, dan sebagainya …

Silahkan kontak saya :

Facebook              : Nofgi Yugo Prasetyo
Fans Page on Facebook : Nofgi Piston Blog
E-Mail                : Nofgimotor@gmail.com
PIN BBM               : D2F100C2
Line                  : nofgi piston
Instagram             : nofgi_piston
Youtube               : NF-308
No. HP/WA             : 088217082017

Tentang Nofgi

Menerima Order Project Elektronika & Robotika. WA/SMS : 088217082017 Youtube : Nofgi Piston IG : nofgi_piston
Pos ini dipublikasikan di Arduino, Edukasi, Elektronika, Mekatronika, Robotika, Teknologi dan tag , , , , , , , . Tandai permalink.

8 Balasan ke Membuat Grafik Pengukuran Suhu Menggunakan Arduino dan Processing

  1. techtonime berkata:

    ini pengukuran suhunya akurat kan? jadi kepikiran bikin ginian buat monitor suhu motuba (kadang lgi asyik jalan tau-tau overheat… meter² di dashboard mati semua lagi 😑)

    • Nofgi berkata:

      Tergantung sensor bro, kalau.buat motuba wajib pakai sensor yg harganya seratus ribu ke atas, biar presisi.
      Ntar data suhunya bisa ditampilkan d HP android. Kan keren nanti 😀

  2. muhammad irfan berkata:

    klo ngehubungin ke atmega gimna yak pakai port COM itu?

Komentar Anda Membuat Semangat Saya Membara ... :D