mirror of
https://github.com/RobTillaart/Arduino.git
synced 2024-10-03 18:09:02 -04:00
105 lines
2.2 KiB
C++
105 lines
2.2 KiB
C++
//
|
|
// FILE: CHT8305_status.ino
|
|
// AUTHOR: Rob Tillaart
|
|
// PURPOSE: Demo for CHT8305 I2C humidity & temperature sensor
|
|
//
|
|
|
|
// Always check datasheet - front view
|
|
//
|
|
// +---------------+
|
|
// VCC ----| VCC |
|
|
// SDA ----| SDA CHT8305 | CHECK DATASHEET.
|
|
// GND ----| GND |
|
|
// SCL ----| SCL |
|
|
// ? ----| AD0 | ? depends on address to select
|
|
// | |
|
|
// IRQ ----| ALERT | only if enabled.
|
|
// +---------------+
|
|
//
|
|
// check datasheet
|
|
// VCC RED
|
|
// GND BLACK
|
|
// SDA YELLOW
|
|
// SCL WHITE
|
|
|
|
|
|
#include "CHT8305.h"
|
|
|
|
CHT8305 CHT;
|
|
|
|
uint8_t count = 0;
|
|
|
|
|
|
void setup()
|
|
{
|
|
CHT.begin(0x40); // CHT8305_DEFAULT_ADDRESS = 0x40
|
|
|
|
Wire.setClock(400000);
|
|
|
|
Serial.begin(115200);
|
|
Serial.println(__FILE__);
|
|
Serial.print("CHT8305_LIB_VERSION: ");
|
|
Serial.println(CHT8305_LIB_VERSION);
|
|
Serial.println();
|
|
|
|
Serial.println(CHT.getManufacturer(), HEX);
|
|
Serial.println(CHT.getVersionID(), HEX);
|
|
Serial.println(CHT.getVoltage());
|
|
|
|
delay(1000);
|
|
}
|
|
|
|
|
|
void loop()
|
|
{
|
|
if (millis() - CHT.lastRead() >= 1000)
|
|
{
|
|
// READ DATA
|
|
uint32_t start = micros();
|
|
int status = CHT.read();
|
|
uint32_t stop = micros();
|
|
|
|
if ((count % 10) == 0)
|
|
{
|
|
count = 0;
|
|
Serial.println();
|
|
Serial.println("Type\tHumidity (%)\tTemp (°C)\tTime (µs)\tStatus");
|
|
}
|
|
count++;
|
|
|
|
Serial.print("CHT8305\t");
|
|
// DISPLAY DATA, sensor has only one decimal.
|
|
Serial.print(CHT.getHumidity(), 1);
|
|
Serial.print("\t\t");
|
|
Serial.print(CHT.getTemperature(), 1);
|
|
Serial.print("\t\t");
|
|
Serial.print(stop - start);
|
|
Serial.print("\t\t");
|
|
switch (status)
|
|
{
|
|
case CHT8305_OK:
|
|
Serial.print("OK");
|
|
break;
|
|
case CHT8305_ERROR_ADDR:
|
|
Serial.print("Address error");
|
|
break;
|
|
case CHT8305_ERROR_I2C:
|
|
Serial.print("I2C error");
|
|
break;
|
|
case CHT8305_ERROR_CONNECT:
|
|
Serial.print("Connect error");
|
|
break;
|
|
case CHT8305_ERROR_LASTREAD:
|
|
Serial.print("Last read error");
|
|
break;
|
|
default:
|
|
Serial.print("Unknown error");
|
|
break;
|
|
}
|
|
Serial.print("\n");
|
|
}
|
|
}
|
|
|
|
|
|
// -- END OF FILE --
|