BASIC LIBRARY TO INTERFACE WITH HTU21D TEMPERATURE AND HUMIDITY SENSOR

Dependents:   Natural_Calamities_Monitoring_System Nucleo_HTU21D-F Nucleo_motors lpc1768_blinky ... more

Committer:
hwing91
Date:
Fri Mar 28 14:55:03 2014 +0000
Revision:
0:db86ad1b4459
INITIAL COMMIT

Who changed what in which revision?

UserRevisionLine numberNew 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 */