Anketler Fotoğraflar [Yeni!] Para Kazanın Reklam ücretleri Görüş Bildirin WebMaster Araçları SMS / Fıkra Arşivi
Yazılar (Blog) Programlar Projeler Servisler
AnaSayfa En Ben Kimim Bölümler Çalışmalarım iletişim

Arduino + BMP180/280 Sensoru Sicaklik Irtifa ve Basinc Degerlerinin okunmasi []

Bu projemde Arduino ile  BMP280 Sensoru Sicaklik Irtifa ve Basinc Degerlerinin okuyacagiz. Sensoru aliexpressden 1$ gibi bir paraya satin alabilirsiniz. 

Bu islem icin oncelikle asagidaki ili kutuphanenin bilgisayarinizda kurulu olmasi gerekmektedir.

  • Adafruit_BMP280_Library (https://github.com/adafruit/Adafruit_BMP280_Library)
  • Adafruit_Sensor (https://github.com/adafruit/Adafruit_Sensor)

Eger ilk kurulumu yapmaniz ardindan "Adafruit_Sensor.h" File not found//Dosya bulunamadi hatasi aliyorsaniz ikinci kutuphaneyi indirip kurmaniz gerekmektedir.

Wiring//Baglanti asagidaki gibi olmalidir.

//SENSOR VCC=3.3v olmali
////////     ARDUNIO_PIN     //SENSOR_PIN
#define BMP_CS 10     //CSB
#define BMP_MOSI 11     //SDA
#define BMP_MISO 12     //SDO
#define BMP_SCK 13     //SCL

 

Projede SPI kullandim bu nedenle hardware SPI degilde kendi tanimladigim pinlerden SPI islemini gerceklestirdim, Kutuphane bu islemi destekliyor. Kutuphaneler tamam baglanti tamam o zaman klasik arduino ozelligi, tak calistir.

Dogru irtifa okumak icin Yerek Basinc degerinin sensore girilmesi gerekiyor, Deniz seviyesi 14 derecede 1 atmosfer basinc 1023.25 hpa olarak kabul edeilmektedir.  Bu kafanizi karistirabilir ama basit karistirmasin, en yakininizda bulunan havalaninin METAR bilgisinde Q1018 gibi bir deger goreceksiniz bu degeri alip kullanabilirsiniz.  Ornegin google amcaya "Antaltya Airport METAR" yazdigimda cikan sonuclardan bu bilgiyi edindim.

 

METAR: LTAI 260950Z 20008KT 170V230 9999 FEW030 23/09 Q1018 NOSIG RMK RWY18C 19008KT 150V220 RWY36R 20007KT 170V230 RWY18L 19008KT 160V230

Ve buradaki QNH degerini (Q1018 olan deger) alip yerel basinc olarak projemde kullandim. Bu deger Q harfi ardindan 4 rakkamdan olusur ve 1000 kusurlu bir degerdir. Cok soguk yerlerde 999 gibi degerler gorulesbilmesine ragmen ulkemizde bu deger genelde 1000in uzerindedir. Buradaki her 1hpa 30ft yaklasik 10 metre hatali okumaniza sebebiyet verir. Okunan degerleri seri portdan 9600buad ile gonderdim. Porjede Arduino UNO kullandigim icin direk uzerinde bulunan USB cevirici araciligiyla bilgisayarda gordum.

Kodlar asagidaki gibi;

/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor

Designed specifically to work with the Adafruit BMEP280 Breakout
----> http://www.adafruit.com/products/2651

These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.

Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!

Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution

Bu kutuphaneyi install etmek gerekiyor
https://github.com/adafruit/Adafruit_Sensor
***************************************************************************/

#include
#include
#include
#include


////////ARDUNIO_PIN/////SENSOR_PIN
#define BMP_SCK 13 //SCL
#define BMP_MISO 12 //SDO
#define BMP_MOSI 11 //SDA
#define BMP_CS 10 //CSB
//bmp vcc=3.3 olana tak

//Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);

void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 test"));

if (!bmp.begin()) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
while (1);
}
}

void loop() {
Serial.println("www.ahmbay.com");
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");

Serial.print(F("Pressure = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");

Serial.print(F("Approx altitude = "));
// Serial.print(bmp.readAltitude(1013.25)); // this should be adjusted to your local forcase
Serial.print(bmp.readAltitude(1018)); // this should be adjusted to your local forcase

Serial.println(" m");

Serial.println();
delay(2000);
}

Lafta kalmasin birkac foto ekliyelim;

Yazan: Admin | Güncelleme: 26.04.2017

Değerlendir

Bu Metaryel için Yapılmış Yorumlar (1)


  Burak [burak..] {25 Nisan 2021 Pazar 23:04:48}

uno orjinal değil sanirim :) ,2003 yılından beri aklıma geldikçe takip ediyorum sizi, başarılar

Yorumunuzu Ekleyin

isim Zorunlu Alan! 
Mail Zorunlu Alan! 
Yorumunuz Zorunlu Alan! 
Max Karekter.
Resim Onayı Zorunlu Alan! 
Kategoriler
. : : Anket : : .
nezaman öleceğinizi bilmek istermiydiniz?




 
Porjeler: Ziyaretçi Defteri
Sayaç
sms

Sayfa Üretimi:0.033 Sn : : AhmBay Extreme Design © 1999-2024
Bu sitedeki materyallerin izin alınmadan Kısmen veya Tamamen Kopyalanmasi ve Kullanilması,
5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur.