Tutorial Komunikasi Serial Arduino Processing Mengukur Suhu


Setelah sebelumnya diulas tentang bagaimana melakukan komunikasi serial dengan Processing, pada tutorial project Arduino kali ini akan diulas mengenai trick bagaimana melakukan komunikasi dengan Processing untuk menampilkan nilai hasil pembacaan suhu. Untuk source code (sketch) terdiri atas bagian Arduino yang digunakan untuk mengukur suhu kemudian mengirimkannya via komunikasi serial dan akan diterima oleh Processing.

Arduino
Berikut ialah gambar wiring Arduino dengan sensor suhu LM35.

<img src="arduino_with_lm35.png" alt="arduino_with_lm35">


Dengan satu pin LM35 ke Vcc, satu lagi ke Ground, dan satu lagi ke pin analog Arduino A0. Berikut ini source code (sketch) Arduino yang digunakan untuk mengirimkan data suhu ke Processing.

/*
Program Arduino mengirimkan data suhu ke Processing
Loki Lang
*/

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int lang;
  float temp;
  String data = "";
  long dec;
  lang = analogRead(A0);
  delay(10);
  temp = lang * 500;
  temp /= 1023;
  data += String(int(temp)) + "," + String(getDecimal(temp));
  Serial.print("Nilai suhu ");
  Serial.print(data);
  Serial.println(" celsius");
}

long getDecimal(float val)
{
  int intPart = int(val);
  long value = 1000 * (val - intPart);
  if(value > 0)
  {
    return(value);
  }
  if(value < 0)
  {
    return(-1 * (value));
  }
  if(value == 0)
  {
    return(00);
  }
}


Processing
Berikut ialah source code (sketch) untuk Processing yang menerima data suhu dari board Arduino.

/*
Program Processing menerima data suhu dari Arduino
Loki Lang
*/

import processing.serial.*;
Serial myPort;
String lang;

void setup()
{
  String portName = Serial.list()[0];
  /*
  untuk nilai 0, dapat diganti dengan nilai lain sesuai COM yang digunakan
  */
  myPort = new Serial(this, portName, 9600);
}

void draw()
{
  if (myPort.available() > 0)
  {
    lang = myPort.readStringUntil('\n');
  }
  println(lang);
}


Data suhu yang dikirimkan oleh Arduino berupa String.

Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.