BLE_HTS_Demo

This BLE_HTS_Demo program enables you to collect Temperature and Humidity data reading from sensor and transmit to collector device such as smartphone.

Below documents teach you how to install app that can connect and read data from our DELTA-DFCM-NNN40 development board. There are two versions, Android and iPhone.

/media/uploads/Marcomissyou/ios_app_for_environment_sensor_0518.pdf

/media/uploads/Marcomissyou/android_app_for_environment_sensor.pdf

Committer:
Marcomissyou
Date:
Wed Jun 03 03:13:27 2015 +0000
Revision:
0:ef0f188a6fdd
BLE HTS Demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Marcomissyou 0:ef0f188a6fdd 1 /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
Marcomissyou 0:ef0f188a6fdd 2 *
Marcomissyou 0:ef0f188a6fdd 3 * The information contained herein is property of Nordic Semiconductor ASA.
Marcomissyou 0:ef0f188a6fdd 4 * Terms and conditions of usage are described in detail in NORDIC
Marcomissyou 0:ef0f188a6fdd 5 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
Marcomissyou 0:ef0f188a6fdd 6 *
Marcomissyou 0:ef0f188a6fdd 7 * Licensees are granted free, non-transferable use of the information. NO
Marcomissyou 0:ef0f188a6fdd 8 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
Marcomissyou 0:ef0f188a6fdd 9 * the file.
Marcomissyou 0:ef0f188a6fdd 10 *
Marcomissyou 0:ef0f188a6fdd 11 */
Marcomissyou 0:ef0f188a6fdd 12
Marcomissyou 0:ef0f188a6fdd 13 #ifndef HTS221_H
Marcomissyou 0:ef0f188a6fdd 14 #define HTS221_H
Marcomissyou 0:ef0f188a6fdd 15
Marcomissyou 0:ef0f188a6fdd 16 /*lint ++flb "Enter library region" */
Marcomissyou 0:ef0f188a6fdd 17
Marcomissyou 0:ef0f188a6fdd 18 #include <stdbool.h>
Marcomissyou 0:ef0f188a6fdd 19 #include <stdint.h>
Marcomissyou 0:ef0f188a6fdd 20
Marcomissyou 0:ef0f188a6fdd 21 #define ADDRESS_WHO_AM_I (0x0FU) //!< WHO_AM_I register identifies the device. Expected value is 0xBC.
Marcomissyou 0:ef0f188a6fdd 22
Marcomissyou 0:ef0f188a6fdd 23 #define HTS221_WriteADDE 0xBE
Marcomissyou 0:ef0f188a6fdd 24 #define HTS221_ReadADDE 0xBF
Marcomissyou 0:ef0f188a6fdd 25 #define HTS221_TempHumi_OUT 0x28
Marcomissyou 0:ef0f188a6fdd 26 #define HTS221_CALIB 0x30
Marcomissyou 0:ef0f188a6fdd 27
Marcomissyou 0:ef0f188a6fdd 28 #define MaxTemp 120
Marcomissyou 0:ef0f188a6fdd 29 #define MinTemp -40
Marcomissyou 0:ef0f188a6fdd 30 #define MaxHumi 100
Marcomissyou 0:ef0f188a6fdd 31 #define MinHumi 0
Marcomissyou 0:ef0f188a6fdd 32
Marcomissyou 0:ef0f188a6fdd 33 // Humidity and temperature resolution mode, to ocnfigure sample average
Marcomissyou 0:ef0f188a6fdd 34 #define TRes_1 000 // Number of temperature samples take 2^1, TRes_2 take 2^2, and so forth.
Marcomissyou 0:ef0f188a6fdd 35 #define TRes_2 001
Marcomissyou 0:ef0f188a6fdd 36 #define TRes_3 010
Marcomissyou 0:ef0f188a6fdd 37 #define TRes_4 011
Marcomissyou 0:ef0f188a6fdd 38 #define TRes_5 100
Marcomissyou 0:ef0f188a6fdd 39 #define TRes_6 101
Marcomissyou 0:ef0f188a6fdd 40 #define TRes_7 102
Marcomissyou 0:ef0f188a6fdd 41 #define TRes_8 103
Marcomissyou 0:ef0f188a6fdd 42
Marcomissyou 0:ef0f188a6fdd 43 #define HRes_2 000 // Number of humidity samples take 2^2, HRes_3 take 2^3, and so forth.
Marcomissyou 0:ef0f188a6fdd 44 #define HRes_3 001
Marcomissyou 0:ef0f188a6fdd 45 #define HRes_4 010
Marcomissyou 0:ef0f188a6fdd 46 #define HRes_5 011
Marcomissyou 0:ef0f188a6fdd 47 #define HRes_6 100
Marcomissyou 0:ef0f188a6fdd 48 #define HRes_7 101
Marcomissyou 0:ef0f188a6fdd 49 #define HRes_8 102
Marcomissyou 0:ef0f188a6fdd 50 #define HRes_9 103
Marcomissyou 0:ef0f188a6fdd 51
Marcomissyou 0:ef0f188a6fdd 52 // Control register 1
Marcomissyou 0:ef0f188a6fdd 53 #define PD_On 0x80 // Power down mode
Marcomissyou 0:ef0f188a6fdd 54 #define PD_Off 0x00 // Active mode
Marcomissyou 0:ef0f188a6fdd 55
Marcomissyou 0:ef0f188a6fdd 56 #define BDU_On 0x04 // Block data update, this feature prevents the reading of LSB and MSB related to different samples.
Marcomissyou 0:ef0f188a6fdd 57 #define BDU_Off 0x00
Marcomissyou 0:ef0f188a6fdd 58 // Define output data rate
Marcomissyou 0:ef0f188a6fdd 59 #define ODR_OneShot 0x00
Marcomissyou 0:ef0f188a6fdd 60 #define ODR_1Hz 0x01
Marcomissyou 0:ef0f188a6fdd 61 #define ODR_7Hz 0x02
Marcomissyou 0:ef0f188a6fdd 62 #define ODR_12_5Hz 0x03
Marcomissyou 0:ef0f188a6fdd 63 // Control register 2
Marcomissyou 0:ef0f188a6fdd 64 #define Boot 0x80
Marcomissyou 0:ef0f188a6fdd 65 #define NoBoot 0x00
Marcomissyou 0:ef0f188a6fdd 66 #define HeaterOn 0x02
Marcomissyou 0:ef0f188a6fdd 67 #define HeaterOff 0x00
Marcomissyou 0:ef0f188a6fdd 68 #define New_OS 0x01 // One shot, a single acquisition of temperature and humidity is started
Marcomissyou 0:ef0f188a6fdd 69 #define No_OS 0x00
Marcomissyou 0:ef0f188a6fdd 70 // Control register 3
Marcomissyou 0:ef0f188a6fdd 71 #define DRDY_H 0x00 // Data Ready output signal active high(default)
Marcomissyou 0:ef0f188a6fdd 72 #define DRDY_L 0x80 // Data Ready output signal active low
Marcomissyou 0:ef0f188a6fdd 73 #define PP_OD_PP 0x00 // Push-pull on PIN3(DRDY)(default)
Marcomissyou 0:ef0f188a6fdd 74 #define PP_OD_OD 0x40 // Open Drain on PIN3(DRDY)
Marcomissyou 0:ef0f188a6fdd 75 #define DRDY_EN 0x04 // Data Ready enable
Marcomissyou 0:ef0f188a6fdd 76 #define DRDY_NON 0x00 // Data Ready disable(default)
Marcomissyou 0:ef0f188a6fdd 77
Marcomissyou 0:ef0f188a6fdd 78 // Status register
Marcomissyou 0:ef0f188a6fdd 79 #define H_DA_On 0x02 // Humidity data avialable, set to 1 whenever a new humidity sample is available.
Marcomissyou 0:ef0f188a6fdd 80 #define H_DA_Off 0x00
Marcomissyou 0:ef0f188a6fdd 81 #define T_DA_On 0x01 // Temperature data avialable, set to 1 whenever a new humidity sample is available.
Marcomissyou 0:ef0f188a6fdd 82 #define T_DA_Off 0x00
Marcomissyou 0:ef0f188a6fdd 83
Marcomissyou 0:ef0f188a6fdd 84 bool hts221_init(void);
Marcomissyou 0:ef0f188a6fdd 85
Marcomissyou 0:ef0f188a6fdd 86 void hts221_register_write(uint8_t register_address, const uint8_t value);
Marcomissyou 0:ef0f188a6fdd 87
Marcomissyou 0:ef0f188a6fdd 88 void hts221_register_read(char register_address, char *destination, uint8_t number_of_bytes);
Marcomissyou 0:ef0f188a6fdd 89
Marcomissyou 0:ef0f188a6fdd 90 bool hts221_verify_product_id(void);
Marcomissyou 0:ef0f188a6fdd 91
Marcomissyou 0:ef0f188a6fdd 92 void HTS221_Calib(void);
Marcomissyou 0:ef0f188a6fdd 93
Marcomissyou 0:ef0f188a6fdd 94 void HTS221_ReadTempHumi( float *pTemp , float *pHumi);
Marcomissyou 0:ef0f188a6fdd 95
Marcomissyou 0:ef0f188a6fdd 96 float linear_interpolation(int16_t x0, float y0, int16_t x1, float y1, float mes);
Marcomissyou 0:ef0f188a6fdd 97
Marcomissyou 0:ef0f188a6fdd 98 #endif /* HTS221_H */
Marcomissyou 0:ef0f188a6fdd 99