Paid-by-themewiki.top
EnglishFrenchGermanItalianJapanesePortugueseRussianSpanishTurkish

ESP32 ile Sistem Odasının Fiziksel Güvenliğini Sağlama Projesi (IoT Tabanlı)

Bu Projede Basit Olarak Sistem Odasının Fiziksel Güvenliğini Simule Etmeye Çalıştım. Kullandığım Donanımlar, Teknolojiler / Yazılımlar ve Proje Kodlarını Bu Yazıda Bulabilirsiniz.

Proje Özeti

  • ESP32 Mikroişlemcisi, MQTT Haberleşme Protokolü, Node-RED, Grafana, InfluxDB, Çeşitli Sensörler ve Malzemeler (PIR, Sıcaklık - Nem, Gaz - Duman Sensörleri, Servo Motor, Buzzer, LED, Button) Kullanılarak Sistem Odası Fiziksel Güvenliğinin Simule Edilmesi.

  • Sistem Odası Giriş Güvenliği için Gerekli Şartların Oluşturulması.

    • Birinci Şart: Telegram Botu Üzerinden Komut Alınması.

    • İkinci Şart: PIR Sensörü Üzerinde Hareket Algılanması.

    • Üçüncü Şart: Belirlenen Saatlerde Giriş Yapılması.

  • Sistem Odasına Yapılan Giriş ve Çıkışların InfluxDB Veritabanına Kaydedilerek Kayıt Altına Alınması ve Yetkili Kişilere Telegram Üzerinden Bildirim Mesajı Gönderilmesi.

  • Sistem Odası İçindeki Sıcaklık, Nem, Gaz ve Duman Değerlerinin Grafana Yazılımı ile Anlık Olarak Takip Edilmesi ve InfluxDB Veritabanına Kaydedilmesi.

  • Sensörler ile Alınan Değerlerin Limit Değerleri Aşması Halinde Alarmın Başlaması ve Yetkili Kişilere Telegram Üzerinden Uyarı Mesajı Gönderilmesi.

Projenin Fiziksel Görüntüsü

Giriş

Sistem Odası; Bilgisayar, Sunucu, Depolama gibi Cihazları İçeren ve Tüm Network Bağlantılarının Geçtiği Odadır. Her Geçen Gün Dijital Dünyadaki Veri Miktarı Artmaktadır. Verilerin Güvenliğini Sağlamak için Ağ Güvenliği (Güvenlik Duvarları, vs.) Yanında Sistem Odasının Fiziksel Güvenliği de Sağlanmalıdır. Sistem Odasının Fiziksel Güvenliğinde; Sistem Odasına Giriş Kontrolü, Sistem Odasının Sıcaklık, Nem ve Kablolama Kontrolü, Kesintisiz Elektrik için UPS Sistemi, Yangına Karşı Duman Sensörleri ile Erken Uyarı Sistemi ve Gazlı Yangın Söndürücü (FM200, vb.) Sistemi Gibi Yapılması Gereken Güvenlik İşlemleri Vardır. Projede Sistem Odasına Giriş Kontrolü ve Sistem Odasının Sıcaklık, Nem ve Duman Kontrolünün Sağlanması Amaçlanmıştır. Sistem Odasına Sadece Yetkili Kişiler Erişebilmelidir. Giriş IP Kamera ile İzlenmeli, Sistem Odasına Giriş için Birden Çok Kontrol İstenmeli ve Girişlerin Logları Tutulmalıdır. Projede Sistem Odası Girişi için Üç Farklı Kontrol Yapılmıştır. Birinci Kontrol; Android Mesajlaşma Uygulaması Olan Telegram Üzerinden Gerekli Komut Gönderilmelidir. Bu Komutun Gönderilebilmesi için Telegram’da Bir Bot Kullanıcısı Oluşturulmuştur ve Komut Bu Bota Gönderilip Sistem Tarafından Alınmaktadır. Komutun Sistem Tarafından Kabul Edilebilmesi için Telegram Kullanıcısının Gerekli Yetkiye Sahip Olması Gerekmektedir. Yetkisiz Kullanıcının Gönderdiği Komutlar Sistem Tarafından Kabul Edilmemektedir. İkinci Kontrol; Sistem Odası Girişinde Hareket Tespit Kontrolü Yapılmıştır. Sistem Odasına Giriş Yapabilmek için Hareket Algılanmalıdır. Üçüncü Kontrol ise Sistem Odası Girişleri için Zaman Filtresi Eklenmiştir. Sabah Saat 07:00 ile Akşam Saat 20:00 Saatleri Arasında Sistem Odasına Giriş Yapılabilmektedir. Bu Saat Aralıkları Dışındaki Herhangi Bir Zamanda Giriş Yasaklanmıştır. Sistem Odasına Giriş Yapabilmek için Bu Üç Kontrolün de Aynı Anda Sağlanması ve Sistem Odası Girişindeki Butona Basılması Gerekmektedir. Sistem Odasının Giriş Kapısının Kapatılması için de Telegram Bot Kullanıcısı Üzerinden Yetkili Bir Kullanıcı Tarafından Gerekli Komut Gönderilmelidir ve Sistem Girişindeki Butona Basılarak Kapı Kapatılabilmektedir. Sistem Odası Giriş Kapısının Açıldığı veya Kapandığı Durumlarda Giriş Yapan Kullanıcı ve Tarih Bilgisi Telegram Bot Kullanıcısına Gönderilmektedir ve Yetkili Kişiler Bu Bilgiyi Görebilmektedir.

