GY-BME/P 280 con un ESP8266

Buenos dias.
Estoy probando el sensor de temperatura, humedad y presion GY-BME/P 280 con un ESP8266 con este codigo

El resultado que obtengo por el terminal es :

Temperature = 27.85 *C
Pressure = 1000.68 hpa
Approx. Altitude = 105.47 m
Humidity = 0.00 %

Segun las especificaciones este sensor deberia darme tambien la humedad relativa del ambiente pero simepre me retorna 0.00 %

El codigo que utilizo es el siguiente:

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

/*#include <SPI.h>
#define BME_SCK 14
#define BME_MISO 12
#define BME_MOSI 13
#define BME_CS 15*/

#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(9600);
  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 = 5000;

  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();
}

Las conexiones al sensor son:

ESP8266	Sensor
3.3 v		VCC
GND		GND
D1		       SCL
D2		      SCA

Mi pregunta es por que siempre me retorna 0.00 % la humedad relativa?
Muchas gracias.
Javier.

Puede que el mismo sensor este roto, prueba con otro codigo o colocandolo en lugares diferentes, si sigue sin funcionar puede que el problema este en el codigo, asegurate de que las conexiones esten bien puestas

Moderador:
Temas de todo lo que no sea Arduino en microcontroladores por favor, a no olvidarse!!
Movido a dicha sección

Lo mas importante no lo has puesto.
De donde has sacado la librería y que versión usas de librería y del core ESP8266.
Hay muchos errores cuando cambia el core o cambia la librería original.

Gracias.
El sensor esta comprado en aliexpress, no sé exactamente fabricante ni su datashet.
El ESP8266 es Lilion Nodemcu v.3

Con esta libreria:#include <BME280I2C.h> va bien pero sigue dando 0% de humedad. la he sacado de la lista de librerias disponibles en la web de arduino:

Voy a ver si encuentro las caracteristicas del sensor y comento el resultado.

Un saludo.
Javier

Adjunta el link al producto porque creo que tu problema es que el chip es un BMP280 que solo lee presión y temperatura.

Agrego:
En la serigrafía de la paquita seguramente se lee algo así

 GY-BM
[]E/P[]
  280

Como es una placa que sirve para ambos modelos de sensor, se supone que el fabricante (o al menos el vendedor) debería marcar uno de los 2 cuadraditos para indicar si es la versión con BME280 o con BMP280.
Aunque sinceramente nunca me ha tocado uno que tuviese marca alguna, he visto fotos en la web que si la tienen (se ve que algunos si se toman el trabajo de marcarlas) :wink:

Javier cuando te pido que pongas el link no respondas con algo general
En el link que has puesto no esta la libreria, hay un link a sensores y en sensores tal vez sea esta pero entonces turespuesta fue como mínimo bastante dispersa.

Si yo hago algo, lo documento bien para que el otro pueda reproducir lo mismo que te ocurre. Sabs cuantas librerias de BME280 hay? Al menos 5 o mas

Es esta?
Esta librería es para presion, temperatura y altitud y humedad

Buenos dias.
Creo que te refieres a esta url:

Saludos.
Javier


Estan marcados los dos en la serigrafia.

Un saludo.
Javier

La librería que elegiste dice que te indica si tiene sensor de humedad

  switch(bme.chipModel())
  {
     case BME280::ChipModel_BME280:
       Serial.println("Found BME280 sensor! Success.");
       break;
     case BME280::ChipModel_BMP280:
       Serial.println("Found BMP280 sensor! No Humidity available.");
       break;
     default:
       Serial.println("Found UNKNOWN sensor! Error!");
  }

Qué mensaje arroja al comenzar?
Porque copiaste las respuestas del loop pero no eso que esta en el setup.

Cierto, muchas gracias.
Lo que aparece en la primera linea es basura pero al final desplazandome hacia la derecha del monitor, algo que no se me habia ocurrido en ningun momento, indica lo siguiente:

Found BMP280 sensor! No Humidity available.

Compré el sensor porque entendi que llevaba incluido el sensor de humedad pero veo que no.

Saludos.
Javier

Bueno, di con la tecla.
TU sensor no tiene la variante de humedad

Me puedes pasar una url donde lo vieses?.

Gracias.

En el post #5 te dije

¿Viste que tenía razón?

Saludos

PD: Yo soy de Argentina y acá está complicado comprar en sites internacionales así que poco puedo aconsejarte dónde comprar. Solo ten en cuenta que el BME280 cuesta aproximadamente 10 veces más que el BMP280, así que cualquiera que veas con un valor cercano al que tienes, da por seguro que es un BMP y no un BME.

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