Yapay Zeka ile Akıllı Su Tasarrufu: Ses Analizi ve PHP/MySQL Entegrasyonu

Konuyu başlatanVoltexPro+·
Yanıt
0
Görüntülenme
9
Oy
1
Son yanıt
Henüz yok
9 görüntülenme

Yapay Zeka ile Akıllı Su Tasarrufu: Ses Analizi ve PHP/MySQL Entegrasyonu

Yapay zeka (YZ), günümüzde sadece metin üretmekle kalmayıp, çevresel sürdürülebilirlik projelerinde de aktif olarak rol almaktadır. Özellikle akıllı su tasarrufu sistemleri, yapay zekanın ses işleme yeteneklerini kullanarak israfı önlemede büyük potansiyele sahiptir.

Böyle bir sistemde yapay zeka; banyo, mutfak veya bahçedeki mikrofonlar aracılığıyla gelen ses verilerini analiz eder. Akışkan suyun, damlamanın veya açık kalmış bir musluğun kendine has frekansını ayırt ederek yapay sinir ağları sayesinde "israf" veya "normal kullanım" teşhisi koyar. Yapay zekanın bu tespiti yaptıktan sonra veriyi merkezi bir sisteme işlemesi, web arayüzünde raporlaması ve gerekirse kullanıcıyı uyarması gerekir.

Aşağıda, bir yapay zeka veya IoT (Nesnelerin İnterneti) cihazının açık kalan bir musluğu tespit ettiğinde, bu veriyi internet tabanlı bir veritabanına (MySQL) nasıl göndereceğini ve bu verilerin web panelinde (PHP) nasıl listeleneceğini gösteren backend kod mimarisi yer almaktadır.

  1. Veritabanı Yapısı (MySQL) Yapay zeka cihazının (örneğin ses analizi yapan bir mikrodenetleyicinin) göndereceği verileri saklamak için bir tablo oluşturuyoruz. Bu tablo suyun durumunu, israf türünü ve zamanı kaydeder.

SQL CREATE DATABASE IF NOT EXISTS aykent_su_tasarrufu; USE aykent_su_tasarrufu;

