気圧・温度・湿度センサBME280を使うためのライブラリ
BME280_lib.h@1:0a0ad1327b0f, 2019-02-19 (annotated)
- Committer:
- Sigma884
- Date:
- Tue Feb 19 12:35:35 2019 +0000
- Revision:
- 1:0a0ad1327b0f
- Parent:
- 0:9f2a22c6ced2
MODE -> BME_MODE
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sigma884 | 0:9f2a22c6ced2 | 1 | #ifndef BME280_LIB_H |
Sigma884 | 0:9f2a22c6ced2 | 2 | #define BME280_LIB_H |
Sigma884 | 0:9f2a22c6ced2 | 3 | |
Sigma884 | 0:9f2a22c6ced2 | 4 | #define BME_ADDR_LOW 0x76 |
Sigma884 | 0:9f2a22c6ced2 | 5 | #define BME_ADDR_HIGH 0x77 |
Sigma884 | 0:9f2a22c6ced2 | 6 | |
Sigma884 | 0:9f2a22c6ced2 | 7 | #define BME_ID 0xD0 |
Sigma884 | 0:9f2a22c6ced2 | 8 | |
Sigma884 | 0:9f2a22c6ced2 | 9 | #define BME_CTRL_HUM 0xF2 |
Sigma884 | 0:9f2a22c6ced2 | 10 | #define BME_CTRL_MEAS 0xF4 |
Sigma884 | 0:9f2a22c6ced2 | 11 | #define BME_CONFIG 0xF5 |
Sigma884 | 0:9f2a22c6ced2 | 12 | |
Sigma884 | 0:9f2a22c6ced2 | 13 | #define BME_PRESS 0xF7 |
Sigma884 | 0:9f2a22c6ced2 | 14 | #define BME_TEMP 0xFA |
Sigma884 | 0:9f2a22c6ced2 | 15 | #define BME_HUM 0xFD |
Sigma884 | 0:9f2a22c6ced2 | 16 | |
Sigma884 | 0:9f2a22c6ced2 | 17 | #define BME_COMP1 0x88 |
Sigma884 | 0:9f2a22c6ced2 | 18 | #define BME_COMP2 0xE1 |
Sigma884 | 0:9f2a22c6ced2 | 19 | |
Sigma884 | 0:9f2a22c6ced2 | 20 | class BME280_lib{ |
Sigma884 | 0:9f2a22c6ced2 | 21 | public: |
Sigma884 | 0:9f2a22c6ced2 | 22 | |
Sigma884 | 0:9f2a22c6ced2 | 23 | typedef enum{ |
Sigma884 | 0:9f2a22c6ced2 | 24 | AD0_LOW = BME_ADDR_LOW, |
Sigma884 | 0:9f2a22c6ced2 | 25 | AD0_HIGH = BME_ADDR_HIGH |
Sigma884 | 0:9f2a22c6ced2 | 26 | }AD0; |
Sigma884 | 0:9f2a22c6ced2 | 27 | |
Sigma884 | 0:9f2a22c6ced2 | 28 | typedef enum{ |
Sigma884 | 0:9f2a22c6ced2 | 29 | SLEEP = 0x00, |
Sigma884 | 0:9f2a22c6ced2 | 30 | FORCED = 0x01, |
Sigma884 | 0:9f2a22c6ced2 | 31 | NORMAL = 0x03 |
Sigma884 | 1:0a0ad1327b0f | 32 | }BME_MODE; |
Sigma884 | 0:9f2a22c6ced2 | 33 | |
Sigma884 | 0:9f2a22c6ced2 | 34 | BME280_lib(I2C &user_i2c, AD0 ad0); |
Sigma884 | 0:9f2a22c6ced2 | 35 | |
Sigma884 | 0:9f2a22c6ced2 | 36 | int connectCheck(); |
Sigma884 | 0:9f2a22c6ced2 | 37 | |
Sigma884 | 1:0a0ad1327b0f | 38 | void configMeasure(BME_MODE mode, int temp_over_sampling, int pres_over_sampling, int hum_over_sampling); |
Sigma884 | 0:9f2a22c6ced2 | 39 | void configFilter(int filter); |
Sigma884 | 0:9f2a22c6ced2 | 40 | |
Sigma884 | 0:9f2a22c6ced2 | 41 | void getData(float *temp, float *pres, float *hum); |
Sigma884 | 0:9f2a22c6ced2 | 42 | float getTemp(); |
Sigma884 | 0:9f2a22c6ced2 | 43 | float getPres(); |
Sigma884 | 0:9f2a22c6ced2 | 44 | float getHum(); |
Sigma884 | 0:9f2a22c6ced2 | 45 | |
Sigma884 | 0:9f2a22c6ced2 | 46 | float getAlt(float pres_0, float temp_0); |
Sigma884 | 0:9f2a22c6ced2 | 47 | float getAlt2(float pres_0, float temp_0); |
Sigma884 | 0:9f2a22c6ced2 | 48 | |
Sigma884 | 0:9f2a22c6ced2 | 49 | |
Sigma884 | 0:9f2a22c6ced2 | 50 | private: |
Sigma884 | 0:9f2a22c6ced2 | 51 | char slave; |
Sigma884 | 0:9f2a22c6ced2 | 52 | I2C *i2c; |
Sigma884 | 0:9f2a22c6ced2 | 53 | |
Sigma884 | 0:9f2a22c6ced2 | 54 | void readCOMP(); |
Sigma884 | 0:9f2a22c6ced2 | 55 | int calcT(); |
Sigma884 | 0:9f2a22c6ced2 | 56 | unsigned int calcP(); |
Sigma884 | 0:9f2a22c6ced2 | 57 | unsigned int calcH(); |
Sigma884 | 0:9f2a22c6ced2 | 58 | |
Sigma884 | 0:9f2a22c6ced2 | 59 | char cmd[2]; |
Sigma884 | 0:9f2a22c6ced2 | 60 | char buff[26]; |
Sigma884 | 0:9f2a22c6ced2 | 61 | int adc; |
Sigma884 | 0:9f2a22c6ced2 | 62 | |
Sigma884 | 0:9f2a22c6ced2 | 63 | float pres, temp, hum; |
Sigma884 | 0:9f2a22c6ced2 | 64 | |
Sigma884 | 0:9f2a22c6ced2 | 65 | unsigned short dig_T1; |
Sigma884 | 0:9f2a22c6ced2 | 66 | short dig_T2, dig_T3; |
Sigma884 | 0:9f2a22c6ced2 | 67 | unsigned short dig_P1; |
Sigma884 | 0:9f2a22c6ced2 | 68 | short dig_P2, dig_P3, dig_P4, dig_P5, dig_P6, dig_P7, dig_P8, dig_P9; |
Sigma884 | 0:9f2a22c6ced2 | 69 | unsigned char dig_H1; |
Sigma884 | 0:9f2a22c6ced2 | 70 | short dig_H2; |
Sigma884 | 0:9f2a22c6ced2 | 71 | unsigned char dig_H3; |
Sigma884 | 0:9f2a22c6ced2 | 72 | short dig_H4, dig_H5; |
Sigma884 | 0:9f2a22c6ced2 | 73 | char dig_H6; |
Sigma884 | 0:9f2a22c6ced2 | 74 | int t_fine; |
Sigma884 | 0:9f2a22c6ced2 | 75 | |
Sigma884 | 0:9f2a22c6ced2 | 76 | int T_var1, T_var2, T, v_x1; |
Sigma884 | 0:9f2a22c6ced2 | 77 | long long P_var1, P_var2, P; |
Sigma884 | 0:9f2a22c6ced2 | 78 | }; |
Sigma884 | 0:9f2a22c6ced2 | 79 | |
Sigma884 | 0:9f2a22c6ced2 | 80 | #endif |