Program Arduino Split String Dengan Delimiter

Terkadang saya membutuhkan pengiriman data dalam bentuk String, dan data tersebut menyimpan berbagai data sensor.

Nah untuk mempermudah saya satukan dalam bentuk String dan dipisahkan dengan koma atau dengan simbol lain seperti # misal.

Nah ketika data diterima perlu dicah lagi menjadi nilai dari masing2 sensor yang dikirimkan.

Dan disinilah kita membutuhkan Fungsi atau Function Split String Arduino.

Berikut adalah contoh kodenya, ada 5 data sensor dan masing-masing nilainya dipisahkan dengan koma.

void setup() {
  Serial.begin(9600);
  String dataSensor = "120,134,14,56,89";
  int sensor1 = getValue(dataSensor, ',', 0).toInt();
  int sensor2 = getValue(dataSensor, ',', 1).toInt();
  int sensor3 = getValue(dataSensor, ',', 3).toInt();
  int sensor4 = getValue(dataSensor, ',', 3).toInt();
  int sensor5 = getValue(dataSensor, ',', 4).toInt();

  Serial.println("Data Sensor: " + dataSensor);
  Serial.println(String() + "Nilai Sensor1: " + sensor1);
  Serial.println(String() + "Nilai Sensor2: " + sensor2);
  Serial.println(String() + "Nilai Sensor3: " + sensor3);
  Serial.println(String() + "Nilai Sensor4: " + sensor4);
  Serial.println(String() + "Nilai Sensor5: " + sensor5);
}

void loop() {
}

String getValue(String data, char separator, int index) {
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length() - 1;
  for (int i = 0; i <= maxIndex && found <= index; i++) {
    if (data.charAt(i) == separator || i == maxIndex) {
      found++;
      strIndex[0] = strIndex[1] + 1;
      strIndex[1] = (i == maxIndex) ? i + 1 : i;
    }
  }
  return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
}

Hasilnya seperti Output Serial Monitor dibawah ini:

Referensi:

  1. https://stackoverflow.com/questions/29671455/how-to-split-a-string-using-a-specific-delimiter-in-arduino
  2. http://saptaji.com/2020/11/09/cara-mudah-parsing-split-teks-string-data-di-arduino-nodemcu-esp8266/

Founder & Author di Kelas Robot, suka melakukan Riset Robotika dan Belajar Hal Baru. Spesialis bidang Robotika dan Internet of Things.

Leave a Reply

Your email address will not be published. Required fields are marked *

You might also like