Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -5 (Veritabanı)
Herkese Merhaba…
Serinin bu son bölümünde sizlerle açık kaynak veritabanlarından biri olan mongoDB kurulumunu ele alacağız. Fakat kurulum aşamasına geçmeden önce Nesnelerin İnterneti (IoT) ile Akıllı Sistemler serisine ufak bir göz gezdirelim. Bu seri ile birlikte aslında ne yaptık ?
Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -1
Nesnelerin İnterneti (IoT) nedir? IoT bir sistem tasarlamak için bize gerekenler nelerdir bunlara cevap aradık.
Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -2 (Sunucu Kurulumu)
Sunucu üzerinde Docker çalıştırmayı ve Docker kullanarak IoT bileşenlerin kurulum süreçlerini adım adım ele aldık.
Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -3 (Node-Red)
IOT sistemler dağıtmayı ve yönetmeyi kolaylaştıran IoT yönetim platformlarından Node-RED’i kullanarak MQTT protokolü üzerinden mesaj gönderip daha sonra ise gönderdiğimiz bu mesajı yine MQTT protokolü üzerinden nasıl okuyabileceğimizi öğrendik.
Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -4 (IoT Cihaz)
Standart bir lambayı tasarladığımız IoT cihazı ile uzaktan kontrol ederken, lambanın tükettiği akım miktarının ise ölçümünü yaptık. IoT cihaz yapmak için ihtiyaç duyacağımız bileşenleri tanıdıktan sonra devresini kurup uzaktan kontrolünü ise Node-Red üzerinden gerçekleştirdik.
Hazırsanız MongoDB kurulumuna geçebiliriz….
MongoDB
MongoDB , yüksek hacimli veri depolama için kullanılan belge odaklı bir NoSQL veritabanıdır. MongoDB, geleneksel ilişkisel veritabanlarında olduğu gibi tabloları ve satırları kullanmak yerine koleksiyonları ve belgeleri kullanır. Belgeler, MongoDB’deki temel veri birimi olan anahtar/değer çiftlerinden oluşur. Koleksiyonlar, ilişkisel veritabanı tablolarının eşdeğeri olan belge ve işlev kümelerini içerir. JavaScript Object Notation (JSON) benzer , ancak Binary JSON (BSON) adlı bir değişken kullanır. BSON kullanmanın yararı, daha fazla veri türünü barındırmasıdır.
Kurulum
MongoDB kurmak için sunucunuzda aşağıdaki komutu çalıştırın.
docker run -d --name mongodb -p 27888:27017 -e MONGO_INITDB_ROOT_USERNAME=mongo -e MONGO_INITDB_ROOT_PASSWORD=mongo mongo
Bu parametrelerin ne işe yaradığına gelecek olursak;
docker run
görüntüyü çalıştırır ve kapsayıcıyı başlatır.-d
konteyneri arka planda çalıştırır.--name mongodb
kapsayıcı için kolay bir ad tanımlar.-p 27888:27017
yerel bağlantı noktası 27888'in dahili 27017 bağlantı noktasıyla eşlendiğini bildirir.-e MONGO_INITDB_ROOT_USERNAME=mongo
kullanıcı adıdır.-e
ortam değişkenlerini ayarlar.-r MONGO_INITDB_ROOT_PASSWORD=mongo
kullanıcı şifresidir.mongo
çalıştırılacak görüntünün adıdır.
Kurulumu tamamladığımıza göre veritabanını kolay ve etkin kullanabilmek için bir GUI aracı indirmemiz gerekmektedir. Ben bu aşamada çok sık kullandığım MongoDB Compass’ı kullanacağım, ama önce MongoDB Compass Nedir ? Bu soruya yanıt bulalım.
MongoDB Compass
MongoDB Compass verilerinizi görsel bir ortamda sorgulamak, toplamak ve analiz etmek için güçlü bir GUI’dir. Compass’ın kullanımı ücretsizdir. macOS, Windows ve Linux’ta çalıştırılabilir.
Aşağıdaki linkten MongoDB Compass’ı işletim sisteminize göre indirip kurun.
Compass aracını açın. Karşınıza gelen ekranda bulunan URI kısmına aşağıdaki komutu yapıştırın ve Connect butonuna basın.
Not: serverIP alanına sunucu adresinizi yazmayı unutmayın !
mongodb://mongo:mongo@serverIP:27888/?authSource=admin
Veritabanına bağlandıktan sonra sol alt tarafta bulunan Create Database(+) seçeneğine tıklayın. Database Name alanından veritabanıza uygun bir isim verin. Collection Name yerine ise Node-Red üzerinden toplayacağımız akım verilerini kaydedeceğimiz dizine isim girin. Ardından Create Database butonuna basın.
Tarayıcınızdan serverIP:1883 adresini kullanarak Node-Red ekranına giriş yapın. Manage Palette seçeneğine tıklayarak mongodb4 yazarak çıkan kütüphanenin kurulumunu sağlayın. Eğer bu adımların nasıl yapılacağını unuttuysanız serinin bir önceki bölümü olan Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -4 (IoT Cihaz) yazı dizisine geri dönüp inceleyebilirsiniz.
Aşağıdaki GitLab adresinde sizler için hazırlamış olduğum Node-Red-MongoDB.json belgesini Node-Red sayfanıza import edin.
https://github.com/mertkslkc/mert-IoT.git
Daha sonra mongodb4 düğününe tıklayarak URI kısmında bulunan serverIP yazan yere sunucu adresinizi girin. Database alanına hatırlarsanız yukarıda ben iot-database parametresini vermiştim. Eğer sizin parametreniz farklı ise buraya database isminizi girmeniz gerekmektedir.
Collection kısmına ise yine ben current-data ismini vermiştim şayet sizin verdiğiniz parametre farklı ise bu kısmı da güncelleyin ve Done butonuna basın.
Son durumda düğümünüz aşağıdaki gibi görünecektir. Veritabanına Node-Red üzerinden kurulan bağlantı başarılı ise düğümün altında connected ibaresi yer almaktadır. Değilse mongodb4 düğümüne girdiğiniz parametreleri kontrol edin.
Son durumda MQTT düğümünden gelen akım değerlerini MongoDB Compass uygulaması üzerinden veritabanınıza zamana bağlı şekilde kaydedildiğini göreceksiniz.
Böylece sıfırdan IoT bir sistem tasarlamayı hem teorik hem de uygulamalı olarak aşama aşama öğrenmiş olduk. Umarım bu seri sizlere yardımcı olur. Nesnelerin İnterneti (IoT) ile Akıllı Sistemler serisini burada sonlandıracağım. Ancak bu bir veda değil…. İlerleyen bölümlerde veritabanına kaydettiğimiz bu verileri ElasticSearch kullanarak anomali tespit ile veri sınıflandırmayı ve Telegram gibi mobil uygulamalara entegrasyonu farklı seriler halinde anlatmayı düşünüyorum. Herhangi bir sorunuz varsa veya yazılmasını istediğiniz bir seri olursa lütfen iletişime geçmekten çekinmeyin. Kendinize iyi bakın görüşmek üzere….