Remote I/O Sensor bus with AT&T flow and M2X cloud

Dependencies:   DHT11 FXOS8700CQ MODSERIAL mbed

Fork of Avnet_ATT_Cellular_IOT by Avnet

Committer:
agaikwad
Date:
Tue Apr 17 21:29:20 2018 +0000
Revision:
82:4e608375910a
Parent:
68:6e311c747045
Remote I/O Sensor bus with AT&T flow and M2X cloud

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fkellermavnet 68:6e311c747045 1 /* ===================================================================
fkellermavnet 68:6e311c747045 2 Copyright © 2016, AVNET Inc.
fkellermavnet 68:6e311c747045 3
fkellermavnet 68:6e311c747045 4 Licensed under the Apache License, Version 2.0 (the "License");
fkellermavnet 68:6e311c747045 5 you may not use this file except in compliance with the License.
fkellermavnet 68:6e311c747045 6 You may obtain a copy of the License at
fkellermavnet 68:6e311c747045 7
fkellermavnet 68:6e311c747045 8 http://www.apache.org/licenses/LICENSE-2.0
fkellermavnet 68:6e311c747045 9
fkellermavnet 68:6e311c747045 10 Unless required by applicable law or agreed to in writing,
fkellermavnet 68:6e311c747045 11 software distributed under the License is distributed on an
fkellermavnet 68:6e311c747045 12 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
fkellermavnet 68:6e311c747045 13 either express or implied. See the License for the specific
fkellermavnet 68:6e311c747045 14 language governing permissions and limitations under the License.
fkellermavnet 68:6e311c747045 15
fkellermavnet 68:6e311c747045 16 ======================================================================== */
JMF 0:9d5134074d84 17
JMF 0:9d5134074d84 18 #ifndef HTS221_H_
JMF 0:9d5134074d84 19 #define HTS221_H_
JMF 0:9d5134074d84 20
JMF 0:9d5134074d84 21 class HTS221 {
JMF 0:9d5134074d84 22 public:
JMF 0:9d5134074d84 23 HTS221(void);
JMF 0:9d5134074d84 24 int begin(void);
JMF 0:9d5134074d84 25 int activate(void);
JMF 0:9d5134074d84 26 int deactivate(void);
JMF 0:9d5134074d84 27
JMF 0:9d5134074d84 28 int bduActivate(void);
JMF 0:9d5134074d84 29 int bduDeactivate(void);
JMF 0:9d5134074d84 30
JMF 0:9d5134074d84 31 int readHumidity(void);
JMF 0:9d5134074d84 32 double readTemperature(void);
JMF 0:9d5134074d84 33 private:
JMF 0:9d5134074d84 34 int storeCalibration(void);
JMF 0:9d5134074d84 35 unsigned char _h0_rH, _h1_rH;
JMF 0:9d5134074d84 36 unsigned int _T0_degC, _T1_degC;
JMF 0:9d5134074d84 37 unsigned int _H0_T0, _H1_T0;
JMF 0:9d5134074d84 38 unsigned int _T0_OUT, _T1_OUT;
JMF 0:9d5134074d84 39 double _temperature;
JMF 0:9d5134074d84 40 int _humidity;
JMF 0:9d5134074d84 41 unsigned char _address;
JMF 0:9d5134074d84 42
JMF 0:9d5134074d84 43 unsigned char readRegister(unsigned char slaveAddress, unsigned char regToRead);
JMF 0:9d5134074d84 44 int writeRegister(unsigned char slaveAddress, unsigned char regToWrite, unsigned char dataToWrite);
JMF 0:9d5134074d84 45 };
JMF 0:9d5134074d84 46
stefanrousseau 11:e6602513730f 47 #define HTS221_ADDRESS 0xBF
JMF 0:9d5134074d84 48
JMF 0:9d5134074d84 49 //Define a few of the registers that we will be accessing on the HTS221
JMF 0:9d5134074d84 50 #define WHO_AM_I 0x0F
JMF 0:9d5134074d84 51 #define WHO_AM_I_RETURN 0xBC //This read-only register contains the device identifier, set to BCh
JMF 0:9d5134074d84 52
JMF 0:9d5134074d84 53 #define AVERAGE_REG 0x10 // To configure humidity/temperature average.
JMF 0:9d5134074d84 54 #define AVERAGE_DEFAULT 0x1B
JMF 0:9d5134074d84 55
JMF 0:9d5134074d84 56 /*
JMF 0:9d5134074d84 57 * [7] PD: power down control
JMF 0:9d5134074d84 58 * (0: power-down mode; 1: active mode)
JMF 0:9d5134074d84 59 *
JMF 0:9d5134074d84 60 * [6:3] Reserved
JMF 0:9d5134074d84 61 *
JMF 0:9d5134074d84 62 * [2] BDU: block data update
JMF 0:9d5134074d84 63 * (0: continuous update; 1: output registers not updated until MSB and LSB reading)
JMF 0:9d5134074d84 64 The BDU bit is used to inhibit the output register update between the reading of the upper
JMF 0:9d5134074d84 65 and lower register parts. In default mode (BDU = ?0?), the lower and upper register parts are
JMF 0:9d5134074d84 66 updated continuously. If it is not certain whether the read will be faster than output data rate,
JMF 0:9d5134074d84 67 it is recommended to set the BDU bit to ?1?. In this way, after the reading of the lower (upper)
JMF 0:9d5134074d84 68 register part, the content of that output register is not updated until the upper (lower) part is
JMF 0:9d5134074d84 69 read also.
JMF 0:9d5134074d84 70 *
JMF 0:9d5134074d84 71 * [1:0] ODR1, ODR0: output data rate selection (see table 17)
JMF 0:9d5134074d84 72 */
JMF 0:9d5134074d84 73 #define CTRL_REG1 0x20
JMF 0:9d5134074d84 74 #define POWER_UP 0x80
JMF 0:9d5134074d84 75 #define BDU_SET 0x4
JMF 0:9d5134074d84 76 #define ODR0_SET 0x1 // setting sensor reading period 1Hz
JMF 0:9d5134074d84 77
JMF 0:9d5134074d84 78 #define CTRL_REG2 0x21
JMF 0:9d5134074d84 79 #define CTRL_REG3 0x22
JMF 0:9d5134074d84 80 #define REG_DEFAULT 0x00
JMF 0:9d5134074d84 81
JMF 0:9d5134074d84 82 #define STATUS_REG 0x27
JMF 0:9d5134074d84 83 #define TEMPERATURE_READY 0x1
JMF 0:9d5134074d84 84 #define HUMIDITY_READY 0x2
JMF 0:9d5134074d84 85
JMF 0:9d5134074d84 86 #define HUMIDITY_L_REG 0x28
JMF 0:9d5134074d84 87 #define HUMIDITY_H_REG 0x29
JMF 0:9d5134074d84 88 #define TEMP_L_REG 0x2A
JMF 0:9d5134074d84 89 #define TEMP_H_REG 0x2B
JMF 0:9d5134074d84 90 /*
JMF 0:9d5134074d84 91 * calibration registry should be read for temperature and humidity calculation.
JMF 0:9d5134074d84 92 * Before the first calculation of temperature and humidity,
JMF 0:9d5134074d84 93 * the master reads out the calibration coefficients.
JMF 0:9d5134074d84 94 * will do at init phase
JMF 0:9d5134074d84 95 */
JMF 0:9d5134074d84 96 #define CALIB_START 0x30
JMF 0:9d5134074d84 97 #define CALIB_END 0x3F
JMF 0:9d5134074d84 98 /*
JMF 0:9d5134074d84 99 #define CALIB_T0_DEGC_X8 0x32
JMF 0:9d5134074d84 100 #define CALIB_T1_DEGC_X8 0x33
JMF 0:9d5134074d84 101 #define CALIB_T1_T0_MSB 0x35
JMF 0:9d5134074d84 102 #define CALIB_T0_OUT_L 0x3C
JMF 0:9d5134074d84 103 #define CALIB_T0_OUT_H 0x3D
JMF 0:9d5134074d84 104 #define CALIB_T1_OUT_L 0x3E
JMF 0:9d5134074d84 105 #define CALIB_T1_OUT_H 0x3F
JMF 0:9d5134074d84 106 */
JMF 0:9d5134074d84 107
JMF 0:9d5134074d84 108 #endif