Sistem Odalarındaki Cihazların Kesintisiz Olarak Çalışması Gerekir. Cihazların Sağlıklı Çalışabilmesi için Sistem Odasının Sıcaklık ve Nem Değerleri Optimum Düzeyde Tutulması Gerekmektedir. Cihazlar Kesintisiz Çalıştığı için Sistem Odasında Oldukça Fazla Isı Yayılımı Gerçekleşir ve Dış Etkenler de Sıcaklığa Etki Edebilir. Sıcaklığın Artması Cihazların Performansını ve Kullanım Ömürlerini Olumsuz Yönde Etkileyebilir. Sistem Odasındaki Nemin Artması Cihazlarda Paslanma veya Kısa Devre gibi Sorunlar Yaratabilir. Sıcaklık ve Nem Değerlerinin Aşırı Düşmesi veya Yükselmesi Durumunda Cihazlar Kendisini Otomatik Olarak Kapatabilir. Bu Durum da Verilere Erişimde Aksaklıklar Yaratabilir. Sıcaklık ve Nem Değerini Optimum Değerlerde Tutmak için Soğutma Sistemleri Kullanılır. Ayrıca Sistem Odasında Yangını Önlemek için Duman Kontrolü de Yapılmalıdır. Projede Sıcaklık, Nem ve Duman Bilgileri Anlık Olarak Gözlemlenerek Önceden Tanımlanmış Eşik Değerler Aşıldığı Taktirde Sistemin Alarm Vermesi Amaçlanmıştır. Eşik Değerleri Olarak Sıcaklık için 40, Nem için 60 ve Duman için 400 Değerleri Belirlenmiştir. Eşik Değerlerinden Biri Aşıldığı Taktirde Sistemdeki Yetkili Kişilere Telegram Bot Kullanıcısı Üzerinden Alarmın Başladığı Bilgisi ve Tarihi Gönderilmektedir. Ayrıca Alarm Başladığına Dair Ses Verilmekte ve Kırmızı Işık Yanmaktadır. Alarm Devam Ederken Eşik Değer veya Değerler Normal Duruma Dönerse Alarm Durdurulur ve Telegram Bot Kullanıcısı Üzerinden Alarmın Durdurulduğu Bilgisi ve Tarihi Yetkili Kullanıcılara Gönderilir. 

Sistem Odası Giriş Kontrolü Bilgileri (Telegram Komut Bilgisi, Hareket Bilgisi, Kapı Durumu Bilgisi), Sistem Odasının Anlık Sıcaklık, Nem, Duman Değerleri ve Alarm Durumu Sürekli Olarak Bir Veritabanına Kaydedilmekte ve Veritabanındaki Veriler Bir Web Yazılımı Aracılığı ile Anlık Olarak İzlenebilmektedir.

Kullanılan Donanımlar

ESP32

