#include #define I2CADDRESS 0x38 uint8_t buf[6]; void setup() { Wire.begin(); Serial.begin(115200); Serial.println("DHT20:Tempratue Humidy"); } int dht20(){ uint8_t chk=1; while(chk) { Wire.beginTransmission(I2CADDRESS); Wire.write(0xac); Wire.write(0x33); Wire.write(0x00); Wire.endTransmission(); delay(80);/* 80mS遅延 */ Wire.requestFrom(I2CADDRESS,6); for(uint8_t i=0;i<6;i++) buf[i]=Wire.read(); chk=(buf[0]&0x80); } return chk; } float getHumidy(){ long t; t= ((buf[1]<<8) | (buf[2]))<<4 | (buf[3]>>4 &0x0f); return t/10485.76; } float getTemprature(){ long t; t=(((buf[3]&0x0f)<<8) | buf[4])<<8 | buf[5]; return t/5242.88-50; } void loop() { delay(1000); /*1秒ごとに更新*/ dht20(); Serial.print(String(getTemprature()) + " deg "); Serial.print(String(getHumidy()) + " % "); Serial.println(); }