Модуль GY-68 BMP180 представляет собой высокоточный цифровой датчик атмосферного давления и температуры. Он работает по протоколу I2C и может быть легко интегрирован в различные системы и проекты.
Основные технические характеристики модуля:
- Диапазон измерения давления: от 300 до 1100 гПа.
- Диапазон измерения температуры: от -40 до +85 градусов Цельсия.
- Точность измерения давления: 1 гПа.
- Точность измерения температуры: 0,1 градуса Цельсия.
- Интерфейс связи: I2C.
- Напряжение питания: от 1,8 до 3,6 В.
Для работы с модулем GY-68 BMP180 необходимо подключить его к плате контроллера, например, к ESP8266, используя протокол I2C. Для этого на модуле есть два контакта: SDA и SCL, которые соответствуют линиям передачи данных и синхросигналов, соответственно. Кроме того, на модуле есть контакт EOC, который сообщает о завершении измерений.
Пример кода для работы с модулем GY-68 BMP180 на ESP8266:
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude());
Serial.println(" meters");
Serial.println();
delay(1000);
}
В данном примере мы используем библиотеку Adafruit_BMP085.h, которая облегчает работу с датчиком. В функции setup() мы инициализируем последовательный порт и проверяем, удалось ли инициализировать датчик. В функции loop() мы получаем показания температуры, давления и высоты и выводим их на последовательный порт.
Для работы с модулем GY-68 BMP180 на платформе esp8266 нам потребуется библиотека Adafruit_BMP085.h, которую мы подключаем в начале программы:
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
Затем мы инициализируем шину I2C в функции setup() и инициализируем объект bmp:
void setup() {
Serial.begin(9600);
Wire.begin(D1, D2);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
while (1) {}
}
}
Функция bmp.begin() инициализирует модуль BMP180 и возвращает значение true, если датчик был успешно найден. В случае неудачи программа зависает в бесконечном цикле.
Далее в цикле loop() мы получаем значения давления и температуры с помощью функций bmp.readPressure() и bmp.readTemperature(). Оба значения выводим на серийный порт.
void loop() {
float temperature = bmp.readTemperature();
float pressure = bmp.readPressure() / 100.0F;
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(pressure);
Serial.println(" hPa");
delay(1000);
}
Заметьте, что значение давления, полученное функцией bmp.readPressure(), представлено в Па (паскалях). Мы делим его на 100, чтобы получить значение в гектопаскалях (hPa).
Таким образом, модуль GY-68 BMP180 является достаточно простым в использовании датчиком барометрического давления для esp8266, который может быть использован в различных проектах, связанных с метеорологией или контролем окружающей среды.