Projede Espressif Firmasına Ait ESP32 Mikrodenetleyicisi Kullanılmıştır. ESP32 Özellikle IoT Uygulamaları için Kullanılan Entegre Wi-Fi ve Bluetooth Bağlantısına ve Zengin Özelliklere Sahip Bir Mikrodenetleyicidir. Ayrıca ESP32 İşlemcisinin 240Mhz Hızında Çalışabilmesi ve FLASH Belleğinin Yüksek Olması Diğer Mikrodenetleyicilere Göre Avantaj Sağlamaktadır. Projede Veriler İnternet Üzerinden Gönderildiği ve Birden Çok Analog Sensör Kullanıldığı için ESP32 Mikrodenetleyicisi Tercih Edilmiştir.

PIR Sensörü

Projede HC-SR501 Ayarlanabilir Kızılötesi Hareket Algılama Sensörü Kullanılmıştır. Bu Sensör Hareket Algılanmadığında Lojik 0, Hareket Algılandığında ise Lojik 1 Dijital Çıkış Vermektedir. Ayrıca Sensör Üzerindeki Ayarlanabilir Potansiyometreler ile Sensörün Algılama Alanı ve Bekleme Süresi Değiştirilmiştir. Sensör Üzerinde Yapılan Ayarlamalar ile Algılama Alanı 3 Metre, Bekleme Süresi ise Yaklaşık 10 Saniye Belirlenmiştir. PIR Sensörü Hareket Algıladığı Zaman Yaklaşık 10 Saniye Lojik 1 Dijital Çıkış Vermekte, Eğer 10 Saniye İçerisinde Herhangi Bir Başka Hareket Algılanmazsa Tekrar Lojik 0 Dijital Çıkış Vermektedir. PIR Sensörü, Sistem Odası Girişinde Hareket Algılanıp Algılanmadığını Kontrol Etme Amaçlı Olarak Kullanılmıştır. 

Servo Motor 

Servo Motor, Kapalı Devre Motor Sistemidir. Servo Motor, Mekanizmalarda Açısal veya Doğrusal Pozisyon, Hız ve İvme Kontrolünü Yapmaktadır. Genellikle Robot ve RC Mekanizmalarında Kullanılır. Servo Motorlar İstenilen Bir Pozisyonu Alması ve Herhangi Bir Başka Komut Gelmeyene Kadar Pozisyonunun Değişmemesi Amacıyla Kullanılırlar. Projede Tower Pro SG90 RC Mini Servo Motor Modeli Kullanılmıştır. Bu Model 180 Derece Dönme Açısına ve 60 Dereceyi 0,1 Saniyede Dönebilme Özelliklerine Sahiptir. Servo Motor, Sistem Odası Girişindeki Kapının Açılıp Açılmadığını Simule Etmek Amacıyla Kullanılmıştır. Sistem Başlangıcında Servo Motorun Açısı 0’dadır ve Sistem Odası Kapısı Açıldığında ise Servo Motorun Açısı 180’e Gelmektedir.

Sıcaklık Ve Nem Sensörü 

Sıcaklık ve Nem Sensörü, Ortamdaki Sıcaklık ve Nem Bilgisini Algılamak için Kullanılmaktadır. Projede DHT11 Sıcaklık ve Nem Sensör Kartı Kullanılmıştır. Sensör Sıcaklığı 0-50 °C Aralıklarında +/-2 Hata Payı ile Ölçmektedir. Nemi ise 20-90% Arasında 5% Hata Payı ile Ölçmektedir. Bu Sensör Modeli, Projede Belirlenen Sıcaklık ve Nem Eşik Değerlerine Uygun Olması ve Düşük Maliyetli Olduğundan Tercih Edilmiştir. Sıcaklık ve Nem Sensörü ile Ortamdaki Sıcaklık ve Nem Bilgileri Her 3 Saniyede Bir Alınmış ve Bu Bilgiler Sistemin Alarm Durumuna Geçip Geçmemesi Amaçlı Kullanılmıştır.

Gaz ve Duman Sensörü 

