how can I read the gy521 and bpm180 data in the same time (in one code)

Hello everyone,

I am totally new to arduino. i would like to get the data of gy521 (3 accl+3gyro+3compass)+BPM180(temperature+pressure) at the same time so i choice the "gy-87" to do this project.

gy521 works beautifully in gy521 code BPM180 works beautifully in BPM180 code also

the problem is that when i combine these two codes together, i can't read the BPM180 data

the gy521 code I used is from here: https://github.com/TKJElectronics/Example-Sketch-for-IMU-including-Kalman-filter the BPM180 code I used is from here: https://github.com/sparkfun/BMP180_Breakout

Can anyone help me? Thanks in advance!

Show us what you tried and we'll help you figure out what you did wrong. Or if you want someone to just write it for you then head over to the Gigs and Collaborations section and give the exact requirements and tell how much you are willing to pay and if it is enough maybe someone will write it for you.

Delta_G
Thank you for reminding ^^
Here is the code i tried.

// I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class
// 10/7/2011 by Jeff Rowberg <jeff@rowberg.net>
// Updates should (hopefully) always be available at https://github.com/jrowberg/i2cdevlib
//
// Changelog:
//     2011-10-07 - initial release

/* ============================================
I2Cdev device library code is placed under the MIT license
Copyright (c) 2011 Jeff Rowberg

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
===============================================
*/

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#include "Wire.h"

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"
#include "MPU6050.h"
#include <Wire.h>
#include <BMP085.h>

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;

int16_t ax, ay, az;
int16_t gx, gy, gz;

#define LED_PIN 13
bool blinkState = false;

void setup() {
    // join I2C bus (I2Cdev library doesn't do this automatically)
    Wire.begin();

    // initialize serial communication
    // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
    // it's really up to you depending on your project)
    Serial.begin(57600);

pressure_m.bmp085Calibration();

    // initialize device
    Serial.println("Initializing I2C devices...");
    accelgyro.initialize();

    // verify connection
    Serial.println("Testing device connections...");
    Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

    // configure Arduino LED for
    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    // read raw accel/gyro measurements from device
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

    // these methods (and a few others) are also available
    //accelgyro.getAcceleration(&ax, &ay, &az);
    //accelgyro.getRotation(&gx, &gy, &gz);

    // display tab-separated accel/gyro x/y/z values
    Serial.print("a/g:\t");
    Serial.print(ax); Serial.print("\t");
    Serial.print(ay); Serial.print("\t");
    Serial.print(az); Serial.print("\t");
    Serial.print(gx); Serial.print("\t");
    Serial.print(gy); Serial.print("\t");
    Serial.println(gz);

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);

    float temperature = pressure_m.bmp085GetTemperature(); //MUST be called first
  float pressure = pressure_m.bmp085GetPressure();
  float altitude = pressure_m.calcAltitude(pressure);

  Serial.print("Temperature: ");
  Serial.print(temperature, 2); //display 2 decimal places
  Serial.println("deg C");

  Serial.print("Pressure: ");
  Serial.print(pressure, 0); //whole number only.
  Serial.println(" Pa");

  Serial.print("Altitude: ");
  Serial.print(altitude, 2); //display 2 decimal places
  Serial.println(" M");

  Serial.println();//line break

  delay(1000); //wait a second and get values again.
}

liyong0920:
Hello everyone,

I am totally new to arduino. i would like to get the data of
gy521 (3 accl+3gyro+3compass)+BPM180(temperature+pressure) at the same time
so i choice the “gy-87” to do this project.

gy521 works beautifully in gy521 code
BPM180 works beautifully in BPM180 code also

the problem is that when i combine these two codes together, i can’t read the BPM180 data

the gy521 code I used is from here:
GitHub - TKJElectronics/Example-Sketch-for-IMU-including-Kalman-filter: Software for "Guide to gyro and accelerometer with Arduino including Kalman filtering"
the BPM180 code I used is from here:
GitHub - sparkfun/BMP180_Breakout: Breakout board for the Bosch BMP180 barometric pressure sensor

Can anyone help me?
Thanks in advance!

I am not sure if this has been tested and it may not matter but can you contact all the I2c devices? I find this I2c scanner helpful in determining everything is alive:)
I wish I had one of those breakout boards to help test. Let us know the results of the attached I2c scanner and I will look at your posted code further to see if I can spot Issues.

i2c_scanner.ino (2.03 KB)

Dear Zhomeslice :) Thank you for your assistance, you are really really kind!! I will try it after I go home ^^ thank you~~

liyong0920: Dear Zhomeslice :) Thank you for your assistance, you are really really kind!! I will try it after I go home ^^ thank you~~

@liyong0920 Let me know how things go I am watching your post. I'll try to help more as you testing progresses. :)