Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

sıcaklık modülü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sıcaklık modülü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Haziran 2021 Salı

Arduino ile DHT11 Modülü

 

Arduino ile DHT11 Modülü

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

DHT11 Sıcaklığı ve Nemi Nasıl Ölçer?

DHT11'in içinde, bir Termistör ile birlikte bir nem algılama bileşeni vardır.

iç dht11 sensörü ön

Nem algılama bileşeni, aralarında sıkıştırılmış nem tutan alt tabakaya sahip iki elektrota sahiptir.

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ı

DHt11 ayrıca sıcaklığı ölçmek için bir NTC / Termistör içerir. Bir termistör, direnci sıcaklıkla büyük ölçüde değişen bir termal dirençtir. "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

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.

iç dht11 sensörü geri

DHT11 Modülü Donanımına Genel Bakış

Modülün merkezinde, AOSONG - DHT11 tarafından üretilen dijital sıcaklık ve nem sensörü bulunmaktadır.

DHT11 Sensörü

DHT11, 0 ° C ila 50 ° C arasındaki sıcaklığı ± 2.0 ° C doğrulukla ve% 20 ila% 80 arasındaki nemi% 5 doğrulukla ölçebilir.

dht11 modül donanımına genel bakış ön

DHT11'in örnekleme hızının 1Hz olduğunu, yani saniyede bir ondan yeni veriler alabileceğinizi unutmayın.

Destekleyen Devre

Modül, tüm temel destek devreleriyle birlikte gelir, bu nedenle herhangi bir ekstra bileşen olmadan çalışmaya hazır olmalıdır.

dht11 modül donanımına genel bakış geri

DHT11 sensörleri, sensör ve Arduino arasında uygun iletişim için genellikle VCC ve Out pimi arasında 10KΩ'luk harici çekme direnci gerektirir. Bununla birlikte, modülün yerleşik bir kaldırma direnci vardır, bu nedenle eklemenize gerek yoktur.

Modülde ayrıca güç kaynağı üzerindeki gürültüyü filtrelemek için bir dekuplaj kapasitörü vardır.

DHT11 Modülü Pinout

DHT11 modülünün bağlanması oldukça kolaydır. Yalnızca üç pimi vardır:

dht11 modülü pin çıkışı

+ (VCC)pin sensör için güç sağlar. Besleme voltajı 3,3V ile 5,5V arasında değişmesine rağmen 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.

Dışarı pin, sensör ve Arduino arasındaki iletişim için kullanılır.

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

DHT11 Modülünü Arduino ya Kablolama

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

Bağlantılar oldukça basit. + (VCC) pinini Arduino'daki 5V çıkışına bağlayarak başlayın ve - (GND) toprağa bağlayın. Son olarak, Çıkış pinini 8 numaralı dijital pime bağlayın.

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

arduino ile kablolama dht11 modülü

DHT kitaplığını yükleme

DHT11 sensörleri, verileri aktarmak için kendi tek kablolu protokollerine sahiptir. Bu protokol, kesin zamanlama gerektirir. Neyse ki, DHT Kitaplığı tüm karmaşıklıkları gizlemek için yazılmıştır, böylece sıcaklık ve nem verilerini okumak için basit komutlar verebiliriz.

Ö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.

Arduino Kodu - Temel Örnek

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>	// Include library
#define outPin 8	// Defines pin number to which the sensor is connected

dht DHT;			// Creates a DHT object

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

void loop() {
	int readData = DHT.read11(outPin);

	float t = DHT.temperature;	// Read temperature
	float h = DHT.humidity;		// Read humidity

	Serial.print("Temperature = ");
	Serial.print(t);
	Serial.print("°C | ");
	Serial.print((t*9.0)/5.0+32.0);	// Convert celsius to fahrenheit
	Serial.println("°F ");
	Serial.print("Humidity = ");
	Serial.print(h);
	Serial.println("% ");
	Serial.println("");

	delay(2000); // wait two seconds
}

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

dht11 modül çıkışı

Kod Açıklaması:

