๐ Tutorial: Membaca Data Oksigen dan Suhu dari Systech Illinois ZR800 Menggunakan Industruino D21G
๐ Pendahuluan
Dalam banyak sistem industri, pemantauan konsentrasi oksigen menjadi bagian penting dari proses keseluruhan. Systech Illinois ZR800 merupakan salah satu perangkat yang umum digunakan untuk tugas ini karena keandalannya dalam membaca kadar oksigen dengan sensor zirconia presisi tinggi.
Dalam proyek ini, kita akan mempelajari cara membaca data oksigen dan suhu sensor dari perangkat ZR800 melalui port serial menggunakan Industruino D21G. Data yang diambil akan ditampilkan pada layar LCD dan juga dikirimkan ke output analog untuk integrasi lebih lanjut. Proyek ini cocok bagi pemula yang ingin memahami dasar komunikasi serial dan pengolahan data sensor dalam konteks sistem industri terintegrasi.
๐ Persiapan
Mengapa Memilih Visual Studio Code + PlatformIO?
Kombinasi Visual Studio Code dengan PlatformIO IDE menawarkan sejumlah keunggulan dibandingkan Arduino IDE, terutama untuk proyek yang lebih kompleks:
- Manajemen Proyek Terstruktur: PlatformIO mendukung struktur proyek yang lebih modular dan profesional.
- Auto-completion dan IntelliSense: Fitur cerdas ini membantu mempercepat penulisan kode dan mengurangi kesalahan.
- Integrasi Git: Mempermudah pengelolaan versi kode menggunakan Git langsung dari editor.
- Dukungan Multi-board: Cocok jika Anda bekerja dengan berbagai jenis mikrokontroler dalam satu workspace.
- Manajemen Dependensi Otomatis: PlatformIO dapat secara otomatis mengunduh dan mengelola library yang dibutuhkan.
PlatformIO cocok untuk pemula yang ingin naik kelas ke lingkungan pengembangan yang lebih profesional.
Perangkat Keras
Gambar 1: Industruino D21G, gambar diperoleh dari Mouser Electronics.
Industruino D21G adalah mikrokontroler berbasis Arduino yang dirancang untuk aplikasi industri. Perangkat ini memiliki fitur seperti casing DIN-rail, layar LCD bawaan, terminal konektor yang solid, isolated digital input/output, isolated analog input/output presisi, chip serial RS-485, RTC, dan flash memory tertanam, dan kompatibilitas dengan modul komunikasi tambahan, menjadikannya cocok untuk proyek yang membutuhkan keandalan di lingkungan industri.
- Systech Illinois ZR800: Perangkat pengukur oksigen.
- Industruino D21G: Platform mikrokontroler berbasis Arduino dengan LCD terintegrasi.
- Kabel USB: Untuk menghubungkan Industruino ke komputer untuk keperluan pemrograman.
- Kabel Serial RS-485: Untuk menghubungkan ZR800 ke Industruino.
Gambar 2: Systech Illinois ZR800, gambar diperoleh dari Industrial Physics.
ZR800 menggunakan komunikasi serial RS-485 untuk mengirimkan data pengukuran ke Industruino. Industruino D21G telah dilengkapi dengan port RS-485 secara default, sehingga tidak memerlukan modul tambahan untuk konektivitas ini. Konfigurasi wiring tetap perlu memperhatikan polaritas (A/B) dan kecepatan baudrate yang disesuaikan dengan pengaturan default dari ZR800.
ZR800 dilengkapi dengan sensor berbasis zirconia, yang digunakan untuk mengukur konsentrasi oksigen secara presisi dalam berbagai aplikasi industri. Sensor zirconia bekerja berdasarkan prinsip elektrokimia padat dan mampu memberikan pembacaan yang stabil dan tahan terhadap lingkungan ekstrem, menjadikannya ideal untuk pemantauan gas proses, kontrol kualitas, dan sistem keamanan termasuk sebagai oxygen sensor pada sistem pembakaran kendaraan.
Perangkat Lunak
- Git for Windows: Sistem kontrol versi.
- Visual Studio Code (VSCode): Editor kode sumber.
- PlatformIO IDE: Ekstensi untuk VSCode yang mendukung pengembangan proyek embedded.
- Platform Industruino D21G: Dapat diinstal melalui PlatformIO.
"Catatan: Platform Industruino D21G yang digunakan dalam proyek ini merupakan hasil penyesuaian pribadi yang telah saya lakukan pada proyek sebelumnya. Karena bahkan sampai saat ini belum tersedia dukungan resmi dari pihak Industruino untuk PlatformIO, saya memodifikasi sendiri konfigurasi board dan file platform agar kompatibel. Tujuan utama penyesuaian ini adalah untuk memanfaatkan kemudahan manajemen proyek, integrasi library, dan fitur produktivitas lain yang ditawarkan PlatformIO."
โ๏ธ Langkah-langkah Instalasi
-
Instal Git for Windows dari git-scm.com.
-
Instal Visual Studio Code: Unduh dan instal dari situs resmi VSCode.
-
Instal PlatformIO IDE:
- Buka VSCode.
- Masuk ke Extension Manager.
- Cari "PlatformIO IDE" dan instal ekstensi tersebut.
-
Instal Platform Industruino D21G:
- Buka PlatformIO Home.
- Masuk ke menu Platforms > Advanced Installation.
- Masukkan URL berikut:
https://github.com/kumajaya/platform-atmelsam#industruino
dan klik Install. - Setelah instalasi selesai, Industruino D21G akan tersedia dalam menu pemilihan board di PlatformIO.
-
Kloning Repository ZR800:
- Buka terminal atau command prompt.
- Jalankan perintah:
git clone https://github.com/kumajaya/zr800.git
- Buka folder proyek di VSCode.
๐งช Struktur Proyek
Berikut adalah struktur folder dalam proyek:
include/
: Berisi file header.lib/
: Berisi pustaka tambahan.src/
: Berisi kode sumber utama.test/
: Berisi kode untuk pengujian.platformio.ini
: File konfigurasi untuk PlatformIO.
๐ Bagian Kode C++ untuk Membaca Data Serial ZR800
/*
Copyright (c) 2025 Ketut P. Kumajaya. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
*/
#include "SerialRS485.h"
void SerialRS485Class::begin(unsigned long baudrate)
{
RS485.setPins(1, 9, 10); // Set different pins for DE and RE
RS485.begin(baudrate);
RS485.receive(); // enable reception
}
String SerialRS485Class::request(const char *command)
{
String response = "";
RS485.beginTransmission(); // enable transmission
RS485.print(command);
RS485.endTransmission(); // disable transmission
unsigned long startTime = millis();
while (millis() - startTime < 150) // 150 ms timeout
{
if (RS485.available())
{
char c = RS485.read();
response += c;
startTime = millis(); // reset timeout if data is received
}
}
return response;
}
SerialRS485Class SerialRS485;
๐ค Kompilasi dan Unggah Kode
- Buka Proyek di VSCode: Pastikan Anda membuka folder proyek
zr800
. - Pilih Board: Pastikan board yang dipilih adalah Industruino D21G.
- Kompilasi Proyek: Klik ikon centang (โ๏ธ) di bagian bawah VSCode untuk memulai proses kompilasi.
- Unggah Kode ke Industruino: Klik ikon panah kanan (โก๏ธ) untuk mengunggah kode ke perangkat.
๐ Fitur Utama
- Pembacaan Data: Membaca data oksigen dan suhu dari ZR800 melalui port serial.
- Tampilan LCD: Menampilkan data yang diperoleh pada layar LCD Industruino.
- Output Analog: Mengirimkan data ke output analog untuk keperluan lain.
- Pengaturan: Mengubah kecerahan LCD, baudrate, rentang pembacaan, dan kalibrasi output analog.
๐ Catatan Reflektif
Di lingkungan industri yang masih konservatif dan mengandalkan solusi tradisional, kemampuan pemrograman dan pemanfaatan solusi open source menjadi nilai tambah yang signifikan. Dengan keterampilan ini, kita dapat mengembangkan sistem yang lebih fleksibel, mudah dikustomisasi, dan hemat biaya dibanding pendekatan proprietary. Solusi open source memungkinkan pengembangan cepat tanpa ketergantungan vendor, serta membuka ruang untuk eksperimen dan inovasi berbiaya rendah. Meskipun resistensi kadang muncul dari pihak yang belum terbiasa dengan pendekatan ini, generasi engineer baru yang menguasai Python, C/C++, atau JavaScript semakin banyak bermunculan. Perusahaan yang progresif perlu melihat ini sebagai peluang untuk membina dan memfasilitasi pengembangan talenta internal menuju otomatisasi industri yang lebih cerdas.
๐ง Kesimpulan
Proyek ini dimulai dari masalah sederhana, yaitu kerusakan pada analog output ZR800. Namun, hal tersebut justru mendorong untuk mencari solusi yang lebih fleksibel dan terjangkau menggunakan pemrograman dan teknologi open-source, yang membawa manfaat lebih besar dari sekadar perbaikan masalah awal.
Proyek ini memberikan pemahaman dasar tentang komunikasi serial dan pengolahan data sensor dalam sistem embedded. Dengan menggunakan Industruino D21G, kita dapat dengan mudah mengintegrasikan perangkat seperti ZR800 ke dalam sistem monitoring atau kontrol.
Selain itu, penggunaan PlatformIO memberikan banyak keuntungan, terutama dalam hal manajemen proyek yang terstruktur, integrasi library yang efisien, serta proses build dan upload yang lebih fleksibel. Meskipun awalnya membutuhkan usaha keras untuk kompatibilitas dengan Industruino D21G, hasilnya sepadan dengan kemudahan dan produktivitas yang diperoleh selama pengembangan.
๐ก Kode sumber proyek ini tersedia secara terbuka.
Silakan kunjungi github.com/kumajaya/zr800 dan coba sendiri โ mungkin Anda bisa mengembangkannya lebih jauh sesuai kebutuhan.