В данном уроке мы рассмотрим подключение датчика BMP180 к микроконтроллеру ESP8266. Данный датчик меряет температуру в диапазоне -40 до +85 С с точностью +-1 С и атмосферное давление от 300ГПа до 1100ГПа. Так же может измерять высоту над уровнем моря от 0 до 3000 футов (~ 9150м) +-1м. Напряжение питания составляет от 3,3В до 5В.

Подключается датчик по шине I2C:
VCC – к выходу 3,3 В на модуле.
Земля – к выводу GND на модуле.
SCL – к выводу D1 тактового сигнала I2C на модуле.
SDA – к выводу D2 данных I2C на модуле.
Программный код:
#include <Wire.h>
#include <BMP180I2C.h>
#define I2C_ADDRESS 0x77
float Pressure;
const float m=0.00750062;
//create an BMP180 object using the I2C interface
BMP180I2C bmp180(I2C_ADDRESS);
void setup() {
Serial.begin(9600);
while (!Serial);
Wire.begin();
if (!bmp180.begin()){
Serial.println(«BMP180 — Error.»);
while (1);
}
bmp180.resetToDefaults();
bmp180.setSamplingMode(BMP180MI::MODE_UHR);
}
void loop() {
delay(1000);
if (!bmp180.measureTemperature()){
Serial.println(«temperature measurement — error»);
return;
}
do{
delay(100);
} while (!bmp180.hasValue());
Serial.print(«Temperature: «);
Serial.print(bmp180.getTemperature());
Serial.println(» C»);
if (!bmp180.measurePressure()){
Serial.println(«perssure measurement -error»);
return;
}
do{
delay(100);
} while (!bmp180.hasValue());
Pressure = bmp180.getPressure()*m;
Serial.print(«Pressure: «);
Serial.print(Pressure );
Serial.println(» ммрт.ст»);
}