🤖 Arduino Akıllı Yangın Söndürme Robotu Projesi
Arduino Akıllı Yangın Söndürme Robotu, yangın veya alev kaynağını algılayarak bulunduğu yöne doğru hareket eden ve belirli bir mesafeye ulaştığında mini bir pompa veya fan mekanizmasıyla alevi söndürmeye çalışan eğitim amaçlı bir robotik sistemdir.
Bu proje; Arduino, robotik kodlama, sensör teknolojileri, motor kontrolü, otomasyon ve STEM eğitimi konularını tek bir uygulamada bir araya getirdiği için özellikle okul ve maker atölyelerinde oldukça değerlidir.
Önemli: Bu proje eğitim amaçlı düşük güçlü bir prototiptir. Gerçek yangınlarda kullanılmak üzere tasarlanmamalıdır. Gerçek yangın söndürme sistemleri profesyonel algılama, mekanik, elektrik ve güvenlik standartlarına göre tasarlanır.
🔥 Arduino Akıllı Yangın Söndürme Robotu Nedir?
Arduino Akıllı Yangın Söndürme Robotu, çevresindeki alevi alev sensörleri yardımıyla algılayan, alevin bulunduğu yöne karar veren, DC motorlarla bu yöne hareket eden ve uygun konuma geldiğinde söndürme mekanizmasını çalıştıran mobil bir robot sistemidir.
Projenin temel çalışma süreci şu şekilde özetlenebilir:
Alev algılanır → Alevin yönü belirlenir → Robot yönünü değiştirir → Yangına yaklaşır → Robot durur → Söndürme mekanizması çalışır → Alev kontrol edilir
Bu süreç sayesinde öğrenciler yalnızca Arduino kodlamayı değil, aynı zamanda algılama-karar verme-eylem gerçekleştirme mantığını da öğrenebilir.
🧠 Projenin Çalışma Mantığı
Robotun merkezinde Arduino Uno bulunur.
Arduino;
- Alev sensörlerinden gelen verileri okur.
- Sensörlerin hangi yönde daha güçlü sinyal aldığını karşılaştırır.
- Robotun sağa, sola veya ileri gitmesine karar verir.
- Motor sürücüsünü kontrol eder.
- Yangına yeterince yaklaşıldığında robotu durdurur.
- Fan veya mini pompayı çalıştırır.
Örneğin robotun üç farklı yönde alev sensörü olduğunu düşünelim:
Sol Sensör | Orta Sensör | Sağ Sensör
Eğer sol sensör güçlü bir alev sinyali algılıyorsa Arduino:
“Alev solda.”
kararını verir ve robotu sola döndürür.
Orta sensör daha güçlü sinyal vermeye başladığında robot ileri doğru hareket eder.
Robot belirlenen mesafeye ulaştığında ise motorlar durur ve söndürme mekanizması devreye girer.

