Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

29 Haziran 2021 Salı

DHT11 - DHT22 Sensörleri Arduino ile Nasıl Çalışır ?

 

DHT11 DHT22 Sensörleri Arduino ile Nasıl Çalışır ?

AOSONG'un ucuz DHT11 veya DHT22 Dijital Sıcaklık ve Nem Sensörü ile bir sonraki Arduino projenize etrafındaki dünyayı algılama yeteneği verin.

Bu sensörler önceden kalibre edilmiştir ve ekstra bileşen gerektirmez, böylece hemen bağıl nem ve sıcaklığı ölçmeye başlayabilirsiniz.

Sağladıkları en büyük özelliklerden biri, hem sıcaklığın hem de nemin en yakın onda birine kadar ölçülmesidir; yani, bir ondalık basamağa. Bu sensörün tek dezavantajı, saniyede bir veya iki kez yeni veriler alabilmenizdir. Ancak performansı ve fiyatı düşünüldüğünde şikayet edemezsiniz.

DHT11 Vs DHT22 / AM2302

DHTxx sensör serisinin iki versiyonuna sahibiz. Biraz benzer görünüyorlar ve aynı bağlantıya sahipler, ancak farklı özelliklere sahipler. İşte detaylar:

DHT22, açıkça daha iyi özelliklere sahip olan daha pahalı bir versiyondur. Sıcaklık ölçüm aralığı + -0,5 derece doğrulukla -40 ° C ila + 125 ° C iken, DHT11 sıcaklık aralığı + -2 derece doğrulukla 0 ° C ila 50 ° C arasındadır. Ayrıca DHT22 sensörü,% 2-5 doğrulukla% 0 ila% 100 arasında daha iyi nem ölçüm aralığına sahipken, DHT11 nem aralığı% 5 doğrulukla% 20 ila% 80 arasındadır.

DHT11 Sıcaklık Nem Sensörü Fritzing parçası İllüstrasyon
DHT22 Sıcaklık Nem Sensörü Fritzing parça İllüstrasyon
DHT11DHT22
Çalışma gerilimi3 ila 5V3 ila 5V
Maksimum Çalışma Akımı2,5 mA maks.2,5 mA maks.
Nem Aralığı% 20-80 /% 5% 0-100 /% 2-5
Sıcaklık aralığı0-50 ° C / ± 2 ° C-40 ila 80 ° C / ± 0,5 ° C
Örnekleme oranı1 Hz (her saniye okuma)0,5 Hz (2 saniyede bir okuma)
Vücut ölçüsü15,5 mm x 12 mm x 5,5 mm15,1 mm x 25 mm x 7,7 mm
AvantajıUltra düşük maliyetDaha kesin

DHT22 daha hassas, daha doğru ve daha geniş bir sıcaklık ve nem aralığında çalışsa da; DHT11'in DHT22'yi geride bıraktığı üç şey var. Daha ucuzdur, daha küçüktür ve daha yüksek örnekleme oranına sahiptir. DHT11'in örnekleme hızı 1Hz'dir, yani saniyede bir okuma, DHT22'nin örnekleme hızı ise 0.5Hz'dir, yani her iki saniyede bir okuma.

Bununla birlikte, her iki sensörün çalışma voltajı 3 ila 5 volt arasında iken, dönüştürme sırasında (veri talep edilirken) kullanılan maksimum akım 2,5 mA'dır. Ve en iyisi, DHT11 ve DHT22 sensörlerinin 'değiştirilebilir' olmasıdır - yani, projenizi biriyle oluşturuyorsanız, sadece fişini çekip bir başkasını kullanabilirsiniz. Kodunuzun biraz ayarlanması gerekebilir ama en azından kablolama aynıdır!

Donanıma Genel Bakış

Şimdi ilginç şeylere geçelim. Hem DHT11 hem de DHT22 sensörlerini söküp içeride ne olduğunu görelim.

Kasa iki parçadan oluşuyor, bu yüzden içine girmek için sadece keskin bir bıçak alıp kasayı bölmek yeterli. Kasanın içinde, algılama tarafında, bir NTC sıcaklık sensörü (veya termistör) ile birlikte bir nem algılama bileşeni vardır.