Projede Gaz ve Duman Sensörü Olarak MQ-2 Modeli Kullanılmıştır. MQ-2 Sensörü Ortamdaki Yanıcı Gaz ve Dumanı 300-10000 PPM Konsantrasyonlar Arasında Algılamaktadır. Bu Sensör Ortamdaki Gaz ve Duman Yoğunluğuna Göre 0-1024 Değerleri Arasında Analog Çıkış Vermektedir. Gaz ve Duman Sensörü ile Ortamdaki Gaz ve Duman Bilgileri Her 3 Saniyede Bir Alınmış ve Bu Bilgiler Sistemin Alarm Durumuna Geçip Geçmemesi Amaçlı Kullanılmıştır. 

Buzzer 

Buzzer, Uyarı Sesleri Çıkarabilmek Amacıyla Kullanılan Mini Hoparlördür. Çalışmada Alarm Başladığı Anda Yaklaşık 250 ms Aralıklar ile Ses Çıkarılması Amacıyla Kullanılmıştır. 

LED

LED, Işık Yayan Diyot Anlamına Gelmektedir. Projede Alarm Başladığı Anda Kırmızı Bir LED Yakılarak Görsel Olarak Uyarma Amacıyla Kullanılmıştır. 

Push Buton

Projede Sistem Odası Giriş Kapısını Kontrollerin Sağlanması Şartı ile Açılmasını Sağlamak (Servo Motorun 0 Açısından 180 Açısına Gelmesi) için 4 Pinli Push Buton Kullanılmıştır. Kapının Açılması için Gereken Kontroller Sağlanmadan Butona Basılsa Bile Sistem Odası Kapısı Açılmamaktadır. Push Butonu Devrede 1K Ω Pull-Down Direnci ile Birlikte Kullanılmıştır. Pull-Down Direnci, Butona Basılmadığı Durumlarda Butonun Lojik 0 (0V), Butona Basıldığında ise Lojik 1’de (5V) Kalmasını Sağlar. Butona Basılı Tutulduğunda Sistemin Birden Çok Kez Butona Basılmış gibi Algılamasının Önüne de Geçilmiştir. Ayrıca Butona Basıldığında Programlama Tarafında Kesme (Interrupt) Fonksiyonu Çalıştırılarak Program Her Nerede Çalışıyor Olursa Olsun Kesme Fonksiyonunun Çalışması Sağlanmıştır. 

Kullanılan Teknolojiler / Yazılımlar

Arduino IDE

Arduino IDE, Kodların Derlenmesi ve USB'ye Bağlı Olan Mikrodenetleyiciye Kodların Yüklenmesi İşlemlerini Sağlayan Yazılım Geliştirme Platformudur. Çalışmanın Kodlanması, Kodların Derlenmesi ve Kodların ESP32 Mikrodenetleyicisine Yüklenmesi Amacıyla Arduino IDE Kullanılmıştır. 

Telegram Bot 

Projede Sistem Odası Giriş Kapısının Açılması için İstenen Şartlardan Biri Telegram Bot Üzerinden Komut İstenmesiydi. Bu Amaçla İlk Olarak Telegram Üzerinde BotFather Botu Kullanılarak “SunucuOdasıBilgi” Adında Bot Kullanıcısı Oluşturulmuştur ve Bu Bot Kullanıcısına Programlama Tarafında Bağlanabilmek ve Kullanabilmek için Token ID Alınmıştır. Yetkili Bir Kişinin “SunucuOdasıBilgi” Bot Kullanıcısını Kullanabilmesi için Telegram Üzerinden User ID Bilgisi de Alınmıştır. Bot Kullanıcısı Herhangi Bir Kişi Tarafından Görüntülenebilir, Fakat Yetkisiz Kişilerin Gönderdiği Komutlar Kabul Edilmeyecektir.

Telegram Bot Kullanıcısında Dört Farklı Komut Tanımlanmıştır. 
  1. /bilgial: Kullanabilecek Komutlar Hakkında Bilgi Verir.
  2. /kapi_ac: Kapının Açılması için İstenen Komut.
  3. /kapi_kapat: Kapının Kapanması için İstenen Komut.
  4. /kapi_durum: Kapının Açık veya Kapalı Mı Olduğu Bilgisi.