Arduino Akıllı Yangın Söndürme Robotu Infografiği
🧰 Gerekli Malzemeler
Temel bir prototip için aşağıdaki malzemeler kullanılabilir:
| Malzeme | Adet | Görevi |
|---|---|---|
| Arduino Uno | 1 | Ana kontrol kartı |
| 2WD robot şasi | 1 | Robot gövdesi |
| DC redüktörlü motor | 2 | Hareket |
| Robot tekerleği | 2 | Hareket |
| L298N motor sürücü | 1 | Motor kontrolü |
| Alev sensörü | 3 | Alev yönünü algılama |
| HC-SR04 | 1 | Mesafe ölçümü |
| Mini DC fan | 1 | Alevi söndürmeye yardımcı olmak |
| veya mini su pompası | 1 | Su püskürtme |
| Servo motor | 1 | Fan/nozul yönlendirme |
| Buzzer | 1 | Alarm |
| LED | 1-2 | Durum göstergesi |
| Pil/batarya | 1 | Güç kaynağı |
| Jumper kablo | — | Bağlantılar |
| Robot şasisi | 1 | Mekanik yapı |
💡 Fan mı, su pompası mı?
Eğitim amaçlı ilk prototipte mini fan kullanmak daha pratik ve güvenlidir.
Fan ile:
- Elektronik devre suyla temas etmez.
- Mekanik yapı daha basit olur.
- Öğrenciler projeyi daha kolay kurabilir.
Daha ileri bir modelde ise servo kontrollü mini pompa/nozul sistemi kullanılabilir.
🔥 Alev Sensörü Nasıl Çalışır?
Alev sensörleri temel olarak alevin yaydığı kızılötesi ışınımı algılayabilir.
Bu projede üç sensör kullanmak robotun alevin yönünü tahmin etmesini sağlar.
Örneğin:
ALEV
🔥
↑
[ ORTA SENSOR ]
[ SOL SENSOR ] [ SAG SENSOR ]
🤖
ROBOT
Arduino sensör değerlerini karşılaştırır.
Örneğin:
| Sensör | Değer | Yorum |
|---|---|---|
| Sol | 720 | Düşük |
| Orta | 350 | Çok güçlü |
| Sağ | 680 | Düşük |
Bu durumda Arduino orta sensörün alevi daha güçlü algıladığını değerlendirerek robotu ileri hareket ettirebilir.
Sensör modüllerinin çıkış mantığı ve analog değer aralıkları kullanılan modele göre değişebilir. Bu nedenle gerçek kurulumda sensörlerin kalibrasyonu yapılmalıdır.
🚗 Robotun Hareket Sistemi
Robotun hareketi için iki DC motor kullanılabilir.
Sağ motor ve sol motor ayrı ayrı kontrol edildiği için robot:
- İleri gidebilir.
- Geri gidebilir.
- Sağa dönebilir.
- Sola dönebilir.
- Kendi ekseni etrafında dönebilir.
- Durabilir.
Örneğin:
İleri
Sol Motor → İLERİ
Sağ Motor → İLERİ
Sola dönüş
Sol Motor → DUR
Sağ Motor → İLERİ
Sağa dönüş
Sol Motor → İLERİ
Sağ Motor → DUR
Kendi ekseninde sola dönüş
Sol Motor → GERİ
Sağ Motor → İLERİ
Bu kontrol mantığı robotik kodlamanın temel yapı taşlarından biridir.
⚙️ L298N Motor Sürücü Neden Kullanılır?
Arduino Uno’nun dijital pinleri DC motorları doğrudan sürmek için uygun değildir.
Bu nedenle Arduino ile motorlar arasında L298N motor sürücü kullanılabilir.
Arduino:
“Sağ motor ileri dönsün.”
şeklinde kontrol sinyali üretir.
L298N ise bu sinyali motoru kontrol edecek şekilde kullanır.
Basitleştirilmiş yapı:
Arduino
│
▼
L298N Motor Sürücü
│
┌─┴─┐
▼ ▼
Sol Sağ
Motor Motor
📏 HC-SR04 Neden Kullanılabilir?
Alev sensörleri yangının yönünü belirlemede kullanılabilir ancak robotun yangına ne kadar uzak olduğunu tek başına güvenilir şekilde belirlemek için uygun değildir.
Bu nedenle HC-SR04 ultrasonik mesafe sensörü eklenebilir.
Sensör robotun önündeki mesafeyi ölçer.
Örneğin:
🤖 ─────────────── 🔥
40 cm
Robot 40 cm mesafedeyken hareket etmeye devam eder.
Mesafe:
15 cm
seviyesine geldiğinde Arduino robotu durdurabilir.
Ardından:
MOTORLAR → DUR
FAN → ÇALIŞ
komutları uygulanabilir.
💨 Arduino Akıllı Yangın Söndürme Robotu Devre Şeması

