#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <SoftwareSerial.h> // Bluetooth için
// PIN tanımlamaları
#define ONE_WIRE_BUS 8 // DS18B20 veri pini
#define BT_RX 2 // Arduino'nun Bluetooth için alıcı pini
#define BT_TX 3 // Arduino'nun Bluetooth için gönderici pini
// LCD tanımlaması (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(12, 10, 7, 6, 5, 4);
// Bluetooth için yazılım seri portu tanımla
SoftwareSerial bluetooth(BT_RX, BT_TX); // RX, TX
// OneWire nesnesi oluştur (DS18B20 ile iletişim için)
OneWire oneWire(ONE_WIRE_BUS);
// DallasTemperature kütüphanesini başlat
DallasTemperature sensors(&oneWire);
// Sensör adreslerini tutmak için
DeviceAddress sensor1, sensor2;
// Zaman kontrolü için değişken
unsigned long previousMillis = 0;
const unsigned long interval = 600000; // 10 dakika = 600000 ms
void setup() {
// LCD ekran başlat
lcd.begin(16, 2);
lcd.setCursor(2, 0);
lcd.print("Hos Geldiniz");
delay(2000);
lcd.clear();
// Sensörleri başlat
sensors.begin();
// Bluetooth başlat
bluetooth.begin(9600);
// Sensör adreslerini al
if (!sensors.getAddress(sensor1, 0)) {
lcd.print("Sensör 1 yok!");
}
if (!sensors.getAddress(sensor2, 1)) {
lcd.setCursor(0, 1);
lcd.print("Sensör 2 yok!");
}
// Her iki sensör için çözünürlük ayarla (9-12 bit arası)
sensors.setResolution(sensor1, 10);
sensors.setResolution(sensor2, 10);
}
void loop() {
// Sıcaklık ölçümlerini iste
sensors.requestTemperatures();
// Sensörlerden sıcaklıkları al
float temp1 = sensors.getTempC(sensor1);
float temp2 = sensors.getTempC(sensor2);
// LCD'ye sıcaklıkları yazdır
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("S1: ");
lcd.print(temp1);
lcd.write(223); // ° simgesi
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("S2: ");
lcd.print(temp2);
lcd.write(223);
lcd.print("C");
// Her 10 dakikada bir Bluetooth üzerinden sıcaklık gönder
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
bluetooth.println("10 Dakika Sicaklik Raporu:");
bluetooth.print("Sensor 1: ");
bluetooth.print(temp1);
bluetooth.println(" C");
bluetooth.print("Sensor 2: ");
bluetooth.print(temp2);
bluetooth.println(" C");
bluetooth.println("--------------------");
}
delay(1000); // 1 saniye bekle
}