BMP 280 kontra BME280

celeron
Příspěvky: 17
Registrován: 31 črc 2017, 08:15
Reputation: 0

BMP 280 kontra BME280

Příspěvek od celeron » 31 črc 2017, 08:44

Hraju si tu s senzorem BMP 280 . I když mám stejnou sestavu jako na Trubce, nepodařilo se mi měření s Adafruit BMP 280 knihovnou zprovoznit. Problematiku adresy I2C 76h nebo 77h znám, v ní problém nemám. Nakonec jsem použil Sparkfun BME 280 knihovnu, s ní to jelo na první dobrou. Není náhodou problém, že Adafruit knihovna je ušitá na Adafruit senzor, který má navíc tranzistorový převodníky úrovní I2C a ten můj je nemá? Ty tranzistory by mohly invertovat úrovně I2C...

A ještě jedna zvláštnost. Objednal jsem BMP280 a na desce je popis BMP 280. Když jsem senzor zkoušel výpisem příkladu co byl u knihovny Sparkfun, vypisovala se mi i vlhkost. :shock: Je to zvláštní, vlhkost přeci má jen BME 280. A ještě podivnější je, že vlhkost byla asi o 3 procenta vedle než jiný vlhkoměr a když jsem na senzor dýchl, vlhkost letěla nahoru k 85% i když se teplota a tlak téměř nezměnil.
Jak to tedy je? Nejsou náhodou BMP 280 po vlhkostní stránce mimotolerantní BME 280? A nebo se prostě čínskej soudruh nebo dítě spletlo a osadilo jinej?
Asi na tom něco bude, senzor mi vrací id = 60h což je BME 280, BMP 280 má id = 58. Divný, i na pouzdře senzoru je vyraženo BMP280. :roll:
Bastlení zdar!
Jirka

afilip
Příspěvky: 116
Registrován: 26 črc 2017, 16:34
Reputation: 0
Kontaktovat uživatele:

Re: BMP 280 kontra BME280

Příspěvek od afilip » 01 srp 2017, 14:40

BME280 měří teplotu a vlhkost, BMP280 teplotu, vlhkost a tlak. To že se rozchází o 3%RH je ještě celkem dobré číslo. Při porovnávání dvou čidel vlhkosti je třeba je umístit co nejblíže k sobě, pokud možno do stejné polohy (orientace snímače), nesvítit na čidla (BMx280 je citlivé na světlo). Nechat je alespoň 48hodin ustálit, a teprve potom porovnat hodnoty. Když jsem porovnával BME280 s přesnějším čidlem SI7021, tak to dopadlo takto (teplota změřená originál Dallasem DS18B20 byla 24.55"C):
si7021.jpg
si7021.jpg (123.36 KiB) Zobrazeno 9406 x

stanicio
Příspěvky: 1
Registrován: 01 srp 2017, 18:07
Reputation: 0

Re: BMP 280 kontra BME280

Příspěvek od stanicio » 01 srp 2017, 18:15

Ani bych se nedivil, ze vyrobce udela to same co dela(lo) bezne AMD. Tedy ze se vyroby soucastku a pokud nevyhovuje nejake jadro ci jina soucast, tak se ta cast vypne a proda se to jako jine, co to jeste splnuje. Je to podstatne levnejsi jak to vyhodit cele, jen zakaznik je tak nejak "osizen" ze si vlastne kupuje nejak vadnou soucatku. Staci jen na horni potisk pak narazit to co je vlastne uvnitr jeste fukncni.

celeron
Příspěvky: 17
Registrován: 31 črc 2017, 08:15
Reputation: 0

Re: BMP 280 kontra BME280

Příspěvek od celeron » 16 srp 2017, 12:39

Při laborování s BME jsem zjistil zajímavou věc. Pokud se jako první údaj po zapnutí napájení nenačte teplota, tak změřený tlak je trvale o cca 50 hPa nižší, než je skutečnost. Nejspíš to bude nějaká kompenzace tlaku na teplotu v knihovně Sparkfun a nebo to je vlastnost BME.
Jirka

petan
Příspěvky: 358
Registrován: 23 črc 2017, 10:19
Reputation: 0
Kontaktovat uživatele:

Re: BMP 280 kontra BME280

Příspěvek od petan » 18 srp 2017, 21:13

Podle datasheetu https://cdn-shop.adafruit.com/datasheet ... 001-10.pdf strana 49 se při výpočtu tlaku i vlhkosti používá naměřená teplota. Viz kód:

Kód: Vybrat vše

//měření tlaku
double BME280_compensate_P_double(BME280_S32_t adc_P)
{
double var1, var2, p;
var1 = ((double)t_fine/2.0) – 64000.0; //t_fine je naměřená teplota

// a tak dále...
}
Knihovna by však měla sama načíst teplotu před každým měřením tlaku a vlhkosti, aby to měřilo správně. Jde samozřejmě o to, jak je napsaná.

warcz
Příspěvky: 3
Registrován: 04 lis 2017, 18:23
Reputation: 0

Re: BMP 280 kontra BME280

Příspěvek od warcz » 04 lis 2017, 18:33

Dobrý den,

Nenašel by se prosím někdo, kdo mi poradí, jak zapojit tohle čidlo a nějaký kod k tomu ?

Aktuálně to mám zapojeno:
GY-BM 280 -> Amica NODEmcu
VCC -> 3V3
GND - GND
SCL - CLK
SDA - SD0
CSB - SD1
SDO - CMD

Foto: https://www.screencast.com/t/LSBOF6gf9

Zkusil jsem snad všechno, ale vubec to nemůžu oživit. Popřípadě tady mam ještě D1 mini kam bych to zapojil raději, ale to už nemá ty piny co nodemci.

Děkuji za pomoc.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: BMP 280 kontra BME280

Příspěvek od martinius96 » 08 lis 2017, 19:49

warcz píše:
04 lis 2017, 18:33
Dobrý den,

Nenašel by se prosím někdo, kdo mi poradí, jak zapojit tohle čidlo a nějaký kod k tomu ?

Aktuálně to mám zapojeno:
GY-BM 280 -> Amica NODEmcu
VCC -> 3V3
GND - GND
SCL - CLK
SDA - SD0
CSB - SD1
SDO - CMD

Foto: https://www.screencast.com/t/LSBOF6gf9

Zkusil jsem snad všechno, ale vubec to nemůžu oživit. Popřípadě tady mam ještě D1 mini kam bych to zapojil raději, ale to už nemá ty piny co nodemci.

Děkuji za pomoc.
Zdravíčko, takže:
VCC -> 5V (ja mám NodeMCU v3 a napájam to cez Vin ak napájam adaptérom, alebo cez USBVout ak USB)
GND - GND
SCL - D1
SDA - D2
CSB - nikde
SDO - nikde
V knižnici si zmeň adresu z 0x76 na 0x77 alebo opačne.. Neviem aká je tam nastavená :)

