NodeMCU ESP8266, I2C and the BMP280 Temp/Pressure sensor
Posted: Thu Apr 20, 2017 11:31 am
Hi All
Trying to get the BMP280 temperature and pressure sensor working on my NodeMCU ESP8266 board, and I seem to be having issues!
Managed to get it working fine on the Arduino yesterday, but when I run the sketch on the ESP8266 I can't seem to get any output from the BMP280.
I wanted to check I have it wired correctly, becase on studying the Pinout diagram of the board, I cannot see which pins are assigned to SCL and SDA for the I2C pins. On the Arduino they are A4 and A5, but I am uncertain as to which are the correct I2C pins on the NodeMCU.
Can someone please confirm for me please which pins I should be using because at the moment the sketch is reporting 'Could not find a valid BMP280 sensor, check wiring!'
Here's the code I am using. Can anyone help please. Thanks
Trying to get the BMP280 temperature and pressure sensor working on my NodeMCU ESP8266 board, and I seem to be having issues!
Managed to get it working fine on the Arduino yesterday, but when I run the sketch on the ESP8266 I can't seem to get any output from the BMP280.
I wanted to check I have it wired correctly, becase on studying the Pinout diagram of the board, I cannot see which pins are assigned to SCL and SDA for the I2C pins. On the Arduino they are A4 and A5, but I am uncertain as to which are the correct I2C pins on the NodeMCU.
Can someone please confirm for me please which pins I should be using because at the moment the sketch is reporting 'Could not find a valid BMP280 sensor, check wiring!'
Here's the code I am using. Can anyone help please. Thanks
Code: Select all
/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor
Designed specifically to work with the Adafruit BMEP280 Breakout
----> http://www.adafruit.com/products/2651
These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
int altitude;
Adafruit_BMP280 bme; // I2C
//Adafruit_BMP280 bme(BMP_CS); // hardware SPI
//Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 test"));
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature()*9/5+32);
Serial.println(" *f");
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100);
Serial.println(" mB");
Serial.print("Approx altitude = ");
Serial.print(bme.readAltitude(1035)); // this should be adjusted to your local forcase
Serial.println(" m");
Serial.println();
delay(2000);
}