Arduino Dersleri | Arduino IDE Kurulumu | Arduino Programlama Dersleri
Barometrik basınç veya atmosferik basınç, dünyadaki havanın ağırlığından kaynaklanır. Bu basınç, deniz seviyesinde santimetre kare başına yaklaşık 1 kg'dır.
Atmosfer basıncını ifade etmek için birbirine kolayca dönüştürülebilen birkaç birim vardır. Basıncı ölçmek için SI birimi Pascal'dır (Pa).
Barometrik basıncın deniz seviyesinden yüksekliğiyle yaklaşık olarak doğrusal bir ters oranı vardır, bu nedenle bir yerin barometrik basıncını ölçersek, basit bir matematiksel işlem kullanarak deniz seviyesinden yüksekliği hesaplayabiliriz.
Basıncı ve rakımı ölçmek için en yaygın sensörlerden biri BOSCH BMP180'dir. Bu modülün en önemli özellikleri aşağıdaki gibidir:
300 ila 1100hPa arasında basınç ölçüm aralığı
Mutlak basınç için -0.1hPa ölçüm doğruluğu
Bağıl basınç için 12hPa ölçüm doğruluğu
Düşük güç tüketimi (standart modda 5μA ve saniyede bir örnek)
0,5 °C hassasiyete sahip dahili sıcaklık sensörü
İletişim için I2C protokolünü destekleme
Tamamen kalibre edilmiş
Bu sensör, kolay kullanım için bir modül olarak mevcuttur. BMP180 sensör modülünün ana parçaları şunlardır:
BMP180 sensörü
3.3 voltluk bir regülatör. Bu regülatör, modülü 5V'a bağlamanıza izin verir.
I2C'yi düzgün bir şekilde iletmek için gerekli çekme dirençleri
Bu sensörü kullanmak için Arduino kütüphanesi indirmemiz lazım.
Kütüphaneyi indirdikten sonra kütüphanenin örnek kodlar kısmında sensörün bütün özelliklerini görebilirsiniz.
Eğer ekranı kullanmayı bilmiyorsanız Nokia5110 dersimize bakabilirsiniz.
Eğitim videomuzda devrenin yapım aşaması var fakat aynı şemayı siz koddan da çıkartabilirsiniz.
// 10K Ohm potentiometer on A0
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
// PINS CLK, DIN, DC, CE, RST
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
Adafruit_BMP085 bmp;
void setup() {
SPI.begin();
Wire.begin();
bmp.begin();
Serial.begin(9600);
display.begin(); // Initialise display
int con = 55; // Change up or down by 1 to get
int bias = 4; // the best settings for your display
display.setBias(bias);
display.setContrast(con);
display.clearDisplay();
display.setCursor(0,5);
display.println("Project Turkey");
display.setCursor(0,15);
display.print("BMP180");
display.setCursor(17,40);
display.print("Weather");
display.display(); // Static parts of screen written at this point
}
// ++++++++++++Main Loop ++++++++++++++
void loop() {
display.clearDisplay();
display.setCursor(0,0);
display.println("Temperature =");
display.setCursor(40,10);
display.println(bmp.readTemperature());
display.setCursor(0,30);
display.println("Pressure =");
display.setCursor(40,40);
display.println(bmp.readPressure());
display.display();
delay(1000);
display.clearDisplay();
display.setCursor(0,0);
display.println("Altitude =");
display.setCursor(40,10);
display.println(bmp.readAltitude());
display.setCursor(0,20);
display.println("Pressure");
display.setCursor(0,30);
display.println("at sealevel =");
display.setCursor(40,40);
display.println(bmp.readSealevelPressure());
display.display();
delay(1000);
}