Taslak, DHT kitaplığını dahil ederek ve sensörümüzün Out pininin bağlı olduğu Arduino pin numarasını tanımlayarak başlar. Daha sonra kütüphaneyle ilgili özel fonksiyonlara erişmek için bir DHT nesnesi oluşturuyoruz.

#include <dht.h>
#define outPin 8
dht DHT;

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

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

'Döngü' fonksiyonunda; read11()Verileri sensörden okuyan işlevi kullanacağız Sensörün Data pin numarasını parametre olarak alır.

int readData = DHT.read11(outPin);

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

float t = DHT.temperature;	// Read temperature
float h = DHT.humidity;		// Read 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

Serial.print((t * 9.0) / 5.0 + 32.0);

Arduino Kodu - Sonuçları LCD'de Görüntüleme

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 olacaktır. Bu örnekte, LCD'yi DHT11 modülüyle 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.

Eğitim Arayüzü Arduino Uno ile 16x2 karakter LCD
16 × 2 Karakter LCD Modülünü Arduino ile Arayüz
Arduino projelerinizin durum mesajlarını veya sensör okumalarını görüntülemesini mi istiyorsunuz? O zaman bu LCD ekranlar mükemmel bir uyum olabilir. Son derece yaygındırlar ve ...

Aşağıda gösterildiği gibi LCD bağlantılarını yapın.

arduino ve lcd ile kablolama dht11 modülü

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>	// Include LiquidCrystal Library
#include <dht.h>

#define outPin 8

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Create an LCD object.
dht DHT;		// Create a DHT object

void setup() {
	lcd.begin(16,2); // Initialize the LCD
}

void loop() {
	int readData = DHT.read11(outPin);
	
	float t = DHT.temperature;
	float h = DHT.humidity;
	
	lcd.setCursor(0,0);
	lcd.print("Temp.: ");
	lcd.print(t);
	lcd.print((char)223);//shows degrees character
	lcd.print("C");

	lcd.setCursor(0,1);
	lcd.print("Humi.: ");
	lcd.print(h);
	lcd.print("%");
	
	delay(2000);
}

Her şey yolundaysa, LCD'de aşağıdaki çıktıyı görmelisiniz.

lcd'de dht11 modül çıkışı

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.

2 Mayıs 2021 Pazar

Arduino ile DS18B20 Sıcaklık Modülü Kullanımı

 

Arduino ile DS18B20 Sıcaklık Modülü Kullanımı


DS18B20 Sıcaklık Modülü:  Sıcaklık modülü, diğer sıcaklık sensörleri çok daha doğru bir seviye sıcaklığı algılamak için kullanılır. Sıcaklık modülü, (Dallas) olarak da bilinen tek telli bir sıcaklık sensöründen (DS18B20) oluşur. Bu modül, mikrodenetleyici ahududu pi ve Arduino gibi herhangi biriyle kullanılabilir ancak biz Arduino kullanıyoruz Sıcaklık modülü geniş bir hassasiyet aralığına sahiptir. -10 ᴼC ile +85 ᴼC aralığında ± 0,5 ᴼC'ye kadar hassastır.


Bu sensörleri Arduino'nuzdan çok daha büyük bir mesafede, Arduino'nuzdan neredeyse 100 metre uzakta bulabilirsiniz. Bu sensörü tek başına kullanacaksanız 5 K ohm yukarı çekme direnci kullanmanız gerekecek ancak modülümüzde kullanmanıza gerek yok. İçerisinde pull up direnci bulunmaktadır. 12 bit çözünürlüğe sahiptir. Düşük güç boşta durumda güç alır. Sıcaklığı ölçmek ve A'dan D'ye dönüştürme yapmak için , ana makineden T [44h] dönüştür komutunu almalıdır. Dönüştürmeden sonra, veriler 2 baytlık sıcaklık kaydında saklanacak ve sensör boşta durumuna dönecektir.

DS18B20 Sıcaklık Modülünün pin çıkışı

DS18B20 sıcaklık modülünün yalnızca üç pimi vardır, bu nedenle kullanımı çok kolaydır, ancak diğer sensörlerle karşılaştırıldığında oldukça hassastır.DS18B20 Sıcaklık Modülü

