Tutorial: Menghubungkan Timbangan Digital dengan NodeMCU ESP32 dan Smartphone via RS232 & Bluetooth
Dalam era digital yang semakin canggih, teknologi Internet of Things (IoT) menawarkan kemudahan yang signifikan, terutama dalam sektor pertanian dan logistik. Salah satu implementasi praktis IoT adalah pengintegrasian timbangan digital dengan perangkat pintar untuk pengiriman data secara real-time. Proyek ini berfokus pada cara menghubungkan indikator timbangan yang menggunakan protokol RS232 dengan NodeMCU ESP32, dan mengirimkan hasil pengukuran ke smartphone melalui Bluetooth Serial.
Pada tutorial ini, kita akan belajar bagaimana memanfaatkan NodeMCU ESP32 dan RS232 to TTL Converter untuk menghubungkan timbangan digital ke sistem yang bisa diakses langsung dari smartphone. Solusi ini dapat membantu dalam pencatatan hasil panen, manajemen logistik, dan aplikasi lain yang memerlukan akurasi data berat.
Tujuan
Tutorial ini bertujuan untuk memberikan langkah-langkah praktis dalam:
-
Menghubungkan indikator timbangan digital ke NodeMCU ESP32 melalui konverter RS232 ke TTL.
-
Mengirimkan data berat ke smartphone secara nirkabel menggunakan fitur Bluetooth yang terintegrasi dalam NodeMCU ESP32.
Dengan mengikuti panduan ini, kita akan mampu membuat prototipe IoT sederhana yang dapat digunakan dalam berbagai skenario, seperti pencatatan inventaris secara otomatis atau optimalisasi proses pengemasan dalam logistik.
Alat dan Bahan
Untuk mengikuti tutorial ini, berikut adalah alat dan bahan yang diperlukan:
-
Mikrokontroler NodeMCU ESP32 (dengan fitur Bluetooth internal)
Untuk memahami lebih dalam mengenai NodeMCU ESP32, termasuk fitur-fitur, spesifikasi, dan cara penggunaannya, kamu dapat mempelajarinya lebih lanjut di tautan berikut:
-
Indikator Timbangan Digital (mendukung protokol RS232)
Untuk informasi lebih lanjut mengenai dokumentasi dan spesifikasi lengkap dari indikator ini, kamu dapat mengunduh manualnya melalui tautan berikut:
Digital Weighing Indicator XK3190-A12(E) - User Manual
-
Modul MAX232 TTL Converter
Modul RS232-to-TTL diperlukan untuk menghubungkan port RS232 dengan mikrokontroler karena keduanya beroperasi pada level logika yang berbeda. Mikrokontroler menggunakan level logika TTL yang lebih rendah, sedangkan port RS232 beroperasi pada level voltase yang lebih tinggi. Dengan menggunakan modul ini, sinyal dari RS232 dapat dikonversi menjadi format yang dapat dipahami oleh mikrokontroler, sehingga memastikan komunikasi yang efektif dan aman antara kedua perangkat.
Untuk penjelasan lebih rinci tentang modul ini, termasuk fitur-fitur, spesifikasi teknis, dan panduan penggunaannya, silakan merujuk ke dokumentasi lengkap di tautan berikut:
RS-232 vs. TTL Serial Communication
-
Jumper Wires
-
Kabel Data RS232
-
Smartphone dengan aplikasi Bluetooth Serial Terminal (tersedia di Google Play atau App Store) memungkinkan kamu untuk berinteraksi dengan perangkat yang terhubung melalui Bluetooth. Kamu dapat mengunduh aplikasi ini melalui tautan berikut:
Diagram Koneksi
Untuk menghubungkan semua komponen, berikut adalah diagram koneksi yang dapat kita ikuti:
Keterangan Wiring:
Komponen | Pin | Koneksi | Komponen | Pin | Catatan |
---|---|---|---|---|---|
Indikator Timbangan | Pin 2 (TX) | Kabel RS232 | RS232 to TTL Converter | Pin 3 (RX) | Data dikirim dari timbangan ke converter |
Indikator Timbangan | Pin 5 (GND) | Kabel RS232 | RS232 to TTL Converter | Pin 5 (GND) | Ground bersama |
RS232 to TTL Converter | Pin RXD | Jumper Wires | NodeMCU ESP32 | GPIO16 (RX) | Menerima data dari timbangan |
RS232 to TTL Converter | Pin VCC | Jumper Wires | NodeMCU ESP32 | 3.3V | Menyediakan daya untuk RS232 to TTL Converter |
RS232 to TTL Converter | Pin GND | Jumper Wires | NodeMCU ESP32 | GND | Grounding bersama untuk semua komponen |
Penjelasan Wiring:
-
Indikator Timbangan ke RS232 to TTL Converter:
-
Sambungkan Pin RX dari timbangan ke Pin TX dari RS232 to TTL Converter agar NodeMCU ESP32 dapat menerima data berat.
-
Sambungkan Pin GND dari timbangan ke Pin GND di RS232 to TTL Converter untuk grounding.
-
-
RS232 to TTL Converter ke NodeMCU ESP32:
-
Hubungkan Pin RXD dari converter ke GPIO16 (RX) di NodeMCU ESP32 untuk menerima data serial dari timbangan.
-
Sambungkan Pin VCC dari converter ke 3.3V NodeMCU untuk memberi daya ke konverter.
-
Sambungkan Pin GND dari converter ke GND NodeMCU ESP32.
-
-
Bluetooth pada NodeMCU ESP32:
-
NodeMCU ESP32 memiliki fitur Bluetooth internal, sehingga tidak perlu modul tambahan. Data berat akan dikirimkan melalui Bluetooth Serial ke smartphone.
-
Kode Program ESP32
Berikut adalah kode yang digunakan untuk membaca data dari timbangan melalui protokol RS232, memproses data, menampilkan di Serial Monitor, dan mengirimkannya ke smartphone melalui Bluetooth.
​
// Initialize Bluetooth for ESP32
BluetoothSerial ESP_BT;
​
// Function to process scale data
String processScaleData(String rawData) {
// Add your processing logic here
}
​
void setup() {
Serial.begin(9600);
weighingScale.begin(9600, SERIAL_8N1, 16, 17); // UART configuration
​
// Initialize Bluetooth
ESP_BT.begin("TimbanganESP32");
}
​
void loop() {
// Logic to read scale data and transmit via Bluetooth
}
Penjelasan Kode:
-
Library BluetoothSerial: Digunakan untuk menginisialisasi komunikasi Bluetooth pada ESP32. ESP32 memiliki Bluetooth bawaan sehingga tidak memerlukan modul tambahan.
-
Inisialisasi UART (Universal Asynchronous Receiver-Transmitter): Pada bagian
weighingScale.begin(9600, SERIAL_8N1, 16, 17)
, pin 16 digunakan untuk TX (Transmit) dan pin 17 untuk RX (Receive), dengan konfigurasi baud rate 9600. Hal ini mengatur komunikasi serial antara timbangan dan ESP32 melalui protokol RS232. -
Fungsi processScaleData(): Berfungsi untuk memproses data mentah yang diterima dari timbangan. Dalam kode contoh ini, fungsi tersebut belum diimplementasikan. Namun, dapat disesuaikan untuk menghilangkan karakter yang tidak diinginkan, memformat angka, atau melakukan validasi sebelum mengirim data ke smartphone.
-
Pengiriman Data via Bluetooth: Setelah data diterima dan diproses, data tersebut dapat dikirim ke smartphone yang terhubung dengan ESP32 melalui Bluetooth dengan menggunakan fungsi
ESP_BT.write()
. Pengguna dapat melihat data berat di aplikasi Bluetooth Serial Terminal. -
Serial Monitor: Dengan menggunakan
Serial.begin(9600)
danSerial.print()
, pengguna dapat memantau data timbangan secara langsung melalui Serial Monitor di Arduino IDE untuk debugging atau validasi.
Selengkapnya kamu bisa melihat kode nya di sini: . Kamu bisa menyesuaikan format data yang diterima dari timbangan ke dalam format yang diinginkan dengan mengubah fungsi processScaleData()
sesuai kebutuhan.
Langkah Pengujian
-
Sambungkan NodeMCU ESP32 ke komputer melalui kabel USB dan upload kode melalui Arduino IDE.
-
Buka Serial Monitor untuk melihat data berat yang dikirim dari timbangan.
-
Pasangkan Bluetooth NodeMCU ESP32 dengan smartphone kita. Nama Bluetooth yang muncul adalah TimbanganESP32.
-
Gunakan aplikasi Bluetooth Serial Terminal untuk melihat data berat yang dikirim secara real-time dari timbangan.
Kesimpulan
Dalam tutorial ini, kita telah belajar bagaimana menghubungkan indikator timbangan digital menggunakan RS232 ke NodeMCU ESP32, serta mengirimkan data berat ke smartphone melalui Bluetooth. Proyek ini sangat bermanfaat dalam aplikasi IoT, khususnya untuk pencatatan berat hasil panen, manajemen inventaris, atau logistik.
kita dapat mengembangkan proyek ini lebih lanjut dengan menambahkan fitur lain seperti penyimpanan data ke cloud atau integrasi dashboard untuk memonitor data secara lebih terstruktur.
Referensi
-
SparkFun. (n.d.). RS232 serial communication tutorial. Retrieved from https://www.sparkfun.com/tutorials/215
-
Last Minute Engineers. (n.d.). Getting started with ESP32. Retrieved from https://lastminuteengineers.com/getting-started-with-esp32/
-
Arduino Forum. (2023). Read from weighing scale using RS232. Retrieved from https://forum.arduino.cc/t/read-from-weighing-scale-using-rs232/1028670
-
Arduino Forum. (2022). Interfacing weighing scale with RS232. Retrieved from https://forum.arduino.cc/t/interfacing-weighing-scale-with-rs232/1019416/17
-
Arduino Forum. (2019). Issues reading RS232 data from digital scales. Retrieved from https://forum.arduino.cc/t/issues-reading-rs232-data-from-digital-scales/632255/4
-
Arduino Forum. (2019). RS232 from animal weigh scale stops after 1 reading. Retrieved from