driver for TH02

Dependents:   8-0_OneNet_IoT_demo demo_discol072_th02 ER4 ER4SKU ... more

Committer:
TaylorGy
Date:
Wed Mar 29 03:09:54 2017 +0000
Revision:
0:89151affda00
driver for TH02 sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TaylorGy 0:89151affda00 1 /*
TaylorGy 0:89151affda00 2 * TH02_dev.h
TaylorGy 0:89151affda00 3 * Driver for DIGITAL I2C HUMIDITY AND TEMPERATURE SENSOR
TaylorGy 0:89151affda00 4 *
TaylorGy 0:89151affda00 5 * Copyright (c) 2014 seeed technology inc.
TaylorGy 0:89151affda00 6 * Website : www.seeed.cc
TaylorGy 0:89151affda00 7 * Author : Oliver Wang
TaylorGy 0:89151affda00 8 * Create Time: April 2014
TaylorGy 0:89151affda00 9 * Change Log :
TaylorGy 0:89151affda00 10 *
TaylorGy 0:89151affda00 11 * The MIT License (MIT)
TaylorGy 0:89151affda00 12 *
TaylorGy 0:89151affda00 13 * Permission is hereby granted, free of charge, to any person obtaining a copy
TaylorGy 0:89151affda00 14 * of this software and associated documentation files (the "Software"), to deal
TaylorGy 0:89151affda00 15 * in the Software without restriction, including without limitation the rights
TaylorGy 0:89151affda00 16 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
TaylorGy 0:89151affda00 17 * copies of the Software, and to permit persons to whom the Software is
TaylorGy 0:89151affda00 18 * furnished to do so, subject to the following conditions:
TaylorGy 0:89151affda00 19 *
TaylorGy 0:89151affda00 20 * The above copyright notice and this permission notice shall be included in
TaylorGy 0:89151affda00 21 * all copies or substantial portions of the Software.
TaylorGy 0:89151affda00 22 *
TaylorGy 0:89151affda00 23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
TaylorGy 0:89151affda00 24 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
TaylorGy 0:89151affda00 25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
TaylorGy 0:89151affda00 26 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
TaylorGy 0:89151affda00 27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
TaylorGy 0:89151affda00 28 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
TaylorGy 0:89151affda00 29 * THE SOFTWARE.
TaylorGy 0:89151affda00 30 */
TaylorGy 0:89151affda00 31
TaylorGy 0:89151affda00 32 #ifndef _TH02_DEV_H
TaylorGy 0:89151affda00 33 #define _TH02_DEV_H
TaylorGy 0:89151affda00 34
TaylorGy 0:89151affda00 35 /****************************************************************************/
TaylorGy 0:89151affda00 36 /*** Including Files ***/
TaylorGy 0:89151affda00 37 /****************************************************************************/
TaylorGy 0:89151affda00 38 // #include <Wire.h>
TaylorGy 0:89151affda00 39 // #include <Arduino.h>
TaylorGy 0:89151affda00 40 # include "mbed.h"
TaylorGy 0:89151affda00 41
TaylorGy 0:89151affda00 42 /****************************************************************************/
TaylorGy 0:89151affda00 43 /*** Macro Definitions ***/
TaylorGy 0:89151affda00 44 /****************************************************************************/
TaylorGy 0:89151affda00 45 // #define TH02_I2C_DEV_ID 0x40
TaylorGy 0:89151affda00 46 const int TH02_I2C_DEV_ID = 0x40<<1;
TaylorGy 0:89151affda00 47 //Address for mbed
TaylorGy 0:89151affda00 48
TaylorGy 0:89151affda00 49 #define REG_STATUS 0x00
TaylorGy 0:89151affda00 50 #define REG_DATA_H 0x01
TaylorGy 0:89151affda00 51 #define REG_DATA_L 0x02
TaylorGy 0:89151affda00 52 #define REG_CONFIG 0x03
TaylorGy 0:89151affda00 53 #define REG_ID 0x11
TaylorGy 0:89151affda00 54
TaylorGy 0:89151affda00 55 #define STATUS_RDY_MASK 0x01 //poll RDY,0 indicate the conversion is done
TaylorGy 0:89151affda00 56
TaylorGy 0:89151affda00 57 #define CMD_MEASURE_HUMI 0x01 //perform a humility measurement
TaylorGy 0:89151affda00 58 #define CMD_MEASURE_TEMP 0x11 //perform a temperature measurement
TaylorGy 0:89151affda00 59
TaylorGy 0:89151affda00 60 #define TH02_WR_REG_MODE 0xC0
TaylorGy 0:89151affda00 61 #define TH02_RD_REG_MODE 0x80
TaylorGy 0:89151affda00 62 /****************************************************************************/
TaylorGy 0:89151affda00 63 /*** Class Definition ***/
TaylorGy 0:89151affda00 64 /****************************************************************************/
TaylorGy 0:89151affda00 65 class TH02_dev
TaylorGy 0:89151affda00 66 {
TaylorGy 0:89151affda00 67 public:
TaylorGy 0:89151affda00 68 void begin();
TaylorGy 0:89151affda00 69 uint8_t isAvailable();
TaylorGy 0:89151affda00 70 float ReadTemperature(void);
TaylorGy 0:89151affda00 71 float ReadHumidity(void);
TaylorGy 0:89151affda00 72 private:
TaylorGy 0:89151affda00 73 void TH02_IIC_WriteCmd(uint8_t u8Cmd);
TaylorGy 0:89151affda00 74 uint8_t TH02_IIC_ReadReg(uint8_t u8Reg);
TaylorGy 0:89151affda00 75 void TH02_IIC_WriteReg(uint8_t u8Reg,uint8_t u8Data);
TaylorGy 0:89151affda00 76 uint16_t TH02_IIC_ReadData(void);
TaylorGy 0:89151affda00 77 uint16_t TH02_IIC_ReadData2byte(void);
TaylorGy 0:89151affda00 78 };
TaylorGy 0:89151affda00 79
TaylorGy 0:89151affda00 80 extern TH02_dev myTH02;
TaylorGy 0:89151affda00 81
TaylorGy 0:89151affda00 82 #endif // _TH02_DEV_H