Cara Membaca Data Suhu dan Kelembaban Sensor SHT20 Modul XY-MD02

Modul XY-MD02 atau MD02 adalah sensor suhu dan kelembaban (temperature and humidity) berbasis sensor SHT-20 yang dilengkapi dengan interface RS485. Protokol komunikasi yang digunakan adalah modbus dengan struktur data yang sifatnya propietary alias bikinan sendiri pabrikannya (walaupun masih mengacu standar-standar protokol MODBUS). Jadi mau ngga mau kita harus memahami dan menggunakan protokol pembuat modul ini agar dapat menarik data suhu dan kelembaban sensor ini.

SPESIFIKASI XY-MD02 / MD02

Tegangan : 5 – 30 V DC
Interface : RS-485
Protokol komunikasi: MODBUS
Range deteksi suhu : -40℃ – 60℃
• Akurasi:+/-0.5 ℃
• Resolusi: 0.1℃
Range detesksi kelembaban: 0 – 80% RH
• akurasi: +/-3% RH
• resolusi: 0.1% RH
Mounting: DIN Rail (DIN35)
Dimensi box : 65 x 46 x 28.5 mm

Sebelum lebih lanjut membahas modul XYMD02 atau MD02 ada baiknya kita ketahui basic sensor SHT20 nya. SHT20 adalah sensor suhu dan kelembaban dengan grade industrial (klaimnya seperti itu) dengan ketelitian tinggi yang dilengkapi interface I2C. Berikut spesifikasi teknisnya

NilaiSatuan
Elektrikal  
Tegangan2.1 – 3.6V
Arus300-330uA
InterfaceI2C/IIC 
   
Kelembaban  
Akurasi3%RH
range0 – 80RH
response time8detik
   
Suhu  
Akurasi0.5°C
range-40 – 60°C
response time5detik

Nah, dari sensor SHT20 ini kemudian oleh pabrikan kemudian dibikinkan PCB (dan casing) dengan menambahkan modul RS485 dan kemudian dilabeli dengan nama XY-MD02. Sementara kompetitornya, membuat modul yang sama, dengan fungsionalitas yang sama dengan nama ‘MD02’ aja.

Penambahan modul RS-485 ini dimaksudkan supaya sensor SHT20 ini kompatibel dengan standar industri yang menggunakan protokol MODBUS (modbus berjalan di atas interface RS485). Keuntungan menggunakan standar RS-485 diantaranya adalah dapat diparalel sehingga membentuk jaringan ‘one to many’ (satu MASTER dengan banyak SLAVE) dan jarak kabel terjauh dapat mencapai 1000 meter.

Perbedaan Modul Sensor XY-MD02 dan MD02

Setelah kami coba, ternyata perbedaan antara kedua modul hanya terletak di parameter PARITY di settingan komunikasi serialnya saja, yakni PARITY NONE untuk modul XY-MD02 dan PARITY EVEN untuk modul MD02 Sementara untuk parameter BAUDRATE sama di angka 9600 (default), DATA BIT 8 dan STOP BIT 1. Sedangkan untuk SLAVE ID defaultnya di set 1. Untuk lebih jelasnya silahkan simak di tabel berikut ini

Parameter DefaultXY-MD02MD02
Baudrate96009600
Data Bit88
Stop Bit11
ParityNONEEVEN
Slave ID11
Pembacaan suhudibagi 10dibagi 100

Pemakaian Modul Sensor XY-MD02 / MD02

Perlu dipahami bahwa untuk mengambil data sensor XY-MD02/MD02 agak berbeda caranya dengan sensor kebanyakan yakni menggunakan protokol MODBUS. MODBUS sendiri merupakan protokol komunikasi data yang pada umumnya berjalan di interface RS-485. Jadi konsep yang perlu dipahami adalah di layer 1 (Physical Layer) dalam hal ini adalah interface elektrikalnya menggunakan komunikasi serial (RS-485) dan di layer 2 (Data Protocol) menggunakan MODBUS. Untuk top layer-nya (Application Layer) bisa menggunakan aplikasi Anda sendiri, atau untuk percobaan kali ini kita akan menggunakan tools modbus reader MODBUSMAT.exe (bisa Anda unduh di sini).

Catatan:
Sebaiknya pahami dulu konsep di atas karena akan sangat dibutuhkan ketika Anda mengalami kesulitan dengan hardware Anda

Dalam konfigurasi sistem yang akan kita coba, aplikasi MODBUSMAT.exe bertindak sebagai MODBUS MASTER, sedangkan modul XY-MD02 bertindak sebagai MODBUS SLAVE-nya, dengan SLAVE ID = 1 (default value)

Untuk koneksi wiring/elektrikalnya, dapat dilihat pada gambar di bawah. Perhatikan bahwa range tegangan modul cukup lebar yakni 5V – 30 VDC, sedangkan terminal A dan B ketemu dengan pin A dan B USB to RS485 secara lurus (straight)