Arduino Akıllı Yangın Söndürme Robotu Devre Şeması
💨 Söndürme Mekanizması
Projenin en dikkat çekici bölümlerinden biri söndürme sistemidir.
İki temel yaklaşım kullanılabilir.
1. Mini Fan Sistemi
Robotun ön kısmına küçük bir DC fan yerleştirilir.
💨
─────→ 🔥
FAN
🤖
Arduino alev algıladığında fanı çalıştırır.
Fan belirli bir süre çalıştıktan sonra alev sensörleri tekrar okunabilir.
2. Mini Su Pompası Sistemi
Daha gelişmiş modelde küçük bir su tankı, pompa ve nozul kullanılabilir.
SU TANKI
│
▼
POMPA
│
▼
NOZUL
↓
🔥
Burada pompa doğrudan Arduino pininden çalıştırılmamalıdır.
Pompa için uygun bir MOSFET veya röle sürücü devresi kullanılmalıdır.
Ayrıca suyun elektronik devrelere ulaşmasını engelleyecek mekanik tasarım yapılmalıdır.
🔄 Servo Motor ile Söndürme Yönü
Projeyi daha gelişmiş hale getirmek için fan veya su nozulunu bir servo motor üzerine yerleştirebiliriz.
Böylece sistem yalnızca robotun yönünü değiştirmek yerine söndürme mekanizmasının yönünü de değiştirebilir.
Örneğin:
🔥
↑
↗ │ ↖
┌─────────┐
│ FAN │
└────┬────┘
│
🤖
Servo motor:
60° → 90° → 120°
gibi farklı açılarda hareket ettirilerek daha geniş bir alan taranabilir.
🧩 Arduino Akıllı Yangın Söndürme Robotu Algoritması
Projenin algoritmasını şu şekilde oluşturabiliriz:
BAŞLA
│
▼
Sensörleri başlat
│
▼
Alev algılandı mı?
│
┌┴─────────────┐
Hayır Evet
│ │
▼ ▼
Bekle Alev yönünü belirle
│
▼
Yönünü değiştir
│
▼
Mesafeyi ölç
│
▼
Yangına yeterince yakın mı?
│ │
Hayır Evet
│ │
▼ ▼
İlerle Dur
│
▼
Fanı çalıştır
│
▼
Alev tekrar ölç
│
┌──────┴──────┐
│ │
Devam Söndü
│ │
└──────┐ ▼
│ Bekle
▼
BİTİR
Gerçek uygulamada bunun bir sürekli döngü içerisinde çalışması gerekir.
💻 Arduino Kodlama Mantığı
Kodun temelinde birkaç önemli fonksiyon bulunabilir:
void ileri();
void geri();
void solaDon();
void sagaDon();
void dur();
void fanAc();
void fanKapat();
Sensörlerin okunması ise örneğin:
int solAlev;
int ortaAlev;
int sagAlev;
değişkenleriyle gerçekleştirilebilir.
Arduino daha sonra bu değerleri karşılaştırarak karar verir.
Örneğin kavramsal olarak:
if (ortaAlev > esikDegeri) {
ileri();
}
veya:
if (solAlev > sagAlev) {
solaDon();
}
gibi karar yapıları kullanılabilir.
Not: Alev sensörünüzün çıkış karakteristiğine göre > veya < karşılaştırmasının ters olması gerekebilir. Bu nedenle kodu yüklemeden önce seri porttan sensör değerlerini okuyup eşik değerini kalibre etmek önemlidir.
Arduino Akıllı Yangın Söndürme Robotu için temel ve eğitim amaçlı prototip olarak düzenledim. Kodda 3 alev sensörü + HC-SR04 + L298N + servo + fan/röle + buzzer + LED bulunuyor.
Not: Alev sensörlerinin bazı modellerinde alev yaklaştıkça analog değer azalır, bazılarında ise artar. Bu nedenle kodda FLAME_ACTIVE_LOW ayarı bulunuyor. İlk testte sensör değerlerini Seri Monitör’den kontrol etmek önemli.
🔌 Kullanılan Pinler
| Bileşen | Arduino pini |
|---|---|
| Sol alev sensörü | A0 |
| Orta alev sensörü | A1 |
| Sağ alev sensörü | A2 |
| HC-SR04 TRIG | A3 |
| HC-SR04 ECHO | A4 |
| LED | D4 |
| L298N ENA | D5 |
| L298N ENB | D6 |
| L298N IN1 | D7 |
| Fan rölesi | D8 |
| L298N IN2 | D9 |
| L298N IN3 | D10 |
| L298N IN4 | D11 |
| Servo | D12 |
| Buzzer | D13 |
🧠 Kodun Genel Algoritması
Sensörleri oku
↓
Alev var mı?
↙ ↘
Hayır Evet
↓ ↓
Ara Yönünü bul
↓
İlerle
↓
Mesafe kontrolü
↓
15 cm veya daha yakın?
↓
DUR
↓
Fanı çalıştır
↓
Alevi tekrar ölç
💻 Satır Satır Açıklamalı Arduino Kodu
#include <Servo.h> // Servo motoru kontrol etmek için Servo kütüphanesini ekleriz.
// ————————————————–
// ALEV SENSÖRLERİ
// ————————————————–
const int flameLeftPin = A0; // Sol alev sensörünü A0 analog pinine bağlarız.
const int flameCenterPin = A1; // Orta alev sensörünü A1 analog pinine bağlarız.
const int flameRightPin = A2; // Sağ alev sensörünü A2 analog pinine bağlarız.
// ————————————————–
// HC-SR04 ULTRASONİK MESAFE SENSÖRÜ
// ————————————————–
const int trigPin = A3; // HC-SR04 TRIG pini A3’e bağlanır.
const int echoPin = A4; // HC-SR04 ECHO pini A4’e bağlanır.
// ————————————————–
// L298N MOTOR SÜRÜCÜ
// ————————————————–
const int ENA = 5; // Sol motor hız kontrolü için PWM pini.
const int ENB = 6; // Sağ motor hız kontrolü için PWM pini.
const int IN1 = 7; // Sol motor yön kontrol pini.
const int IN2 = 9; // Sol motor ikinci yön kontrol pini.
const int IN3 = 10; // Sağ motor yön kontrol pini.
const int IN4 = 11; // Sağ motor ikinci yön kontrol pini.
// ————————————————–
// DİĞER BİLEŞENLER
// ————————————————–
const int fanRelayPin = 8; // Fanı veya pompayı kontrol eden röle pini.
const int ledPin = 4; // Durum LED’i.
const int buzzerPin = 13; // Buzzer pini.
const int servoPin = 12; // Servo motor kontrol pini.
Servo nozzleServo; // Servo motor için bir Servo nesnesi oluştururuz.
// ————————————————–
// AYARLAR
// ————————————————–
const bool FLAME_ACTIVE_LOW = true; // true: Alev yaklaştıkça analog değer azalıyor.
// false: Alev yaklaştıkça analog değer artıyor.
const int flameThreshold = 120; // Bu değerin üzerindeki “güç” alev olarak kabul edilir.
const int stopDistance = 15; // Robot alev kaynağına 15 cm kaldığında durur.
const int searchSpeed = 120; // Alev aranırken kullanılacak motor hızı.
const int moveSpeed = 150; // Alev yönünde ilerleme hızı.
// ————————————————–
// SETUP
// ————————————————–
void setup()
{
Serial.begin(9600); // Bilgisayar ile Seri Haberleşmeyi 9600 baud olarak başlatırız.
pinMode(trigPin, OUTPUT); // HC-SR04 TRIG pinini çıkış olarak ayarlarız.
pinMode(echoPin, INPUT); // HC-SR04 ECHO pinini giriş olarak ayarlarız.
pinMode(ENA, OUTPUT); // L298N sol motor hız pini çıkış olur.
pinMode(ENB, OUTPUT); // L298N sağ motor hız pini çıkış olur.
pinMode(IN1, OUTPUT); // Sol motor yön pini çıkış olur.
pinMode(IN2, OUTPUT); // Sol motor yön pini çıkış olur.
pinMode(IN3, OUTPUT); // Sağ motor yön pini çıkış olur.
pinMode(IN4, OUTPUT); // Sağ motor yön pini çıkış olur.
pinMode(fanRelayPin, OUTPUT); // Fan rölesini çıkış olarak ayarlarız.
pinMode(ledPin, OUTPUT); // LED’i çıkış olarak ayarlarız.
pinMode(buzzerPin, OUTPUT); // Buzzer’ı çıkış olarak ayarlarız.
nozzleServo.attach(servoPin); // Servo motoru belirtilen Arduino pinine bağlarız.
nozzleServo.write(90); // Servo motoru başlangıçta orta konuma getiririz.
digitalWrite(fanRelayPin, LOW); // Başlangıçta fanı kapalı tutarız.
digitalWrite(ledPin, LOW); // Başlangıçta LED’i söndürürüz.
digitalWrite(buzzerPin, LOW); // Başlangıçta buzzerı kapalı tutarız.
stopMotors(); // Robot açıldığında motorların çalışmasını engelleriz.
Serial.println(“Yangin robotu baslatildi.”);
// Seri Monitöre başlangıç mesajı göndeririz.
}
// ————————————————–
// ANA PROGRAM
// ————————————————–
void loop()
{
int leftRaw = analogRead(flameLeftPin);
// Sol alev sensöründen analog değer okuruz.
int centerRaw = analogRead(flameCenterPin);
// Orta alev sensöründen analog değer okuruz.
int rightRaw = analogRead(flameRightPin);
// Sağ alev sensöründen analog değer okuruz.
int leftStrength = flameStrength(leftRaw);
// Sol sensör değerini alev “gücü” değerine dönüştürürüz.
int centerStrength = flameStrength(centerRaw);
// Orta sensör değerini alev gücüne dönüştürürüz.
int rightStrength = flameStrength(rightRaw);
// Sağ sensör değerini alev gücüne dönüştürürüz.
Serial.print(“SOL: “); // Seri Monitöre SOL bilgisini yazarız.
Serial.print(leftStrength); // Sol sensörün değerini yazdırırız.
Serial.print(” ORTA: “); // ORTA bilgisini yazdırırız.
Serial.print(centerStrength); // Orta sensör değerini yazdırırız.
Serial.print(” SAG: “); // SAĞ bilgisini yazdırırız.
Serial.println(rightStrength); // Sağ sensör değerini yazdırırız.
int strongestFlame = max(leftStrength,
max(centerStrength, rightStrength));
// Üç sensör arasındaki en güçlü alev sinyalini buluruz.
if (strongestFlame < flameThreshold)
{
searchForFire(); // Alev bulunamadıysa robot tarama yapar.
return; // loop() fonksiyonunun kalan kısmını atlarız.
}
digitalWrite(ledPin, HIGH); // Alev bulunduğu için durum LED’ini yakarız.
tone(buzzerPin, 1800, 100); // Kısa bir uyarı sesi veririz.
if (leftStrength > centerStrength &&
leftStrength > rightStrength)
{
turnLeft(); // Sol sensör daha güçlü ise sola döner.
delay(150); // Robotun dönüşü için kısa süre bekleriz.
}
else if (rightStrength > centerStrength &&
rightStrength > leftStrength)
{
turnRight(); // Sağ sensör daha güçlü ise sağa döner.
delay(150); // Robotun dönüşü için kısa süre bekleriz.
}
else
{
int distance = readDistance(); // Alev merkezdeyse mesafeyi ölçeriz.
Serial.print(“Mesafe: “); // Seri Monitöre mesafe bilgisini yazarız.
Serial.println(distance); // Ölçülen mesafeyi ekrana göndeririz.
if (distance > stopDistance)
{
moveForward(); // Robot yangına henüz uzaktaysa ileri gider.
}
else
{
stopMotors(); // Robot yeterince yaklaştığında durur.
extinguishFire(); // Söndürme mekanizmasını çalıştırır.
}
}
delay(50); // Sensörlerin tekrar okunmasından önce kısa bekleme.
}
// ————————————————–
// ALEV SENSÖRÜ DEĞERİNİ GÜCE ÇEVİRME
// ————————————————–
int flameStrength(int rawValue)
{
if (FLAME_ACTIVE_LOW)
{
return 1023 – rawValue; // Düşük sensör değerini yüksek alev gücüne dönüştürür.
}
else
{
return rawValue; // Sensör yüksek değer üretiyorsa değeri doğrudan kullanırız.
}
}
// ————————————————–
// MESAFE ÖLÇME
// ————————————————–
int readDistance()
{
digitalWrite(trigPin, LOW); // Önce TRIG pinini LOW yaparız.
delayMicroseconds(2); // 2 mikrosaniye bekleriz.
digitalWrite(trigPin, HIGH); // Ultrasonik ölçümü başlatırız.
delayMicroseconds(10); // 10 mikrosaniye boyunca sinyal gönderilir.
digitalWrite(trigPin, LOW); // TRIG sinyalini kapatırız.
long duration = pulseIn(echoPin,
HIGH,
30000);
// Echo sinyalinin dönüş süresini mikro saniye cinsinden ölçeriz.
if (duration == 0)
{
return 999; // Echo alınamazsa çok uzak kabul ederiz.
}
int distance = duration * 0.034 / 2;
// Ses hızını kullanarak mesafeyi santimetreye çeviririz.
return distance; // Hesaplanan mesafeyi ana programa göndeririz.
}
// ————————————————–
// İLERİ HAREKET
// ————————————————–
void moveForward()
{
digitalWrite(IN1, HIGH); // Sol motor ileri yönde çalışır.
digitalWrite(IN2, LOW); // Sol motorun ters yönünü kapatırız.
digitalWrite(IN3, HIGH); // Sağ motor ileri yönde çalışır.
digitalWrite(IN4, LOW); // Sağ motorun ters yönünü kapatırız.
analogWrite(ENA, moveSpeed); // Sol motor hızını PWM ile ayarlarız.
analogWrite(ENB, moveSpeed); // Sağ motor hızını PWM ile ayarlarız.
}
// ————————————————–
// GERİ HAREKET
// ————————————————–
void moveBackward()
{
digitalWrite(IN1, LOW); // Sol motor ters yönde çalışır.
digitalWrite(IN2, HIGH); // Sol motorun geri yönünü aktif ederiz.
digitalWrite(IN3, LOW); // Sağ motor ters yönde çalışır.
digitalWrite(IN4, HIGH); // Sağ motorun geri yönünü aktif ederiz.
analogWrite(ENA, 130); // Sol motor hızını ayarlarız.
analogWrite(ENB, 130); // Sağ motor hızını ayarlarız.
}
// ————————————————–
// SOLA DÖNME
// ————————————————–
void turnLeft()
{
digitalWrite(IN1, LOW); // Sol motoru durduracak yön kombinasyonu.
digitalWrite(IN2, LOW); // Sol motoru durdururuz.
digitalWrite(IN3, HIGH); // Sağ motoru ileri çalıştırırız.
digitalWrite(IN4, LOW); // Sağ motorun ters yönünü kapatırız.
analogWrite(ENA, 0); // Sol motoru durdururuz.
analogWrite(ENB, searchSpeed); // Sağ motoru döndürürüz.
}
// ————————————————–
// SAĞA DÖNME
// ————————————————–
void turnRight()
{
digitalWrite(IN1, HIGH); // Sol motoru ileri çalıştırırız.
digitalWrite(IN2, LOW); // Sol motorun ters yönünü kapatırız.
digitalWrite(IN3, LOW); // Sağ motoru durdururuz.
digitalWrite(IN4, LOW); // Sağ motorun iki yönünü kapatırız.
analogWrite(ENA, searchSpeed); // Sol motoru döndürürüz.
analogWrite(ENB, 0); // Sağ motoru durdururuz.
}
// ————————————————–
// MOTORLARI DURDUR
// ————————————————–
void stopMotors()
{
analogWrite(ENA, 0); // Sol motor PWM değerini sıfırlarız.
analogWrite(ENB, 0); // Sağ motor PWM değerini sıfırlarız.
digitalWrite(IN1, LOW); // Sol motor yön pinini kapatırız.
digitalWrite(IN2, LOW); // Sol motor yön pinini kapatırız.
digitalWrite(IN3, LOW); // Sağ motor yön pinini kapatırız.
digitalWrite(IN4, LOW); // Sağ motor yön pinini kapatırız.
}
// ————————————————–
// ALEV ARAMA
// ————————————————–
void searchForFire()
{
digitalWrite(ledPin, LOW); // Alev bulunamadığı için LED’i kapatırız.
digitalWrite(IN1, HIGH); // Sol motor ileri yönde çalışır.
digitalWrite(IN2, LOW); // Sol motorun geri yönünü kapatırız.
digitalWrite(IN3, LOW); // Sağ motor ters yönde çalışmaz.
digitalWrite(IN4, HIGH); // Sağ motoru geri yönde çalıştırırız.
analogWrite(ENA, searchSpeed); // Sol motor hızını ayarlarız.
analogWrite(ENB, searchSpeed); // Sağ motor hızını ayarlarız.
delay(80); // Robot kısa bir dönüş yapar.
stopMotors(); // Dönüşten sonra robotu durdururuz.
}
// ————————————————–
// ALEVİ SÖNDÜRME
// ————————————————–
void extinguishFire()
{
stopMotors(); // Söndürme işleminden önce robotu tamamen durdururuz.
digitalWrite(ledPin, HIGH); // LED’i açık tutarız.
tone(buzzerPin, 2200); // Söndürme sırasında sürekli uyarı sesi veririz.
for (int angle = 60; angle <= 120; angle += 5)
{
nozzleServo.write(angle); // Servo motoru 60°’den 120°’ye doğru hareket ettirir.
digitalWrite(fanRelayPin, HIGH); // Fanı veya pompayı çalıştırır.
delay(80); // Servo hareketinin gerçekleşmesini bekler.
}
for (int angle = 120; angle >= 60; angle -= 5)
{
nozzleServo.write(angle); // Servo motoru tekrar 120°’den 60°’ye hareket ettirir.
digitalWrite(fanRelayPin, HIGH); // Fanı/pompayı çalışır durumda tutar.
delay(80); // Servo hareketi için bekler.
}
digitalWrite(fanRelayPin, LOW); // Söndürme döngüsü bitince fanı kapatır.
noTone(buzzerPin); // Buzzerı kapatır.
nozzleServo.write(90); // Servo motoru tekrar orta konuma getirir.
delay(1000); // Alev sensörlerinin tekrar okunması için bekler.
}
🔍 Kodun En Önemli Bölümü
Robotun karar verme mekanizması aslında şu mantığa dayanıyor:
if (leftStrength > centerStrength &&
leftStrength > rightStrength)
{
turnLeft();
}
else if (rightStrength > centerStrength &&
rightStrength > leftStrength)
{
turnRight();
}
else
{
moveForward();
}
Yani Arduino üç sensörü karşılaştırıyor:
Sol > Orta ve Sağ → ⬅️ Sola dön
Sağ > Orta ve Sol → ➡️ Sağa dön
Orta en güçlü → ⬆️ İleri git
Robot yeterince yaklaştığında ise:
if (distance <= stopDistance)
{
stopMotors();
extinguishFire();
}
mantığıyla hareket ediyor.
⚙️ İlk Kurulumda Yapılması Gereken Kalibrasyon
Burada özellikle dikkat etmeni önerdiğim nokta alev sensörü eşik değeri.
Arduino IDE’de Seri Monitör → 9600 baud seçildiğinde şöyle değerler göreceksin:
SOL: 45 ORTA: 310 SAG: 52
SOL: 50 ORTA: 355 SAG: 60
SOL: 42 ORTA: 480 SAG: 55
Bu durumda robot orta sensörün alevi daha güçlü algıladığını anlayacaktır.
Ancak sensörün davranışı ters ise:
const bool FLAME_ACTIVE_LOW = true;
satırını:
const bool FLAME_ACTIVE_LOW = false;
şeklinde değiştirmek gerekir.
🎯flameThreshold değeri de ayarlanabilir:
const int flameThreshold = 120;
Örneğin ortam ışığından dolayı robot sürekli “yangın var” diyorsa değeri:
const int flameThreshold = 200;
yapabiliriz.
Çok uzaktaki alevi algılamasını istiyorsak daha düşük bir eşik denenebilir.
⚠️ Önemli Bir Donanım Notu
Arduino pinlerinden fan veya su pompası doğrudan çalıştırılmamalıdır.
Kodda:
digitalWrite(fanRelayPin, HIGH);
komutu yalnızca röle/modülün kontrol girişini çalıştırıyor. Fan/pompa kendi uygun güç kaynağından beslenmelidir.
Aynı şekilde DC motorlar da Arduino’nun 5V pininden beslenmemeli; L298N üzerinden uygun harici motor beslemesi kullanılmalıdır.
Ayrıca Arduino GND, L298N GND ve diğer düşük gerilimli kontrol devrelerinin GND bağlantıları ortak referansa sahip olmalıdır.
🔥 Sonuç
Bu kodla robotun temel davranışı:
Alevi algıla → yönünü bul → alev yönüne dön → ilerle → mesafeyi ölç → yaklaşınca dur → servo ile söndürme mekanizmasını tara → fanı/pompayı çalıştır
şeklinde olacak.
Bir sonraki aşamada bunu daha da profesyonelleştirip “Arduino Akıllı Yangın Söndürme Robotu V2” yapabiliriz: 3 alev sensörünü PID benzeri oransal yönlendirmeyle kullanıp robotun sağa-sola zikzak yapmadan doğrudan alevi takip etmesini, HC-SR04 ile engelden kaçmasını ve söndürme sonrasında alevin gerçekten sönüp sönmediğini kontrol etmesini sağlayabiliriz. Bu versiyon, makaledeki proje için çok daha etkileyici olur.
🧪 Projenin Kurulum Aşamaları
1️⃣ Robot Şasisinin Hazırlanması
İlk olarak 2WD robot şasisi monte edilir.
Motorlar şasinin sağ ve sol tarafına yerleştirilir.
Tekerlekler motorlara bağlanır.
Ön veya arka kısma denge tekerleği eklenebilir.
2️⃣ Arduino’nun Yerleştirilmesi
Arduino Uno robotun üst kısmına sabitlenebilir.
Kartın:
- Motorlardan uzak,
- Kablolara erişilebilir,
- Fan/pompa sisteminden korunmuş
bir konumda olması önerilir.
3️⃣ Alev Sensörlerinin Yerleştirilmesi
Üç sensör robotun ön bölümüne yerleştirilebilir.
Örneğin:
SOL ORTA SAĞ
↓ ↓ ↓
[🔥] [🔥] [🔥]
┌───────┐
│ ROBOT │
└───────┘
Sensörler hafif açılı şekilde konumlandırılırsa robotun alevin yönünü daha iyi tahmin etmesi mümkün olabilir.
4️⃣ Motor Sürücünün Bağlanması
Arduino’nun kontrol pinleri L298N sürücüye bağlanır.
L298N’nin çıkışları motorlara bağlanır.
Motorların beslemesi ise uygun batarya üzerinden yapılır.
Arduino ve motor beslemesinin ortak GND referansına sahip olması gerekir.
5️⃣ HC-SR04 Montajı
Ultrasonik sensör robotun ön tarafına yerleştirilir.
Sensörün görüş alanını:
- Şasi,
- Fan,
- Kablo,
- Su tankı
gibi parçaların engellememesine dikkat edilmelidir.
6️⃣ Fan veya Pompa Montajı
Fan robotun ön tarafına sabitlenebilir.
Daha gelişmiş sistemde servo motor kullanılarak fanın sağa-sola hareket etmesi sağlanabilir.
🎯 Projenin Eğitimsel Kazanımları
Bu proje bir robot yapmaktan çok daha fazlasını öğretir.
Öğrenciler proje sırasında:
🔌 Elektronik
- Dijital giriş/çıkış
- Analog sensörler
- Motor sürücüleri
- Servo motor
- Röle/MOSFET
- Güç yönetimi
konularını öğrenebilir.
💻 Programlama
if / else- Değişkenler
- Fonksiyonlar
- Sensör okuma
- Karar algoritmaları
- Döngüler
- Servo kontrolü
öğrenilebilir.
🤖 Robotik
Öğrenci:
Algıla → Karar Ver → Hareket Et
mantığını uygulamalı olarak görür.
Bu da robotik sistemlerin temel çalışma prensibidir.
🧠 Projeyi Daha Akıllı Hale Getirme
Temel robot oldukça geliştirilebilir.
📡 1. Bluetooth Kontrol
HC-05 veya HC-06 eklenerek robot telefon üzerinden manuel olarak kontrol edilebilir.
Böylece iki çalışma modu oluşturulabilir:
AUTO MODE
Robot kendi kendine hareket eder.
MANUAL MODE
Kullanıcı robotu telefondan kontrol eder.
📱 2. IoT Özelliği
ESP32 kullanılarak robot internete bağlanabilir.
Yangın algılandığında:
🔥 UYARI: Alev algılandı!
şeklinde uygulamaya veri gönderilebilir.
📷 3. ESP32-CAM Eklemek
Daha gelişmiş bir versiyonda ESP32-CAM kullanılabilir.
Kamera sayesinde robotun görüntüsü telefondan izlenebilir.
Bu noktada proje:
Arduino robot + kamera + kablosuz haberleşme
seviyesine taşınabilir.
🤖 Yapay Zekâ ile Geliştirme
Projenin ileri seviyesinde yapay zekâ da kullanılabilir.
Kamera görüntüsünden:
- Alev,
- Duman,
- Normal ışık,
- Parlak nesne
ayrımı yapılabilir.
Basit sistem:
KAMERA
↓
GÖRÜNTÜ
↓
YAPAY ZEKA
↓
ALEV VAR MI?
↓
ROBOT KARARI
↓
HAREKET
Bu yaklaşım klasik sensör tabanlı sistemden çok daha gelişmiş bir AI + Robotik projesine dönüşür.
🏫 Eğitim Kurumlarında Nasıl Kullanılabilir?
Arduino Akıllı Yangın Söndürme Robotu özellikle:
- Robotik Kodlama Atölyeleri
- STEM Atölyeleri
- Maker Atölyeleri
- Arduino eğitimleri
- Proje yarışmaları
- TÜBİTAK proje çalışmaları
- Lise robotik projeleri
için kullanılabilecek bir uygulamadır.
Öğrencilere sadece hazır robot verilmek yerine proje aşamalara bölünebilir.
Seviye 1
Motor kontrolü
Seviye 2
Alev sensörü
Seviye 3
Alev yönü tespiti
Seviye 4
Otonom hareket
Seviye 5
Fan kontrolü
Seviye 6
Servo kontrollü söndürme
Seviye 7
Bluetooth
Seviye 8
ESP32 + kamera
Seviye 9
Yapay zekâ
Böylece aynı proje farklı yaş ve beceri seviyelerine uyarlanabilir.
🧪 Proje İçin Deney ve Test Senaryoları
Projeyi öğrenciler için bir deney haline getirmek de mümkün.
Deney 1 – Alev Algılama
Farklı mesafelerde güvenli ve kontrollü bir alev kaynağı kullanılarak sensör değerleri gözlemlenir.
Deney 2 – Yön Bulma
Alev farklı yönlere yerleştirilerek robotun kararları incelenir.
Deney 3 – Mesafe Kontrolü
HC-SR04 ile farklı durma mesafeleri test edilir.
Deney 4 – Fan Performansı
Fan farklı uzaklıklarda çalıştırılarak sonuçlar karşılaştırılır.
Deney 5 – Servo Tarama
Fan farklı açılara yönlendirilerek söndürme alanı gözlemlenir.
Gerçek yangın yerine düşük riskli, kontrollü bir eğitim düzeneği kullanılmalıdır.
⚠️ Güvenlik Konusunda Önemli Noktalar
Bu proje eğitim amaçlı olduğundan test aşamasında güvenlik en önemli konudur.
Özellikle:
- Büyük alev kullanılmamalıdır.
- Yanıcı maddeler robot üzerine yerleştirilmemelidir.
- Robot gözetimsiz bırakılmamalıdır.
- Su kullanılan modellerde elektronik devreler korunmalıdır.
- Motor ve pompa beslemesi doğru hesaplanmalıdır.
- Batarya kısa devreye karşı korunmalıdır.
- Gerçek yangın üzerinde test yapılmamalıdır.
Arduino’nun “itfaiye eri” olması güzel; ama gerçek itfaiyecinin yerini tutmasını beklemek biraz fazla mesai olur. 🙂
🚀 Projenin Geliştirme Fikirleri
İleri seviyede sisteme şu özellikler eklenebilir:
🔹 Duman sensörü
Yangından önce duman algılama.
🔹 Sıcaklık sensörü
Ortam sıcaklığını takip etme.
🔹 OLED ekran
Robotun durumunu gösterme.
🔹 Buzzer
Yangın alarmı.
🔹 RGB LED
Robot durumunu renklerle gösterme.
🔹 Bluetooth
Telefon üzerinden kontrol.
🔹 Wi-Fi
Uzaktan izleme.
🔹 ESP32-CAM
Canlı görüntü.
🔹 Yapay zekâ
Kamera üzerinden alev tanıma.
🔹 Haritalama
Robotun ortamı tanıması.
🔹 Engel algılama
Robotun engellerden kaçması.
Bu geliştirmelerle proje basit bir Arduino uygulamasından otonom yangın müdahale robotu prototipine dönüştürülebilir.
📌 Sonuç
Arduino Akıllı Yangın Söndürme Robotu, Arduino ile yapılabilecek projeler arasında eğitim açısından oldukça zengin bir uygulamadır.
Proje içerisinde aynı anda:
Arduino + sensör + motor + motor sürücü + servo + mesafe ölçümü + otomasyon + robotik kodlama
kullanılabildiği için öğrencilerin farklı teknolojileri tek bir sistem üzerinde birleştirmesine olanak sağlar.
Daha da önemlisi öğrenciler hazır bir kodu çalıştırmak yerine bir robotun nasıl:
Algıladığını → karar verdiğini → hareket ettiğini → görev gerçekleştirdiğini
uygulamalı olarak öğrenir.
Temel versiyon Arduino Uno + 3 alev sensörü + HC-SR04 + L298N + 2WD robot + mini fan ile kurulabilir. İleri versiyon ise ESP32-CAM, Wi-Fi, yapay zekâ ve servo kontrollü söndürme sistemi eklenerek çok daha kapsamlı bir STEM/robotik projesine dönüştürülebilir.
İstanbul İz Atölye Eğitim Çözümleri San. ve Tic. Ltd. Şti., eğitim kurumlarına yönelik yenilikçi atölye kurulumlarıyla öne çıkan, proje geliştirme ve uygulama süreçlerinde uçtan uca destek sunan bir çözüm ortağıdır. Robotik kodlama, yazılım, ahşap tasarım, STEM ve sanal gerçeklik gibi farklı alanlarda modern, sürdürülebilir ve eğitim odaklı atölye ortamları tasarlar. Kurumların ihtiyaçlarına özel analizler yaparak en uygun ekipman, içerik ve altyapıyı belirler; kurulum sürecinden eğitmen eğitimine kadar tüm aşamalarda aktif rol alır. Ayrıca ulusal ve uluslararası hibe programlarına yönelik proje yazımı, danışmanlık ve uygulama desteği sağlayarak kurumların hem teknik hem de finansal açıdan güçlenmesine katkıda bulunur.
📞 Proje Desteği İçin Bize Ulaşın ( 0850 840 4783 )
🚀 Projeni Hayata Geçir! ( WhatsApp )
İz Atölye olarak sadece atölye kurmuyor, kurumunuza özel sürdürülebilir eğitim ekosistemleri tasarlıyor; doğru ekipman, güçlü içerik ve uçtan uca proje desteğiyle süreci zahmetsiz ve verimli hale getiriyoruz.
Deneyim, hız ve sonuç odaklı yaklaşımımızla yatırımınızı kısa sürede somut çıktılara dönüştürüyoruz.

Yorum ekle