user47599: I have connected an UNO with BMP280 and it sends reading through ESP-01 to thingspeak, and all seems working fine, but my pressure readings seem a bit odd.
To be clear any unchanged pressure reading is around 35.000 value.
As i understood that is in pascal, which is a bit strange, because the expected pascal value should be around 100.000
Code used is below, what am i missing ? Or are the readings ok?
Connection diagram and code used below:

    //ThingSpeak channel Key
String statusChWriteKey = "asd";

//Basic icludes
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(6, 7); // Rx,  Tx
#define HARDWARE_RESET 8

#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10

Adafruit_BMP280 bme; // I2C


int temperature = 0;
int pressure = 0;
int altitude = 0;


// Variables to be used with timers
long writeTimingSeconds = 17; // ==> Define Sample time in seconds to send data
long startWriteTiming = 0;
long elapsedWriteTime = 0;

int spare = 0;
boolean error;

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

  pinMode(HARDWARE_RESET,OUTPUT);

  digitalWrite(HARDWARE_RESET, HIGH);

  Serial.println(F("BMP280 test"));

  if (!bme.begin()) {  
    Serial.println("Could not find a valid BMP280 sensor, check wiring!");
    while (1);
  }

  EspSerial.begin(9600); // Comunicacao com Modulo WiFi
  EspHardwareReset(); //Reset do Modulo WiFi
  startWriteTiming = millis(); // starting the "program clock"


}

void loop()
{

  start: //label 
  error=0;

  elapsedWriteTime = millis()-startWriteTiming; 

  if (elapsedWriteTime > (writeTimingSeconds*1000)) 
  {
    readSensors();
    writeThingSpeak();
    startWriteTiming = millis();   
  }

  if (error==1) //Resend if transmission is not completed 
  {       
    Serial.println(" <<<< ERROR >>>>");
    delay (2000);  
    goto start; //go to label "start"
  }
}

/********* Read Sensors value *************/
void readSensors(void)
{
  temperature = bme.readTemperature();
  pressure = bme.readPressure();
  altitude = bme.readAltitude(1013.25);

}

/********* Conexao com TCP com Thingspeak *******/
void writeThingSpeak(void)
{

  startThingSpeakCmd();

  String getStr = "GET /update?api_key=";
  getStr += statusChWriteKey;
  getStr +="&field1=";
  getStr += String(temperature);
  getStr +="&field2=";
  getStr += String(pressure);
  getStr +="&field3=";
  getStr += String(altitude);
  getStr +="&field4=";
  getStr += String(spare);
  getStr += "\r\n\r\n";

  sendThingSpeakGetCmd(getStr); 
}

/********* Reset ESP *************/
void EspHardwareReset(void)
{
  Serial.println("Reseting......."); 
  digitalWrite(HARDWARE_RESET, LOW); 
  delay(500);
  digitalWrite(HARDWARE_RESET, HIGH);
  delay(8000);//Tempo necessário para começar a ler 
  Serial.println("RESET"); 
}

/********* Start communication with ThingSpeak*************/
void startThingSpeakCmd(void)
{
  EspSerial.flush();//limpa o buffer antes de começar a gravar

  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // Endereco IP de api.thingspeak.com
  cmd += "\",80";
  EspSerial.println(cmd);
  Serial.print("sent ==> Start cmd: ");
  Serial.println(cmd);

  if(EspSerial.find("Error"))
  {
    Serial.println("AT+CIPSTART error");
    return;
  }
}

