Kendi Akıllı Ev Sisteminizi Geliştirin: Adım Adım Rehber

Akıllı ev sistemleri, ev otomasyonunu kişiselleştirerek hem konforu artırıyor hem de enerji tasarrufu sağlıyor. Ticari çözümler yerine kendi sisteminizi geliştirmek, tam kontrol, özelleştirme ve maliyet avantajı sunar. Bu rehber, bir yazılımcının kendi akıllı ev sistemini nasıl kurduğunu temel alarak, size sıfırdan bir akıllı ev sistemi geliştirme sürecini anlatıyor. Raspberry Pi, Docker, MQTT, PostgreSQL ve daha birçok teknolojiyle, evinizi tamamen kendi yönettiğiniz bir otomasyon merkezine dönüştürebilirsiniz.
Neden Kendi Akıllı Ev Sisteminizi Kurmalısınız?
- Tam Kontrol: Üçüncü taraf servislerden bağımsız, tüm veriler sizin elinizde.
- Özelleştirme: Sisteminizi ihtiyaçlarınıza göre tamamen şekillendirebilirsiniz.
- Maliyet Avantajı: Açık kaynaklı donanım ve yazılım kullanarak bütçenizi koruyabilirsiniz.
- Öğrenme Fırsatı: IoT, veritabanı yönetimi ve mikro servis mimarisi gibi konularda deneyim kazanırsınız.
1. Sistem Mimarisi ve Sunucu Kurulumu
Merkezi bir kontrol noktası oluşturmak için Raspberry Pi mükemmel bir seçimdir. Bu küçük ama güçlü cihaz, tüm sistemi yönetmek için yeterli güce sahiptir.
Adımlar:
- Raspberry Pi Kurulumu: Raspberry Pi 4 (en az 4GB RAM önerilir) üzerine Raspberry Pi OS (Lite sürümü) kurun. Hafif bir sistem için GUI olmayan sürüm tercih edilebilir.
- Docker Kullanımı: Docker ile mikro servis mimarisi kurun. Her bir bileşen (API, veritabanı, MQTT broker) ayrı bir container’da çalışsın. Bu, sistemi izole ve yönetilebilir hale getirir.
# Docker ve Docker Compose Kurulumu sudo apt update sudo apt install docker.io docker-compose sudo systemctl enable docker sudo systemctl start docker
- Mikro Servisler: API’nizi (örneğin, Node.js veya Flask ile) ve veritabanını (PostgreSQL) ayrı container’larda çalıştırın. Örnek bir
docker-compose.yml
:version: '3' services: api: image: node:16 ports: - "3000:3000" volumes: - ./api:/app db: image: postgres:latest environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: smarthome
2. Cihazlar Arası İletişim: MQTT Broker
MQTT, IoT cihazları için hafif ve verimli bir iletişim protokolüdür. Eclipse Mosquitto, bu amaç için popüler bir açık kaynaklı broker’dır.
Adımlar:
- Mosquitto Kurulumu: Docker ile Mosquitto’yu kurun.
services: mqtt: image: eclipse-mosquitto ports: - "1883:1883" - "9001:9001"
- Publish/Subscribe Modeli: Işıklar, prizler ve sensörler gibi cihazlar, MQTT topic’lerine veri gönderir (publish) veya komut alır (subscribe). Örneğin:
- Topic:
home/lights/livingroom
→ Işığı aç/kapat komutları. - Topic:
home/sensors/temperature
→ Sıcaklık verileri.
- Topic:
- Güvenlik: MQTT’ye kullanıcı adı/şifre doğrulaması ekleyin ve TLS ile şifreleyin. Mosquitto konfigürasyon dosyasında:
listener 1883 allow_anonymous false password_file /mosquitto/config/passwd
3. Veri Depolama: PostgreSQL
Tüm sensör verilerini ve cihaz durumlarını saklamak için PostgreSQL kullanabilirsiniz. Bu, geriye dönük analiz ve raporlama için idealdir.
Adımlar:
- Veritabanı Kurulumu: Docker ile PostgreSQL’i kurun (yukarıdaki
docker-compose.yml
örneğine bakın). - Tablo Yapısı: Örneğin, sıcaklık ve enerji tüketimi için:
CREATE TABLE sensor_data ( id SERIAL PRIMARY KEY, device_id VARCHAR(50), type VARCHAR(20), value FLOAT, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
- Veri Kaydetme: MQTT’den gelen verileri API üzerinden PostgreSQL’e kaydedin. Örneğin, Node.js ile:
const { Pool } = require('pg'); const pool = new Pool({ user: 'user', password: 'password', database: 'smarthome' }); async function saveSensorData(deviceId, type, value) { await pool.query( 'INSERT INTO sensor_data (device_id, type, value) VALUES ($1, $2, $3)', [deviceId, type, value] ); }
4. Mobil Uygulama Geliştirme
Kendi mobil uygulamanızı geliştirerek sisteminizi her yerden kontrol edebilirsiniz. Android Jetpack Compose modern ve hızlı bir seçenektir.
Adımlar:
- Uygulama Tasarımı: Jetpack Compose ile kullanıcı dostu bir arayüz oluşturun. Örneğin, ışık kontrolü için bir düğme:
@Composable fun LightControlButton() { Button(onClick = { sendMqttCommand("home/lights/livingroom", "ON") }) { Text("Işığı Aç") } }
- MQTT Entegrasyonu: Uygulamanızı MQTT broker’a bağlayın. Paho MQTT kütüphanesi kullanabilirsiniz.
- API ile İletişim: REST API üzerinden cihaz durumlarını çekin ve komut gönderin.
Not: Üçüncü taraf servislere bağımlılığı ortadan kaldırmak için direkt MQTT’ye bağlanmak, sistemin bağımsızlığını artırır.
5. Enerji Tüketimi İzleme
Enerji tüketimini izlemek için ESP32 tabanlı akıllı prizler kullanabilirsiniz.
Adımlar:
- ESP32 Programlama: Arduino IDE veya PlatformIO ile ESP32’yi programlayın. MQTT ile veri gönderimi:
#include #include WiFiClient espClient; PubSubClient client(espClient); void setup() { WiFi.begin("SSID", "PASSWORD"); client.setServer("MQTT_BROKER_IP", 1883); client.connect("ESP32_Client", "user", "password"); } void loop() { float power = readPowerSensor(); // Sensörden güç verisi oku client.publish("home/energy/plug1", String(power).c_str()); delay(10000); }
- Veri Kaydetme: MQTT’den gelen enerji verilerini PostgreSQL’e kaydedin.
6. Dashboard ile Görselleştirme
Grafana, verilerinizi görselleştirmek için güçlü bir araçtır.
Adımlar:
- Grafana Kurulumu: Docker ile Grafana’yı kurun:
services: grafana: image: grafana/grafana ports: - "3000:3000"
- Veri Kaynağı: Grafana’yı PostgreSQL’e bağlayın ve enerji tüketimi, sıcaklık gibi verileri görselleştirin.
- Grafikler: Saatlik/günlük enerji tüketimi için grafikler oluşturun. Örneğin, SQL sorgusu:
SELECT timestamp, value FROM sensor_data WHERE type = 'power' AND device_id = 'plug1' ORDER BY timestamp;
7. Sesli Kontrol Entegrasyonu
Google Assistant ile sisteminizi sesle kontrol edebilirsiniz.
Adımlar:
- Webhook Kurulumu: Google Assistant’tan gelen komutları kendi API’nize yönlendirin. Flask ile örnek bir webhook:
from flask import Flask, request app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): data = request.json if data['intent'] == 'turn_off_lights': mqtt_publish('home/lights/livingroom', 'OFF') return jsonify({'status': 'success'})
- Dialogflow: Google Dialogflow ile komutları tanımlayın ve webhook’a bağlayın.
8. Güvenlik Önlemleri
Güvenlik, akıllı ev sistemlerinde kritik öneme sahiptir.
Adımlar:
- TLS Şifreleme: Tüm API ve MQTT trafiğini TLS ile şifreleyin. Let’s Encrypt gibi ücretsiz sertifikalar kullanabilirsiniz.
- MQTT Doğrulama: Kullanıcı adı ve şifreyle erişimi kısıtlayın.
- Firewall: Raspberry Pi üzerinde yalnızca gerekli portları (1883, 3000, vb.) açık tutun.
- Veri Yedekleme: PostgreSQL verilerini düzenli olarak yedekleyin.
Kendi akıllı ev sisteminizi geliştirmek, hem teknik becerilerinizi geliştirir hem de evinizi tam anlamıyla size özel bir otomasyon merkezine dönüştürür. Raspberry Pi, Docker, MQTT, PostgreSQL, Grafana ve ESP32 gibi teknolojilerle, ışık kontrolünden enerji izlemeye kadar her şeyi yönetebilirsiniz. Üstelik, üçüncü taraf servislerden bağımsız bir sistemle tam kontrol sizde olur.
Başlangıç İpuçları:
- Küçükten başlayın: Önce tek bir ışığı kontrol edin, sonra sistemi genişletin.
- Dökümantasyonu iyi okuyun: MQTT, Docker ve Grafana’nın resmi dökümantasyonları çok yardımcıdır.
- Topluluklardan destek alın: Gemstone Geliştirme Grubuna üye olarak bizden destek alabilirsiniz
Ekstra: Sistemi daha da geliştirmek için makine öğrenmesi modelleriyle enerji tüketimi tahmini yapabilir veya hareket sensörleriyle otomatik aydınlatma ekleyebilirsiniz.

- Biografi
- Sanat
- Bilim
- Firma
- Teknoloji
- Eğitim
- Film
- Spor
- Yemek
- Oyun
- Botanik
- Sağlık
- Ev
- Finans
- Kariyer
- Tanıtım
- Diğer
- Eğlence
- Otomotiv
- E-Ticaret
- Spor
- Yazılım
- Haber
- Hobi