BMP085 Sketch Fehler

Moin Moin,

ich benutze folgenden Sketch für den Drucksensor BMP085.

#include <Wire.h>
#include <Adafruit_BMP085.h>

Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
	Serial.println("Could not find a valid BMP085 sensor, check wiring!");
	while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    
   
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");


    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(101500));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

Jetzt bekomme ich folgende Fehler die ich nicht nachvollziehen kann...

sketch_apr06a:27: error: 'Adafruit_BMP085' does not name a type
sketch_apr06a.ino: In function 'void setup()':
sketch_apr06a:31: error: 'bmp' was not declared in this scope
sketch_apr06a.ino: In function 'void loop()':
sketch_apr06a:39: error: 'bmp' was not declared in this scope

Wie kann ich diesen Fehler beheben ?

Danke im Vorraus :slight_smile:

Hast du die Lib korrekt installiert? Ist diese im libraries Order und nicht im Sketch Verzeichnis?

Ich habe den Ordner dazu in libraries eingefügt, aber die Meldung ist immer noch da :S

"ausführliche Ausgabe beim Kompilieren" zeigt evtl. eine Warnung, dass die include Datei Adafruit_BMP085.h nicht gefunden wurde.

Leider ist dies nur eine Warnung, aber die Wurzel allen Übels...
Die Lösung ist aber leider, wenns kein Schreibfehler ist, dennoch nur: "Richtig installieren"

... Restart the IDE.
We also have a great tutorial on Arduino library installation at:
Arduino Libraries | All About Arduino Libraries | Adafruit Learning System

Soweit solltest du inzwischen sein, ... hmm.

Ich habe es genau so gemacht wie in dem Guide... Die Fehler sind immer noch da :\

Hallo,
in Deinem Arduino Ordner, der in dem auch die Sketche sind- gibt/sollte ein
Ordner "libraries" sein.
In diesem Ordner legst Du einen Ordner mit dem Namen "BMP085" an.
In diesen Ordner legst Du die "xxx.cpp und xxx.h" des Sensor ab.

Dann öffnest Du Deinen BMP085-Sketch
am Anfang sollte für den Sensor etwas wie:

#include <xxx.h>
#include <xxxx.h>
#include <xxxxx.h>

stehen. Das löscht Du- und läßt den Cursor dort stehen.
Dann in der IDE Menü "Library importieren"
Hier wählst Du die aus dem vorher angelegtem "BMP085" Ordner aus.
So könnte es gehen.
Gruß und Spaß
Andreas

thilo007007:
Ich habe es genau so gemacht wie in dem Guide... Die Fehler sind immer noch da :\

Wenn Du die gezippte Library bei GitHub downloadest und entpackst, dann wird ein Ordner mit dem Namen "Adafruit_BMP085-Library-Master" entpackt. Dieser Verzeichnisname ist falsch. Das Library-Verzeichnis muss immer so heißen wie die Hauptdateien der Library.

Falls Du also den Ordner mit dem Namen "Adafruit_BMP085-Library-Master" installiert hast, benenne den Ordner um zu "Adafruit_BMP085"!

Ne leider immer noch nicht :\

Es treten jetzt neue Fehler auf :astonished:

In file included from sensorapi.pde:3:
C:\Program Files (x86)\Arduino\libraries\Adafruit_BMP085/Adafruit_BMP085_U.h:94: error: expected class-name before '{' token
C:\Program Files (x86)\Arduino\libraries\Adafruit_BMP085/Adafruit_BMP085_U.h:103: error: 'sensors_event_t' has not been declared
C:\Program Files (x86)\Arduino\libraries\Adafruit_BMP085/Adafruit_BMP085_U.h:104: error: 'sensor_t' has not been declared
sensorapi.pde: In function 'void displaySensorDetails()':
sensorapi:40: error: 'sensor_t' was not declared in this scope
sensorapi:40: error: expected `;' before 'sensor'
sensorapi:41: error: 'sensor' was not declared in this scope
sensorapi.pde: In function 'void loop()':
sensorapi:85: error: 'sensors_event_t' was not declared in this scope
sensorapi:85: error: expected `;' before 'event'
sensorapi:86: error: 'event' was not declared in this scope
sensorapi:120: error: 'SENSORS_PRESSURE_SEALEVELHPA' was not declared in this scope

Hallo,
die "Adafruit" Sketche scheinen tatsächlich einen Fehler zu haben. Oder ich bin auch zu blöde.
Die beiden Sketche laufen auch ohne Lib´s.

