Lib for HYT temp & humidity sensor

Dependents:   HYT_example Temp_&_RH_at_TFT-demo Temp_&_RH_at_TFT_with_touchscreen Temp_&_RH_at_TFT_with_touchscreen-ENG ... more

Fork of HYT by Ksenia Kondrashova

This is a simple library for the HYT-271, HYT-221 and HYT-939 humidity and temperature sensors by IST-AG company. The difference between HYT sensors is only a package.

/media/uploads/Ksenia/3-in-1-small.png

General information:

  • High precision: +/-1.8%RH and 0.2°C
  • Temperature range: -40°C to +125°C
  • Low drift : less than 0,5% RH / year
  • Power consumption: 22 µA during operation
  • Fully calibrated and compensated humidity and temperature signal
  • Digital I2C interface (14 bit values)

Product Page: http://www.ist-ag.com/eh/ist-ag/en/home.nsf/contentview/~humidity-modules

Remember to use pull-up resisrors:

/media/uploads/Ksenia/freshpaint-20-2016.09.16-10.37.03.png

You can also find Hello Word program sending data from sensor to PC via serial interface: https://developer.mbed.org/users/Ksenia/code/HYT_example/

Library doesn't contain command mode instructions. There are only functions for polling the HYT sensor with default i2c address

Committer:
Ksenia
Date:
Wed Sep 14 15:22:42 2016 +0000
Revision:
0:cb02bfe8cf44
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ksenia 0:cb02bfe8cf44 1 #ifndef MBED_HYT_H
Ksenia 0:cb02bfe8cf44 2 #define MBED_HYT_H
Ksenia 0:cb02bfe8cf44 3
Ksenia 0:cb02bfe8cf44 4 #include "mbed.h"
Ksenia 0:cb02bfe8cf44 5
Ksenia 0:cb02bfe8cf44 6 /**
Ksenia 0:cb02bfe8cf44 7 * IST HYT Humidity and Temperature Sensor
Ksenia 0:cb02bfe8cf44 8 *
Ksenia 0:cb02bfe8cf44 9 * @code
Ksenia 0:cb02bfe8cf44 10 * #include "mbed.h"
Ksenia 0:cb02bfe8cf44 11 * #include "HYT.h"
Ksenia 0:cb02bfe8cf44 12 *
Ksenia 0:cb02bfe8cf44 13 * Serial pc(USBTX, USBRX);
Ksenia 0:cb02bfe8cf44 14 * Ticker timeKeeping;
Ksenia 0:cb02bfe8cf44 15 * HYT SENSOR (I2C_SDA, I2C_SCL);
Ksenia 0:cb02bfe8cf44 16 *
Ksenia 0:cb02bfe8cf44 17 * // HYT sensor polling cycle
Ksenia 0:cb02bfe8cf44 18 * void dataUpdate(void)
Ksenia 0:cb02bfe8cf44 19 * {
Ksenia 0:cb02bfe8cf44 20 * SENSOR.MRCommand();
Ksenia 0:cb02bfe8cf44 21 * wait_ms(100);
Ksenia 0:cb02bfe8cf44 22 * SENSOR.DFCommand();
Ksenia 0:cb02bfe8cf44 23 * }
Ksenia 0:cb02bfe8cf44 24 *
Ksenia 0:cb02bfe8cf44 25 * void secondsCallback(void) {
Ksenia 0:cb02bfe8cf44 26 * pc.printf("Humidity level: %.1f\r\n%", SENSOR.humidity);
Ksenia 0:cb02bfe8cf44 27 * pc.printf("Temperature level: %.1f\r\n%", SENSOR.temperature);
Ksenia 0:cb02bfe8cf44 28 * pc.printf("-------------------------------\r\n%", SENSOR.temperature);
Ksenia 0:cb02bfe8cf44 29 * }
Ksenia 0:cb02bfe8cf44 30 *
Ksenia 0:cb02bfe8cf44 31 * int main()
Ksenia 0:cb02bfe8cf44 32 * {
Ksenia 0:cb02bfe8cf44 33 * timeKeeping.attach(&secondsCallback, 1.0f);
Ksenia 0:cb02bfe8cf44 34 * while(1) {
Ksenia 0:cb02bfe8cf44 35 * dataUpdate();
Ksenia 0:cb02bfe8cf44 36 * }
Ksenia 0:cb02bfe8cf44 37 * }
Ksenia 0:cb02bfe8cf44 38 * @endcode
Ksenia 0:cb02bfe8cf44 39 */
Ksenia 0:cb02bfe8cf44 40
Ksenia 0:cb02bfe8cf44 41
Ksenia 0:cb02bfe8cf44 42 #define HYT_ADDR 0x50 // 01010000
Ksenia 0:cb02bfe8cf44 43
Ksenia 0:cb02bfe8cf44 44 class HYT
Ksenia 0:cb02bfe8cf44 45 {
Ksenia 0:cb02bfe8cf44 46
Ksenia 0:cb02bfe8cf44 47 public:
Ksenia 0:cb02bfe8cf44 48 /**
Ksenia 0:cb02bfe8cf44 49 * HYT constructor.
Ksenia 0:cb02bfe8cf44 50 *
Ksenia 0:cb02bfe8cf44 51 * @param sda mbed pin to use for SDA line of I2C interface.
Ksenia 0:cb02bfe8cf44 52 * @param scl mbed pin to use for SCL line of I2C interface.
Ksenia 0:cb02bfe8cf44 53 *
Ksenia 0:cb02bfe8cf44 54 * Remember about pull-up resistors on sda and scl. Recommended value is 2.4 kΩ
Ksenia 0:cb02bfe8cf44 55 */
Ksenia 0:cb02bfe8cf44 56 HYT(PinName sda, PinName scl);
Ksenia 0:cb02bfe8cf44 57
Ksenia 0:cb02bfe8cf44 58 /**
Ksenia 0:cb02bfe8cf44 59 * @brief The totals (temperature in Celsius, relative humidity in percentages)
Ksenia 0:cb02bfe8cf44 60 */
Ksenia 0:cb02bfe8cf44 61 float humidity;
Ksenia 0:cb02bfe8cf44 62 float temperature;
Ksenia 0:cb02bfe8cf44 63
Ksenia 0:cb02bfe8cf44 64 /**
Ksenia 0:cb02bfe8cf44 65 * @brief Send "Measuring Request" command
Ksenia 0:cb02bfe8cf44 66 * @details Initiates a measuring cycle of HYT sensor
Ksenia 0:cb02bfe8cf44 67 * @details More information: http://www.ist-ag.com/eh/ist-ag/resource.nsf/imgref/Download_AHHYTM_E2.2.5.pdf/$FILE/AHHYTM_E2.2.5.pdf
Ksenia 0:cb02bfe8cf44 68 */
Ksenia 0:cb02bfe8cf44 69 void MRCommand(void);
Ksenia 0:cb02bfe8cf44 70
Ksenia 0:cb02bfe8cf44 71 /**
Ksenia 0:cb02bfe8cf44 72 * @brief Send "Data Fetch" command & processing the data
Ksenia 0:cb02bfe8cf44 73 * @details Fetch the last measured value of humidity and temperature from sensor
Ksenia 0:cb02bfe8cf44 74 * @details Calculate values of temperature in Celsius, relative humidity in percentages
Ksenia 0:cb02bfe8cf44 75 * @details More information: http://www.ist-ag.com/eh/ist-ag/resource.nsf/imgref/Download_AHHYTM_E2.2.5.pdf/$FILE/AHHYTM_E2.2.5.pdf
Ksenia 0:cb02bfe8cf44 76 * @returns 0 if no errors, -1 if no new value received from sensor.
Ksenia 0:cb02bfe8cf44 77 */
Ksenia 0:cb02bfe8cf44 78 int DFCommand(void);
Ksenia 0:cb02bfe8cf44 79
Ksenia 0:cb02bfe8cf44 80 private:
Ksenia 0:cb02bfe8cf44 81
Ksenia 0:cb02bfe8cf44 82 I2C _i2c;
Ksenia 0:cb02bfe8cf44 83 };
Ksenia 0:cb02bfe8cf44 84
Ksenia 0:cb02bfe8cf44 85 #endif