Devrenin Amacı: Elektronik cihazlar hayatımıza girmeden önce sıcaklık kavramını termometre denilen ve bir sıvının sıcaklıktaki artışla orantılı bir şekilde genleşmesine dayanan çalışma prensibine bağlı bir cihazla ölçerdik. Teknolojinin gelişmesi ve elektronik ekranların hayatımıza girmesiyle bu durum değişti. Karabük Üniversitesi Mühendislik öğrencileri olarak biz bu teknolojiyi Arduino kullanarak dijital ortamda bir termometre yapmayı amaçladık. Bu hedefte sıcaklık, nem, saat ve tarih verilerini gösteren bu projeyi ürettik.
Devrenin Çalışma Prensibi: DTH11 sıcaklık ve nem sensörü ile gerçek zaman modülünden alınan datayı Arduinonun gerekli portlarına yollanır. Arduino aldığı verileri yazılan kodlar rehberliğinde kendi içinde işleyip OLED ekrana bilgileri aktarmaktadır.
Kullanılan Malzemeler:
- DTH11 sıcaklık ve nem sensörü
- Gerçek zaman modülü
- Arduino UNO
- OLED ekran
- Bilgisayar
- Powerbank
- Jumper kablolar
- USB bağlantı kablosu (Arduino için)
- Breadboard
Gerekli Kodlar:
#include <SPI.h>
#include <Wire.h>
#include <dht11.h>
#include <Adafruit_SSD1306.h>
#include <DS3231_Simple.h>
#define OLED_RESET 4
#define DHT11PIN 2 dht11 DHT11;
Adafruit_SSD1306 display(OLED_RESET);
DS3231_Simple Clock; void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Clock.begin();
}
void loop() {
int chk = DHT11.read(DHT11PIN);
DateTime MyDateAndTime;
MyDateAndTime = Clock.read();
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print(“Nem (%): “);
display.println((float)DHT11.humidity, 1);
display.print(“Sicaklik (C): “);
display.println((float)DHT11.temperature, 1);
display.print(MyDateAndTime.Hour);
display.print(“:”);
display.print(MyDateAndTime.Minute);
display.print(“:”);
display.println(MyDateAndTime.Second);
display.print(MyDateAndTime.Day);
display.print(“/”);
display.print(MyDateAndTime.Month);
display.print(“/”);
display.print(MyDateAndTime.Year);
display.display(); delay(3000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(“Ali Ucmaz”);
display.println(“Ali Kaya Ayberk”);
display.println(“Burak Yilmaz”);
display.println(“Muhammet Hasan Mangal”);
display.display(); delay(3000); }
Yapım Aşamaları:
İlk olarak sensörlerimizi beslemek için Arduinomuzun 5V ve GND portlarından breadboardumuza birer jumper kablo çekiyoruz.
Daha sonra breadboardumuza çektiğimiz güçle gerçek zaman modülümüzü beslemek için birer jumper daha çekiyoruz.
Gerçek zaman modülünün SDA ve SCL pinleri Arduinonun Analog 4 ve 5 portuna jumperlar yardımıyla bağlandı.
OLED ekran ve DTH11 sıcaklık ve nem sensörünün beslemesi yapıldı.
OLEDin SDA ve SCL pinlerini Arduinonun SDA ve SCL portuna bağladık.
- DTH11 sıcaklık ve nem sensörünün data çıkışını Arduinonun dijital 2 portuna bağladık.
FİNAL