/********* send a GET cmd to ThingSpeak *************/
String sendThingSpeakGetCmd(String getStr)
{
  String cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  EspSerial.println(cmd);
  Serial.print("sent ==> lenght cmd: ");
  Serial.println(cmd);

  if(EspSerial.find((char *)">"))
  {
    EspSerial.print(getStr);
    Serial.print("sent ==> getStr: ");
    Serial.println(getStr);
    delay(500);//tempo para processar o GET, sem este delay apresenta busy no próximo comando

    String messageBody = "";
    while (EspSerial.available()) 
    {
      String line = EspSerial.readStringUntil('\n');
      if (line.length() == 1) 
      { //actual content starts after empty line (that has length 1)
        messageBody = EspSerial.readStringUntil('\n');
      }
    }
    Serial.print("MessageBody received: ");
    Serial.println(messageBody);
    return messageBody;
  }
  else
  {
    EspSerial.println("AT+CIPCLOSE");     // alert user
    Serial.println("ESP8266 CIPSEND ERROR: RESENDING"); //Resend...
    spare = spare + 1;
    error=1;
    return "error";
  } 
}


user48610: It appears that you might be looking at a field 3 in Thingspeak instead of field 2...Here is why:
Do you live at a low elevation?  Here is why I ask that question.
This statement:
pressure = bmp.readPressure();
returns the pressure in pascals (sea level is 101325 pascals) from the BMP280 and assigns it to the variable pressure.
To get pressure in mb you would divide by 100 (a mb is = to 1 hPa or 100 Pascals).
If you were expecting a value of 100 (kPa?) perhaps that means you would be living near sea level.. perhaps about 100 feet (35m) or so.
If that is the case then the statement:
altitude = bmp.readAltitude(1013.25); 
which ultimately feeds the Thingspeak field 3 the calculated altitude in meters (in this case about 35 meters).
Check and make sure you are looking at Thingspeak field 2 and not field 3 for pressure readings.
If you want to see pressure in mb change the line that reads pressure from the BME280 to the following:
pressure = bmp.readPressure()/100;

47599: <p>I have connected an UNO with BMP280 and it sends reading through ESP-01 to thingspeak, and all seems working fine, but my pressure readings seem a bit odd.</p>

<p>To be clear any unchanged pressure reading is around 35.000 value.</p>

<p>As i understood that is in pascal, which is a bit strange, because the expected pascal value should be around 100.000</p>

<p>Code used is below, what am i missing ? Or are the readings ok?</p>

<p>Connection diagram and code used below:
<a href="https://i.stack.imgur.com/XI6h9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/XI6h9.png" alt="connection diagram"></a></p>

<pre><code>    //ThingSpeak channel Key
String statusChWriteKey = "asd";

//Basic icludes
#include &lt;Wire.h&gt;
#include &lt;SPI.h&gt;
#include &lt;Adafruit_Sensor.h&gt;
#include &lt;Adafruit_BMP280.h&gt;
#include &lt;SoftwareSerial.h&gt;
SoftwareSerial EspSerial(6, 7); // Rx,  Tx
#define HARDWARE_RESET 8

#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10

Adafruit_BMP280 bme; // I2C


int temperature = 0;
int pressure = 0;
int altitude = 0;


// Variables to be used with timers
long writeTimingSeconds = 17; // ==&gt; Define Sample time in seconds to send data
long startWriteTiming = 0;
long elapsedWriteTime = 0;

int spare = 0;
boolean error;

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

  pinMode(HARDWARE_RESET,OUTPUT);

  digitalWrite(HARDWARE_RESET, HIGH);

  Serial.println(F("BMP280 test"));

  if (!bme.begin()) {  
    Serial.println("Could not find a valid BMP280 sensor, check wiring!");
    while (1);
  }

  EspSerial.begin(9600); // Comunicacao com Modulo WiFi
  EspHardwareReset(); //Reset do Modulo WiFi
  startWriteTiming = millis(); // starting the "program clock"


}

void loop()
{

  start: //label 
  error=0;

  elapsedWriteTime = millis()-startWriteTiming; 

  if (elapsedWriteTime &gt; (writeTimingSeconds*1000)) 
  {
    readSensors();
    writeThingSpeak();
    startWriteTiming = millis();   
  }

  if (error==1) //Resend if transmission is not completed 
  {       
    Serial.println(" &lt;&lt;&lt;&lt; ERROR &gt;&gt;&gt;&gt;");
    delay (2000);  
    goto start; //go to label "start"
  }
}