DHT11 DHT22 AM2302 Sıcaklık Nem Sensörü

Nemi ölçmek için elbette nem algılama bileşeni kullanılır; bu bileşen, aralarına sıkıştırılmış nem tutma substratı (genellikle bir tuz veya iletken plastik polimer) bulunan iki elektrot içerir. Su buharı tarafından emildiği için iyonlar substrat tarafından salınır ve bu da elektrotlar arasındaki iletkenliği artırır. İki elektrot arasındaki direnç değişikliği bağıl nem ile orantılıdır. Daha yüksek bağıl nem elektrotlar arasındaki direnci azaltırken, daha düşük bağıl nem elektrotlar arasındaki direnci artırır.

DHT11 DHT22'de Nem Sensörünün İç Yapısı
Nem Sensörünün İç Yapısı

Ayrıca, sıcaklığı ölçmek için bir NTC sıcaklık sensörü / Termistörden oluşurlar. Bir termistör, bir termal dirençtir - direncini sıcaklıkla değiştiren bir direnç. Teknik olarak, tüm dirençler termistördür - dirençleri sıcaklıkla biraz değişir - ancak değişim genellikle çok küçüktür ve ölçülmesi zordur.

Termistörler, direnç sıcaklıkla büyük ölçüde değişecek şekilde yapılmıştır, böylece derece başına 100 ohm veya daha fazla değişiklik olabilir! "NTC" terimi, "Negatif Sıcaklık Katsayısı" anlamına gelir, bu da sıcaklık arttıkça direncin azaldığı anlamına gelir.

NTC Termistör Sıcaklık Direnci Karakteristik Eğrisi
Karakteristik Eğriye Sahip NTC Termistörü

Diğer tarafta, 8 bitlik SOIC-14 paketlenmiş IC'ye sahip küçük bir PCB var. Bu IC, depolanan kalibrasyon katsayılarıyla analog sinyali ölçer ve işler, analogdan dijitale dönüştürme yapar ve sıcaklık ve nem ile dijital bir sinyal verir.

DHT11 ve DHT22 Pin Çıkışı

DHT11 ve DHT22 sensörlerinin bağlanması oldukça kolaydır. Dört pimleri var:

DHT11 DHT22 AM2302 Sıcaklık Nem Sensörü Pin Çıkışı

VCCpin sensör için güç sağlar. Besleme voltajı 3,3V ile 5,5V arasında değişse de, 5V besleme önerilir. 5V güç kaynağı olması durumunda, sensörü 20 metreye kadar tutabilirsiniz. Ancak 3.3V besleme geriliminde kablo uzunluğu 1 metreden fazla olmayacaktır. Aksi takdirde, hat voltajı düşüşü ölçümde hatalara yol açacaktır.

Veri pin, sensör ve mikro denetleyici arasındaki iletişim için kullanılır.

NC Bağlı değil

GND Arduino'nun zeminine bağlanmalıdır.

Kablolama - DHT11 ve DHT22'yi Arduino UNO'ya bağlama

Artık DHT sensörlerinin nasıl çalıştığını tam olarak anladığımıza göre, onu Arduino'muza bağlamaya başlayabiliriz!

Neyse ki, DHT11, DHT22 sensörlerini Arduino ya bağlamak önemsizdir. Oldukça uzun 0,1 p-aralıklı pimleri vardır, böylece bunları herhangi bir devre tahtasına kolayca takabilirsiniz. Sensöre 5V ile güç verin ve toprağa bağlayın. Son olarak, Veri pinini 2 numaralı dijital pime bağlayın.

Ayrıca sensör ve MCU arasında düzgün iletişim için YÜKSEK tutmak için VCC ile veri hattı arasına 10KΩ'luk bir çekme direnci yerleştirmemiz gerekir. Sensörün bir koparma panosuna sahipseniz, herhangi bir dış çekme eklemenize gerek yoktur. Yerleşik bir kaldırma direnci ile birlikte gelir.

