• Maksimum data yang dapat dikirim adalah 128 byte secara default. Untuk mengubah ukuran buffer, gunakan pembuatan object seperti CoreX corex(256); atau CoreX corex(256, 512); tidak hanya sekedar memanggil CoreX corex; pada awal kode program kamu. Jika hanya memberikan satu parameter saja maka nilai tersebut berlaku untuk ukuran buffer pada send dan receive sekaligus, jika menggunakan dua parameter maka ukuran buffer send dan receive akan berbeda sesuai nilai yang ditulis.

  • Pada ESP8266 menambahkan delay(10); setelah client.loop(); dapat memperbaiki banyak masalah stabilitas WiFi.

Inisialisasi Penggunaan CoreX

corex.begin(Client &client);

CoreX dapat digunakan di perangkat apapun selama perangkat tersebut menyediakan implementasi Client based network.

Menghubungkan Ke Server

Untuk dapat terhubung ke CoreX gunakan fungsi connect.

corex.connect();

Fungsi connect juga dapat digunakan untuk memeriksa apakah perangkat sudah berhasil terhubung ke server atau belum.

// Tampilkan karakter titik setiap 1 detik selama perangkat tidak terhubung ke server
while (!corex.connect()) {
    Serial.print(".");
    delay(1000);
}

Mendapatkan Data Dari Bucket

Untuk mendapatkan data dari Bucket gunakan fungsi onMessage dan buat fungsi receive:

corex.onMessage(receive);
void receive(String &bucket, String &data){
    Serial.println(bucket + " - " + data);
}

Mengirim Data Ke Bucket

Untuk mengirim data dapat menggunakan fungsi send().

corex.send("data", "bucket");

Dapat juga menggunakan tipe data lainnya.

corex.send("abc", "nama_bucket");
corex.send(123, "nama_bucket");
corex.send(12.3, "nama_bucket");

Kita juga bisa memeriksa apakah data berhasil dikirim atau tidak.

if(corex.send("abc", "nama_bucket")){
    Serial.println("Data berhasil dikirim ke nama_bucket");
} else {
    Serial.println("Data gagal dikirim ke nama_bucket");
}

Periksa Data Diterima

Fungsi ini harus dieksekusi pada void loop() agar terus memeriksa apakah ada data yang masuk atau tidak.

corex.loop();

Periksa Apakah Perangkat Masih Terhubung

Untuk memeriksa perangkat apakah masih terhubung ke CoreX atau tidak bisa menggunakan fungsi connected().

corex.connected();

Gunakan pengkondisian if untuk memeriksa status.

if(!corex.connected()){
    Serial.println("Terputus dari server");
}

Fungsi ini dapat digunakan pada loop() agar perangkat dapat terus menerus memastikan masih terhubung ke CoreX. Jika tidak terhubung maka lakukan penghubungan ulang ke CoreX.

Memutuskan Koneksi Dari CoreX

Untuk memutuskan koneksi dapat menggunakan fungsi disconnected().

corex.disconnected();

Gunakan pengkondisian if untuk memeriksa status.

if(corex.disconnected()){
    Serial.println("Terputus dari server");
}

Fungsi ini dapat digunakan pada loop() agar perangkat dapat terus menerus memastikan masih terhubung ke CoreX. Jika tidak terhubung maka lakukan penghubungan ulang ke CoreX.

Penggunaan Timer

CoreX menyediakan fitur timer dimana dengan fitur ini kamu bisa mengeksekusi kode program tanpa menggunakan delay() ataupun milis().

Dalam proyek yang memerlukan operasi data realtime harus menghindari penggunaan delay() karena bersifat blocking yang artinya perangkat kamu akan "mogok kerja" tidak akan melakukan apapun selama jeda yang sudah ditentukan pada delay.

Untuk menggunakan timer maka kamu perlu membuat objek timer terlebih dahulu.

CoreXTimer timer;

Selanjutnya pada void loop() perlu melakukan pemanggilan fungsi run() agar timer dapat dieksekusi.

void loop(){
    timer.run();
}

Eksekusi Fungsi Setiap Detik

timer.setInterval(1000, namaFungsi);

void namaFungsi(){
    Serial.println("Dieksekusi setiap 1 detik");
}

Eksekusi Fungsi Satu Kali Setelah Beberapa Detik Berlalu

timer.setTimeout(1000, namaFungsi);

void namaFungsi(){
    Serila.println("Dieksekusi 1 kali setelah 1 detik berlalu");
}

Eksekusi Fungsi Beberapa Kali Setiap Interval Tertentu

timer.setTimer(1000, namaFungsi, 7);

void namaFungsi(){
    Serial.println("Dieksekusi sebanyak 7 kali setiap 1 detik");
}

Last updated