Selasa Cek modul MD02 menggunakan RS405 dan ESP32
Alat dan bahan
ESP 32
RS485
MD02
Wiring modul MD02
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
Posting Komentar