DHT11 ile Arduino Kablolama Fritzing Bağlantıları
DHT11'i Arduino UNO'ya Kablolama

DHT22 ile Arduino Kablolama Fritzing Bağlantıları
DHT22'yi Arduino UNO'ya Kablolama

Bununla, artık bir kod yüklemeye ve çalıştırmaya hazırsınız.

Arduino Kodu - Seri Monitörde değerleri yazdırma

DHT11 ve DHT22 sensörlerinin, verileri aktarmak için kullanılan kendi tek kablolu protokolleri vardır. Bu protokol, kesin zamanlama gerektirir. Neyse ki, bununla ilgili fazla endişelenmemize gerek yok çünkü neredeyse her şeyi halleden DHT kütüphanesini kullanacağız .

Önce kütüphaneyi, GitHub deposunu ziyaret ederek indirin veya zip dosyasını indirmek için bu düğmeye tıklayın:

Kurmak için Arduino IDE'yi açın, Sketch> Include Library> Add .ZIP Library'ye gidin ve ardından indirdiğiniz DHTlib ZIP dosyasını seçin. Bir kitaplık kurma konusunda daha fazla ayrıntıya ihtiyacınız varsa, bu Arduino Kitaplığı Kurma öğreticisini ziyaret edin .

Kitaplığı kurduktan sonra, bu çizimi Arduino IDE'ye kopyalayabilirsiniz. Aşağıdaki test taslağı, seri monitördeki sıcaklık ve bağıl nem değerlerini yazdıracaktır. Krokiyi deneyin; ve sonra onu biraz detaylı olarak açıklayacağız.

#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object

void setup()
{
Serial.begin(9600);
}
void loop()
{
//Uncomment whatever type you're using!
int readData = DHT.read22(dataPin); // DHT22/AM2302
//int readData = DHT.read11(dataPin); // DHT11
float t = DHT.temperature; // Gets the values of the temperature
float h = DHT.humidity; // Gets the values of the humidity
// Printing the results on the serial monitor
Serial.print("Temperature = ");
Serial.print(t);
Serial.print(" ");
Serial.print((char)176);//shows degrees character
Serial.print("C | ");
Serial.print((t * 9.0) / 5.0 + 32.0);//print the temperature in Fahrenheit
Serial.print(" ");
Serial.print((char)176);//shows degrees character
Serial.println("F ");
Serial.print("Humidity = ");
Serial.print(h);
Serial.println(" % ");
Serial.println("");
delay(2000); // Delays 2 secods
}

Çizim yüklendikten sonra, Arduino'dan çıktıyı görmek için bir Seri Monitör penceresi açın.

DHT11 DHT22 AM2302 Sensör DHTlib kitaplığı Seri Monitörde Çıktı
Seri Monitörde Çıktı

Kod Açıklaması:

Çizim, DHT kitaplığını dahil ederek başlar. Ardından, sensörümüzün Data pininin bağlı olduğu Arduino pin numarasını tanımlamamız ve bir DHT nesnesi oluşturmamız gerekiyor. Böylece kütüphane ile ilgili özel fonksiyonlara erişebiliriz.

#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object

'Kurulum' fonksiyonunda; Sonuçları yazdırmak için seri monitörü kullanacağımız için seri iletişimi başlatmamız gerekir.

void setup() {
Serial.begin(9600);
}

'Döngü' fonksiyonunda; read22()DHT22'den verileri okuyan işlevi kullanacağız Sensörün Data pin numarasını parametre olarak alır. DHT11 ile uğraşıyorsanız, read11()işlevi kullanmanız gerekir Bunu ikinci satırın açıklamasını kaldırarak yapabilirsiniz.

//Uncomment whatever type you're using!
int readData = DHT.read22(dataPin); // DHT22/AM2302
//int readData = DHT.read11(dataPin); // DHT11

Nem ve sıcaklık değerleri hesaplandıktan sonra bunlara şu şekilde erişebiliriz:

float t = DHT.temperature; // Gets the values of the temperature
float h = DHT.humidity; // Gets the values of the humidity