Bu Komutlar Dışında Kapı Açıldığı veya Kapandığı Zaman Bot Kullanıcısına, Giriş Yapan Kullanıcı ve Giriş Yaptığı Tarih Anlık Olarak Gönderilmektedir. Ayrıca Sistemde Alarm Başladığı ve Durduğu Zaman da Bot Kullanıcısına Tarih Bilgisi ile Birlikte Bilgi Anlık Olarak Gönderilmektedir. Yetkili Kullanıcılar İse Bot Kullanıcısına Gelen Bu Bilgileri Görebilmektedir.

telegram bot esp32 sistem odası fiziksel güvenlik

Telegram Botu Kullanılarak Gönderilen Komutlar ve Alınan Bilgiler.

MQTT

MQTT, Bir Mesajın Karşı Tarafa İletilmesini Sağlayan Haberleşme Protokolüdür. MQTT; Basit, Hızlı, Hafif, Az Kaynak Tüketmesi ve Teslimat Güvencesi Sağlamaya Çalışması (QoS) Gibi Nedenlerden Dolayı IoT Alanında Sıkça Kullanılmaktadır.

MQTT Haberleşmesini Kontrol Eden Birime Broker, Mesaj Yayınına Publish ve Mesaj Yayınına Abone Olanlara Subscribe Denilmektedir. Mesaj Yayınları Bir Topic Üzerinden Yapılır. Bir Yayıncı Birden Çok Topic Üzerinden Publish Yapabilir veya Birden Çok Yayıncı Aynı Topic Üzerinden Publish Yapabilir. Aynı Şekilde Birden Çok Birim Bir Topic’e Subscribe Olabilir.

MQTT Asenkron Bir Haberleşme Kullanmaktadır. Bir Topic Üzerinden Yayın Yapan Birimler ile Topic’e Subscribe Olan Birimler Arasında Veriler Asenkron Şekilde İletilmektedir. Topic Üzerinden Yayın Yapılan Veriler İlk Olarak Broker’e Gelir, Broker Bu Verileri Topic’e Abone Olan Birimlere Online Olduğu Anda İletir. Aşağıdaki Resimde MQTT Haberleşmesinin Genel Yapısı Verilmiştir.

mqtt yapısı

MQTT Haberleşme Protokolü, Mesajları İletirken Veri Trafiğini Azaltma veya Güvenilirliği Arttırmak için Kullanıcı Tarafından Seçilebilen Üç Farklı Hizmet Kalitesi (QoS) Seviyesine Sahiptir. QoS 0; Broker Tarafından İletilen Bir Mesaj Subscribe’lara Bir Kere Gönderilir ve Subscribe’lar Tarafından Mesajın Alınıp Alınmadığı ile Alakalı Bir Bilgi Alınmaz. QoS 1; Broker Tarafından İletilen Bir Mesaj Subscribe’lara Bir Kere Gönderilir ve Subscribe’lar Tarafından Mesajın Alınıp Alınmadığı ile Alakalı Onay Mesajı Beklenir. Onay Mesajı Belirli Bir Süre Gelmezse Broker Mesajı Yeniden Göndermeyi Dener. Aynı Mesaj Broker Tarafından Birden Fazla Gönderilebilir. QoS 2; Broker Tarafından İletilen Bir Mesaj Subscribe’lara Bir Kere Gönderilir ve Subscribe’lar ile Dört Adımlı Bir El Sıkışma (Handshake) Gerçekleştirilir. Böylece Broker Tarafından İletilen Bir Mesaj Subscribe Tarafından Alındığının Garantisi Elde Edilmiş Olur. 

ESP32'den Alınan Veriler Bir Topic (Topic Name: json_pub) Üzerinden Publish Edilerek MQTT Broker Sunucusuna Gönderilmiştir. Publish Edilen Veriler Şöyledir: 
  1. PIR Sensörü Bilgisi (Hareket Var (1) / Yok (0)) (String) 
  2. Telegram Komut Bilgisi (kapi_ac Komutu Alındı (1) / kapi_kapat Komutu Alındı (0)) (String) 
  3. Sistem Odası Giriş Kapısının Durumu (Açık (1) / Kapalı (0)) (String) 
  4. Ortamın Sıcaklık Değeri (String)
  5. Ortamın Nem Değeri (String) 
  6. Ortamın Gaz ve Duman Değeri (String) 
  7. Alarm Durumu Bilgisi (Açık (1) / Kapalı (0)) (String) 

