Auslesen der "uniq id" aus einem BME280 der an einem ESP32 mit I2C angebunden is

Hallo liebe Leute,

ich habe nach Jahren der Abstinenz mal wieder etwas gebastelt, bzw. ich bin dabei. :slight_smile: Dabei sind mehrere ESP32 die je einen Bosch BME280 Sensor oder DS18B20 Temperatursensor abfragen. Der Sensor BME280 kann Temperatur, Luftdruck und Luftfeuchtigkeit messen.

Bestellt habe ich diese Sensoren: GY-BME280 bei az-delivery.de – AZ-Delivery

Angeschlossen ist er über I2C an einen ESP32 Node MCU. Jeder ESP wird regelmäßig von einem Raspi befragt.

Nach dieser Anleitung ist es verkabelt:

Ich möchte gern den Sensor ganz Individuell bestimmen ohne jedem ESP einen eigenen Code zu verpassen. Dazu habe ich hier gesehen, dass jeder Bosch Sensor eine einzigartige ID hat: Solved: Re: Unique IDs in Bosch Sensors?

Abfragen tu ich den Sensor im ESP für diesen Faden nach folgendem Code:

/*********
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

/*#include <SPI.h>
#define BME_SCK 18
#define BME_MISO 19
#define BME_MOSI 23
#define BME_CS 5*/

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

void setup() {
  Serial.begin(115200);
  Serial.println(F("BME280 test"));

  bool status;

  // default settings
  // (you can also pass in a Wire library object like &Wire2)
  status = bme.begin(0x76);  
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }

  Serial.println("-- Default Test --");
  delayTime = 1000;

  Serial.println();
}


void loop() { 
  printValues();
  delay(delayTime);
}

void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");
  
  // Convert temperature to Fahrenheit
  /*Serial.print("Temperature = ");
  Serial.print(1.8 * bme.readTemperature() + 32);
  Serial.println(" *F");*/
  
  Serial.print("Pressure = ");
  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

Wie bekomme ich die Ausgabe der "uniq id" in den Block "printValues()" hinein? Vielen Dank im Voraus. :slight_smile:

Hallo
nimm eine Suchmaschine Deiner Wahl und beschäftige diese mit "bme280 +unique id"

Hallo,
in dem Link von Dir ist ja ein bestimmtes register angegeben. Ich denke nur das die Lib nicht unterstützt das Du auf dieses Register zugreifst. jetzt mal nur so als Idee. Eventuell kannst Du ja aber die Lib aufbohren.

Heinz

staivoup:
Wie bekomme ich die Ausgabe der "uniq id" in den Block "printValues()" hinein? Vielen Dank im Voraus. :slight_smile:

Es steht sogar in den Beispielen zur Lib!

Nur wer guckt da schon rein?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.