embernet project fire detection system sensor test

Dependencies:   mbed CCS811 BME280

Committer:
cege1808
Date:
Fri Mar 08 22:55:26 2019 +0000
Revision:
1:91de8a17fbea
Parent:
0:24692a601d5e
update mbed and sgp sensor;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cege1808 0:24692a601d5e 1 /*!
cege1808 0:24692a601d5e 2 * @file Adafruit_SGP30.h
cege1808 0:24692a601d5e 3 *
cege1808 0:24692a601d5e 4 * This is the documentation for Adafruit's SGP30 driver for the
cege1808 0:24692a601d5e 5 * Arduino platform. It is designed specifically to work with the
cege1808 0:24692a601d5e 6 * Adafruit SGP30 breakout: http://www.adafruit.com/products/3709
cege1808 0:24692a601d5e 7 *
cege1808 0:24692a601d5e 8 * These sensors use I2C to communicate, 2 pins (SCL+SDA) are required
cege1808 0:24692a601d5e 9 * to interface with the breakout.
cege1808 0:24692a601d5e 10 *
cege1808 0:24692a601d5e 11 * Adafruit invests time and resources providing this open source code,
cege1808 0:24692a601d5e 12 * please support Adafruit and open-source hardware by purchasing
cege1808 0:24692a601d5e 13 * products from Adafruit!
cege1808 0:24692a601d5e 14 *
cege1808 0:24692a601d5e 15 * Written by Ladyada for Adafruit Industries.
cege1808 0:24692a601d5e 16 *
cege1808 0:24692a601d5e 17 * BSD license, all text here must be included in any redistribution.
cege1808 0:24692a601d5e 18 *
cege1808 0:24692a601d5e 19 */
cege1808 0:24692a601d5e 20
cege1808 0:24692a601d5e 21 #include "mbed.h"
cege1808 0:24692a601d5e 22
cege1808 0:24692a601d5e 23 // the i2c address
cege1808 0:24692a601d5e 24 #define SGP30_I2CADDR_DEFAULT 0x58 ///< SGP30 has only one I2C address
cege1808 0:24692a601d5e 25
cege1808 0:24692a601d5e 26 // commands and constants
cege1808 0:24692a601d5e 27 #define SGP30_FEATURESET 0x0020 ///< The required set for this library
cege1808 0:24692a601d5e 28 #define SGP30_CRC8_POLYNOMIAL 0x31 ///< Seed for SGP30's CRC polynomial
cege1808 0:24692a601d5e 29 #define SGP30_CRC8_INIT 0xFF ///< Init value for CRC
cege1808 0:24692a601d5e 30 #define SGP30_WORD_LEN 2 ///< 2 bytes per word
cege1808 0:24692a601d5e 31
cege1808 0:24692a601d5e 32 /**************************************************************************/
cege1808 0:24692a601d5e 33 /*! Class that stores state and functions for interacting with SGP30 Gas Sensor */
cege1808 0:24692a601d5e 34 /**************************************************************************/
cege1808 0:24692a601d5e 35 class Adafruit_SGP30 {
cege1808 0:24692a601d5e 36 public:
cege1808 0:24692a601d5e 37 Adafruit_SGP30(PinName sda, PinName scl);
cege1808 0:24692a601d5e 38 bool begin();
cege1808 0:24692a601d5e 39 bool IAQinit(void);
cege1808 0:24692a601d5e 40 bool IAQmeasure(void);
cege1808 0:24692a601d5e 41
cege1808 0:24692a601d5e 42 bool getIAQBaseline(uint16_t *eco2_base, uint16_t *tvoc_base);
cege1808 0:24692a601d5e 43 bool setIAQBaseline(uint16_t eco2_base, uint16_t tvoc_base);
cege1808 0:24692a601d5e 44 bool getIAQRaw(uint16_t *H2_raw, uint16_t *Eth_raw);
cege1808 0:24692a601d5e 45
cege1808 0:24692a601d5e 46 /**
cege1808 0:24692a601d5e 47 * The last measurement of the IAQ-calculated Total Volatile Organic Compounds in ppb. This value is set when you call {@link IAQmeasure()}
cege1808 0:24692a601d5e 48 */
cege1808 0:24692a601d5e 49 uint16_t TVOC;
cege1808 0:24692a601d5e 50
cege1808 0:24692a601d5e 51 /**
cege1808 0:24692a601d5e 52 * The last measurement of the IAQ-calculated equivalent CO2 in ppm. This value is set when you call {@link IAQmeasure()}
cege1808 0:24692a601d5e 53 */
cege1808 0:24692a601d5e 54 uint16_t eCO2;
cege1808 0:24692a601d5e 55
cege1808 0:24692a601d5e 56 /**
cege1808 0:24692a601d5e 57 * The 48-bit serial number, this value is set when you call {@link begin()}
cege1808 0:24692a601d5e 58 */
cege1808 0:24692a601d5e 59 uint16_t serialnumber[3];
cege1808 0:24692a601d5e 60 private:
cege1808 0:24692a601d5e 61 I2C _i2c;
cege1808 0:24692a601d5e 62 int _i2caddr;
cege1808 0:24692a601d5e 63
cege1808 0:24692a601d5e 64 void write(uint8_t address, uint8_t *data, uint8_t n);
cege1808 0:24692a601d5e 65 void read(uint8_t address, uint8_t *data, uint8_t n);
cege1808 0:24692a601d5e 66 bool readWordFromCommand(uint8_t command[], uint8_t commandLength, uint16_t delay, uint16_t *readdata = NULL, uint8_t readlen = 0);
cege1808 0:24692a601d5e 67 uint8_t generateCRC(uint8_t data[], uint8_t datalen);
cege1808 0:24692a601d5e 68 };