Tüm Bu Veriler Programlama Kısmında Bir JSON Veri Formatında Tek Bir Yerde Toplanmıştır ve Tek Bir Topic Üzerinden Publish Edilerek MQTT Broker Sunucusuna Gönderilmiştir. JSON Verisi String Formatında Gönderilmiştir. Genellikle Benzer Veriler Gönderildiği için QoS 0 Mesaj İletim Hizmet Kalitesi Seçilmiştir. MQTT Haberleşme Protokolü Sayesinde Veriler Çok Hızlı (Milisaniye Düzeyinde) Gönderilmektedir. 

Node-RED / InfluxDB

Node-RED, Node.js ile Birlikte Çalışan, Akış Tabanlı (Flow-Based), Uygulamaların Sürükle - Bırak Mantığı ile Çalıştığı Bir Geliştirme Ortamıdır. Özellikle IoT Tabanlı Uygulamalar Yapmak için Kullanılmaktadır. Node-RED ile Uygulama Geliştirirken Teknik Detaylara Çok Takılmadan Basitçe Uygulama Gerçekleştirilebilir. Node-RED Üzerinde Önceden Tanımlanmış Düğümler Kullanılacağı Gibi Javascript Kullanılarak da Düğümlere Ek Özellikler Eklenebilmektedir. Node-RED Üzerinde Bulunan Giriş ve Çıkış Düğümleri Sayesinde Uygulamalar Arasındaki Bağlantılar Kolay Bir Şekilde Sağlanabilmektedir. 

InfluxDB, Genellikle IoT Cihazları Tarafından Toplanan Verileri Zaman Tabanlı Olarak Saklamak için Kullanılan, Performansı Yüksek, Basit ve Hızlı Sorgulama Yapılabilen, GO Dili ile Yazılmış, InfluxData Tarafından Geliştirilen Bir Veritabanıdır. InfluxDB, MQTT Broker Sunucusundan Gelen Verilerin Sabit Bir Yere Kaydedilmesi ve Kaydedilen Bu Verilerin Bir Web Yazılımı ile Gözlenebilmesi Amacıyla Kullanılmıştır. 

JSON Formatındaki Veri, ESP32 Tarafından Belirli Bir Topic (json_pub) Üzerinden Broker’a Gönderilir. Node-RED Tarafında ise Bu Topic’e (json_pub) Subscribe Olmak için mqtt in Düğümü Oluşturulmuştur. MQTT Broker Sunucusundan Gelen Veriler Bu Düğüm Üzerinden Alınmıştır. JSON Veri Yapısının Özelliklerini Kullanabilmek için Ayrıştırılması (Parse) Gerekmektedir. Ayrıştırma İşleminden Sonra Verileri InfluxDB Veritabanına Kaydedebilmek için InfluxBatch Düğümü Oluşturulmuştur. Bu Düğüm, InfluxDB’de Oluşturulan Veritabanına Bağlantıyı Sağlamaktadır. Veriler, InluxDB’de Oluşturulan Veritabanında İki Adet Ölçüme (Measurement) Kaydedilmiştir. Ölçümler ve İçerdikleri Alanlar Şu Şekildedir: 

  1. Database Name: sunucuOdasiDB, Measurement: KapiDurum, Fields: Pir, Telegramkomut, Kapi 
  2. Database Name: sunucuOdasiDB, Measurement: AlarmDurum, Fields: Sicaklik, Nem, Gaz, Alarm 

Verileri Ayrıştırmak ve Verileri Veritabanına Kaydetmeden Önce Hazırlamak için Function (Fonksiyon) Düğümü Oluşturulmuştur. Bu Düğümde Javascript Dili ile Kodlar Yazılarak Gerekli İşlemler Yapılmıştır.

nodered mqtt subscribe influxbatch

MQTT Broker Sunucusundan Gelen Verilerin Alınması ve Verilerin Ayrıştırılarak Veritabanına
Kaydedilmesi için Gerekli Düğümler ve Bağlantılar.

