Generic Si7021 Temp/Hum sensor library
Dependents: Turtle_RadioShuttle
HELIOS_Si7021.h
00001 /* 00002 * Copyright (c) 2019 Helmut Tschemernjak 00003 * 30826 Garbsen (Hannover) Germany 00004 * Licensed under the Apache License, Version 2.0); 00005 */ 00006 00007 #ifndef __HELIOS_Si7021_H__ 00008 #define __HELIOS_Si7021_H__ 00009 00010 class HELIOS_Si7021 { 00011 public: 00012 HELIOS_Si7021(PinName sda, PinName scl); 00013 ~HELIOS_Si7021(); 00014 00015 void reset(void); 00016 void readSerialNumber(void); 00017 uint8_t getRevision(void) { return _revision; }; 00018 bool hasSensor(void) { return _foundDevice; }; 00019 00020 float readTemperature(void); 00021 float readHumidity(void); 00022 00023 enum sensorType { 00024 SI_Engineering_Samples, 00025 SI_7013, 00026 SI_7020, 00027 SI_7021, 00028 SI_unkown, 00029 }; 00030 const char *getModelName(void); 00031 sensorType getModel(void); 00032 00033 private: 00034 I2C *_i2c; 00035 char _data[8]; 00036 00037 bool _foundDevice; 00038 void _readRevision(void); 00039 uint32_t sernum_a, sernum_b; 00040 sensorType _model; 00041 uint8_t _revision; 00042 uint8_t _readRegister8(uint8_t reg); 00043 uint16_t _readRegister16(uint8_t reg); 00044 void _writeRegister8(uint8_t reg, uint8_t value); 00045 const static uint8_t _i2caddr = 0x40 << 1; // convert from 7 to 8 bit. 00046 const static int _TRANSACTION_TIMEOUT = 100; // Wire NAK/Busy timeout in ms 00047 }; 00048 00049 /**************************************************************************/ 00050 00051 #endif // __HELIOS_Si7021_H__ 00052
Generated on Tue Jul 12 2022 17:59:48 by 1.7.2