// This #include statement was automatically added by the Particle IDE.
#include <Adafruit_DHT.h>
#if !defined(PARTICLE)
#include <Wire.h>
#endif
#include <Adafruit_BMP085.h>
// This #include statement was automatically added by the Particle IDE.
#include <Adafruit_DHT.h>
/***************************************************
This is an example for the BMP085 Barometric Pressure & Temp Sensor
Designed specifically to work with the Adafruit BMP085 Breakout
----> https://www.adafruit.com/products/391
These displays use I2C to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
// Connect GND to Ground
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5, Particle on D1
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4, Particle on D0
// EOC is not used, it signifies an end of conversion
// XCLR is a reset pin, also not used here
const int mq7AOUTpin=A0;
int gasVal;
#define DHTPIN 4 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht(DHTPIN, DHTTYPE);
double hum; // current hum
double temp;
int bmpTemp;
int bmpPressure;
int bmpAltitude;
int SeaPressure;
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
pinMode(mq7AOUTpin, INPUT);
pinMode(DHTPIN, INPUT);
Particle.variable("hum", hum);
Particle.variable("temp", temp);
Particle.variable("airQ", gasVal);
Particle.variable("bmpTemp", bmpTemp);
Particle.variable("bmpPressure", bmpPressure);
Particle.variable("bmpAltitude", bmpAltitude);
Particle.variable("SeaPressure", SeaPressure);
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
// Calculate altitude assuming 'standard' barometric
// pressure of 1013.25 millibar = 101325 Pascal
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude());
Serial.println(" meters");
Serial.print("Pressure at sealevel (calculated) = ");
Serial.print(bmp.readSealevelPressure());
Serial.println(" Pa");
// you can get a more precise measurement of altitude
// if you know the current sea level pressure which will
// vary with weather and such. If it is 1015 millibars
// that is equal to 101500 Pascals.
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101500));
Serial.println(" meters");
gasVal= analogRead(mq7AOUTpin);//reads the analaog value from the CO sensor's AOUT pin
Serial.print("CO value: ");
Serial.println(gasVal);//prints the CO value
/////////////////////////////////////////////
double checkHum = dht.getHumidity();
double checkTemp = dht.getTempFarenheit();
if (checkHum > 0 && checkHum < 100)
hum = checkHum;
if (checkTemp > 32 && checkTemp < 100)
temp = checkTemp;
bmpTemp = bmp.readTemperature();
bmpPressure = bmp.readPressure();
bmpAltitude = bmp.readAltitude();
SeaPressure = bmp.readSealevelPressure();
Serial.println();
delay(500);
}
Comments