Gruß und Spaß
Andreas

Luftdruck.ino (5.8 KB)

LuftdruckFLOAT.ino (4.53 KB)

Vielen Dank ! !!
Ich teste es sofort aus, aber warum zwei Dateien? Wo liegt der Unterschied?

Danke!!! :slight_smile:

Hallo,
bei "LuftdruckFLOAT" sind die Links im Sketch. Da gibt es Erklärungen.
Etwas hat mich an dem gestört, aber es funktioniert.

Das "Luftdruck" läuft bei mir auch. Dort kannst Du auch den Korrekturwert...
Zeile:
"float pressureCorrection = 0.99284481; // Höhe 67m ü.NN Dein Dorf"

..für Dein Dorf berechnen.
Das Programm berechnet zweimal, einmal den Luftdruck am Sensor (den brauchst
Du z. B, für Luftdruck Tendenzen.
Die andere Berechnung berechnet den Luftdruck über NN Deines Dorf.
Das ist der, der Dir auch auf den verschiedene WetterSeiten angezeigt wird.
Ich habe hiermit verglichen, und liege verdammt nahe dran:

Hier bekommst Du den Rest zum Sketch, dort wird auch erklärt, wie man
den Korrekturfaktor berechnet.

http://www.kriwanek.de/arduino/sensoren/284-luftdrucksensor-bmp085.html

Gruß und Spaß
Andreas

Hallo,
im Serial Monitor eingestellt??
Serial.begin(19200);

Die Sketche laufen beide völlig fehlerfrei. I2C richtig verdrahtet?
Gruß und Spaß
Andreas

Ich kann mir vorstellen dass ich den Sensor falsch verdrahtet habe...
Ich überprüf das nochmal

zwar ein alter thread, aber genauso steh ich auch davor..

mit den oroignal adafruit libraries gibt es pergament fehler beim übersetzen...

mit dem code von der "kriwanek" seite läuft es einwandfrei..
jetrzt nut noch den code in eine eigene librarie zusammenpfriemeln ..

oder habt ihr inzwischen den Adafruit code zum laufen gekriegt ?

hotte ..

onkelhotte:
oder habt ihr inzwischen den Adafruit code zum laufen gekriegt ?

Wo soll denn das Problem sein?

Ich habe es zwar momentan hier bei mir nicht mehr installiert, aber es war bereits installiert und läuft einwandfrei.

Grundsätzlich hat derjenige einen Vorteil, der Lesen kann.
Für diejenigen, die mit Englisch Probleme haben, mal ein paar Worte zu den Adafruit Sensor-Libraries.

Bei den Libraries von Adafruit gab es vor einiger Zeit eine Umstellung. Für viele Sensoren gibt es seitdem "alte" Libraries, die einerseits veraltet sind und andererseits nicht mehr weiterentwickelt werden. Und es gibt das "neue" System der Adafruit-Sensorlibraries. Das neue System nennt Adafruit "Unified Sensor Library" und es funktioniert wie folgt:

  1. Es gibt ein gemeinsames Interface für alle verschiedenen Sensoren. Es beschreibt Datentypen für unterstützte Sensoren und enthält Funktionen zur Umrechnung von SI-Einheiten. Das ist die
    Adafruit Unified Sensor Library ==> GitHub - adafruit/Adafruit_Sensor: Common sensor library

  2. Weiterhin gibt es für jeden Sensor eine Treiber-Library, die auf die Unified Sensor Library aufbaut. Diese muß für jeden Sensor zusätzlich installiert werden. Z.B. für die Sensoren BMP085 und BMP180 wäre das:
    Adafruit Unified BMP085/BMP180 Driver ==> GitHub - adafruit/Adafruit_BMP085_Unified: Unified sensor driver for Adafruit's BMP085 & BMP180 breakouts

Alle älteren Adafruit-Libraries, die nichts mit diesem System aus "Unified" Standardlibrary und den verschiedenen Sensortreiber n zu tun haben, kannst Du komplett vergessen ==> Ab in den Orkus der Geschichte!

D.h. um Adafruit-Sensorlibraries zu verwenden, müssen mindestens ZWEI Libraries installiert sein:

Hallo,
läuft ohne Probleme sofort. Einwandfrei, wie von jurs beschrieben.
Gruß und Spaß
Andreas

Bildschirmfoto 2014-06-02 um 10.40.png