Node-RED Platformu, Alınan Verileri Görselleştirme Amaçlı da Kullanılabilir. Bu Nedenle Programlama Kısmında JSON Verisini Tek Bir Topic Üzerinden Publish Etmenin Yanında, JSON Veri Yapısına Eklenen Tüm Veriler için Ayrı ve Farklı Topic Üzerinden de Publish Yapılmıştır. Ayrıca Ek Olarak JSON Veri Yapısına Eklenmeyen Zaman Bilgisi (Tarih – Saat Formatında) zamanBilgisi Topic’i Üzerinden Publish Edilmiştir. Arduino IDE Tarafındaki Kodlamada Zaman Bilgisini Alabilmek için NTP Server Kullanılmıştır. Publish Yapılan Topic’lere, Node-RED’de mqtt in Düğümleri Oluşturularak Subscribe Olunmuştur. Alınan Veriler Node-RED Platformunun Veri Görselleştirme Arayüzünde Gösterilmiştir.

nodered flow örneği

Node-RED Platformunda Oluşturulan Akış (Flow) ve Düğümler.

nodered örnek arayüz

Node-RED Kapı Arayüzü.


nodered örnek arayüz sensör

Node-RED Alarm Arayüzü.


Grafana

Grafana; Açık Kaynak Kodlu ve Web Tarayıcısı Üzerinde Çalışan, Verileri Görselleştirme Amacıyla Kullanılan Bir Yazılımdır. Grafana, Farklı Veri Kaynaklarından Veri Alabilir ve Aldığı Verileri Dashboard Üzerinde Gösterebilmektedir. Grafana Veri Görselleştirmenin Yanında Uyarı Verme (Alert) İşlemlerinde de Kullanılmaktadır. Grafana, InfluxDB Veritabanına Kaydedilen Verileri Gözlemlemek Amacıyla Kullanılmıştır. Bu Nedenle Grafana Üzerinde Dashboard Oluşturulmuştur ve Veritabanına Eklenen Verileri Anlık Olarak Gösteren Paneller Eklenmiştir.

grafana arayüzü

Grafana Dashboard 1

grafana arayüzü

Grafana Dashboard 2

Sonuç

Projede Sistem Odasının Kapı Güvenliği Üç Kontrol ile Güvenli Hale Getirilmeye Çalışılmıştır. Bu Üç Kontrolün Dışında, Sistem Odası Girişinin Bir IP Kamera ile 7/24 İzlenmesi, Sistem Kapısı Giriş Güvenliğine Kamera Ekleyerek Yüz Tanıma (Derin Öğrenme) Yapılması veya Parmak İzi Okuyucu Gibi Sistemler de Eklenebilir. Ayrıca Bu Kontrol İşlemlerinin ESP32 Tarafında Değil, Tamamen Sunucu (Node-RED, vb.) Tarafında Yapılması Sistemin Performansını Arttırabilir. Örnek Olarak Projede ESP32, Telegram Sunucusunu 1 Saniyede Bir Dinlemektedir. Bu İşlemi Node-RED ile Sunucu Tarafında Yaparak Telegram’dan Gelecek Gerekli Bilgiyi Alarak ESP32’ye Göndermek Çok Daha Performanslı ve Optimize Olacaktır. 

Projede Sensörlerden Anlık Olarak Sıcaklık, Nem, Gaz ve Duman Bilgileri Alınarak Veritabanına Kaydedilerek Grafana Web Yazılımı ile Gözlenmiştir ve Alınan Bilgilerden Biri veya Birkaçı Belirli Bir Eşik Değeri Geçerse Alarm Başlatılmıştır. Bu Kontrol İşlemini ESP32 Yerine Sunucu (Node-RED) Tarafında Yapılarak Alarm Bilgisini ESP32’ye Göndermek Daha Mantıklı Olacaktır. Ayrıca Sistem Odasının Dışarısındaki Sıcaklık ve Nem Değerlerine Göre Eşik Değerlerinin Adaptif Olarak Değişmesi için Bir Yapay Zekâ veya Bulanık Mantık Yöntemi Kullanılabilir. Örnek Olarak Dışardaki Sıcaklık 5 °C ise Sıcaklık Eşik Değeri 35 °C, Dışardaki Sıcaklık 30 °C ise Sıcaklık Eşik Değeri 40 °C Olarak Ayarlanabilir. Fakat Eşik Değerlerinin Elle Değiştirilmesi Değil, Sistemde Yapay Zekâ Kullanılarak Sıcaklık ve Nem Eşik Değerlerine Sistemin Kendisinin Karar Vermesi Sağlanabilir.

