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

hts221.h

Committer:
Marcomissyou
Date:
2015-06-03
Revision:
0:ef0f188a6fdd

File content as of revision 0:ef0f188a6fdd:

/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
 *
 * The information contained herein is property of Nordic Semiconductor ASA.
 * Terms and conditions of usage are described in detail in NORDIC
 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
 *
 * Licensees are granted free, non-transferable use of the information. NO
 * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
 * the file.
 *
 */

#ifndef HTS221_H
#define HTS221_H

/*lint ++flb "Enter library region" */

#include <stdbool.h>
#include <stdint.h>

#define ADDRESS_WHO_AM_I (0x0FU) //!< WHO_AM_I register identifies the device. Expected value is 0xBC.

#define HTS221_WriteADDE         0xBE
#define HTS221_ReadADDE          0xBF
#define HTS221_TempHumi_OUT      0x28
#define HTS221_CALIB             0x30

#define MaxTemp       120
#define MinTemp       -40
#define MaxHumi       100
#define MinHumi       0

// Humidity and temperature resolution mode, to ocnfigure sample average
#define TRes_1        000 // Number of temperature samples take 2^1, TRes_2 take 2^2, and so forth.
#define TRes_2        001 
#define TRes_3        010
#define TRes_4        011
#define TRes_5        100
#define TRes_6        101
#define TRes_7        102
#define TRes_8        103

#define HRes_2        000 // Number of humidity samples take 2^2, HRes_3 take 2^3, and so forth.
#define HRes_3        001 
#define HRes_4        010
#define HRes_5        011
#define HRes_6        100
#define HRes_7        101
#define HRes_8        102
#define HRes_9        103

// Control register 1
#define PD_On                    0x80 // Power down mode
#define PD_Off                   0x00 // Active mode

#define BDU_On                   0x04 // Block data update, this feature prevents the reading of LSB and MSB related to different samples.
#define BDU_Off                  0x00 
// Define output data rate
#define ODR_OneShot              0x00
#define ODR_1Hz                  0x01
#define ODR_7Hz                  0x02
#define ODR_12_5Hz               0x03
// Control register 2
#define Boot                     0x80
#define NoBoot                   0x00
#define HeaterOn                 0x02
#define HeaterOff                0x00
#define New_OS                   0x01 // One shot, a single acquisition of temperature and humidity is started
#define No_OS                    0x00
// Control register 3
#define DRDY_H                   0x00 // Data Ready output signal active high(default)
#define DRDY_L                   0x80 // Data Ready output signal active low
#define PP_OD_PP                 0x00 // Push-pull on PIN3(DRDY)(default)
#define PP_OD_OD                 0x40 // Open Drain on PIN3(DRDY)
#define DRDY_EN                  0x04 // Data Ready enable
#define DRDY_NON                 0x00 // Data Ready disable(default)

// Status register
#define H_DA_On                  0x02 // Humidity data avialable, set to 1 whenever a new humidity sample is available.
#define H_DA_Off                 0x00
#define T_DA_On                  0x01 // Temperature data avialable, set to 1 whenever a new humidity sample is available.
#define T_DA_Off                 0x00
 
bool hts221_init(void);

void hts221_register_write(uint8_t register_address, const uint8_t value);

void hts221_register_read(char register_address, char *destination, uint8_t number_of_bytes);

bool hts221_verify_product_id(void);

void HTS221_Calib(void);

void HTS221_ReadTempHumi( float *pTemp , float *pHumi);

float linear_interpolation(int16_t x0, float y0, int16_t x1, float y1, float mes);

#endif /* HTS221_H */