Sıcaklık modülünün üç pimi

  • Ground: Bu, Arduino'nun topraklamasına bağlanacaktır.
  • VCC: Bu, Arduino'nun 5v'sine bağlanacak
  • Sinyal: Bu , Arduino'nun herhangi bir dijital pinine bağlanacaktır .

 DS18B20 Sıcaklık Modülünün arduino ile bağlantısı

Bağlantı şeması çok daha kolay. Bağlanacak sadece üç pimimiz var. Sıcaklık modülünü şekilde gösterildiği gibi Arduino'ya bağlayın.


 

DS18B20 Sıcaklık Modülü kodu için Kitaplığı Kurma

Kodu yüklemeden önce, DS18B20 sıcaklık sensörünün kitaplığını kurmanız gerekecektir.

Kütüphaneyi buradan indirin ve Arduino kütüphane klasörünüze yerleştirin.

Dosyayı ZIP klasöründen kopyalayın ve kitaplık klasörüne yerleştirin.

Dosyaları kütüphane klasörüne yerleştirdikten sonra, Arduino kütüphane klasöründe onewire ve Dallas temperature içeren yeni klasörler bulunmalıdır. Bundan sonra aşağıdaki kodu Arduino IDE'ye kopyalayın ve kodu yükleyin.

Arduino ile DS18B20 Sıcaklık Modülü Kodu

// This code is for the DS1820 Temperature module.

// Do not forget to install library before running the code.

#include < OneWire.h >  // Including the library of DS1820 Temperature module

#include < DallasTemperature.h >  // Including the library of DS1820 Temperature module

#define ONE_WIRE_BUS 2             // Initializing the Arduino pin 2 for temperature module

OneWire ourWire(ONE_WIRE_BUS);     // Declaring a variable named our wire

DallasTemperature sensors ( &ourWire ) ; // Asking the Dallas temperature library to use the one wire library

void setup ( )            // Void setup runs only one. So the code written in it will run only one time

{

Delay ( 1000 ) ;          // Wait for one second

Serial.begin ( 9600 ) ;   // Setting the baud rate at 9600

Serial.println ( " Microcontrollerlab.com : This is the test code " ) ;

Serial.println ( " Temperature Sensor :  DS18B20 " ) ;

Delay ( 1000 ) ;         // Wait for one second

sensors.begin ( ) ;     // The sensor will start working here

void loop ( )          // Void loop runs repeatedly. So the code written in it will run repeatedly

{

Serial.println ( ) ;  // This will give some space in the output

Serial.print ( " Waiting for the temperature module to give value ... " ) ;                

// This will print “Waiting for the temperature module to give value … ” on the display.

sensors.requestTemperatures ( ) ;  // Sending the commands to get the temperature values from sensor

Serial.println ( " DONE " ) ;      // This will print “ done “ on the display

Serial.print  ( " Temperature in degree C is : " ) ; // This will print " Temperature in degree C is :" on the display

Serial.print ( sensors.getTempCByIndex ( 0 ) ) ; // This will show the temperature in degree C on the display

Serial.println ( "  Degrees C " ) ;             // This will print "  Degrees C " on the display

Serial.print ( " Temperature in degree Fahrenheit is : " ) ; // This will print " Temperature in degree Fahrenheit is : " on display

Serial.print ( sensors.getTempFByIndex ( 0 ) ) ;  // This will show the temperature in Fahrenheit on display

Serial.println ( "  Degrees F " ) ;               // This will print "  Degrees F " on the display

Delay ( 5000 ) ;                                 // Waiting for 5 seconds.

}

Sensör düzgün çalışıyorsa, çıktı şöyle görünmelidir

Bu test kodudur


Sıcaklık Sensörü: DS18B20

Vücut sıcaklığı modülünün değer vermesi bekleniyor ... YAPILDI

Derece C olarak sıcaklık: 19.12 Derece C

Fahrenheit cinsinden sıcaklık: 60.22 Derece F


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.