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 #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 }