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

0
63

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.
  • 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.

Wow
1
Search
Categories
Read More
Diğer
Dermatology Software Market Strengthened by Remote Patient Monitoring Trends 2030
Dermatology Software Market Overview MMR published the  Dermatology Software Market...
By Supriya Maximize 2025-08-21 11:07:17 0 428
Teknoloji
Why CPQ is the Missing Link in Your Dynamics 365 Sales Strategy
In today's fast-paced B2B landscape, customers expect fast, personalized, and error-free quotes....
By Cincom Systems 2025-09-24 14:36:29 0 80
Oyun
Thermic Fluids Market Challenges: Growth, Share, Value, Size, and Scope By 2033
Executive Summary Thermic Fluids Market Size and Share: Global Industry Snapshot CAGR...
By Travis Rohrer 2025-08-12 10:58:21 0 217
Diğer
Patient Simulators Market Demand Mapping and Competitive Intelligence
"Executive Summary Patient Simulators Market : CAGR Value Data Bridge Market Research...
By Shim Carter 2025-07-18 12:26:05 0 378