DHT nesnesi, Santigrat (° C) cinsinden sıcaklık değerini döndürür. Basit bir formül kullanarak Fahrenheit'e (° F) dönüştürülebilir:

(° F) = T (° C) × 9/5 + 32

//print the temperature in Fahrenheit
Serial.print((t * 9.0) / 5.0 + 32.0);

Arduino Projesi

Arduino Kodu - LCD ile DHT11 ve DHT22

Bazen DIY inkübatörünüzde sıcaklık ve nem seviyelerini izlemek istediğiniz bir fikir bulursunuz. O halde, inkübatörünüzde seri monitör yerine geçerli koşulları görüntülemek için muhtemelen 16 × 2 karakter LCD'ye ihtiyacınız olacak. Dolayısıyla, bu örnekte, LCD'yi DHT11 ve DHT22 sensörleriyle birlikte Arduino'ya bağlayacağız.

16 × 2 karakter LCD'lere aşina değilseniz, eğitimin altındaki okumayı (en azından gözden geçirmeyi) düşünün.

Daha sonra, aşağıda gösterildiği gibi LCD'ye bağlantı yapmamız gerekiyor.

DHT11 ve 16x2 Karakter LCD ile Arduino Kablolama Fritzing Bağlantıları
DHT11 ve 16 × 2 Karakter LCD'yi Arduino UNO'ya kablolama
DHT22 ve 16x2 Karakter LCD ile Arduino Kablolama Fritzing Bağlantıları
DHT22 ve 16 × 2 Karakter LCD'yi Arduino UNO'ya kablolama

Aşağıdaki çizim, 16 × 2 karakter LCD'de sıcaklık ve bağıl nem değerlerini yazdıracaktır. LCD'de değerleri yazdırmamız dışında aynı kodu kullanır.

#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>
#define dataPin 8

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;
bool showcelciusorfarenheit = false;

void setup()
{
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}

