{"id":16148914,"url":"https://github.com/erriez/erriezbmx280","last_synced_at":"2025-04-24T00:03:10.556Z","repository":{"id":85067589,"uuid":"293904661","full_name":"Erriez/ErriezBMX280","owner":"Erriez","description":"BMP280 / BME280 temperature/pressure/humidity sensor library for Arduino","archived":false,"fork":false,"pushed_at":"2020-09-08T21:28:54.000Z","size":3503,"stargazers_count":8,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-24T00:02:56.147Z","etag":null,"topics":["altitude","arduino","bme280","bmp280","documentation","erriez","example","getting","hpa","humidity","i2c","iot","library","pressure","sensor","started","temperature","weather"],"latest_commit_sha":null,"homepage":"https://github.com/Erriez/ErriezArduinoLibrariesAndSketches","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erriez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-08T19:13:56.000Z","updated_at":"2024-09-07T07:49:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"949fc106-613c-4c51-993d-209ca447b9f8","html_url":"https://github.com/Erriez/ErriezBMX280","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erriez%2FErriezBMX280","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erriez%2FErriezBMX280/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erriez%2FErriezBMX280/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erriez%2FErriezBMX280/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erriez","download_url":"https://codeload.github.com/Erriez/ErriezBMX280/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250535088,"owners_count":21446507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["altitude","arduino","bme280","bmp280","documentation","erriez","example","getting","hpa","humidity","i2c","iot","library","pressure","sensor","started","temperature","weather"],"created_at":"2024-10-10T00:35:15.310Z","updated_at":"2025-04-24T00:03:10.521Z","avatar_url":"https://github.com/Erriez.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BMP280/BME280 sensor library for Arduino\n\n[![Build Status](https://travis-ci.org/Erriez/ErriezBMX280.svg?branch=master)](https://travis-ci.org/Erriez/ErriezBMX280)\n\nThis is a BMP280/BME280 temperature/pressure/humidity sensor library for Arduino.\n\n![BMX280](https://raw.githubusercontent.com/Erriez/ErriezBMX280/master/extras/BMX280.png)\n\n\n## Arduino library features\n\n- Measurements:\n    - BMP280: Temperature / pressure / approximate altitude\n    - BME280: Temperature / pressure / approximate altitude / humidity\n- Three operation modes:\n  - Normal mode: Continues conversion\n  - Forced mode: One-time conversion\n  - Standby mode: Low-power, no conversion\n- Sampling configuration\n- Chip detect / read chip ID\n- I2C interface only\n- Small flash/RAM footprint\n\n\n## BMP280/BME280 sensor specifications\n\n- Operating voltage: 1.71V .. 3.6V max\n- Low current:\n    - 1.8 uA @ 1 Hz humidity and temperature\n    - 2.8 uA @ 1 Hz pressure and temperature\n    - 3.6 uA @ 1 Hz humidity, pressure and temperature\n    - 0.1 uA in sleep mode\n- Operating range: -40...+85 °C, 0...100 % rel. humidity, 300...1100 hPa\n- I2C bus interface: max 3.4 MHz\n- No additional electronic components needed\n\n\n## Hardware\n\n**Connection Arduino board - BMX280 sensor**\n\n| Pins board - BMX280            | VCC  | GND  |    SDA     |    SCL     |\n| ------------------------------ | :--: | :--: | :--------: | :--------: |\n| Arduino UNO (ATMega328 boards) |  5V  | GND  |     A4     |     A5     |\n| Arduino Mega2560               |  5V  | GND  |    D20     |    D21     |\n| Arduino Leonardo               |  5V  | GND  |     D2     |     D3     |\n| Arduino DUE (ATSAM3X8E)        | 3V3  | GND  |     20     |     21     |\n| ESP8266                        | 3V3  | GND  | GPIO4 (D2) | GPIO5 (D1) |\n| ESP32                          | 3V3  | GND  |   GPIO21   |   GPIO22   |\n\nOther unlisted MCU's may work, but are not tested.\n\n\n## Examples\n\nExamples | Erriez BMP280/BME280 sensor:\n\n* [ErriezBMX280](https://github.com/Erriez/ErriezBMX280/blob/master/examples/ErriezBMX280/ErriezBMX280.ino)\n\n\n## Documentation\n\n- [Doxygen online HTML](https://erriez.github.io/ErriezBMX280)\n- [Doxygen PDF](https://github.com/Erriez/ErriezBMX280/raw/master/ErriezBMX280.pdf)\n- [BMP280 chip datasheet](https://github.com/Erriez/ErriezBMX280/blob/master/extras/BMP280_datasheet.pdf)\n- [BME280 chip datasheet](https://github.com/Erriez/ErriezBMX280/blob/master/extras/BME280_datasheet.pdf)\n\n\n## Example\n\n```c++\n#include \u003cWire.h\u003e\n#include \u003cErriezBMX280.h\u003e\n\n// Adjust sea level for altitude calculation\n#define SEA_LEVEL_PRESSURE_HPA      1026.25\n\n// Create BMX280 object I2C address 0x76 or 0x77\nErriezBMX280 bmx280 = ErriezBMX280(0x76);\n\n\nvoid setup()\n{\n    // Initialize serial\n    delay(500);\n    Serial.begin(115200);\n    while (!Serial) {\n        ;\n    }\n    Serial.println(F(\"\\nErriez BMP280/BMX280 example\"));\n\n    // Initialize I2C bus\n    Wire.begin();\n    Wire.setClock(400000);\n\n    // Initialize sensor\n    while (!bmx280.begin()) {\n        Serial.println(F(\"Error: Could not detect sensor\"));\n        delay(3000);\n    }\n\n    // Print sensor type\n    Serial.print(F(\"\\nSensor type: \"));\n    switch (bmx280.getChipID()) {\n        case CHIP_ID_BMP280:\n            Serial.println(F(\"BMP280\\n\"));\n            break;\n        case CHIP_ID_BME280:\n            Serial.println(F(\"BME280\\n\"));\n            break;\n        default:\n            Serial.println(F(\"Unknown\\n\"));\n            break;\n    }\n}\n\nvoid loop()\n{\n    Serial.print(F(\"Temperature: \"));\n    Serial.print(bmx280.readTemperature());\n    Serial.println(\" C\");\n\n    if (bmx280.getChipID() == CHIP_ID_BME280) {\n        Serial.print(F(\"Humidity:    \"));\n        Serial.print(bmx280.readHumidity());\n        Serial.println(\" %\");\n    }\n\n    Serial.print(F(\"Pressure:    \"));\n    Serial.print(bmx280.readPressure() / 100.0F);\n    Serial.println(\" hPa\");\n\n    Serial.print(F(\"Altitude:    \"));\n    Serial.print(bmx280.readAltitude(SEA_LEVEL_PRESSURE_HPA));\n    Serial.println(\" m\");\n\n    Serial.println();\n\n    delay(1000);\n}\n```\n**Output**\n```c++\nErriez BMP280/BMX280 example\n\nSensor type: BME280\n\nTemperature: 28.50 C\nHumidity:    45.13 %\nPressure:    1024.88 hPa\nAltitude:    11.27 m\n\nTemperature: 28.55 C\nHumidity:    45.21 %\nPressure:    1024.89 hPa\nAltitude:    11.21 m\n\n...\n```\n\n### Set sampling\n\nThe sensor sampling and mode can be configured with function `setSampling()`. Recommended modes of\noperation according to the datasheet chapter \"Recommended modes of operation\":\n\n```c++\n// Set sampling\n//\n// Weather\n//  - forced mode, 1 sample / minute\n//  - pressure ×1, temperature ×1, humidity ×1\n//  - filter off\n//\n// Humidity sensing\n//  - forced mode, 1 sample / second\n//  - pressure ×0, temperature ×1, humidity ×1\n//  - filter off\n//\n// Indoor navigation\n//  - normal mode, t standby = 0.5 ms\n//  - pressure ×16, temperature ×2, humidity ×1\n//  - filter coefficient 16\n//\n// Gaming\n//  - forced mode, t standby = 0.5 ms\n//  - pressure ×1, temperature ×1, humidity ×1\n//  - filter off\nbmx280.setSampling(BMX280_MODE_NORMAL,    // SLEEP, FORCED, NORMAL\n                   BMX280_SAMPLING_X16,   // Temp:  NONE, X1, X2, X4, X8, X16\n                   BMX280_SAMPLING_X16,   // Press: NONE, X1, X2, X4, X8, X16\n                   BMX280_SAMPLING_X16,   // Hum:   NONE, X1, X2, X4, X8, X16 (BME280)\n                   BMX280_FILTER_X16,     // OFF, X2, X4, X8, X16\n                   BMX280_STANDBY_MS_500);// 0_5, 10, 20, 62_5, 125, 250, 500, 1000\n ```\n\n## Library dependencies\n\n- Built-in ```Wire.h```\n\n\n## Library installation\n\nPlease refer to the [Wiki](https://github.com/Erriez/ErriezArduinoLibrariesAndSketches/wiki) page.\n\n\n## Other Arduino Libraries and Sketches from Erriez\n\n* [Erriez Libraries and Sketches](https://github.com/Erriez/ErriezArduinoLibrariesAndSketches)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferriez%2Ferriezbmx280","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferriez%2Ferriezbmx280","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferriez%2Ferriezbmx280/lists"}