Forum > Replies by silvia.verch
Replies (2)
You Reply: ESP32 project BNO055.ino
This sketch does not work.
The Scanresult shows I2C addresses 28 and 76.
Serial Port send the message
"bno begin faild"
"device not detected"
/*
example - Simultaneously use the two I2C bus of the ESP32https://github.com/espressif/arduino-esp32/issues/977
*/
//1. Load the Headerfiles
#include <Wire.h>
#include <dummy.h> //for esp32
#include "DFRobot_BNO055.h"
//2. Define address pins I2C
#define SDA1 21
#define SCL1 22
#define SDA2 5
#define SCL2 4
//3. Create I2C objects
TwoWire I2Cone = TwoWire(0);
TwoWire I2Ctwo = TwoWire(1);
//4. BNO055
typedef DFRobot_BNO055_IIC BNO; // ******** use abbreviations instead of full names ********
BNO bno(&I2Ctwo, 0x28); // input TwoWire interface and IIC address
// show last sensor operate status
void printLastOperateStatus(BNO::eStatus_t eStatus)
{
switch (eStatus) {
case BNO::eStatusOK: Serial.println("everything ok"); break;
case BNO::eStatusErr: Serial.println("unknow error"); break;
case BNO::eStatusErrDeviceNotDetect: Serial.println("device not detected"); break;
case BNO::eStatusErrDeviceReadyTimeOut: Serial.println("device ready time out"); break;
case BNO::eStatusErrDeviceStatus: Serial.println("device internal status error"); break;
default: Serial.println("unknow status"); break;
}
}
void setup() {
//1. Start Serial communication
Serial.begin(115200); //Start Serial Interface
//2. Start I2C Interfaces
I2Cone.begin(SDA1, SCL1, 400000); // SDA pin 21, SCL pin 22 TTGO TQ
I2Ctwo.begin(SDA2, SCL2, 400000); // SDA pin 5, SCL pin 4 builtin OLED
//3. Scan I2C Interface one
scan1();
Serial.println();
delay(100);
//4. Scan I2C Interface two
scan2();
Serial.println();
//4. BNO055
bno.reset();
while (bno.begin() != BNO::eStatusOK) {
Serial.println("bno begin faild");
printLastOperateStatus(bno.lastOperateStatus);
delay(2000);
}
Serial.println("bno begin success");
}
loop{
;
} You Reply: ESP32 Arduino Projekt BMP280.ino
This code works fine!
/*
example - Simultaneously use the two I2C bus of the ESP32https://github.com/espressif/arduino-esp32/issues/977
*/
//1. Load the Headerfiles
#include <Wire.h>
#include <dummy.h> //for esp32
#include "DFRobot_BMP280.h"
//2. Define address pins I2C
#define SDA1 21
#define SCL1 22
#define SDA2 5
#define SCL2 4
//3. Create I2C objects
TwoWire I2Cone = TwoWire(0);
TwoWire I2Ctwo = TwoWire(1);
//4. BMP280
typedef DFRobot_BMP280_IIC BMP; // ******** use abbreviations instead of full names ********
BMP bmp(&I2Ctwo, BMP::eSdo_low);
#define SEA_LEVEL_PRESSURE 1015.0f // sea level pressure
// show last sensor operate status
void printLastOperateStatus(BMP::eStatus_t eStatus)
{
switch (eStatus) {
case BMP::eStatusOK: Serial.println("everything ok"); break;
case BMP::eStatusErr: Serial.println("unknow error"); break;
case BMP::eStatusErrDeviceNotDetected: Serial.println("device not detected"); break;
case BMP::eStatusErrParameter: Serial.println("parameter error"); break;
default: Serial.println("unknow status"); break;
}
}
void setup() {
//1. Start Serial communication
Serial.begin(115200); //Start Serial Interface
//2. Start I2C Interfaces
I2Cone.begin(SDA1, SCL1, 400000); // SDA pin 21, SCL pin 22 TTGO TQ
I2Ctwo.begin(SDA2, SCL2, 400000); // SDA pin 5, SCL pin 4 builtin OLED
//3. Scan I2C Interface one
scan1();
Serial.println();
delay(100);
//4. Scan I2C Interface two
scan2();
Serial.println();
//4. BMP280
bmp.reset();
Serial.println("bmp read data test");
while (bmp.begin() != BMP::eStatusOK) {
Serial.println("bmp begin faild");
printLastOperateStatus(bmp.lastOperateStatus);
delay(2000);
}
Serial.println("bmp begin success");
}
void loop()
{
float temp = bmp.getTemperature();
uint32_t press = bmp.getPressure();
float alti = bmp.calAltitude(SEA_LEVEL_PRESSURE, press);
Serial.println();
Serial.println("======== start print ========");
Serial.print("temperature (unit Celsius): "); Serial.println(temp);
Serial.print("pressure (unit pa): "); Serial.println(press);
Serial.print("altitude (unit meter): "); Serial.println(alti);
Serial.println("======== end print ========");
delay(1000);
}
/*
example - Simultaneously use the two I2C bus of the ESP32https://github.com/espressif/arduino-esp32/issues/977
*/
//1. Load the Headerfiles
#include <Wire.h>
#include <dummy.h> //for esp32
#include "DFRobot_BMP280.h"
//2. Define address pins I2C
#define SDA1 21
#define SCL1 22
#define SDA2 5
#define SCL2 4
//3. Create I2C objects
TwoWire I2Cone = TwoWire(0);
TwoWire I2Ctwo = TwoWire(1);
//4. BMP280
typedef DFRobot_BMP280_IIC BMP; // ******** use abbreviations instead of full names ********
BMP bmp(&I2Ctwo, BMP::eSdo_low);
#define SEA_LEVEL_PRESSURE 1015.0f // sea level pressure
// show last sensor operate status
void printLastOperateStatus(BMP::eStatus_t eStatus)
{
switch (eStatus) {
case BMP::eStatusOK: Serial.println("everything ok"); break;
case BMP::eStatusErr: Serial.println("unknow error"); break;
case BMP::eStatusErrDeviceNotDetected: Serial.println("device not detected"); break;
case BMP::eStatusErrParameter: Serial.println("parameter error"); break;
default: Serial.println("unknow status"); break;
}
}
void setup() {
//1. Start Serial communication
Serial.begin(115200); //Start Serial Interface
//2. Start I2C Interfaces
I2Cone.begin(SDA1, SCL1, 400000); // SDA pin 21, SCL pin 22 TTGO TQ
I2Ctwo.begin(SDA2, SCL2, 400000); // SDA pin 5, SCL pin 4 builtin OLED
//3. Scan I2C Interface one
scan1();
Serial.println();
delay(100);
//4. Scan I2C Interface two
scan2();
Serial.println();
//4. BMP280
bmp.reset();
Serial.println("bmp read data test");
while (bmp.begin() != BMP::eStatusOK) {
Serial.println("bmp begin faild");
printLastOperateStatus(bmp.lastOperateStatus);
delay(2000);
}
Serial.println("bmp begin success");
}
void loop()
{
float temp = bmp.getTemperature();
uint32_t press = bmp.getPressure();
float alti = bmp.calAltitude(SEA_LEVEL_PRESSURE, press);
Serial.println();
Serial.println("======== start print ========");
Serial.print("temperature (unit Celsius): "); Serial.println(temp);
Serial.print("pressure (unit pa): "); Serial.println(press);
Serial.print("altitude (unit meter): "); Serial.println(alti);
Serial.println("======== end print ========");
delay(1000);
}