Contoh Parsing Data di Arduino

Parsing data atau memecah data merupakan salah satu proses yang penting bagi seorang programmer dalam komunikasi program antar hardware. Parsing data merupakan kegiatan memilah atau memecah data dari serangkaian field data yang panjang dan biasanya dipisahkan atau ditandai dengan header unik yang berbeda.

Pada tulisan saya kali ini saya akan membagikan cara parsing data di mikrokontroller khususnya arduino.

1. Parsing data tanpa library, contoh programnya dapat dilihat pada sript program berikut ini.
String dataIn;
String dt[10];
int i;
boolean parsing=false;

void setup() {
   Serial.begin(9600);
   dataIn="";
}

void loop() {
  if(Serial.available()>0) {
    char inChar = (char)Serial.read();
    dataIn += inChar;
    if (inChar == '\n') {
    parsing = true;
  }
}
 
if(parsing){
    parsingData();
    parsing=false;
    dataIn="";
  }
}

void parsingData(){
int j=0;
 
//kirim data yang telah diterima sebelumnya
Serial.print("data masuk : ");
Serial.print(dataIn);
Serial.print("\n");
 
//inisialisasi variabel, (reset isi variabel)
dt[j]="";
//proses parsing data

for(i=1;i < dataIn.length();i++){
 //pengecekan tiap karakter dengan karakter (#) dan (,)
 if ((dataIn[i] == '#') || (dataIn[i] == ',')){
  //increment variabel j, digunakan untuk merubah index array penampung
  j++;
  dt[j]="";       //inisialisasi variabel array dt[j]
 } 
 else{
  //proses tampung data saat pengecekan karakter selesai.
  dt[j] = dt[j] + dataIn[i];
 }
}
 
//kirim data hasil parsing
Serial.print("data 1 : ");
Serial.print(dt[0].toInt());
Serial.print("\n");
Serial.print("data 2 : ");
Serial.print(dt[1].toInt());
Serial.print("\n");
Serial.print("data 3 : ");
Serial.print(dt[2].toInt());
Serial.print("\n\n");
}


2. Kemudian yang kedua merupakan cara termudah yaitu dengan menggunakan library seperti script program berikut ini.
#include <Messenger.h>
Messenger dataSerial = Messenger();
 
int dataInteger;
 
void setup() {
 Serial.begin(9600);
 dataSerial.attach(cekData);
}
 
void loop() {
 while (Serial.available()) {
  dataSerial.process(Serial.read());
 }
}
 
void cekData() {
if (dataSerial.checkString("A")) {
 dataInteger = dataSerial.readInt();
 Serial.println();
 Serial.print("Data Integer = ");
 Serial.println(dataInteger);
}
}

Semoga bermanfaat.

Share this

All sharing is only for you guys...
-----------------------------------
Previous
« Prev Post

2 comments

comments
6 September 2019 at 18:09 delete

ada link download untuk librarynya bang ?

Reply
avatar