/********* Read Sensors value *************/
void readSensors(void)
{
  temperature = bme.readTemperature();
  pressure = bme.readPressure();
  altitude = bme.readAltitude(1013.25);

}

/********* Conexao com TCP com Thingspeak *******/
void writeThingSpeak(void)
{

  startThingSpeakCmd();

  String getStr = "GET /update?api_key=";
  getStr += statusChWriteKey;
  getStr +="&amp;field1=";
  getStr += String(temperature);
  getStr +="&amp;field2=";
  getStr += String(pressure);
  getStr +="&amp;field3=";
  getStr += String(altitude);
  getStr +="&amp;field4=";
  getStr += String(spare);
  getStr += "\r\n\r\n";

  sendThingSpeakGetCmd(getStr); 
}

/********* Reset ESP *************/
void EspHardwareReset(void)
{
  Serial.println("Reseting......."); 
  digitalWrite(HARDWARE_RESET, LOW); 
  delay(500);
  digitalWrite(HARDWARE_RESET, HIGH);
  delay(8000);//Tempo necessário para começar a ler 
  Serial.println("RESET"); 
}

/********* Start communication with ThingSpeak*************/
void startThingSpeakCmd(void)
{
  EspSerial.flush();//limpa o buffer antes de começar a gravar

  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // Endereco IP de api.thingspeak.com
  cmd += "\",80";
  EspSerial.println(cmd);
  Serial.print("sent ==&gt; Start cmd: ");
  Serial.println(cmd);

  if(EspSerial.find("Error"))
  {
    Serial.println("AT+CIPSTART error");
    return;
  }
}

/********* send a GET cmd to ThingSpeak *************/
String sendThingSpeakGetCmd(String getStr)
{
  String cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  EspSerial.println(cmd);
  Serial.print("sent ==&gt; lenght cmd: ");
  Serial.println(cmd);

  if(EspSerial.find((char *)"&gt;"))
  {
    EspSerial.print(getStr);
    Serial.print("sent ==&gt; getStr: ");
    Serial.println(getStr);
    delay(500);//tempo para processar o GET, sem este delay apresenta busy no próximo comando

    String messageBody = "";
    while (EspSerial.available()) 
    {
      String line = EspSerial.readStringUntil('\n');
      if (line.length() == 1) 
      { //actual content starts after empty line (that has length 1)
        messageBody = EspSerial.readStringUntil('\n');
      }
    }
    Serial.print("MessageBody received: ");
    Serial.println(messageBody);
    return messageBody;
  }
  else
  {
    EspSerial.println("AT+CIPCLOSE");     // alert user
    Serial.println("ESP8266 CIPSEND ERROR: RESENDING"); //Resend...
    spare = spare + 1;
    error=1;
    return "error";
  } 
}
</code></pre>
 48610: <p>It appears that you might be looking at a field 3 in Thingspeak instead of field 2...Here is why:</p>

<p>Do you live at a low elevation?  Here is why I ask that question.</p>

<p>This statement:</p>

<p>pressure = bmp.readPressure();</p>

<p>returns the pressure in <strong>pascals</strong> (sea level is 101325 pascals) from the BMP280 and assigns it to the variable pressure.</p>

<p>To get pressure in mb you would divide by 100 (a mb is = to 1 hPa or 100 Pascals).
If you were expecting a value of 100 (kPa?) perhaps that means you would be living near sea level.. perhaps about 100 feet (35m) or so.</p>

<p>If that is the case then the statement:</p>

<p>altitude = bmp.readAltitude(1013.25); </p>

<p>which ultimately feeds the Thingspeak field 3 the calculated altitude in meters (in this case about 35 meters).
Check and make sure you are looking at Thingspeak field 2 and not field 3 for pressure readings.</p>

<p>If you want to see pressure in mb change the line that reads pressure from the BME280 to the following:</p>

<p>pressure = bmp.readPressure()/100;</p>