CREATE TABLE IF NOT EXISTS su_loglari ( id INT AUTO_INCREMENT PRIMARY KEY, cihaz_id VARCHAR(50) NOT NULL, durum VARCHAR(50) NOT NULL, -- 'Açık Musluk', 'Sızıntı', 'Normal Kullanım' ses_seviyesi INT NOT NULL, -- Desibel veya yapay zeka güven skoru kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 2. Veri Alma ve Kaydetme API'si (veri_ekle.php) Yapay zeka modeli bir israf algıladığında, bu PHP dosyasına bir HTTP POST isteği göndererek durumu veritabanına yazar.

PHP

<?php // Veritabanı Bağlantısı $host = "localhost"; $user = "root"; $pass = ""; $dbname = "aykent_su_tasarrufu"; $conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { die(json_encode(["status" => "error", "message" => "Bağlantı hatası"])); } // Cihazdan gelen POST verilerini alıyoruz if ($_SERVER["REQUEST_METHOD"] == "POST") { $cihaz_id = $_POST['cihaz_id'] ?? 'Bilinmeyen_Cihaz'; $durum = $_POST['durum'] ?? 'Belirsiz'; $ses_seviyesi = intval($_POST['ses_seviyesi'] ?? 0); // SQL Enjeksiyonunu önlemek için prepared statement kullanıyoruz $stmt = $conn->prepare("INSERT INTO su_loglari (cihaz_id, durum, ses_seviyesi) VALUES (?, ?, ?)"); $stmt->bind_param("ssi", $cihaz_id, $durum, $ses_seviyesi); if ($stmt->execute()) { echo json_encode(["status" => "success", "message" => "AI Verisi başarıyla kaydedildi"]); } else { echo json_encode(["status" => "error", "message" => "Veri kaydedilemedi"]); } $stmt->close(); } else { echo json_encode(["status" => "invalid_request", "message" => "Yalnızca POST istekleri kabul edilir"]); } $conn->close(); ?>
  1. Kullanıcı Yönetim Paneli (index.php) Yapay zekanın tespit ettiği israf durumlarını web arayüzünde modern, temiz ve scannable (taranabilir) bir tablo ile listeleyen frontend ve backend birleşik kod yapısı:

PHP

<?php $host = "localhost"; $user = "root"; $pass = ""; $dbname = "aykent_su_tasarrufu"; $conn = new mysqli($host, $user, $pass, $dbname); $result = $conn->query("SELECT * FROM su_loglari ORDER BY kayit_tarihi DESC LIMIT 10"); ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>AI Su Tasarrufu Takip Paneli</title> <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script> <style> body { font-family: 'Inter', sans-serif; } </style> </head> <body class="bg-gray-50 text-gray-800">
<div class="max-w-5xl mx-auto px-4 py-8">
    <header class="mb-8 border-b border-gray-200 pb-4">
        <h1 class="text-3xl font-bold text-blue-600">Aykent Akıllı Su Yönetim Paneli</h1>
        <p class="text-gray-500 mt-1">Yapay zeka ses analitiği tarafından anlık bildirilen su israf logları.</p>
    </header>

    <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
        <div class="bg-white p-6 rounded-xl shadow-xs border border-gray-100">
            <span class="text-xs font-semibold uppercase tracking-wider text-gray-400">Sistem Durumu</span>
            <div class="text-xl font-bold text-green-600 mt-1">Aktif / Dinlemede</div>
        </div>
        <div class="bg-white p-6 rounded-xl shadow-xs border border-gray-100">
            <span class="text-xs font-semibold uppercase tracking-wider text-gray-400 font-medium">Yapay Zeka Modeli</span>
            <div class="text-xl font-bold text-gray-800 mt-1">Ses Tanıma v2.1</div>
        </div>
    </div>

    <div class="bg-white rounded-xl shadow-xs overflow-hidden border border-gray-200">
        <div class="px-6 py-4 bg-gray-100 border-b border-gray-200">
            <h2 class="font-semibold text-gray-700">Son Algılanan AI Bildirimleri</h2>
        </div>
        <div class="overflow-x-auto">
            <table class="w-full text-left border-collapse">
                <thead>
                    <tr class="bg-gray-50 text-gray-600 text-xs uppercase font-semibold border-b border-gray-200">
                        <th class="px-6 py-3">ID</th>
                        <th class="px-6 py-3">Cihaz Konumu</th>
                        <th class="px-6 py-3">AI Teşhisi</th>
                        <th class="px-6 py-3">Ses Şiddeti (Skor)</th>
                        <th class="px-6 py-3">Tarih / Saat</th>
                    </tr>
                </thead>
                <tbody class="divide-y divide-gray-100 text-sm">
                    <?php if ($result && $result->num_rows > 0): ?>
                        <?php while($row = $result->fetch_assoc()): ?>
                            <tr class="hover:bg-gray-50 transition-colors">
                                <td class="px-6 py-4 font-medium text-gray-900">#<?php echo $row['id']; ?></td>
                                <td class="px-6 py-4 text-gray-600"><?php echo htmlspecialchars($row['cihaz_id']); ?></td>
                                <td class="px-6 py-4">
                                    <span class="px-2.5 py-1 rounded-full text-xs font-medium 
                                        <?php echo $row['durum'] == 'Açık Musluk' ? 'bg-red-100 text-red-700' : 'bg-blue-100 text-blue-700'; ?>">
                                        <?php echo htmlspecialchars($row['durum']); ?>
                                    </span>
                                </td>
                                <td class="px-6 py-4 text-gray-600"><?php echo $row['ses_seviyesi']; ?> dB</td>
                                <td class="px-6 py-4 text-gray-500"><?php echo $row['kayit_tarihi']; ?></td>
                            </tr>
                        <?php endwhile; ?>
                    <?php else: ?>
                        <tr>
                            <td colspan="5" class="px-6 py-8 text-center text-gray-400">Henüz bir yapay zeka log kaydı bulunamadı.</td>
                        </tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>
</body> </html> <?php $conn->close(); ?> Bu Yapı Nasıl Çalışır? Dinleme ve Analiz: Banyoya veya mutfağa yerleştirilen mikrofonlu bir AI modülü, ortamdaki ses frekanslarını sürekli analiz eder.

Sınıflandırma: Yapay zeka modeli akış sesini "israf" (örneğin 3 dakikadan uzun süren kesintisiz musluk sesi) olarak sınıflandırırsa bir alarm tetikler.

Web Entegrasyonu: Cihaz, veri_ekle.php dosyasına bir ağ isteği atarak bu veriyi MySQL'e kaydeder.

Görselleştirme: Yönetici paneli olan index.php ise veritabanını okuyarak hangi blokta veya dairede suyun açık kaldığını anlık olarak listeler.

Bu kod mimarisi üzerinde sormak istediğiniz, JS Fetch API entegrasyonu veya local storage tarafında veri saklama gibi detaylandırmamızı istediğiniz bir bölüm var mı?

0 yanıt9

Konuyu Yanıtla

Markdown destekler · Alıntı, kod, liste kullanabilirsiniz

Konuyu yanıtlamak için giriş yapmalısınız.

Hızlı yanıt yazmak için giriş yapın.