anil-yildiz.comanil-yildiz.com/wp-content/uploads/2018/05/akilhane.docx · web viewakıllı ev...
TRANSCRIPT
İÇİNDEKİLER1.GİRİŞ 4
1.1 İş Fikri ve Çıktısı 4
1.2 İş Fikrinin Türü ve Kullanım Alanları 4
1.3 Mevcut Teknolojilerle Karşılaştırılması 4
1.4 Pazar Analizi ve Kullanıcı Kitlesi 4
2.PLANLAMA 4
2.1 Giriş 4
2.2 Projenin Amacı 5
2.3 Projenin Özeti 5
2.4 Proje İş Zaman Planı 6
2.5 Proje Ekip Yapısı 7
2.6 Önerilen Sistemin Teknik Tanımları 7
2.7 Anahtar Sözcükler 8
2.8 Kullanılan Geliştirme Ortamları ve Özel Araçlar 8
2.9 Proje Standartları, Yöntem ve Metodolojiler 8
3.ÇÖZÜMLEME 9
3.1 Teknolojik Gelişime Katkısı 9
3.2 Mevcut Sistemin İncelenmesi 9
3.3 Sistemin İşlevsel Modeli 10
3.4 Sistemin Sınıf Diyagramı 11
3.5 Sistemin Nesne Diyagramı 12
3.6 Sistemin Veri Tabanı Diyagramı 13
3.7 Sistemin Varlık İlişki Diyagramı 14
3.8 Sistemin Activity Diyagramı 15
3.9 Sistem Genel Bakış Diyagramı 15
4.SİSTEM TASARIMI 16
4.1 Genel Tasarım Bilgileri 16
4.2 Yazılım Tasarımı 16
4.3 Genel Sistem Tasarımı 17
4.4 Süreç Tasarımı 18
4.5 Arayüzler 20
4.5.1 Web Arayüzü20
4.5.2 Mobil Arayüzü 22
1.1. İş Fikri ve Çıktısı
Akıllı ev yönetim sistemi, günlük hayatta evin içerisinde yapılan değişiklikleri, ev
dışından da değiştirilip yönetilmesine imkan sağlayan bir üründür. İnsanların mekandan
bağımsız, bulundukları konumdan, kendilerine tanımlanan erişim yetkileri dahilinde eve
müdahil olabilmelerini sağlar.
1.2. İş Fikrinin Türü ve Kullanım Alanları
Akıllı Ev Yönetim Sistem’i, kullanıcıların zamanlarını verimli kullanabilmelerini ve
evlerini uzaktan yönetip erişebilmeleri için oluşturulmuş bir uygulamadır. Kullanıcılar akıllı
telefonları ya da bilgisayarları ile evlerinde bulunan ve Ev Yönetim Sistemi’ne bağlı olan
Isıtma-soğutma sistemlerini, ışıkları, vanaları, sulama sistemlerini, giriş-çıkış kontrollerini,
nem-hareket-gaz sensörlerini ve güvenlik durumunu internet üzerinden uzaktan ve anlık
olarak kontrol edebilmesine olanak sağlamaktadır. Sistem bir eve uygulanabileceği gibi aynı
zamanda ofis, depo gibi farklı alanlarada entegre edilebilir.
1.3. Mevcut Teknolojilerle Karşılaştırılması
Var olan mevcut teknolojide Ev yönetim sistemleri bir kumanda ile evin içinden
yönetilmektir. Bu sistemler evin içindeyken size yönetim imkanları sunmakta fakat evden
çıkılması durumunda sadece güvenlik tedbirleri almakta ve uzaktan kontrol yapabilme
özelliği bulunmamaktadır. Akıllı ev yönetim sisteminde ise internete bağlı olma durumunuzda
evinizdeki cihazlara uzaktan ulaşabilir ve istediğiniz gibi yönetebilirsiniz.
Sistemde bir başka yenilik de Server bağlantısı Restfull Web Service ile sağlıyor
olmasıdır. Restfull Web Service kullanımı, sistemi daha hızlı, güvenli ve efektif
kullanabilmesini sağlar.
1.4. Pazar Analizi ve Kullanıcı Kitlesi
Akıllı Ev Yönetim Sistemi evinin güvenliğini ve kontrolünü önemseyerek sürekli
kontrol altında tutma ihtiyacı duyan, teknolojiyi hayatın her alanını kolaylaştırması için daha
efektif ve etkili şekilde kullanmak isteyen kullanıcılara hitap etmektedir.
1. GİRİŞ
2. PLANLAMA
2.1. Projenin Amacı
Projenin amacı kullanıcıların bulundukları konumdan, kullandıkları platformdan
bağımsız olarak, evlerinin içerisindeki herhangi bir araçta değişiklik yapmasını ya da kontrol
edebilmesini sağlamak için gerekli olan altyapıyı oluşturmaktır.
Teknolojiyi kullanarak, insanların evlerinin içerisindeki bütün aygıtlara
hükmedebilmesini amaç belirliyoruz.
2.2. Projenin Plan Kapsamı
Kullanıcılar ev içerisinde bulunan perdelerin, ışıkların, sulama sisteminin, kapıların açık
olup olmadığını kontrol edebilir veya durumunu değiştirebilir. Güvenlik modunun durumunu
değiştirebilir. -Eğer güvenlik modu açıksa hareket sensörü aktif hale gelir ve kullanıcıya
bildirim gönderir.- Evin kapısındaki bildirim ekranına dışarıdan veri gönderebilir ve yazıyı
değiştirebilir. Evde bulunan kontrol edilebilir araçlar genel olarak aşağıdaki gibidir:
Işıklar
Perdeler
Kapılar
Klima
Vanalar
Bahçe Sulama Sistemi
Hareket Sensörü
Isı-Nem Sensörü
Evin içerisinde bulunan cihazları kullanıcılar bir çok farklı yöntemle değiştirebilir.
Server ile haberleşme REST API kullanılarak gerçekleştiği için sistemin diğer platformlara
entegresi konusunda zorluk çekilmeyecektir. Projede kullanılacak Frameworkler;
RestFull Web Service – PythonFlask
Web Arayüz – Flask Web Framework
Android Uygulaması - AndroidStudio
Arduino – Arduino IDE
Veritabanı – SQLite
Server – Raspberry Pi 2
Sistemin Server ile haberleşmesi Restfull Web Service ile olacaktır. RestFull Web Service
Client’lar ile HTTP Metotlarıyla Json formatında haberleşir. Client’lardan gelen Request’leri
inceleyerek sonuçlarına göre geriye HTTP metodundan oluşan bir Response döndürür.
Şekil 1RestFull Web Service
2.3. Projenin Ekip Yapısı
Proje pek çok modüllerden oluşacaktır. Proje yöneticisi projenin geliştirilişini izlerken
programcılar modülleri geliştirecek ve ardından birleştirme işlemi gerçekleştirilecektir.
Modüller birleştirildikten sonra yazılım, donanım sistemine uygulanacaktır.
Şekil 8 Ekip Yapısı
2.4. Projenin İş-Zaman Planı
Projede Android kısım ile birlikte Restfull Web Service yapılmaya başlanacak.
Server tarafında REST API kısmı bittikten sonra Flask ile bir Web Arayüz yazılacak. Arduino
ile Server haberleşmesi tamamlandıktan sonra Arduino üzerinden aygıtların iletişimi ve
kontrolü sağlanacak. Bu kısım başarıyla bitirildikten sonra Server’a bağlanılacak. Bu sırada
Android Uygulama kısmında Push Notification modülü bitirilecek. Proje teslim tarihine 2
hafta kala ise Test işlemlerine başlanacak.
Şekil 9 Zaman--İş Planı
2.5. Anahtar Sözcükler
Restapi, arduino, pyhton, flask, web service, android, smarthome
2.6. Proje Standartları, Yöntem Ve Metodolojiler
Projede Çevik Tasarım Modeli uygulanacaktır. Proje içerisindeki her bir döngüde yazılımın bir sürümünü küçük bir proje olarak ele alınacak ve test edilecek. Her döngüde projenin öncelikleri yeniden belirlenir ve proje boyunca ortaya çıkan değişikliklere uyum sağlanır.
Şekil 2 Çevik Tasarım Modeli
Proje kapsamında Agile(Çevik) Model kullanılacaktır. Çevik modelde Scrum metodu uygulanacaktır. Scrum’da projenin ana gereksinimleri önem sırasına göre bir liste(Product Backlog) olarak toplanır. Bu listedeki her bir eleman küçük yapılara dağıtılarak(sprint), daha küçük alt projeler oluşturulur. Artık küçük birimler olduğundan değişimin üstesinden gelmek çok daha kolay olur. Her sprint veya planlamaya göre birkaç sprint ortaya muhtemel bir ürün çıkarır. Bu ürün, müşteri ile kabul kriterleri konusunda sonradan yaşanması muhtemel problemleri erken farketmemizi sağlayacaktır.
Şekil 6Scrum Metodu
2.7 Kullanılan Özel Geliştirme Araçları ve Ortamları
Evin içerisindeki sistemi kontrolü için Arduino Derleyicisi kullanılacaktır.
Sistem uzaktan kontrol edilebilmesi ve bütün ciharlarla uyumlu olabilmesi için PythonFlask
Framework kullanılarak RestFull web servis yazılacaktır.
Client tarafı için geliştirilen akıllı telefon uygulaması için AndroidStudiokullanılacaktır.
Veri Tabanı olarakmySQL kullanılacaktır.
Proje Zaman ve iş planlaması için MS Visio Kullanılacaktır.
UML diyagram tasarımı için SmartDraw 2010, MS Visio kullanılacaktır.
Grafik tasarımı için AdobePhotoshop CS6 kullanılacaktır.
Proje Dökümantasyonu için MS Word kullanılacaktır.
3. ÇÖZÜMLEME
3.1. TEKNOLOJİK GELİŞİME KATKISI
Teknolojik gelişime herhangi bir katkısı bulunmamaktadır.
3.2. MEVCUT SİSTEMİN İNCELENMESİ
Var olan sistemlerin kullanım zorluğu, işlevsel olmaması gibi sebepler kullanım
sırasında ciddi sıkıntılar yaşatmaktadırlar.Ayrıca tüm istekleri karşılamaması ve istenilen
hızda çalışamıyor olması da mevcut sistemin eksiklikleri arasında sayılabilir. Mevcut sistemin
diğer bir dezavantajı ise maddi yönden pahalı olmasıdır.
3.3. SİSTEMİN İŞLEVSEL MODELİ (USE-CASE)
Projemizde temel olarak iki tür kullanıcı bulunmaktadır. Bunlardan birisi sisteme
direk bağlantısı olan evdeki kullanıcı ve sisteme internet üzerinden bağlanan uzaktaki
kullanıcı. Bu profiller ise ebeveyn, admin ve ekran olmak üzere üçe ayrılmaktadır.
Şekil 7Sistemin Use-Case Diyagramı
Ebeveyn Profili
Şekil 8 Ebeveyn Profili
Admin Profili
Şekil 9 Admin Profili
Ekran Profili
Şekil 10 Ekran Profili
Sistemin nesne diyagramı eksik?
3.4 SİSTEMİN VERİ TABANI DİYAGRAMI
Önerilerin sistemin veri tabanı bağlantıları aşağıdaki gibi olacaktır.
Şekil 11Veritabanı Tasarımı
Veri sözlüğü eksik?
Varlık ilişki diyagramı eksik?
Activity diyagramı eksik?
3.5 SİSTEMİN GENEL BAKIŞ DİYAGRAMI
Önerilerin sistemin veri tabanı bağlantıları aşağıdaki gibi olacaktır.
Şekil 12Sistemin Genel Bakış Diyagramı
4. SİSTEM TASARIMI
4.1. Sistem Mimarisi
Temel hedef, sistemin yapısına ait diyagramları oluşturmaktır. Katmanlı sistem mimarisi diyagramlarından yola çıkarak sistemdeki işlerin işleyişinin tanımlanmasıdır.
Şekil 13 Katmanlı Sistem Mimarisi
Kullanıcı Arayüzü
Veriler
Çeviriler
Otomasyon Motoru
Depolanmış Veri Tabanı
Veri Tabanı Sorguları
4.2. Arayüzler
4.2.1 Login Ekranı
Akıllı telefon üzerinden sisteme login olarak kullanılcak olan arayüz aşağıdaki
gibidir
Şekil 14Login Activity
4.2.1 Ana Ekran
Akıllı telefon üzerinden sisteme loginolunduktan sonra eve dair her türlü
bilginin bulunduğu ve cihazların yönetileceği arayüz aşağıdaki gibidir.
Şekil 14Main Activity