void loop()
{
int readData = DHT.read22(dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("Temp.: "); // Prints string "Temp." on the LCD
//Print temperature value in Celcius and Fahrenheit every alternate cycle
if(showcelciusorfarenheit)
{
lcd.print(t); // Prints the temperature value from the sensor
lcd.print(" ");
lcd.print((char)223);//shows degrees character
lcd.print("C");
showcelciusorfarenheit = false;
}
else
{
lcd.print((t * 9.0) / 5.0 + 32.0); // print the temperature in Fahrenheit
lcd.print(" ");
lcd.print((char)223);//shows degrees character
lcd.print("F");
showcelciusorfarenheit = true;
}
lcd.setCursor(0,1);
lcd.print("Humi.: ");
lcd.print(h);
lcd.print(" %");
delay(5000);
}
DHT11 DHT22 Arduino Sketch Sıcaklık Nem Ölçümleri LCD Üzerinden Çıkışı
LCD üzerinden sıcaklık ve nem ölçümleri

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

BME280 Sıcaklık, Nem, Basınç, Yükseklik Sensörü Arduino ile

 

BME280 Sıcaklık, Nem, Basınç, Yükseklik Sensörü Arduino ile

BME280 ile bir sonraki Arduino projenize etrafındaki dünyayı algılama yeteneği verin . Bu sensörlerin kullanımı oldukça basittir, önceden kalibre edilmiştir ve ekstra bileşen gerektirmez, böylece bağıl nem, sıcaklık, barometrik basınç ve yakl. hiçbir zaman irtifa.

BME280 Sıcaklık, Nem ve Basınç Sensörü

Modülün merkezinde, Bosch tarafından üretilen yeni nesil dijital sıcaklık, nem ve basınç sensörü - BME280 bulunmaktadır. BMP180, BMP085 veya BMP183 gibi sensörlerin en modernidir.



Modül Üzerindeki BME280 Çip

Bu hassas sensör, bağıl nemi ±% 3 doğrulukla% 0 ila% 100, barometrik basıncı ± 1 hPa mutlak doğrulukla ve -40 ° C ila 85 ° C arasındaki sıcaklığı ± 1.0 ° C doğrulukla ölçebilir.

Basınç ölçümleri o kadar hassastır (0,25 m'lik düşük irtifa gürültüsü), ± 1 metre hassasiyetle altimetre olarak bile kullanabilirsiniz.

bme280 sensör özellikleri


Güç Gereksinimi

Modül, yerleşik bir LM6206 3.3V regülatörü ve I2C Voltaj Seviye Çeviricisi ile birlikte gelir, böylece Arduino gibi bir 3.3V veya 5V mantık mikrodenetleyicisi ile endişelenmeden kullanabilirsiniz.

BME280 Modül I2C Voltaj Çevirici ve 3.3V Regülatör

BME280, ölçümler sırasında 1mA'dan daha az ve boşta iken yalnızca 5μA tüketir. Bu düşük güç tüketimi, el cihazları, GPS modülleri veya saatler gibi batarya ile çalışan cihazlarda uygulamaya izin verir.

I2C Arayüzü

Modül, seçtiğiniz herhangi bir mikro denetleyiciyle kolayca arabirim oluşturabilen basit bir iki kablolu I2C arabirimine sahiptir.

BME280 modülünün varsayılan I2C adresidir 0x76 HEX ve 0x77 olarak değiştirilebilir HEX çip yanında lehim jumper ile kolayca.

BME280 Modülü I2C Adres Seçici Lehimleme Jumper'ı

I2C Adresini Değiştirme Prosedürü

  • Çipin yanında lehim bağlantı telini bulun. Varsayılan olarak orta bakır ped sol pede bağlanır.
  • Keskin bir bıçak kullanarak olanların bağlantısını kesmek için orta ve sol bakır ped arasındaki bağlantıyı çizin.
  • Orta ve sağ bakır ped arasına bir lehim damlası ekleyin. I2C adresini 0x77 HEX ayarlamanıza izin verir .
BME280 I2C Adres Seçimi Jumper Ayarı

BME280 Sensör Pin Çıkışı

BME280 modülü, kendisini dış dünyaya arayüzleyen yalnızca 4 pime sahiptir. Bağlantılar aşağıdaki gibidir:

BME280 Pinout - Sıcaklık Nem Barometrik Basınç Sensörü

VIN modül için 3.3V ila 5V arasında herhangi bir yerde olabilen güç kaynağıdır.

GND Arduino'nun zeminine bağlanmalıdır

SCL I2C arayüzü için bir seri saat pinidir.

SDA I2C arayüzü için bir seri veri pinidir.

BME280 Modülünü Arduino UNO'ya Kablolama

BME280 modülünü Arduino ya bağlayalım.

Bağlantılar oldukça basit. VIN pinini Arduino'daki 5V çıkışına bağlayarak başlayın ve GND'yi toprağa bağlayın.

Şimdi I2C iletişimi için kullanılan pinlerde kaldık. Her Arduino Board'un uygun şekilde bağlanması gereken farklı I2C pinlerine sahip olduğunu unutmayın. R3 düzenine sahip Arduino kartlarında, SDA (veri hattı) ve SCL (saat hattı), AREF pinine yakın pin başlıkları üzerindedir. A5 (SCL) ve A4 (SDA) olarak da bilinirler.

Bir Mega'nız varsa, iğneler farklıdır! Dijital 21 (SCL) ve 20 (SDA) kullanmak isteyeceksiniz. Hızlı anlamak için aşağıdaki tabloya bakın.

SCLSDA
Arduino UnoA5A4
Arduino NanoA5A4
Arduino Mega2120
Leonardo / Mikro32

Aşağıdaki şema, her şeyi nasıl bağlayacağınızı gösterir.

Fritzing Kablolama BME280 Modülünü Arduino'ya
BME280 Modülünü Arduino ya Kablolama

Gerekli kitaplıkları yükleme

Bir BME280 modülüyle iletişim kurmak bir sürü iştir. Neyse ki, Adafruit BME280 Kütüphanesi , sıcaklık, bağıl nem ve barometrik basınç verilerini okumak için basit komutlar verebilmemiz için tüm karmaşıklıkları gizlemek için yazılmıştır.

Kitaplığı kurmak için Sketch> Dahil Et> Kitaplıkları Yönet'e gidin  Kitaplık Yöneticisinin kitaplıklar dizinini indirmesini ve kurulu kitaplıkların listesini güncellemesini bekleyin.

Arduino Kitaplığı Kurulumu - Arduino IDE'de Kitaplıkları Yönetmeyi Seçme

Aramanızı ' bme280 ' yazarak filtreleyin Birkaç giriş olmalı. Arayın Adafruit BME280 Kütüphanesi tarafından Adafruit . Bu girişe tıklayın ve ardından Yükle'yi seçin.

Arduino IDE'de BME280 Kitaplığını Kurmak

BME280 sensör kitaplığı, Adafruit Sensör desteği arka ucunu kullanır Bu nedenle, kütüphane yöneticisinde Adafruit Unified Sensor'ü arayın ve onu da kurun (biraz kaydırmanız gerekebilir)

Adafruit Birleşik Sensör Kitaplığı Kurulumu

Arduino Kodu - Sıcaklık, Bağıl Nem ve Barometrik Basınç Okuma

Aşağıdaki taslak, BME280 modülünden sıcaklık, bağıl nem ve barometrik basıncın nasıl okunacağı konusunda size tam bir anlayış verecektir ve daha pratik deneyler ve projeler için temel oluşturabilir.

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

void setup() {
	Serial.begin(9600);

	if (!bme.begin(0x76)) {
		Serial.println("Could not find a valid BME280 sensor, check wiring!");
		while (1);
	}
}

void loop() {
	Serial.print("Temperature = ");
	Serial.print(bme.readTemperature());
	Serial.println("*C");

	Serial.print("Pressure = ");
	Serial.print(bme.readPressure() / 100.0F);
	Serial.println("hPa");

	Serial.print("Approx. Altitude = ");
	Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
	Serial.println("m");

	Serial.print("Humidity = ");
	Serial.print(bme.readHumidity());
	Serial.println("%");

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

Seri monitörde çıkışın nasıl göründüğü aşağıda açıklanmıştır.

BME280 Sıcaklık Nem Basıncı ve Serail Monitörde Yükseklik Çıkışı

Kod Açıklaması:

Taslak, dört kitaplık dahil olmak üzere başlar. Wire.h , SPI.h , Adafruit_Sensor.h ve Adafruit_BME280.h .

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Ardından, SEALEVELPRESSURE_HPArakımı hesaplamak için gerekli değişkeni tanımlıyoruz ve onunla ilgili işlevlere erişebilmemiz için Adafruit_BME280 kitaplığının bir nesnesini oluşturuyoruz.

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

Kodun kurulum bölümünde PC ile seri iletişimi başlatıyoruz ve begin()fonksiyonu çağırıyoruz .

begin(I2C_ADDR)İşlev parametre olarak modülün I2C adresi alır. Modülünüzün I2C adresi farklıysa veya değiştirdiyseniz , doğru şekilde belirtmeniz gerekir. Bu işlev, verilen I2C Adresiyle I2C arayüzünü başlatır ve çip kimliğinin doğru olup olmadığını kontrol eder. Ardından, yumuşak sıfırlama kullanarak çipi sıfırlar ve uyandıktan sonra kalibrasyon için sensör için bekler.

Serial.begin(9600);

if (!bme.begin(0x76)) {
	Serial.println("Could not find a valid BME280 sensor, check wiring!");
	while (1);
}

Kodun döngü bölümünde, BME280 modülünden sıcaklık, bağıl nem ve barometrik basıncı okumak için aşağıdaki işlevleri kullanıyoruz.

readTemperature () işlevi, sensörden sıcaklığı döndürür.

readPressure () işlevi sensörden barometrik basıncı döndürür.

readAltitude (SEALEVELPRESSURE_HPA) işlevi, belirtilen atmosferik basınçtan (hPa cinsinden) ve deniz seviyesi basıncından (hPa cinsinden) yüksekliği (metre cinsinden) hesaplar.

readHumidity () işlevi sensörden bağıl nemi döndürür.

Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println("*C");

Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println("hPa");

Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println("m");

Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println("%");

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.