warcz
Příspěvky: 3
Registrován: 04 lis 2017, 18:23
Reputation: 0

Re: BMP 280 kontra BME280

Příspěvek od warcz » 11 lis 2017, 11:55

Nepodělíš se prosím o kod a knihovnu kterou používáš ? Ja už stáhl snad všechny co jsou. DIky

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: BMP 280 kontra BME280

Příspěvek od martinius96 » 11 lis 2017, 17:09

Kód: Vybrat vše

#include <SPI.h>                     //KNIZNICA SPI.H, PODPORUJE AJ I2C PRIPOJENIA PRE BMP280
#include "Adafruit_BMP280.h"         //LOKALNA KNIZNICA SENZORA BMP
Adafruit_BMP280 bmp;                 // BMP280 NA ZBERNICI I2C
        
void setup() {                                                  //FUNKCIA NA DEFINICIU VSTUPOV A VYSTUPOV ZAPNUTIE
                                               //START SENZOROV POD ONEWIRE (DALLASTEMPERATURE)
  bmp.begin();                                                  //SPUSTENIE SNIMACA BMP280
  delay(2000);                                                  //POZDRZANIE PROGRAMU 2 SEKUNDY POKYM SA INICIALIZUJE BMP280 a SENZORY
  Serial.begin(9600);                                           //SPUSTENIE SERIOVEJ LINKY NA CITACIU RYCHLOST 9600
  while (!Serial) {
    ;                                                           //CAKA POKYM SA SERIOVY PORT NEZAPNE
  }



}

void loop() {
    Serial.println("Teplota: ");
   Serial.println(bmp.readTemperature());
    Serial.println(" *C");
    Serial.println("Atmosfericky tlak: ");           //SERIOVY VYPIS TEXT O TLAKU VZDUCHU
    Serial.println((bmp.readPressure() / 100) + 29.227); //29.227 konstanta.. ak je problem s kompiláciou, tak zadat cez , nie cez . 
 Serial.println(" hPa"); 
   Serial.println("Vyska nad morom: ");           //SERIOVY VYPIS TEXT nadmosrskej vyske
    Serial.println(bmp.readAltitude(1013.25));
 Serial.println(" hPa");

delay(2000);

}
Konštantu 29.227 si nahraď takto: Tvoja nadmorská výška /8,3. Do výšky 1000 metrov nad morom sa využíva tento vzorec :) Je tam /100, teda výsledok je v hPa.
Knižnica s adresou (0x76): https://www.ulozto.sk/!2RplF9n3HSIW/adafruit-bmp280-rar
Podľa potreby si prepíš adresu :)

warcz
Příspěvky: 3
Registrován: 04 lis 2017, 18:23
Reputation: 0

Re: BMP 280 kontra BME280

Příspěvek od warcz » 11 lis 2017, 17:42

Funguje to děkuju !

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů