Подключаем датчик температуры и давления BMP180 к микроконтроллеру ESP8266.

В данном уроке мы рассмотрим подключение датчика 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(» ммрт.ст»);
}