sensore temperatura e umidità am2302 e arduino (protocollo i2c)

salve a tutti,
ho acquistato un sensore di temperatura ed umidità AM2302 (qui il datasheet).
Vorrei poterlo leggere in arduino mediante il protocollo i2C.

Riporto il file .ino:

#include <Wire.h>
#define I2CADDR 0x5C
#define READCMD 0x03
#define REGSTADDR 0x00
#define REGCOUNT 4

#define REGADDR 0x0B

void setup() {
  Wire.begin(); // wake up I2C bus
  Serial.begin(9600);
}

void loop() {
  byte buf[10];
  //
  // Read Command
  //
  Wire.beginTransmission(I2CADDR);
  Wire.write(READCMD);
  Wire.write(REGSTADDR);
  Wire.write(REGCOUNT);
  Wire.endTransmission();
  //
  // Waiting
  //
  delay(2); //>1.5ms
  //
  // Read
  //
  Wire.requestFrom(I2CADDR, 2 + REGCOUNT + 2); // COMMAND + DATA + REGCOUNT + CRCLSB + CRCMSB
  int i = 0;
  for (; i < 2 + REGCOUNT + 2; i++)
      buf[i] = Wire.read();
  for (i=0; i < 2 + REGCOUNT + 2; i++)
      Serial.println(buf[i]);
  delay(3000);
}

Tenuto conto che ho eseguito i seguenti collegamenti:

  1. pin1 AM2302 (VDD) ----> +5 V arduino
  2. pin2 AM2302 (SDA) ----> A4 arduino
  3. pin3 AM2302 (GND) ----> GND arduino
  4. pin4 AM2302 (SCL) ----> A5 arduino

e che ho trovato l'indirizzo del sensore (0x5C), tuttavia dal monitor seriale non riesco a leggere nulla (escono tanti 00000).
Dove sbaglio ?

Hai inserito i resistori di pullup da 4.7k sulle linee SDA ed SCL?

Il sensore ha indirizzo 0xB8, dove hai letto che è 0x5C?