Kenan Aricabrandon son
Published © GPL3+

LoT Group 309 Project

A Data-collecting mote design that was used for the Lane Of Things Group 309.

IntermediateShowcase (no instructions)7 hours544
LoT Group 309 Project

Things used in this project

Story

Read more

Custom parts and enclosures

Case

We did a simple design and made a case out of acrylic with small holes so that the sensor could sense the environment around with out it tracking the wrong data

Schematics

Fritzing Diagram

Code

309_main.ino

Arduino
Paste this into any .ino file and flash.
// 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);
}

Credits

Kenan Arica

Kenan Arica

-1 projects • 0 followers
brandon son

brandon son

-1 projects • 0 followers

Comments