Contents
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
Nilai | Satuan | |
Elektrikal | ||
Tegangan | 2.1 – 3.6 | V |
Arus | 300-330 | uA |
Interface | I2C/IIC | |
Kelembaban | ||
Akurasi | 3% | RH |
range | 0 – 80 | RH |
response time | 8 | detik |
Suhu | ||
Akurasi | 0.5 | °C |
range | -40 – 60 | °C |
response time | 5 | detik |
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 Default | XY-MD02 | MD02 |
Baudrate | 9600 | 9600 |
Data Bit | 8 | 8 |
Stop Bit | 1 | 1 |
Parity | NONE | EVEN |
Slave ID | 1 | 1 |
Pembacaan suhu | dibagi 10 | dibagi 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)
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
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:
- Modul sensor XY-MD02 / MD02 bisa dibeli di sini (pada percobaan kali ini saya menggunakan modul MD02)
- USB to RS485, bisa dibeli di sini
- Kabel jumper male to male 20 cm, bisa dibeli di sini
- Power supply 12V DC, bisa dibeli di sini
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.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Apakah dipasang di sinotimer mh0302 bisa berjalan dengan baik
maaf belum pernah mencoba di mh0302 krn tidak punya barangnya 😊🙏
cara setting ID nya mas
Untuk kalibrasi suhunya di md02 bagaimana mas?
bisa set di alamat 0x103 (103 hexa) mas. Selengkapnya bs baca di datasheet
untuk mengubah slave id dari md02 bagaimana ya? karena saat dicoba menggunakan function read holding dengan address 101(257) slave id tidak terbaca(0) dan terdapat keterangan crc error. Mohon bantuannya, terima kasih
ikuti datasheet mas, kmd kl mau ubah pake mode binary/heksa pake aplikasi modbusMAT atau pake script (biasanya sy pake python)
cara mengubah slave id md02 apakah sama dengan xy-md02
sama, cuma hati2, pernah ganti slave id md02 tapi gagal, susah di-recovery. Yg MD02 banyak yg KW3 di pasaran 😁