Tutorial: Menghubungkan Timbangan Digital dengan Arduino UNO melalui RS232 dan Modul HC-06 Bluetooth
Di era digital yang semakin maju ini, teknologi Internet of Things (IoT) memberikan kemudahan dalam berbagai bidang, termasuk pertanian dan logistik. Pada tutorial kali ini, kita akan belajar bagaimana menghubungkan indikator timbangan digital yang menggunakan protokol RS232 dengan Arduino UNO. Data dari timbangan akan diterima oleh Arduino melalui konverter RS232 ke TTL dan kemudian dikirimkan ke smartphone menggunakan modul Bluetooth HC-06. Proyek ini memungkinkan kita untuk mengirim data timbangan secara nirkabel ke perangkat mobile dengan mudah.
Alat dan Bahan:
Sebelum kita mulai, berikut adalah alat dan bahan yang kita butuhkan:
-
Arduino UNO
-
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
-
HC-06 Bluetooth Module
HC-06 adalah modul Bluetooth yang digunakan untuk komunikasi nirkabel dengan Arduino, karena Arduino tidak memiliki Bluetooth bawaan. Modul ini mendukung komunikasi serial dan memungkinkan Arduino untuk mengirim atau menerima data dari perangkat lain seperti smartphone secara nirkabel.
Untuk penjelasan lebih rinci tentang modul ini, termasuk fitur-fitur, spesifikasi teknis, dan panduan penggunaannya, silakan merujuk ke dokumentasi lengkap di tautan berikut:
Manual Book - HC-06 Bluetooth Module
-
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
Mari kita lihat bagaimana cara menyambungkan semua komponen:
Komponen | Pin | Koneksi | Komponen | Pin | Catatan |
---|---|---|---|---|---|
Indikator Timbangan | 2 RX | Kabel RS232 | RS232 to TTL Converter | 3 TX | Data hanya dikirimkan dari timbangan |
Indikator Timbangan | 5 (GND) | Kabel RS232 | RS232 to TTL Converter | 5 (GND) | Grounding terhubung |
RS232 to TTL Converter | Pin RXD | Jumper Wires | Arduino UNO | Pin 11 (RX) | Menerima data dari konverter ke Arduino |
RS232 to TTL Converter | Pin TXD | Jumper Wires | Arduino UNO | Pin 10 (TX) | Tidak dibutuhkan karena timbangan hanya mengirim data |
RS232 to TTL Converter | Pin GND | Jumper Wires | Arduino UNO | GND | Grounding terhubung |
RS232 to TTL Converter | Pin VCC | Jumper Wires | Arduino UNO | 5V | Memberikan daya ke RS232 to TTL converter |
Arduino UNO | GND | Jumper Wires | HC-06 | GND | Grounding terhubung |
Arduino UNO | 3.3V | Jumper Wires | HC-06 | VCC | Menyediakan daya 3.3V ke modul HC-06 |
Arduino UNO | Pin 9 | Jumper Wires | HC-06 | TX | Mengirim data ke HC-06 untuk ditransmisikan ke smartphone |
Arduino UNO | Pin 8 | Jumper Wires | HC-06 | RX | Menerima data dari HC-06 (opsional jika diperlukan) |
Penjelasan Koneksi:
-
Indikator Timbangan ke RS232 to TTL Converter:
-
Sambungkan Pin RX dari timbangan ke Pin TX dari RS232 to TTL Converter. Ini memungkinkan Arduino untuk menerima data dari timbangan.
-
Hubungkan Pin GND dari timbangan ke Pin GND dari RS232 to TTL Converter untuk memastikan grounding yang baik.
-
-
RS232 to TTL Converter ke Arduino UNO:
-
Pin TXD dari konverter terhubung ke Pin 11 (RX) di Arduino UNO untuk menerima data dari timbangan.
-
Pin RXD dari konverter tidak diperlukan dalam skenario ini karena kita hanya membaca data dari timbangan, bukan mengirimnya.
-
Sambungkan Pin VCC dari konverter ke 5V di Arduino untuk daya, dan Pin GND ke ground Arduino.
-
-
HC-06 Bluetooth Module ke Arduino UNO:
-
Pin RX pada HC-06 terhubung ke Pin 8 pada Arduino, yang akan menerima data dari Arduino.
-
Pin TX pada HC-06 terhubung ke Pin 9 pada Arduino untuk mengirim data dari Arduino ke smartphone.
-
Pin VCC terhubung ke 3.3V dan GND terhubung ke GND di Arduino.
-
Kode Arduino:
Berikut adalah kode yang kita gunakan untuk membaca data dari timbangan melalui RS232, menampilkannya di Serial Monitor, dan mengirimkannya ke modul Bluetooth HC-06.
​
// Initialize SoftwareSerial for the weighing scale
SoftwareSerial weighingScale(10, 11); // RX, TX pins for the scale
AltSoftSerial bluetooth; // RX Pin 8, TX Pin 9 for HC-06
​
// Function to process scale data
String processScaleData(String rawData) {
// Add your processing logic here
// This function is intended to handle the raw data received from the scale
}
​
void setup() {
Serial.begin(9600); // Initialize Serial Monitor
weighingScale.begin(9600); // Start communication with the weighing scale
bluetooth.begin(9600); // Start Bluetooth communication
}
​
void loop() {
// Check if data is available from the weighing scale
if (weighingScale.available()) {
String dataFromScale = ""; // Initialize an empty string to hold incoming data
// Read the incoming data until a newline character is received
while (weighingScale.available()) {
char c = weighingScale.read(); // Read a character
dataFromScale += c; // Append it to the data string
}
// Process the scale data
String processedData = processScaleData(dataFromScale);
// Display data in Serial Monitor
Serial.println(processedData); // Print processed data to Serial Monitor
// Send processed data via Bluetooth
bluetooth.print(processedData); // Send data to the HC-06 module
}
}
Penjelasan Kode:
-
Library yang Digunakan: Kode ini menggunakan pustaka
AltSoftSerial
danSoftwareSerial
untuk memfasilitasi komunikasi serial dengan timbangan digital dan modul Bluetooth HC-06. Dengan menggunakan pustaka ini, kita dapat menggunakan pin digital untuk komunikasi serial tambahan. -
Fungsi
processScaleData()
: Fungsi ini dirancang untuk memproses data mentah yang diterima dari timbangan. Kita dapat menambahkan logika untuk memformat angka, menghapus karakter yang tidak diinginkan, atau melakukan validasi sebelum mengirim data ke perangkat mobile. Dalam kode ini, fungsi tersebut saat ini hanya mengembalikan data mentah tanpa perubahan. -
Inisialisasi Serial:
Serial.begin(9600)
digunakan untuk memulai komunikasi serial dengan komputer, sementaraweighingScale.begin(9600)
danbluetooth.begin(9600)
menginisialisasi komunikasi dengan timbangan dan modul Bluetooth pada baud rate yang sama, yaitu 9600 bps. -
Loop Utama: Di dalam
loop()
, kode memeriksa apakah ada data yang tersedia dari timbangan. Jika ada, karakter dibaca dari timbangan dan ditambahkan ke stringscaleData
. Data ini kemudian diproses melalui fungsiprocessScaleData()
, dan hasilnya ditampilkan di Serial Monitor serta dikirim melalui Bluetooth ke perangkat yang terhubung. -
Pengiriman Data: Setelah data diproses, kita menggunakan
Serial.write()
untuk menampilkan data yang telah diproses di Serial Monitor danbluetooth.write()
untuk mengirim data tersebut ke modul HC-06. Dengan cara ini, pengguna dapat memantau dan menerima data timbangan secara real-time melalui perangkat mobile.
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:
Sekarang, mari kita uji sistem yang telah kita bangun:
-
Sambungkan Arduino UNO ke komputer dan upload kode di atas menggunakan Arduino IDE.
-
Buka Serial Monitor di Arduino IDE dengan baud rate 9600 untuk melihat data yang diterima dari timbangan.
-
Pair HC-06 dengan smartphone melalui Bluetooth. Pastikan aplikasi Bluetooth Serial Terminal diinstal pada smartphone untuk menerima data.
-
Kirimkan Data dari Arduino ke smartphone melalui HC-06. Jika semua wiring dan kode benar, data dari timbangan akan ditampilkan di aplikasi smartphone.
Catatan Penting:
-
Pin RX HC-06: Kita bisa menghubungkan Pin RX HC-06 ke Pin TX Arduino, tetapi pastikan tidak ada konflik baud rate antara perangkat.
-
Pin TX dari Timbangan: Karena kita hanya membaca data dari timbangan, kita tidak memerlukan pengiriman data balik dari Arduino ke timbangan.
-
RS232 to TTL Converter: Konverter ini penting untuk menyesuaikan sinyal RS232 (yang memiliki tegangan tinggi) menjadi level TTL yang bisa diterima oleh Arduino.
Kesimpulan
Dengan mengikuti tutorial ini, kita telah berhasil menghubungkan indikator timbangan digital dengan Arduino UNO dan mengirimkan data secara nirkabel menggunakan modul Bluetooth HC-06. Jika kita ingin mengeksplorasi lebih lanjut dan menggunakan mikrokontroler lainnya, seperti NodeMCU, kita bisa melihat tutorial kami yang lain di sini: .
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