Ks0314 keyestudio ReSpeaker 2-Mic Pi HAT V1.0
Revision as of 14:09, 20 July 2018 by Keyestudio (talk | contribs) (Created page with "== Sample Code == <pre> // Distributed with a free-will license. // Use it any way you want, profit or free, provided it fits in the licenses of its associated works. // SHT...")
Sample Code
// Distributed with a free-will license.
// Use it any way you want, profit or free, provided it fits in the licenses of its associated works.
// SHT30
// This code is designed to work with the SHT30_I2CS I2C Mini Module available from ControlEverything.com.
// https://www.controleverything.com/content/Humidity?sku=SHT30_I2CS#tabs-0-product_tabset-2
#include <Wire.h>
// SHT30 I2C address is 0x44(68)
#define Addr 0x44
void setup()
{
// Initialise I2C communication as MASTER
Wire.begin();
// Initialise serial communication, set baud rate = 9600
Serial.begin(9600);
delay(300);
}
void loop()
{
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 fTemp = ((((data[0] * 256.0) + data[1]) * 315) / 65535.0) - 49;
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);
}