Gambar 4. Koneksi wiring modul sensor XY-MD02 dengan USB RS495

Cara Mengambil Data Suhu & Kelembaban XY MD02

Seperti yang telah disebutkan di atas, bahwa modul sensor XYMD02 / MD02 menggunakan interface RS-485 dengan protokol MODBUS (propietary). Karena sifatnya yang propietary maka kita harus lihat datasheet dari pabrikannya sebagai petunjuk cara mengambil data suhu dan kelembaban udara dari modul ini. Datasheet modul XY-MD02 ini dapat Anda unduh di sini. Perhatikan pada tabel di bawah (saya capture dari datasheet)

Untuk membaca data modul XY-MD02 harus mengacu pada sistem protokol/konfigurasi data di atas, yakni mengeluarkan command MODBUS dengan struktur data [SLAVE_ID] [FUNCTION CODE] [REGISTER ADDR HI] [REGISTER ADDR LO] [VALUE HI] [VALUE LOW] [CRC HI] [CRC LO]. Jadi untuk case default, command yang harus dikeluarkan ke modul XY-MD02 adalah [01] [04] [00] [01] [00] [01] [60] [0A]. Nah setelah modul mendapat perintah ini, modul akan mengeluarkan respon sebagai berikut di jalur bus data MODBUS: [SLAVE_ID] [FUNCTION CODE] [JML REG DATA] [DATA HI] [DATA LO]

Sebagai contoh saat mencoba command di atas, respon yang didapat adalah sebagai berikut [01][04][02][01][26][39][7A], maka pembacaan suhu adalah [01][26] (angka dalam heksadesimal). Kalau kita masukkan ke kalkulator ‘Programmer’ di Windows 10/11 penghitungannya adalah sebagai berikut

contoh pembacaan suhu XY MD02

Sesuai datasheet maka konversi bilangan heksadesimal 126 menjadi desimal 294 kemudian dibagi 10, sehingga suhu yang dideteksi sensor menunjukkan 29.4 0C

Catatan:
Untuk modul XY-MD02, pembacaan suhu/kelembaban hasil konversi desimal harus dibagi 10, tetapi untuk modul MD02 dibagi 100

Percobaan Pembacaan Suhu dan Kelembaban Modul Sensor XY MD02 (SHT20)

Setelah kita mengerti konsep atau teori di atas, ada baiknya kita langsung mencobanya pada real komponen. Untuk kebutuhan percobaan, kita membutuhkan alat dan bahan sebagai berikut:

  1. Modul sensor XY-MD02 / MD02 bisa dibeli di … (pada percobaan kali ini saya menggunakan modul MD02)
  2. USB to RS485, bisa dibeli di
  3. Kabel jumper male to male, bisa dibeli di
  4. Power supply 12VDC, bisa dibeli di

Note:
Dengan membeli di toko kami Anda telah membantu kami untuk terus berkarya

Dari alat dan bahan di atas kemudian rangkai seperti pada Gambar 4 di atas

Setelah itu jalankan program MODBUSMAT.exe di laptop Anda, setting parameter komunikasi serial sebagai berikut (karena yang saya pakai adalah modul MD02, maka parity saya set ke EVEN) dengan menekan toolbar paling kiri atas. Untuk settingan Port, silahkan lihat pada Control Panel-Device Manager. Port COM ini akan muncul jika Anda sudah menancapkan dongle USB RS-485 dan sudah menginstal drivernya (bisa diunduh di sini)

Setelah itu di tab ‘Extra‘ masukkan command [01][04][00][01][00][01][60][0A] dan tekan tombol ‘Send Continuously’ untuk mengambil data suhu secara terus menerus.

Untuk melihat hasilnya, bisa Anda klik tab ‘Comm Monitor

Perhatikan respon yang muncul di jendela terminal (ini adalah respon yang dikirim modul MD02). Di jendela tersebut terbaca angka [01][04][02][0B]{D3}[FF][9D] . Sesuai datasheet, maka suhu terbaca adalah heksa BD3 = 3027 desimal. Angka ini kemudian dibagi 100 sehingga suhu yang terdeteksi sesungguhnya adalah 30,27 0C.

Untuk mengambil data kelembaban udara caranya sama, yakni tinggal mengeluarkan perintah [01][04][00][02][00][01][90][0A]. Untuk perintah-perintah lain seperti megubah SLAVE_ID, BAUD RATE, dll dapat dibaca di datasheet

Demikian sedikit tutorial mengenai cara membaca data suhu dan kelembaban udara sensor SHT20 pada modul XY-MD02, semoga dapat bermanfaat. Bagi yang masih bingung, bisa tulis pertanyaan di kolom komentar di bawah. Saya sediakan juga versi video tutorialnya di bawah ini dengan harapan supaya dapat lebih dimengerti oleh pembaca. Sekian, selamat berkarya.

Leave a Reply