Arduino: String dan Char Array

Lingkungan pemrograman Arduino menyediakan class String yang memberi kemudahan dalam hal manipulasi. Namun demikian, dalam beberapa kasus, khususnya dalam hal pengiriman data, diperlukan char array yang memiliki ukuran yang pasti. Untuk menangani hal ini, konversi dari String menjadi char array, kita dapat melakukannya demikian:

char buff[100];
int count;

void loop() {
  String pubString = "Hello NS.One "+String(count);
  pubString.toCharArray(buff, pubString.length()+1);
  client.publish("inTopic",buff);
  count++;
  delay(500);
}

Bagaimana sebaliknya?

char msg[] = "Hello NS.One";
String hello = msg;

Sebuah obyek String lebih mudah digunakan dibanding sebuah string char array. Obyek String memiliki sejumlah fungsi yang dapat melakukan sejumlah operasi pada string. Kerugian dari penggunaan obyek String adalah penggunaan memori yang cukup banyak, dan dapat dengan cepat menghabiskan ruang memori yang ada, yang berakibat Arduino hang, crash atau memberikan hasil yang “aneh”.

Bila sketch yang dibuat, cukup kecil, mungkin tidak akan ada masalah.

String char array lebih sulit dan kita perlu menulis fungsi untuk operasinya. Keuntungannya, kita dapat mengontrol ukuran dari array, dan tentunya, menjaga ruang memori yang digunakan.

Kita perlu memastikan bahwa kita tidak menulis melebihi dari batas akhir array yang ditentukan. Obyek String tidak memiliki kendala ini, sejauh ruang memori masih tersedia.