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
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.
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:
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
HYT.h@0:cb02bfe8cf44, 2016-09-14 (annotated)
- Committer:
- Ksenia
- Date:
- Wed Sep 14 15:22:42 2016 +0000
- Revision:
- 0:cb02bfe8cf44
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 |