BASIC LIBRARY TO INTERFACE WITH HTU21D TEMPERATURE AND HUMIDITY SENSOR
Dependents: Natural_Calamities_Monitoring_System Nucleo_HTU21D-F Nucleo_motors lpc1768_blinky ... more
HTU21D/HTU21D.h@0:db86ad1b4459, 2014-03-28 (annotated)
- Committer:
- hwing91
- Date:
- Fri Mar 28 14:55:03 2014 +0000
- Revision:
- 0:db86ad1b4459
INITIAL COMMIT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hwing91 | 0:db86ad1b4459 | 1 | /** |
hwing91 | 0:db86ad1b4459 | 2 | * @author Alan Lai & Nelson Diaz |
hwing91 | 0:db86ad1b4459 | 3 | * The Georgia Institute of Technology |
hwing91 | 0:db86ad1b4459 | 4 | * ECE 4180 Embeded Systems |
hwing91 | 0:db86ad1b4459 | 5 | * Professor Hamblen |
hwing91 | 0:db86ad1b4459 | 6 | * 03/28/2014 |
hwing91 | 0:db86ad1b4459 | 7 | * |
hwing91 | 0:db86ad1b4459 | 8 | * @section LICENSE |
hwing91 | 0:db86ad1b4459 | 9 | * ---------------------------------------------------------------------------- |
hwing91 | 0:db86ad1b4459 | 10 | * "THE BEER-WARE LICENSE" (Revision 42): |
hwing91 | 0:db86ad1b4459 | 11 | * <alanhlai91@gmail.com> wrote this file. As long as you retain this notice you |
hwing91 | 0:db86ad1b4459 | 12 | * can do whatever you want with this stuff. If we meet some day, and you think |
hwing91 | 0:db86ad1b4459 | 13 | * this stuff is worth it, you can buy me a beer in return. |
hwing91 | 0:db86ad1b4459 | 14 | * ---------------------------------------------------------------------------- |
hwing91 | 0:db86ad1b4459 | 15 | * |
hwing91 | 0:db86ad1b4459 | 16 | * |
hwing91 | 0:db86ad1b4459 | 17 | * @section DESCRIPTION |
hwing91 | 0:db86ad1b4459 | 18 | * |
hwing91 | 0:db86ad1b4459 | 19 | * Honeywell HTU21D Humidity and Temperature sensor. |
hwing91 | 0:db86ad1b4459 | 20 | * |
hwing91 | 0:db86ad1b4459 | 21 | * Datasheet, specs, and information: |
hwing91 | 0:db86ad1b4459 | 22 | * |
hwing91 | 0:db86ad1b4459 | 23 | * https://www.sparkfun.com/products/12064 |
hwing91 | 0:db86ad1b4459 | 24 | */ |
hwing91 | 0:db86ad1b4459 | 25 | |
hwing91 | 0:db86ad1b4459 | 26 | #ifndef HTU21D_H |
hwing91 | 0:db86ad1b4459 | 27 | #define HTU21D_H |
hwing91 | 0:db86ad1b4459 | 28 | |
hwing91 | 0:db86ad1b4459 | 29 | /** |
hwing91 | 0:db86ad1b4459 | 30 | * Includes |
hwing91 | 0:db86ad1b4459 | 31 | */ |
hwing91 | 0:db86ad1b4459 | 32 | #include "mbed.h" |
hwing91 | 0:db86ad1b4459 | 33 | |
hwing91 | 0:db86ad1b4459 | 34 | /** |
hwing91 | 0:db86ad1b4459 | 35 | * Defines |
hwing91 | 0:db86ad1b4459 | 36 | */ |
hwing91 | 0:db86ad1b4459 | 37 | // Acquired from Datasheet. |
hwing91 | 0:db86ad1b4459 | 38 | |
hwing91 | 0:db86ad1b4459 | 39 | #define HTU21D_I2C_ADDRESS 0x40 |
hwing91 | 0:db86ad1b4459 | 40 | #define TRIGGER_TEMP_MEASURE 0xE3 |
hwing91 | 0:db86ad1b4459 | 41 | #define TRIGGER_HUMD_MEASURE 0xE5 |
hwing91 | 0:db86ad1b4459 | 42 | |
hwing91 | 0:db86ad1b4459 | 43 | |
hwing91 | 0:db86ad1b4459 | 44 | //Commands. |
hwing91 | 0:db86ad1b4459 | 45 | #define HTU21D_EEPROM_WRITE 0x80 |
hwing91 | 0:db86ad1b4459 | 46 | #define HTU21D_EEPROM_READ 0x81 |
hwing91 | 0:db86ad1b4459 | 47 | |
hwing91 | 0:db86ad1b4459 | 48 | |
hwing91 | 0:db86ad1b4459 | 49 | /** |
hwing91 | 0:db86ad1b4459 | 50 | * Honeywell HTU21D digital humidity and temperature sensor. |
hwing91 | 0:db86ad1b4459 | 51 | */ |
hwing91 | 0:db86ad1b4459 | 52 | class HTU21D { |
hwing91 | 0:db86ad1b4459 | 53 | |
hwing91 | 0:db86ad1b4459 | 54 | public: |
hwing91 | 0:db86ad1b4459 | 55 | |
hwing91 | 0:db86ad1b4459 | 56 | /** |
hwing91 | 0:db86ad1b4459 | 57 | * Constructor. |
hwing91 | 0:db86ad1b4459 | 58 | * |
hwing91 | 0:db86ad1b4459 | 59 | * @param sda mbed pin to use for SDA line of I2C interface. |
hwing91 | 0:db86ad1b4459 | 60 | * @param scl mbed pin to use for SCL line of I2C interface. |
hwing91 | 0:db86ad1b4459 | 61 | */ |
hwing91 | 0:db86ad1b4459 | 62 | HTU21D(PinName sda, PinName scl); |
hwing91 | 0:db86ad1b4459 | 63 | |
hwing91 | 0:db86ad1b4459 | 64 | |
hwing91 | 0:db86ad1b4459 | 65 | //Samples the temperature, input void, outputs an int in celcius. |
hwing91 | 0:db86ad1b4459 | 66 | int sample_ctemp(void); |
hwing91 | 0:db86ad1b4459 | 67 | |
hwing91 | 0:db86ad1b4459 | 68 | //Samples the temperature, input void, outputs an int in fahrenheit. |
hwing91 | 0:db86ad1b4459 | 69 | int sample_ftemp(void); |
hwing91 | 0:db86ad1b4459 | 70 | |
hwing91 | 0:db86ad1b4459 | 71 | //Samples the temperature, input void, outputs an int in kelvin. |
hwing91 | 0:db86ad1b4459 | 72 | int sample_ktemp(void); |
hwing91 | 0:db86ad1b4459 | 73 | |
hwing91 | 0:db86ad1b4459 | 74 | //Samples the humidity, input void, outputs and int. |
hwing91 | 0:db86ad1b4459 | 75 | int sample_humid(void); |
hwing91 | 0:db86ad1b4459 | 76 | |
hwing91 | 0:db86ad1b4459 | 77 | |
hwing91 | 0:db86ad1b4459 | 78 | |
hwing91 | 0:db86ad1b4459 | 79 | private: |
hwing91 | 0:db86ad1b4459 | 80 | |
hwing91 | 0:db86ad1b4459 | 81 | I2C* i2c_; |
hwing91 | 0:db86ad1b4459 | 82 | |
hwing91 | 0:db86ad1b4459 | 83 | /** |
hwing91 | 0:db86ad1b4459 | 84 | * Write to EEPROM or RAM on the device. |
hwing91 | 0:db86ad1b4459 | 85 | * |
hwing91 | 0:db86ad1b4459 | 86 | * @param EepromOrRam 0x80 -> Writing to EEPROM |
hwing91 | 0:db86ad1b4459 | 87 | * @param address Address to write to. |
hwing91 | 0:db86ad1b4459 | 88 | * @param data Data to write. |
hwing91 | 0:db86ad1b4459 | 89 | */ |
hwing91 | 0:db86ad1b4459 | 90 | void write(int EepromOrRam, int address, int data); |
hwing91 | 0:db86ad1b4459 | 91 | |
hwing91 | 0:db86ad1b4459 | 92 | /** |
hwing91 | 0:db86ad1b4459 | 93 | * Read EEPROM or RAM on the device. |
hwing91 | 0:db86ad1b4459 | 94 | * |
hwing91 | 0:db86ad1b4459 | 95 | * @param EepromOrRam 0x81 -> Reading from EEPROM |
hwing91 | 0:db86ad1b4459 | 96 | * @param address Address to read from. |
hwing91 | 0:db86ad1b4459 | 97 | * @return The contents of the memory address. |
hwing91 | 0:db86ad1b4459 | 98 | */ |
hwing91 | 0:db86ad1b4459 | 99 | int read(int EepromOrRam, int address); |
hwing91 | 0:db86ad1b4459 | 100 | |
hwing91 | 0:db86ad1b4459 | 101 | }; |
hwing91 | 0:db86ad1b4459 | 102 | |
hwing91 | 0:db86ad1b4459 | 103 | #endif /* HTU21D_H */ |