htu21d_for_weather_shield
Dependents: SPARKFUN_WEATHER_SHIELD
Fork of htu21d by
htu21d.h@0:2dab43acb3a4, 2014-05-14 (annotated)
- 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?
User | Revision | Line number | New 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 |