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 hours540
LoT Group 309 Project

Things used in this project

Hardware components

Altitude/Pressure Sensor Breakout MPL3115A2
SparkFun Altitude/Pressure Sensor Breakout MPL3115A2
SparkFun Carbon Monoxide Sensor - MQ-7
DHT22 Temperature Sensor
DHT22 Temperature Sensor
LED (generic)
LED (generic)
Particle Photon
Breadboard (generic)
Breadboard (generic)


Read more

Custom parts and enclosures


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


Fritzing Diagram



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

  These displays use I2C to communicate, 2 pins are required to  
  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)
double hum;                 // current hum
double temp;    
int bmpTemp;
int bmpPressure;
int bmpAltitude;
int SeaPressure;

Adafruit_BMP085 bmp;
void setup() {
  if (!bmp.begin()) {
	Serial.println("Could not find a valid BMP085 sensor, check wiring!");
	while (1) {}
  pinMode(mq7AOUTpin, 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.println(" *C");
    Serial.print("Pressure = ");
    Serial.println(" Pa");
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    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.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();    


Kenan Arica

Kenan Arica

1 project • 0 followers
brandon son

brandon son

1 project • 0 followers


Add projectSign up / Login