Proje Kodları

Kaynaklar

  1. ÇELİK, K., Sistem Odası Kurulumu Hakkında Her Şeyi Anlatıyoruz [online], https://www.kry.com.tr/sistem-odasi-kurulumu/
  2. Altay Grup, 2020, Sistem Odası Nedir? En Önemli Hususlar Nelerdir? [online], https://altaygrup.com/sistem-odasi-nedir/
  3. KARABÜK ÜNİVERSİTESİ BİLGİ İŞLEM DAİRE BAŞKANLIĞI NETWORK GRUBU, SİSTEM ODASININ ÖNEMİ [online], https://sistemnetwork.karabuk.edu.tr/sistem_odasi/sistem_odasi.html
  4. BAŞER, O., 2020, ESP32 KULLANIMI (ARDUİNO İLE PROGRAMLAMA) [online], http://www.elektrobot.net/esp32-kullanimi-arduino-ile-programlama/
  5. ROBOTİSTAN, HC-SR501 Ayarlanabilir IR Hareket Algılama Sensörü – Pir [online], https://www.robotistan.com/hc-sr501-ayarlanabilir-ir-hareket-algilama-sensoru-pir
  6. Youtube SendeKodYaz, 2020, PIR Sensörü Hareket Sensörü Arduino ile Nasıl Çalışır, Bağlanır, Hassasiyet ve Zaman Ayarı [online], https://www.youtube.com/watch?v=FpqdxuC9Sn8
  7. SEMİZ, T.Y., 2015, Servo Motor Nedir? Çeşitleri ve Çalışma Prensibi [online], https://maker.robotistan.com/rc-servo-motor-nedir/
  8. ROBOTİSTAN, Tower Pro SG90 RC Mini (9gr) Servo Motor [online], https://www.robotistan.com/tower-pro-sg90-rc-mini-servo-motor
  9. ROBOTİSTAN, DHT11 Isı ve Nem Sensörü Kart [online], https://www.robotistan.com/dht11-isi-ve-nem-sensoru-kart
  10. Motorobit, Yanıcı Gaz ve Sigara Dumanı Sensör Kartı - MQ-2 [online], https://www.motorobit.com/urun/yanici-gaz-ve-sigara-dumani-sensor-karti-mq-2
  11. DUYGULU, Y.E., MQTT Nedir? [online], https://basarimuhendislik.com/mqtt-nedir/
  12. Eczacıbaşı Bilişim, MQTT Nedir? IoT ile Bağlantısı Nedir? [online], https://www.ebi.com.tr/blog/mqtt-nedir-iot-ile-baglantisi-nedir/
  13. DERELİ, B., 2016, Node-Red ile Hızlı Uygulama Geliştirme [online], http://blog.burakdereli.net/2016/12/node-red-ile-hizli-uygulama-gelistirme/
  14. BERBER, M.C., 2019, Node-Red Nedir ? [online], https://medium.com/@muratcanberber/node-red-nedir-8f7b70d6e6a2
  15. ÖZENÇ, Ç., 2019, InfluxDB ve Grafana ile SQL Server Monitoring [online], https://www.caglarozenc.com/ms-sql-server/influxdb-ve-grafana-ile-sql-servermonitoring.html
  16. TERZIOGLU, F., 2019, Grafana,InfluxDB ve Telegraf Kullanarak Vmware Performans Raporlama ve Kapasite Planlama [online], https://www.farukterzioglu.net/grafanainfluxdb-ve-telegraf-kullanarak-vmwareperformans-raporlama-ve-kapasite-planlama/
  17. InfluxData, InfluxDB 1.8 documentation [online], https://docs.influxdata.com/influxdb/v1.8/
  18. AKSAN, C.E., 2021, Grafana Nedir? [online], https://ceaksan.com/tr/grafana-nedir

Bu İçerikleri de Beğenebilirsiniz

Yorum Gönder