Simple temperature and humidity program example for Hexiwear featuring UART

Fork of HTU21D by Alex Lipford

This project demonstrates the use of the HTU21D temperature and humidity sensor embedded in Hexiwear

Open a Hyperterminal tool on your computer and connect it to the "mbed Serial port (COMxx)" with Baud rate "9600bps"

Compile the project and copy the binary "Hexi_Humid_Temp_Example_HEXIWEAR.bin" in the DAP-LINK drive from your computer file explorer Press the K64F-RESET button on the docking station to start the program on your board

Every 500ms the value of the Temperature and Humidity will be displayed in the Hyperterminal window and the LED will blink Green

Committer:
GregC
Date:
Mon Oct 17 03:03:07 2016 +0000
Revision:
3:caccf1879f14
Parent:
2:4fd07be6bad8
Simple temperature and humidity program example for Hexiwear featuring UART

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hwing91 0:db86ad1b4459 1 /**
alipford3 2:4fd07be6bad8 2 * @author Alex Lipford
alipford3 2:4fd07be6bad8 3 * Georgia Institute of Technology
alipford3 2:4fd07be6bad8 4 * ECE 4180 Embeded Systems Design
hwing91 0:db86ad1b4459 5 * Professor Hamblen
alipford3 2:4fd07be6bad8 6 * 10/19/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):
alipford3 2:4fd07be6bad8 11 * <alexlipford@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 */