Skip to Content
Proje ListesiOrta10. Mini Hava İstasyonu

10. BME280 Mini Hava İstasyonu

BME280 ile sıcaklık, atmosfer basıncını ve yaygın olarak aynı modülde bulunan nemi ölçün; seçilen deniz seviyesi basıncına göre yaklaşık yükseklik hesaplayın.

Seviye: Orta · Süre: 45 dakika

Gerekenler ve bağlantılar

  • ESP32 DevKit V1, BME280 I²C modülü
  • Adafruit BME280 Library, Adafruit Unified Sensor ve Adafruit BusIO
BME280ESP32
VIN / GNDModülünüz 3,3 V uyumluysa 3V3 / GND
SDAGPIO 21
SCLGPIO 22

Tam kod

#include <PxServ.h> #include <Wire.h> #include <Adafruit_BME280.h> const char* WIFI_SSID = "wifi_ssid"; const char* WIFI_PASSWORD = "wifi_sifre"; const char* PXSERV_API_KEY = "pxserv_api_anahtariniz"; const float SEA_LEVEL_HPA = 1013.25; PxServ client(PXSERV_API_KEY); Adafruit_BME280 bme; void setup() { Serial.begin(115200); Wire.begin(21, 22); if (!bme.begin(0x76)) { Serial.println("BME280 bulunamadi. 0x76/0x77 adresini kontrol edin."); while (true) delay(1000); } PxServ::connectWifi(WIFI_SSID, WIFI_PASSWORD); } void loop() { float temperature = bme.readTemperature(); float pressure = bme.readPressure() / 100.0f; float altitude = bme.readAltitude(SEA_LEVEL_HPA); client.setData("hava/sicaklik", String(temperature, 1)); client.setData("hava/basinc-hpa", String(pressure, 1)); client.setData("hava/yukseklik-m", String(altitude, 1)); Serial.print("Basinc: "); Serial.print(pressure, 1); Serial.println(" hPa"); delay(30000); }

Test ve doğruluk

Sensör bulunmazsa I²C adresi 0x77 olabilir; bme.begin(0x76) satırını değiştirin. Yükseklik değeri yerel deniz seviyesi basıncına bağlıdır; güncel yerel değeri SEA_LEVEL_HPA alanına girin. BME280, tek modülde sıcaklık, basınç ve nem ölçtüğü için yaygın bir tercihtir.

Teknik referans: Adafruit BME280 ürün rehberi 

Son güncelleme