htu21d_for_weather_shield

Dependents:   SPARKFUN_WEATHER_SHIELD

Fork of htu21d by Kevin Braun

Committer:
loopsva
Date:
Wed May 14 00:31:30 2014 +0000
Revision:
0:2dab43acb3a4
Child:
1:d3ed713f8354
Convert to library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
loopsva 0:2dab43acb3a4 1 /**
loopsva 0:2dab43acb3a4 2 */
loopsva 0:2dab43acb3a4 3
loopsva 0:2dab43acb3a4 4 #ifndef HTU21D_H
loopsva 0:2dab43acb3a4 5 #define HTU21D_H
loopsva 0:2dab43acb3a4 6
loopsva 0:2dab43acb3a4 7 #include "mbed.h"
loopsva 0:2dab43acb3a4 8
loopsva 0:2dab43acb3a4 9 //Defines for HTU21D
loopsva 0:2dab43acb3a4 10 #define HTU21Di2cWRITE 0x80
loopsva 0:2dab43acb3a4 11 #define HTU21Di2cREAD 0x81
loopsva 0:2dab43acb3a4 12
loopsva 0:2dab43acb3a4 13 #define HTU21DWRITEUSER 0xE6
loopsva 0:2dab43acb3a4 14 #define HTU21DREADUSER 0xE7
loopsva 0:2dab43acb3a4 15 #define HTU21DtempNOHOLD 0xF3
loopsva 0:2dab43acb3a4 16 #define HTU21DhumNOHOLD 0xF5
loopsva 0:2dab43acb3a4 17 #define HTU21DRESET 0xFE
loopsva 0:2dab43acb3a4 18
loopsva 0:2dab43acb3a4 19 #define HTU21DHEATER 0x04
loopsva 0:2dab43acb3a4 20
loopsva 0:2dab43acb3a4 21
loopsva 0:2dab43acb3a4 22 /**
loopsva 0:2dab43acb3a4 23 * Honeywell HTU21D digital humidity and temperature sensor.
loopsva 0:2dab43acb3a4 24 */
loopsva 0:2dab43acb3a4 25 class htu21d {
loopsva 0:2dab43acb3a4 26
loopsva 0:2dab43acb3a4 27 public:
loopsva 0:2dab43acb3a4 28 /**
loopsva 0:2dab43acb3a4 29 * Constructor.
loopsva 0:2dab43acb3a4 30 *
loopsva 0:2dab43acb3a4 31 * @param sda and scl, mbed I2C interface pins.
loopsva 0:2dab43acb3a4 32 */
loopsva 0:2dab43acb3a4 33 htu21d(PinName sda, PinName scl);
loopsva 0:2dab43acb3a4 34 /**
loopsva 0:2dab43acb3a4 35 * De-constructor.
loopsva 0:2dab43acb3a4 36 *
loopsva 0:2dab43acb3a4 37 * @param --none--.
loopsva 0:2dab43acb3a4 38 */
loopsva 0:2dab43acb3a4 39 ~htu21d();
loopsva 0:2dab43acb3a4 40 /**
loopsva 0:2dab43acb3a4 41 * Get HTU21D Temperature.
loopsva 0:2dab43acb3a4 42 *
loopsva 0:2dab43acb3a4 43 * @param --none--.
loopsva 0:2dab43acb3a4 44 *
loopsva 0:2dab43acb3a4 45 * @return success / failure of HTU21D i2c access. 1 = ok, 0 = error.
loopsva 0:2dab43acb3a4 46 */
loopsva 0:2dab43acb3a4 47 int softReset();
loopsva 0:2dab43acb3a4 48 /**
loopsva 0:2dab43acb3a4 49 * Get HTU21D user register.
loopsva 0:2dab43acb3a4 50 *
loopsva 0:2dab43acb3a4 51 * @param --none--.
loopsva 0:2dab43acb3a4 52 *
loopsva 0:2dab43acb3a4 53 * @return success / failure of HTU21D i2c access. 1 = ok, 0 = error.
loopsva 0:2dab43acb3a4 54 */
loopsva 0:2dab43acb3a4 55 uint8_t getUserReg();
loopsva 0:2dab43acb3a4 56 /**
loopsva 0:2dab43acb3a4 57 * Turn ON the heater in the HTU21D.
loopsva 0:2dab43acb3a4 58 *
loopsva 0:2dab43acb3a4 59 * @param --none--.
loopsva 0:2dab43acb3a4 60 *
loopsva 0:2dab43acb3a4 61 * @return success / failure of HTU21D i2c access. 1 = ok, 0 = error.
loopsva 0:2dab43acb3a4 62 */
loopsva 0:2dab43acb3a4 63 int heaterOn();
loopsva 0:2dab43acb3a4 64 /**
loopsva 0:2dab43acb3a4 65 * Turn OFF the heater in the HTU21D.
loopsva 0:2dab43acb3a4 66 *
loopsva 0:2dab43acb3a4 67 * @param --none--.
loopsva 0:2dab43acb3a4 68 *
loopsva 0:2dab43acb3a4 69 * @return --none--.
loopsva 0:2dab43acb3a4 70 */
loopsva 0:2dab43acb3a4 71 int heaterOff();
loopsva 0:2dab43acb3a4 72 /**
loopsva 0:2dab43acb3a4 73 * Get heater on/off status in the HTU21D.
loopsva 0:2dab43acb3a4 74 *
loopsva 0:2dab43acb3a4 75 * @param --none--.
loopsva 0:2dab43acb3a4 76 *
loopsva 0:2dab43acb3a4 77 * @return 4 = on, 0 = 0ff.
loopsva 0:2dab43acb3a4 78 */
loopsva 0:2dab43acb3a4 79 uint8_t getHeater();
loopsva 0:2dab43acb3a4 80 /**
loopsva 0:2dab43acb3a4 81 * Do a reset on the HTU21D.
loopsva 0:2dab43acb3a4 82 *
loopsva 0:2dab43acb3a4 83 * @param --none--.
loopsva 0:2dab43acb3a4 84 *
loopsva 0:2dab43acb3a4 85 * @return float of Temperature in degrees C. 255.0 if error.
loopsva 0:2dab43acb3a4 86 */
loopsva 0:2dab43acb3a4 87 float getTemp();
loopsva 0:2dab43acb3a4 88 /**
loopsva 0:2dab43acb3a4 89 * Get HTU21D Humidity.
loopsva 0:2dab43acb3a4 90 *
loopsva 0:2dab43acb3a4 91 * @param --none--.
loopsva 0:2dab43acb3a4 92 *
loopsva 0:2dab43acb3a4 93 * @return float of Humidity in percentage. 255.0 if error.
loopsva 0:2dab43acb3a4 94 */
loopsva 0:2dab43acb3a4 95 float getHum();
loopsva 0:2dab43acb3a4 96 /**
loopsva 0:2dab43acb3a4 97 * Claculate the Dew Point.
loopsva 0:2dab43acb3a4 98 *
loopsva 0:2dab43acb3a4 99 * @param MUST run getTemp and getHum first!!
loopsva 0:2dab43acb3a4 100 *
loopsva 0:2dab43acb3a4 101 * @return float of Dew Point.
loopsva 0:2dab43acb3a4 102 */
loopsva 0:2dab43acb3a4 103 float getDewPt();
loopsva 0:2dab43acb3a4 104 /**
loopsva 0:2dab43acb3a4 105 * Claculate the Dew Point. 5x faster than getDewPt().
loopsva 0:2dab43acb3a4 106 *
loopsva 0:2dab43acb3a4 107 * @param MUST run getTemp and getHum first!!
loopsva 0:2dab43acb3a4 108 *
loopsva 0:2dab43acb3a4 109 * @return float of Dew Point.
loopsva 0:2dab43acb3a4 110 */
loopsva 0:2dab43acb3a4 111 float getDewPtFast();
loopsva 0:2dab43acb3a4 112
loopsva 0:2dab43acb3a4 113
loopsva 0:2dab43acb3a4 114
loopsva 0:2dab43acb3a4 115 private:
loopsva 0:2dab43acb3a4 116 I2C _i2c;
loopsva 0:2dab43acb3a4 117 /**
loopsva 0:2dab43acb3a4 118 * I2C access for getting raw Temperature and Humidity data.
loopsva 0:2dab43acb3a4 119 *
loopsva 0:2dab43acb3a4 120 * @param 8 bit HTU21D register to get data from. Must use non-blocking regs.
loopsva 0:2dab43acb3a4 121 *
loopsva 0:2dab43acb3a4 122 * @return 16 bit raw i2c data, ANDed to 14 bits 0xFFFC. 0000 if error.
loopsva 0:2dab43acb3a4 123 */
loopsva 0:2dab43acb3a4 124 uint16_t getData(uint8_t reg);
loopsva 0:2dab43acb3a4 125 double theTempIs;
loopsva 0:2dab43acb3a4 126 double theHumIs;
loopsva 0:2dab43acb3a4 127 float getTrash();
loopsva 0:2dab43acb3a4 128
loopsva 0:2dab43acb3a4 129 };
loopsva 0:2dab43acb3a4 130
loopsva 0:2dab43acb3a4 131 #endif