---
title: "Mikrodenetleyiciden Garajdaki Otomasyona: Proje Dışında Öğrenilenler"
description: "Selamlar sevgili okurlar."
date: 2026-11-04T19:35:51Z
updated: 2026-11-04T19:35:51Z
author: "Alper Kaya"
site: "Sıfırdan Kod Satırına"
language: "tr"
tags: ["iot", "aile", "donanım", "süreç"]
url: "https://devirmakina99.nasilalinir.com/mikrodenetleyiciden-garajdaki-otomasyona-proje-disinda-ogrenilenler"
---

# Mikrodenetleyiciden Garajdaki Otomasyona: Proje Dışında Öğrenilenler

Selamlar sevgili okurlar.

Genellikle burası benim için bir devre kartının üzerindeki lehim izlerinin veya bir yazılım katmanındaki bağımlılık çözümlemesinin hikayesi anlatılan bir alan. Bir yandan da gömülü sistemlerin o kusursuz çalışma anını, mikrodenetleyicinin milisaniyede bir karar vermesini izlemek benim için meditasyon gibidir. Ancak bu hafta, konuyu biraz dışarıya taşımak istedim. Ve konu da, en büyük "prototip" alanım olan aile hayatı.

İlk bakışta bunlar çok farklı gibi görünüyor. Bir tarafta hassasiyet gerektiren bir sensör okuması, diğer tarafta ise kimlerin ne zaman eve geleceği tahmini. Ama inanın bana, süreçler inanılmaz derecede benzer. Her ikisi de girdi alıyor, bunları bir algoritma üzerinden geçiriyor ve bir çıktı üretiyor. Fark sadece bu çıktının bir LED yanıp sönmesi ya da akşam yemeği vaktinin gelmesi olması.

## Proje Yönetimi = Aile Dinamikleri

Bir IoT projesine başladığınızda, başarılı olmanın anahtarı **gereksinim analizi**dır. "Bu projeden ne istiyorum?" sorusuna net bir cevap vermelisiniz. Peki bu projeye aile üyeleri dahil olduğunda, gereksinimler genellikle "Hayır, tam olarak bunu yapmalıyım ama istiyorum ki bunu da yapsın" nidalarıyla gelmeye başlıyor. Bu, en zorlu yazılım gereksinim toplama aşamasıdır diyebilirim.

Geçenlerde babamın garajdaki eski makinelerle uğraşması oldu. Her seferinde farklı bir direnç değeri, farklı bir voltaj kaynağı gerektiğini söylüyordu. Benim görevim, bu sezgisel bilgiyi alıp, bunu somut bir devre şemasına veya kod bloğuna dökmek oldu. Buradaki sabır, bir kernel'in yüklenmesini beklemekten çok daha uzun sürüyor bazen. Ama sonunda, o sezgisel kaosu yapılandırılmış bir düzene sokabilmek, yazılımdaki en karmaşık optimizasyondan farksız.

## Geri Bildirim Döngüsü ve Debugging

Donanımda hata bulmak, ölü bir bağlantıyı veya yanlış çektiğimiz bir gerilimi tespit etmektir. Bu bir tür fiziksel debugdır. Yazılımda ise bir `race condition` veya bellek sızıntısı olabilir. Aile içinde ise durum daha çok **iletişimdeki gürültü** ile ilgili.

Eğer bir sensör verisi tutarsız geliyorsa, ben kaynağa iner, sensörün kalibrasyonunu kontrol ederim. Eğer ailedeki bir konu anlaşmazlık yaratıyorsa, o zaman benim yapmam gereken, sorunun gerçekten "girdide" mi yoksa "yorumlamada" mı olduğunu ayıklamak oluyor. Diyelim ki, herkesin "çok soğuk" olarak algıladığı bir ortam sıcaklığı var. Benim için bu sıcaklık değeri, termistörden gelen analog bir gerilimle temsil ediliyor. Herkesin kendi "ideal" eşiği var. Bu, yazılımda **kullanıcı arayüzü katmanını** tasarlarken mükemmel bir benzetme. Herkese aynı anda doğru veriyi farklı bir seviyede sunmalısın.

## Kapatılan Döngüler

En güzel kısım da bu. Yeni bir algoritmik çözüm bulduğunuzda, gözlemlediğiniz davranışın neden bu olduğunu anlamış oluyorsunuz. Projeyi başarıyla bitirip kodu commit ettiğinizdeki o tatmin duygusu, sabah erken kalkıp herkesin kendi ritminde hareket ettiği bir evi mükemmel bir uyumla yönettiğinizdeki dinginlikle aynı. Her iki durumda da, başlangıçtaki kaotik girdiyi, öngörülebilir, istikrarlı ve çalışan bir çıktıya dönüştürmek gerekiyor.

Sanırım teknolojiye olan tutkumun bir parçası da bu: karmaşadan düzen yaratma sanatı. Ve bu sanatı hem lehimle hem de insan ilişkileriyle icra etmek, her gün yeni bir sürüm yayınlamak gibi.

Herkese bol kod satırları ve sorunsuz debug seansları dilerim.

Alper.
