Модуль BMP180 — является недорогим и простым в использовании сенсорным датчиком, позволяющий измерить атмосферное давления и температуру окружающей среды.
Характеристики модуля BMP180:
- Напряжение питания: 3.3 … 5 В
- Минимальный рабочий ток: 5 мкА
- Диапазон измерения: 300hPa .. 1100hPa
- Точность измерения давления: 0,1 hPa
- Точность измерения температуры: 0,1°С
- Интерфейс подключения: I2C
Подключение к Arduino Nano:
- A4 SDA
- A5 SCL
- VIN +5 или +3.3 В
#include <SFE_BMP180.h> #include <Wire.h> SFE_BMP180 h; double t,p; void setup(){ Serial.begin(9600); h.begin(); } void loop(){ int i = h.startTemperature(); delay(i);// время измерения h.getTemperature(t);// измерение температуры Serial.print(t,2); Serial.println(" C"); i = h.startPressure(3);// точность 0-3 delay(i);// время измерения h.getPressure(p,t);// измерение давления Serial.print(p); // в миллибарах Serial.println(" mbar"); Serial.print(p/1.333224,2);// в мм.рт.ст Serial.println(" mm Hg"); Serial.println(""); delay(5000); }
Библиотека SFE_BMP180.zip
Следующий скетч позволяет выводить температуру и давление на семисегментный четырех-разрядный индикатор на базе драйвера TM1637 (модуль TM1637). Показания температуры и давления сменяют друг друга каждые 5 секунд.
#include <SFE_BMP180.h> #include <Wire.h> #include <TM1637Display.h> SFE_BMP180 h; TM1637Display display(2, 3);// CLK,DIO double t,p; uint8_t data[]{0,0,0,0}; int s,p1,x,t1; void setup(){ h.begin(); display.setBrightness(3);// яркость TM1637 0-7 } void loop(){ int i = h.startTemperature(); delay(i);// время измерения h.getTemperature(t);// измерение температуры t1=t; i = h.startPressure(3);// точность 0-3 delay(i);// время измерения h.getPressure(p,t);// измерение давления p1=p/1.333224;// в мм.рт.ст delay(1000); s++; if(s>=0&&s<5){data[0]=0x73;x=p1; data[1] = display.encodeDigit((x/100)%10);} if(s>5){data[0]=0x78;x=t1;data[1]=0;} if(s>9){s=0;} data[2] = display.encodeDigit((x/10)%10); data[3] = display.encodeDigit((x%10)%10); display.setSegments(data); }
Библиотека — TM1637Display.zip