Türkçe | English
Bu proje, Manisa Celal Bayar Üniversitesi Mühendislik Fakültesi Disiplinlerarası Proje kapsamında geliştirilmiştir. PIC16F877A tabanlı akıllı bir termostat ve ortam izleme sistemidir. Tek bir noktadan ölçüm yapmak yerine üç farklı konumdaki sensörden veri alarak ortalama sıcaklık hesaplar ve 27°C eşik değerini aştığında otomatik soğutma/uyarı mekanizmasını devreye sokar.
Proje Tarihi: Mayıs - Haziran 2026
Takım: Grup 43 (Grup 09)
Fakülte: Bilgisayar Mühendisliği & Elektrik-Elektronik Mühendisliği
- ✅ 3 Noktalı Sıcaklık Ölçümü: Üç adet DS18B20 dijital sensör ile farklı konumlardan eşzamanlı ölçüm
- ✅ Ortalama Hesaplama: Aktif sensörlerin ortalamasını alarak daha güvenilir sonuç
- ✅ Hata Toleransı: Arızalı sensörleri otomatik tespit edip devre dışı bırakma, kalan sensörlerle çalışmaya devam etme
- ✅ Otomatik Termostat Kontrolü: 27°C eşik değerinde röle/LED aktvasyonu
- ✅ I2C LCD Ekran: PCF8574 sürücü ile 16x2 LCD üzerinden anlık sıcaklık görüntüleme
- ✅ Güvenli Mod: Tüm sensörler arızalandığında "Sensor Yok!" uyarısı
- ✅ Proteus Simülasyonu: Tam donanım simülasyonu ve test senaryoları
- ✅ PCB Tasarımı: EasyEDA ile profesyonel baskılı devre kartı tasarımı ve üretimi
| Bileşen | Adet | Açıklama |
|---|---|---|
| PIC16F877A | 1 | Ana mikrodenetleyici |
| DS18B20 | 3 | Dijital sıcaklık sensörü (±0.5°C hassasiyet) |
| PCF8574 | 1 | I2C LCD sürücü modülü |
| 16x2 LCD | 1 | Karakter LCD ekran |
| BC547 | 1 | NPN transistör (röle sürücü) |
| Röle (5V) | 1 | Termostat anahtarlama mekanizması |
| 1N4001 | 1 | Flyback diyotu |
| 20MHz Kristal | 1 | Osilatör + 22pF kapasitörler |
| 4.7kΩ Direnç | 3 | DS18B20 pull-up dirençleri |
| Çeşitli Dirençler | - | LED, transistör vb. için |
| Pin | Fonksiyon | Bağlı Bileşen |
|---|---|---|
| RD0 | One-Wire Data | DS18B20 - Sensör 1 |
| RD1 | One-Wire Data | DS18B20 - Sensör 2 |
| RD2 | One-Wire Data | DS18B20 - Sensör 3 |
| RC3 (SCL) | I2C Clock | PCF8574 - SCL |
| RC4 (SDA) | I2C Data | PCF8574 - SDA |
| RB0 | Digital Output | BC547 -> Röle + Mavi LED |
- Osilatör: HS (High Speed) - 20MHz
- Watchdog Timer: Kapalı
- Power-up Timer: Açık
- Low Voltage Programming: Kapalı
main.c
├── I2C Haberleşme Modülü
│ ├── i2c_init() - I2C başlatma (SSPSTAT=0x80, SSPCON=0x28, SSPADD=49)
│ ├── i2c_start() - Başlatma koşulu
│ ├── i2c_stop() - Durdurma koşulu
│ └── i2c_write() - Veri gönderme
│
├── LCD Sürücü Modülü
│ ├── lcd_init() - 4-bit mod, 2 satır, 5x8 font
│ ├── lcd_send_byte() - Komut/veri gönderme
│ ├── lcd_set_cursor()- İmleç konumlandırma
│ └── lcd_print_str() - String yazdırma
│
├── DS18B20 One-Wire Modülü
│ ├── ds18b20_reset() - Sensör reset ve presence detect
│ ├── one_wire_write_bit() - Tek bit yazma
│ ├── one_wire_read_bit() - Tek bit okuma
│ ├── ds18b20_write_byte() - 1 byte yazma
│ ├── ds18b20_read_byte() - 1 byte okuma
│ └── ds18b20_read_temp() - Sıcaklık okuma (°C)
│
└── Ana Program (main)
├── Sensör 1-2-3 okuma
├── Aktif sensör sayısına göre ortalama hesaplama
├── 27°C eşik kontrolü -> RB0 aktif/pasif
└── LCD güncelleme (500ms periyot)
| İşlem | Süre |
|---|---|
| Reset Pulse | 480 µs |
| Presence Detect | 70 µs (wait) + 410 µs |
| Write 1 | 2 µs (low) + 60 µs (high) |
| Write 0 | 60 µs (low) |
| Read Slot | 2 µs (low) + 10 µs (sample) + 50 µs |
| Temperature Conversion | 750 ms |
- Sensör Değerleri: 24.0°C, 27.0°C, 26.0°C
- Ortalama: 25.67°C
- Sonuç: LED/Röle KAPALI ✅
- Sensör Değerleri: 26.0°C, 29.0°C, 27.0°C
- Ortalama: 27.33°C
- Sonuç: LED/Röle AÇIK (Mavi LED aktif) ✅
- Durum: U4 sensörü devre dışı
- Aktif Sensörler: 2
- Sonuç: Kalan 2 sensör ile çalışmaya devam ✅
- Durum: U3 ve U4 sensörleri devre dışı
- Aktif Sensör: 1
- Sonuç: Tek sensör ile çalışmaya devam ✅
- Durum: Tüm sensörler devre dışı
- Sonuç: LCD'de "Sensor Yok!" uyarısı, güvenli mod ✅
| Takım Üyesi | Bölüm | Sorumluluklar |
|---|---|---|
| Mustafa Furkan Yılmaz | Elektrik-Elektronik | Proteus simülasyonu, donanım mimarisi, pin yapılandırması |
| Emine Çetin | Bilgisayar | Mikrodenetleyici kodu, I2C & One-Wire algoritmaları, termostat mantığı |
| Feyza Aktaş | Elektrik-Elektronik | Fiziksel kurulum, breadboard/PCB montajı, sistem testleri |
| Seydi Ahmet Zengin | Elektrik-Elektronik | PCB şematik tasarımı, elektriksel planlama, EasyEDA çizimi |
| Tarih | Etkinlik | Süre |
|---|---|---|
| 11/05/2026 | Tanışma ve Proje Planlama | 60 dk |
| 18/05/2026 | Yazılım Geliştirme & Donanım Kurulumu | 95 dk |
| 22/05/2026 | Entegrasyon ve Sistem Testleri | 3 saat |
| 02/06/2026 | Son Testler ve Raporlama | 70 dk |
TAKIM-43-Akilli-Termostat/
├── src/
│ └── main.c # Ana kaynak kod (XC8)
├── docs/
│ ├── reports/
│ │ ├── TAKIM_43_TR.pdf # Türkçe proje raporu
│ │ └── TAKIM_43_ING.pdf # İngilizce proje raporu
│ └── images/
│ ├── proteus_simulation.png
│ ├── pcb_schematic.png
│ ├── pcb_top_layer.png
│ ├── pcb_bottom_layer.png
│ ├── pcb_3d_top.png
│ ├── pcb_assembled.jpg
│ └── team_photos/
├── hardware/
│ ├── proteus/
│ └── easyeda_pcb/
└── README.md
- MPLAB X IDE
- XC8 Compiler
- PICkit veya benzeri programlayıcı
- MPLAB X'te yeni proje oluşturun
- Hedef cihaz: PIC16F877A
main.cdosyasını projeye ekleyin- Derleyici ayarlarında
_XTAL_FREQ 20000000ULtanımlı olduğundan emin olun - Derleyin ve PIC'e yükleyin
- DS18B20 sensörlerin VCC, GND ve DQ pinlerini bağlayın (4.7kΩ pull-up)
- PCF8574 SCL -> RC3, SDA -> RC4
- LCD'yi PCF8574 çıkışlarına bağlayın
- BC547 baz direnci -> R9 (470Ω), kolektör -> Röle bobini
- Röle kontağı -> Soğutma sistemi/LED
Bu proje eğitim amaçlı geliştirilmiştir. Akademik kullanımda kaynak gösterilmesi rica olunur.
This project was developed as an Interdisciplinary Project at Manisa Celal Bayar University, Faculty of Engineering. It is a PIC16F877A-based smart thermostat and environmental monitoring system. Instead of measuring from a single point, it collects data from three different locations and calculates the average temperature, automatically activating a cooling/warning mechanism when the threshold of 27°C is exceeded.
- 3-Point Temperature Measurement: Three DS18B20 digital sensors for simultaneous multi-location monitoring
- Average Calculation: Reliable results by averaging active sensors
- Fault Tolerance: Automatic detection and exclusion of faulty sensors; continues operation with remaining sensors
- Automatic Thermostat Control: Relay/LED activation at 27°C threshold
- I2C LCD Display: Real-time temperature display via PCF8574 driver
- Safe Mode: "No Sensor!" warning when all sensors fail
- Proteus Simulation: Complete hardware simulation and test scenarios
- PCB Design: Professional printed circuit board design with EasyEDA
The firmware is written in C (XC8) and consists of three main modules:
- I2C Communication: Master mode I2C for LCD control
- One-Wire Protocol: Bit-banged 1-Wire for DS18B20 temperature sensors
- Thermostat Logic: Average calculation, threshold comparison, and relay control
| Member | Department | Responsibility |
|---|---|---|
| Mustafa Furkan Yılmaz | Electrical & Electronics | Proteus simulation, hardware architecture |
| Emine Çetin | Computer Engineering | Firmware, I2C & 1-Wire algorithms, thermostat logic |
| Feyza Aktaş | Electrical & Electronics | Physical setup, PCB assembly, system testing |
| Seydi Ahmet Zengin | Electrical & Electronics | PCB schematic design, EasyEDA layout |
Manisa Celal Bayar Üniversitesi - 2026
