Selasa Cek modul MD02 menggunakan RS405 dan ESP32

Alat dan bahan 

ESP 32

RS485

MD02 



Wiring modul MD02





Kode yang dipakai 

#include <HardwareSerial.h> #include <ModbusRTUMaster.h> // https://github.com/CMB27/ModbusRTUMaster #define HW_SERIAL (0) HardwareSerial RS485( HW_SERIAL ); // Use Hardware Serial 0 or 1 ModbusRTUMaster modbus( RS485 ); void setup() { Serial.begin(115200); // USB-CDC while(!Serial); Serial.flush(); // Set Tx/Rx pins for RS485-serial if (HW_SERIAL==0) { // Default pins for Serial0: RX=GPIO20, TX=GPIO21 RS485.setPins( 20 /*RX*/, 21 /*TX*/ ); } else { // Default pins for Serial1: RX=GPIO18, TX=GPIO19 // Use RX=10 and TX=9 for Super-Mini ESP32C3 Board. RS485.setPins( 10 /*RX*/, 9 /*TX*/ ); } // Set baudrate for RS485-serial modbus.begin( 9600 ); } void loop() { static uint8_t dev_addr = 1; uint16_t regValues[2] = {0xffff,0xffff}; // device address, starting address of input registers, // number of input registers to read modbus.readInputRegisters( dev_addr, 0x0001, regValues, 2 ); if ( regValues[0] != 0xffff ) { float temp = ((int16_t)regValues[0])/10.0f; float humid = ((int16_t)regValues[1])/10.0f; Serial.println(String("XY-MD02 Reading, Device Address: ") + dev_addr); Serial.println(String("- Temperature : ") + temp + String(" deg.C")); Serial.println(String("- Humidity : ") + humid + String(" %RH\n")); } else { Serial.println("Sensor reading errors!"); } Serial.flush(); if ((dev_addr += 1) > 2) { dev_addr = 1; } delay(2000);


Contoh hasil yang berhasil




Sementara hasil saya





Kesimpulan

Hasil dari percobaan yang saya lakukan tidak berhasil dan perlu beberapa hal ulang perlu diperbaiki
di kodenya dan Wiring koneksinya

Komentar

Postingan populer dari blog ini

Membuat akun blog

Konfigurasi Jaringan CCTV Hikvision dengan Mikrotik dan Bridge

C++ Life tech VT1 - VT 29