BMP180 mit ESP8266 NodeMCU kombinieren ?

Hallo,

ich habe einen GY-68 BMP180 Barometric Sensor.
Der Sensor bzw. mein Sketch funktionieren problem auf einem Arduino UNO.

Sobald ich aber im Arduino IDE auf "NodeMCU 1.0" umschalte (denn dort soll der zukünftig laufen), erhalte ich eine für mich unverständliche Fehlermeldung:

c:/users/gawan/appdata/roaming/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib\libm.a(lib_a-e_pow.o):(.literal+0x104): undefined reference to `__ieee754_sqrt'
c:/users/gawan/appdata/roaming/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/lib\libm.a(lib_a-e_pow.o): In function `__ieee754_pow':
d:\ivan\projects\arduinoesp\toolchain\dl\esp-newlib\build\xtensa-lx106-elf\newlib\libm\math/../../../../../newlib/libm/math/e_pow.c:164: undefined reference to `__ieee754_sqrt'
collect2.exe: error: ld returned 1 exit status
Error compiling.

Sobald ich wieder auf UNO umschalte gehts wieder :frowning:

Zeig mal dein Programm...

undefined reference to `__ieee754_sqrt'

Diese Funktion gibt es nicht, darum steigt der Linker aus!

Meine Glaskugel sagt:
Du verwendest irgendwo pow()
Ersetze diese durch eine eigene Funktion.

Kannst du mir bitte mal deine Glaskugel ausborgen combie? :smiley:

stoni99:
Kannst du mir bitte mal deine Glaskugel ausborgen combie? :smiley:

Schwierig....
Die ist, so zu sagen, voll integriert.
Ein extrahieren wäre vermutlich vergleichbar mit eine Lobotomie.

Ganz einfacher Demo-Sketch:

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>

Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);

float h;
float t;

void setup() {
Serial.begin(9600);
bmp.begin();
}

void loop() {

/* Get a new sensor event */ 
  sensors_event_t event;
  bmp.getEvent(&event);

  /* Display the results (barometric pressure is measure in hPa) */
  if (event.pressure)
  {
    float temperature;
    bmp.getTemperature(&temperature);

    float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA;
    Serial.print(bmp.pressureToAltitude(seaLevelPressure,
                                        event.pressure,
                                        temperature)); 
  }
  delay(1000);
}

Dann wird wohl in der Lib pow() genutzt.

Beschwere dich bei den ESP Herstellern, die haben die Funktion "vergessen".

Ich glaube hier steht was dazu...