# \[I want a node\] BME280 sensor node

**URL:** <https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182>\
**Category:** Hardware Interfacing Questions\
**Created:** [January 2, 2020, 5:07pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182 "2020-01-02T17:07:40Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![yolkin-vadim](https://avatars.discourse-cdn.com/v4/letter/y/53a042/32.png) [@yolkin-vadim](https://forum.xod.io/u/yolkin-vadim)\
**Post date:** [January 2, 2020, 5:07pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/1 "2020-01-02T17:07:40Z")

</div>

Всем здравствуйте!  
Мне хотелось подключить датчик BME280 но для него нет ноды. Я не очень могу в C++ Но датчик подключить надо. ПРошу пожалуйста ноду. Буду благодарен!

---

<div class="post-metadata">

**Author:** ![gweimer](https://avatars.discourse-cdn.com/v4/letter/g/a9adbd/32.png) [@gweimer](https://forum.xod.io/u/gweimer)\
**Post date:** [January 2, 2020, 7:56pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/2 "2020-01-02T19:56:36Z")

</div>

This sensor uses I2C communication, so xod/i2c/\* nodes can probably be used to communicate with it. Some info on wiring and what to read/write is available in spec sheet: [https://www.bosch-sensortec.com/media/boschsensortec/downloads/environmental\_sensors\_2/humidity\_sensors\_1/bme280/bst-bme280-ds002.pdf](https://www.bosch-sensortec.com/media/boschsensortec/downloads/environmental_sensors_2/humidity_sensors_1/bme280/bst-bme280-ds002.pdf).

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 2:36am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/3 "2020-01-03T02:36:44Z")

</div>

Есть библиотека для BMX280.  
Нода сама определяет тип датчика - BMP280 или BME280.  
[https://xod.io/libs/dinosalvioni/hwlibrary/](https://xod.io/libs/dinosalvioni/hwlibrary/)

 ![img-2020-01-03-05-40-01](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/c/c8bf189a6431e452417e2432a673207b6bbc1765.png)

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 2:43am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/4 "2020-01-03T02:43:04Z")

</div>

Код только подправь в ручную…

 ![img-2020-01-03-05-41-15](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/a/a722208986ea94b60195548e4eb8b385779c1f96.png)

---

<div class="post-metadata">

**Author:** ![yolkin-vadim](https://avatars.discourse-cdn.com/v4/letter/y/53a042/32.png) [@yolkin-vadim](https://forum.xod.io/u/yolkin-vadim)\
**Post date:** [January 3, 2020, 5:21am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/5 "2020-01-03T05:21:10Z")

</div>

Можно скинуть мне что подправить. А то я маленько рукожоп.

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 5:25am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/6 "2020-01-03T05:25:24Z")

</div>

Тебе придётся разобраться самому. Есть нюансы, относительно распиновки, подключения модуля, адреса и т.п. Разверни код ноды, почитай. Там всё описано.

---

<div class="post-metadata">

**Author:** ![yolkin-vadim](https://avatars.discourse-cdn.com/v4/letter/y/53a042/32.png) [@yolkin-vadim](https://forum.xod.io/u/yolkin-vadim)\
**Post date:** [January 3, 2020, 6:59am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/7 "2020-01-03T06:59:43Z")

</div>

Попробовал. Не понял ничего. Помогите. Я не знаю где поправить

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 7:21am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/8 "2020-01-03T07:21:21Z")

</div>

Подключите датчик, согласно указанной в коде распиновке.  
Если не заработает - проверьте адрес датчика I2C сканером.

---

<div class="post-metadata">

**Author:** ![yolkin-vadim](https://avatars.discourse-cdn.com/v4/letter/y/53a042/32.png) [@yolkin-vadim](https://forum.xod.io/u/yolkin-vadim)\
**Post date:** [January 3, 2020, 7:27am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/9 "2020-01-03T07:27:16Z")

</div>

> **[Screenshot](https://prnt.sc/qirxui)**
>
> Captured with Lightshot

---

<div class="post-metadata">

**Author:** ![yolkin-vadim](https://avatars.discourse-cdn.com/v4/letter/y/53a042/32.png) [@yolkin-vadim](https://forum.xod.io/u/yolkin-vadim)\
**Post date:** [January 3, 2020, 8:57am UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/10 "2020-01-03T08:57:57Z")

</div>

не работает. что делать

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 3:44pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/11 "2020-01-03T15:44:23Z")

</div>

А что конкретно не работает?  
Я вижу, что у вас даже компиляция не проходит.  
Не говоря уж о работоспособности кода или модуля.

---

<div class="post-metadata">

**Author:** ![bonyfacci](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/bonyfacci/32/1803_2.png) [@bonyfacci](https://forum.xod.io/u/bonyfacci)\
**Post date:** [January 3, 2020, 4:29pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/12 "2020-01-03T16:29:58Z")

</div>

#pragma XOD require “[https://github.com/christandlg/BMx280MI](https://github.com/christandlg/BMx280MI)”

// Arduino - BMP280 / BME280  
// 3.3V ---- VCC  
// GND ----- GND  
// SDA ----- SDA  
// SCL ----- SCL  
// some BMP280/BME280 modules break out the CSB and SDO pins as well:  
// 5V ------ CSB (enables the I2C interface)  
// GND ----- SDO (I2C Address 0x76)  
// 5V ------ SDO (I2C Address 0x77)  
// other pins can be left unconnected.

{{#global}}  
#include \<Arduino.h\>  
#include \<Wire.h\>

#include \<BMx280I2C.h\>

#define I2C\_ADDRESS 0x76  
{{/global}}

struct State {  
};

{{ GENERATED\_CODE }}

void evaluate(Context ctx) {  
auto state = getState(ctx);

```
if (isInputDirty<input_UPD>(ctx)) {

    Wire.begin();

    //create a BMx280I2C object using the I2C interface with I2C Address 0x76
    //auto I2C_ADDRESS = getValue<input_ADDR>(ctx);
    BMx280I2C bmx280(I2C_ADDRESS);
    
    if (!bmx280.begin())
    {
	    Serial.println("begin() failed. check your BMx280 Interface and I2C Address.");  
    }

    if (bmx280.isBME280())
	    Serial.println("sensor is a BME280");
    else
	    Serial.println("sensor is a BMP280");

    //reset sensor to default parameters.
    bmx280.resetToDefaults();

    //by default sensing is disabled and must be enabled by setting a non-zero
    //oversampling setting.
    //set an oversampling setting for pressure and temperature measurements. 
    bmx280.writeOversamplingPressure(BMx280MI::OSRS_P_x16);
    bmx280.writeOversamplingTemperature(BMx280MI::OSRS_T_x16);

    //if sensor is a BME280, set an oversampling setting for humidity measurements.
    if (bmx280.isBME280())
	    bmx280.writeOversamplingHumidity(BMx280MI::OSRS_H_x16);

    //start a measurement
    if (!bmx280.measure())
    {
	    //Serial.println("could not start measurement, is a measurement already running?");
	    return;
    }

    //wait for the measurement to finish
    int i = 0;
    do
    {
	    delay(100);
        i=i+1;
    } while (!bmx280.hasValue() or i<10);

    auto temperature = bmx280.getTemperature();
    auto pressure = bmx280.getPressure();
    auto humidity = bmx280.getHumidity();

    emitValue<output_PRES>(ctx, pressure);
    emitValue<output_TEMP>(ctx, temperature);

    if (bmx280.isBME280())
      // emitValue<output_HUM>(ctx, humidity);

}emitValue<output_DONE>(ctx, 1);

```

}

---

<div class="post-metadata">

**Author:** ![jukkamartinen](https://avatars.discourse-cdn.com/v4/letter/j/7ba0ec/32.png) [@jukkamartinen](https://forum.xod.io/u/jukkamartinen)\
**Post date:** [January 5, 2020, 12:41pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/13 "2020-01-05T12:41:57Z")

</div>

I have the same problem. This node for BME280 has an error in this block

{{#global}}  
#include \<Arduino.h\>  
#include \<Wire.h\>

#include \<BMx280I2C.h\>

#define I2C\_ADDRESS 0x76  
{{/global}}

Adding the line has helped me.

#include \<BMx280MI.h\>

Now block looks like this

{{#global}}  
#include \<Arduino.h\>  
#include \<Wire.h\>  
#include \<BMx280I2C.h\>  
#include \<BMx280MI.h\>

//#define I2C\_ADDRESS 0x76  
{{/global}}

---

<div class="post-metadata">

**Author:** ![skippy2k](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@skippy2k](https://forum.xod.io/u/skippy2k)\
**Post date:** [January 11, 2020, 2:59pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/14 "2020-01-11T14:59:30Z")

</div>

If you go to my reply on this topic it may help. ### Topic: GY-BMP280 Temperature humidity and pressure senzor

[https://forum.xod.io/t/gy-bmp280-temperature-humidity-and-pressure-senzor/3220?u=skippy2k](https://forum.xod.io/t/gy-bmp280-temperature-humidity-and-pressure-senzor/3220)

---

<div class="post-metadata">

**Author:** ![denis-nabatchikov](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/denis-nabatchikov/32/1821_2.png) [@denis-nabatchikov](https://forum.xod.io/u/denis-nabatchikov)\
**Post date:** [January 11, 2020, 4:52pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/15 "2020-01-11T16:52:23Z")

</div>

из коробки не завелось.

---

<div class="post-metadata">

**Author:** ![skippy2k](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@skippy2k](https://forum.xod.io/u/skippy2k)\
**Post date:** [January 11, 2020, 5:54pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/16 "2020-01-11T17:54:52Z")

</div>

нет, это дает ошибку компиляции. я могу только заставить его работать, отредактировав c ++ в BMx280i2c.h

---

<div class="post-metadata">

**Author:** ![minokin](https://avatars.discourse-cdn.com/v4/letter/m/2acd7d/32.png) [@minokin](https://forum.xod.io/u/minokin)\
**Post date:** [February 25, 2020, 1:17pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/19 "2020-02-25T13:17:14Z")

</div>

BMx280I2C.h так правильнее ( регистр имеет значения)  
вот у меня так:

{{#global}}  
#include \<Arduino.h\>  
#include \<Wire.h\>  
#include \<BMx280I2C.h\>  
//#define I2C\_ADDRESS 0x76  
{{/global}}

и все работает  
адрес датчика указал в патче проекта ![bme280](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/8/83dee398060cd6800c5566b0e0d9c698b52e212c.jpeg)

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/1X/eb7348baa04192c2ef932d1db54d44f09f8a7888.png) [@system](https://forum.xod.io/u/system)\
**Post date:** [April 21, 2020, 3:30pm UTC](https://forum.xod.io/t/i-want-a-node-bme280-sensor-node/3182/21 "2020-04-21T15:30:57Z")

</div>

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