Thundersoft
/
HTU21D_for_TT_Mxx
Creating a project for TT_Mxx
Diff: HTU21D/HTU21D.h
- Revision:
- 0:1159c687a20f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HTU21D/HTU21D.h Thu Mar 21 09:44:17 2019 +0000 @@ -0,0 +1,92 @@ +#ifndef HTU21D_H +#define HTU21D_H + +/** + * Includes + */ +#include "mbed.h" + +/** + * Defines + */ +// Acquired from Datasheet. + +#define HTU21D_I2C_ADDRESS 0x40 +#define TRIGGER_TEMP_MEASURE 0xE3 +#define TRIGGER_HUMD_MEASURE 0xE5 + + +//Commands. +#define HTU21D_EEPROM_WRITE 0x80 +#define HTU21D_EEPROM_READ 0x81 + + +/** + * Honeywell HTU21D digital humidity and temperature sensor. + */ +class HTU21D { + +public: + + HTU21D(); + /** + * Constructor. + * + * @param sda mbed pin to use for SDA line of I2C interface. + * @param scl mbed pin to use for SCL line of I2C interface. + */ + HTU21D(PinName sda, PinName scl); + + + /** + * @brief Samples the temperature, input void, outputs an int in celcius. + * @return [description] + */ + int sample_ctemp(void); + + /** + * @brief Samples the temperature, input void, outputs an int in fahrenheit. + * @return [description] + */ + int sample_ftemp(void); + + /** + * @brief Samples the temperature, input void, outputs an int in kelvin. + * @return [description] + */ + int sample_ktemp(void); + + /** + * @brief Samples the humidity, input void, outputs and int. + * @return [description] + */ + int sample_humid(void); + + + +private: + + I2C* i2c_; + + /** + * Write to EEPROM or RAM on the device. + * + * @param EepromOrRam 0x80 -> Writing to EEPROM + * @param address Address to write to. + * @param data Data to write. + */ + void write(int EepromOrRam, int address, int data); + + /** + * Read EEPROM or RAM on the device. + * + * @param EepromOrRam 0x81 -> Reading from EEPROM + * @param address Address to read from. + * @return The contents of the memory address. + */ + int read(int EepromOrRam, int address); + +}; + + +#endif