47 lines
871 B
C++
Executable File
47 lines
871 B
C++
Executable File
#include "MikuDuino.h"
|
|
#include "Wire.h"
|
|
|
|
/*
|
|
*MikuSHT2x.cpp:
|
|
*
|
|
* Welcome to MikuQ.com! MikuDuino for BananaPi
|
|
*
|
|
* by MikuQ(i@mikuq.com)
|
|
*
|
|
* https://github.com/bpiq/MikuPi
|
|
*
|
|
*/
|
|
|
|
#include "MikuSHT2x.h"
|
|
|
|
float Miku_SHT2x::GetHumidity(void)
|
|
{
|
|
return (-6.0 + 125.0 / 65536.0 * (float)(readSensor(eRHumidityHoldCmd)));
|
|
}
|
|
|
|
float Miku_SHT2x::GetTemperature(void)
|
|
{
|
|
return (-46.85 + 175.72 / 65536.0 * (float)(readSensor(eTempHoldCmd)));
|
|
}
|
|
|
|
uint16 Miku_SHT2x::readSensor(uint8 command)
|
|
{
|
|
uint16 result;
|
|
|
|
Wire.beginTransmission(eSHT2xAddress);
|
|
Wire.write(command);
|
|
delay(100);
|
|
Wire.endTransmission();
|
|
|
|
Wire.requestFrom(eSHT2xAddress, 3);
|
|
while(Wire.available() < 3) {
|
|
;
|
|
}
|
|
|
|
result = ((Wire.read()) << 8);
|
|
result += Wire.read();
|
|
result &= ~0x0003;
|
|
return result;
|
|
}
|
|
|