2025年2月24日月曜日

SHT30/31/35 pedia

 

https://qiita.com/nanbuwks/items/c235f7f867f6139b6c8b :: i2 scanner

https://qiita.com/Dreamwalker/items/5f81bb6066f0c13d1398 で成功

sht30用だがsht35でも順調なようだ

https://lang-ship.com/blog/work/i2c-temperature-sensor/#toc5 でも書いてる

#include <Wire.h> #define Addr 0x44 // I2C scanner tell this address void readTempHumi(void); void setup() { Wire.begin(21, 22, 100000); // put your setup code here, to run once: Serial.begin(115200); delay(300); } void loop() { readTempHumi(); } void readTempHumi(void){ unsigned int data[6]; // Start I2C Transmission Wire.beginTransmission(Addr); // Send measurement command Wire.write(0x2C); Wire.write(0x06); // Stop I2C transmission Wire.endTransmission(); delay(500); // Request 6 bytes of data Wire.requestFrom(Addr, 6); // Read 6 bytes of data // cTemp msb, cTemp lsb, cTemp crc, humidity msb, humidity lsb, humidity crc if (Wire.available() == 6) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); data[3] = Wire.read(); data[4] = Wire.read(); data[5] = Wire.read(); } // Convert the data float cTemp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45; float fTemp = (cTemp * 1.8) + 32; float humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0); // Output data to serial monitor Serial.print("Relative Humidity : "); Serial.print(humidity); Serial.println(" %RH"); Serial.print("Temperature in Celsius : "); Serial.print(cTemp); Serial.println(" C"); Serial.print("Temperature in Fahrenheit : "); Serial.print(fTemp); Serial.println(" F"); delay(500); }


0 件のコメント:

コメントを投稿