embernet project fire detection system sensor test
Dependencies: mbed CCS811 BME280
main.cpp@1:91de8a17fbea, 2019-03-08 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
cege1808 | 0:24692a601d5e | 1 | #include "mbed.h" |
cege1808 | 0:24692a601d5e | 2 | #include "BME280.h" |
cege1808 | 0:24692a601d5e | 3 | #include "CCS811.h" |
cege1808 | 0:24692a601d5e | 4 | #include "Adafruit_SGP30.h" |
cege1808 | 0:24692a601d5e | 5 | #include <iostream> |
cege1808 | 0:24692a601d5e | 6 | |
cege1808 | 0:24692a601d5e | 7 | using namespace std; |
cege1808 | 0:24692a601d5e | 8 | /*------------------------------------------------------------------------------ |
cege1808 | 0:24692a601d5e | 9 | Before to use this example, ensure that you an hyperterminal installed on your |
cege1808 | 0:24692a601d5e | 10 | computer. More info here: https://developer.mbed.org/handbook/Terminals |
cege1808 | 0:24692a601d5e | 11 | |
cege1808 | 0:24692a601d5e | 12 | The default serial comm port uses the SERIAL_TX and SERIAL_RX pins (see their |
cege1808 | 0:24692a601d5e | 13 | definition in the PinNames.h file). |
cege1808 | 0:24692a601d5e | 14 | |
cege1808 | 0:24692a601d5e | 15 | The default serial configuration in this case is 9600 bauds, 8-bit data, no parity |
cege1808 | 0:24692a601d5e | 16 | |
cege1808 | 0:24692a601d5e | 17 | If you want to change the baudrate for example, you have to redeclare the |
cege1808 | 0:24692a601d5e | 18 | serial object in your code: |
cege1808 | 0:24692a601d5e | 19 | |
cege1808 | 0:24692a601d5e | 20 | Serial pc(SERIAL_TX, SERIAL_RX); |
cege1808 | 0:24692a601d5e | 21 | |
cege1808 | 0:24692a601d5e | 22 | Then, you can modify the baudrate and print like this: |
cege1808 | 0:24692a601d5e | 23 | |
cege1808 | 0:24692a601d5e | 24 | pc.baud(115200); |
cege1808 | 0:24692a601d5e | 25 | pc.printf("Hello World !\n"); |
cege1808 | 0:24692a601d5e | 26 | ------------------------------------------------------------------------------*/ |
cege1808 | 0:24692a601d5e | 27 | Serial pc(SERIAL_TX, SERIAL_RX); |
cege1808 | 0:24692a601d5e | 28 | I2C i2c(PB_7, PB_8); |
cege1808 | 0:24692a601d5e | 29 | DigitalOut led(LED1); |
cege1808 | 0:24692a601d5e | 30 | //BME280 bme(PB_7, PB_8); |
cege1808 | 0:24692a601d5e | 31 | //Adafruit_SGP30 sgp(PB_7, PB_8); |
cege1808 | 0:24692a601d5e | 32 | CCS811 ccs(i2c, pc); |
cege1808 | 0:24692a601d5e | 33 | |
cege1808 | 0:24692a601d5e | 34 | uint16_t eco2, tvoc; |
cege1808 | 0:24692a601d5e | 35 | //float temp, hum, pres; |
cege1808 | 0:24692a601d5e | 36 | |
cege1808 | 0:24692a601d5e | 37 | void CCS811Initialize(void){ |
cege1808 | 0:24692a601d5e | 38 | bool ccs_status = false; |
cege1808 | 0:24692a601d5e | 39 | while(ccs_status == false){ |
cege1808 | 0:24692a601d5e | 40 | printf("Initialize CCS811 \n"); |
cege1808 | 0:24692a601d5e | 41 | ccs.init(); |
cege1808 | 0:24692a601d5e | 42 | ccs_status = !ccs.checkHW(); |
cege1808 | 0:24692a601d5e | 43 | cout << "CCS Status: " << ccs_status << endl; |
cege1808 | 0:24692a601d5e | 44 | } |
cege1808 | 0:24692a601d5e | 45 | } |
cege1808 | 0:24692a601d5e | 46 | |
cege1808 | 0:24692a601d5e | 47 | void CCS811Callback(void){ |
cege1808 | 0:24692a601d5e | 48 | ccs.readData(&eco2, &tvoc); |
cege1808 | 0:24692a601d5e | 49 | printf("eCO2 reading :%dppm, TVOC reading :%dppb\r\n", eco2, tvoc); |
cege1808 | 0:24692a601d5e | 50 | } |
cege1808 | 0:24692a601d5e | 51 | |
cege1808 | 0:24692a601d5e | 52 | //void BME280Initialize(void){ |
cege1808 | 0:24692a601d5e | 53 | // bool bme_status = false; |
cege1808 | 0:24692a601d5e | 54 | // while(bme_status == false){ |
cege1808 | 0:24692a601d5e | 55 | // printf("Initialize BME280 \n"); |
cege1808 | 0:24692a601d5e | 56 | // bme.initialize(); |
cege1808 | 0:24692a601d5e | 57 | // bme_status = true; |
cege1808 | 0:24692a601d5e | 58 | // wait(3); |
cege1808 | 0:24692a601d5e | 59 | // } |
cege1808 | 0:24692a601d5e | 60 | //} |
cege1808 | 0:24692a601d5e | 61 | // |
cege1808 | 0:24692a601d5e | 62 | // |
cege1808 | 0:24692a601d5e | 63 | //void BME280Callback(void){ |
cege1808 | 0:24692a601d5e | 64 | //bme.start(); |
cege1808 | 0:24692a601d5e | 65 | // cout << "BME Read Status: " << bme.get(temp, pres, hum); |
cege1808 | 0:24692a601d5e | 66 | // bme.stop(); |
cege1808 | 0:24692a601d5e | 67 | // cout << "Temperature: " << temp << " Pressure: " << pres << " Humidity: " << hum << endl; |
cege1808 | 0:24692a601d5e | 68 | // cout << "Temperature: " << bme.getTemperature() ; |
cege1808 | 0:24692a601d5e | 69 | // cout << " Pressure: " << bme.getPressure(); |
cege1808 | 0:24692a601d5e | 70 | // cout << " Humidity: " << bme.getHumidity() << "\r"<< endl; |
cege1808 | 0:24692a601d5e | 71 | //} |
cege1808 | 0:24692a601d5e | 72 | |
cege1808 | 0:24692a601d5e | 73 | //void SGP30Initialize(void){ |
cege1808 | 0:24692a601d5e | 74 | // bool sgp_status = false; |
cege1808 | 0:24692a601d5e | 75 | // while(sgp_status == false){ |
cege1808 | 0:24692a601d5e | 76 | // printf("Initialize SGP30 \n"); |
cege1808 | 0:24692a601d5e | 77 | // sgp.begin(); |
cege1808 | 0:24692a601d5e | 78 | // sgp_status = sgp.IAQinit(); |
cege1808 | 0:24692a601d5e | 79 | // wait(3); |
cege1808 | 0:24692a601d5e | 80 | // } |
cege1808 | 0:24692a601d5e | 81 | //} |
cege1808 | 0:24692a601d5e | 82 | // |
cege1808 | 0:24692a601d5e | 83 | //void SGP30Callback(void){ |
cege1808 | 0:24692a601d5e | 84 | // sgp.IAQmeasure(); |
cege1808 | 0:24692a601d5e | 85 | // cout << "eCO2: " << sgp.eCO2 << " ppm"; |
cege1808 | 0:24692a601d5e | 86 | // cout << " TVOC: " << sgp.TVOC << " ppb \r" << endl; |
cege1808 | 0:24692a601d5e | 87 | //} |
cege1808 | 0:24692a601d5e | 88 | |
cege1808 | 0:24692a601d5e | 89 | |
cege1808 | 0:24692a601d5e | 90 | int main() |
cege1808 | 0:24692a601d5e | 91 | { |
cege1808 | 0:24692a601d5e | 92 | printf("Hello World !\n"); |
cege1808 | 0:24692a601d5e | 93 | |
cege1808 | 0:24692a601d5e | 94 | // SGP30Initialize(); |
cege1808 | 0:24692a601d5e | 95 | // BME280Initialize(); |
cege1808 | 0:24692a601d5e | 96 | CCS811Initialize(); |
cege1808 | 0:24692a601d5e | 97 | |
cege1808 | 0:24692a601d5e | 98 | |
cege1808 | 0:24692a601d5e | 99 | while(true) { |
cege1808 | 0:24692a601d5e | 100 | wait(3); // second |
cege1808 | 0:24692a601d5e | 101 | led = !led; // Toggle LED |
cege1808 | 0:24692a601d5e | 102 | // BME280Callback(); |
cege1808 | 0:24692a601d5e | 103 | // SGP30Callback(); |
cege1808 | 0:24692a601d5e | 104 | CCS811Callback(); |
cege1808 | 0:24692a601d5e | 105 | } |
cege1808 | 0:24692a601d5e | 106 | } |