AKILLI EV OTOMASYON SİSTEMİ

Benzer belgeler
AKILLI EV OTOMASYON SİSTEMİ

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 3 Asp.NET Doğrulama Kontrolleri

ASP.NET ile Bir Web Sitesi Oluşturma

Çözüm :RadioButtonList1 kontrolunuekliyoruz.enableautopostback iaktifleştiriyoruz..

ASP.NET M U S T A F A K I L I Ç M C S E, M C D B A

12 Ocak 2012 / Perşembe

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

Bölüm 10: PHP ile Veritabanı Uygulamaları

Android Ders Notları

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

Şekil 2.1. Bu bölümde ASP.Net platformumuzu açtığımızda Toolbox penceresindeki Standart bölümündeki kontrollerden bahsedeceğiz.(şekil 2.2) Şekil 2.

HSancak Nesne Tabanlı Programlama I Ders Notları

1) Visual Studio da WebSiteemlakci adında yeni bir site oluşturuyoruz.

PROGRAMLAMA DERSİ 1. İNTERNET

Masa üstünde vt34.mdb dosyası var, onu projemize eklemek için, App_Data ya sağ tıkla Add Existing Item vt34.mdb adlı dosyayı seç Add

ADO.NET. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

ASP.NET Versiyonları 8 ASP.NET 1.0 ve ASP.NET ASP.NET ASP.NET 4.0 9

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

TÜRKİYE ESNAF VE SANATKARLARI KONFEDERASYONU Online İşlemler (Basılı Evrak Stok Takip Sistemi ) Kullanma Kılavuzu

GEÇERLİLİK KONTROLLERİ VALİDATİON CONTROLS. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

"SQL Server Management Studio" yazılımını yüklemek için alttaki resmi sitesinden 180 günlük deneme sürümünü indirebilirsiniz.

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage

VERİ TABANI YÖNETİM SİSTEMLERİ II. 9. FORMLAR ve ORACLE FORMS PROGRAMINDA FORM OLUŞTURMA

ADO.NET VERİTABANINA BAĞLANTI. Bir web formu üzerinden veritabanına bağlantımızı anlatacağım. UYGULAMA 1

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Önce Access açıp,masaüstü ne, vt.mdb adlı veri tabanı dosyasını oluşturuyoruz. Kayıt türünü seçiyoruz

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Response : Sunucunun istemciye veri yollamasını

1. Mutabakat.zip dosyası açılır. 2. Mutabakat klasörü içindeki Mutabakat.exe dosyası çalıştırılır.

HSancak Nesne Tabanlı Programlama I Ders Notları

PEY-D810 SĠNYALĠZASYON SĠSTEMĠ

EKOM WEB DESIGNER PROGRMI KULLANMA KILAVUZ. 1 - Web Sayfası Tasarımı Oluşturma / Var Olan Tasarımı Açma:

C# ile NJ Simulatöre Bağlanmak

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Nesne Tabanlı Programlama

WEB KULLANICI KONTROLLERİ ve ANASAYFA KULLANMA(Master Page)

C Sharp /Veri tabanı işlemleri

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

Kod Listeleri Genel Yapısı

İçindekiler Tablosu Talep Destek Yönetim Sistemi Programı...3

App İnventor-Pide Sipariş Uygulaması

VeriTabanı Uygulamaları

KULLANIM KILAVUZU. Reserve Online Reservation Systems

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

İnternet Programcılığı

Asp.Net Veritabanı İşlemleri

Web sayfalarında en önemli bir konu halini alan bilgi girişi ve bunların kontrollerini yapan kontrollerdir (Şekil 3.1). Şekil 3.1

İdari Birimler Yönetim Paneli Kullanma Kılavuzu Bilgi İşlem Daire Başkanlığı Web Tasarım Ve Yazılım Birimi

Luca NET Kobi Ticari Yazılımında ilk yapılacaklar

1 Aralık 2011 / Perşembe

ASP.Net validation controls validate the user input data to ensure that useless, unauthenticated or


Nesne Tabanlı Programlama

C# nedir,.net Framework nedir?

DetailsView. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek

Ortam İzleyici Kullanım Kılavuzu

Metin İşlemleri, Semboller

SIMMAG Kullanım Kılavuzu. Adem Ayhan Karmış. Ana Ekran

SORGULAR. Öğr.Gör.Volkan Altıntaş

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

NJ-NJ ETHERNET/IP HABERLEŞMESİ

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

e-fatura Portalı Kullanım Kılavuzu

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

HSancak Nesne Tabanlı Programlama I Ders Notları

Sisteme giriş yapıldığında ana sayfa üzerinde işlem menüleri, Hızlı erişim butonları ve mail gönderim istatistikleri yer alır.

User Control : Standart bir kullanıcı arabirimi oluşturarak; bir uygulama içinde birden fazla. Siteye User Control Eklemek : 22 Mart 2012 / Perşembe

Ürün Ekleme Kitapçığı

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

Programın Tanıtımı

UZAKTAN EĞİTİM MERKEZİ

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

HESAP MAKİNASI YAPIMI

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

ÖĞRENME FAALİYETİ 2 ÖĞRENME FAALİYETİ 2

YEDEKLEME PROGRAMI KURULUM VE KULLANIMI

MS Access. üzerinde. defa çalıştırıldığında

2- Kontrol Sil En Öne Getir En Arkaya Gönder Resim Özellikler: Genel Özellikler...

FIRAT ÜNİVERSİTESİ WEB TABANLI KÜTÜPHANE OTOMASYONU

IPACK LADDER. Arayüz Dökümantasyonu

Programlama Yazılımı ile Web Sitesi Oluşturma

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

WiFi Relay Sayfa 1 / 11. WiFi Relay. Teknik Döküman

Kullanım Kılavuzu RADYOLOJİ MODÜLÜ

HYS KANITLAYICI BELGE KILAVUZU. TEMMUZ-2014 Uygulama Geliştirme ve Destek Şubesi

Sağ Tıkla. 5 Ocak 2012 / Perşembe. Yeni bir site açıyoruz. File New Web Site Browse yeni klasör ocak5persembe OK

Ecat 8. Hakbim Bilgi İşlem A.Ş. Versiyon

MUĞLA SITKI KOÇMAN ÜNĠVERSĠTESĠ. BĠLGĠ ĠġLEM DAĠRE BAġKANLIĞI. AKADEMĠK PERSONEL KĠġĠSEL WEB SAYFASI KULLANIM KILAVUZU MUKWEB ĠÇĠNDEKĠLER TABLOSU

robotsan idea Kontrol Kartı (idea Board) Kurulum

Transkript:

T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü AKILLI EV OTOMASYON SİSTEMİ 210360 Alper AKKAYA 210397 Altan Kerim İLHAN 210320 Semih KAÇAR Yrd. Doç. Dr. Yusuf SEVİM Mayıs 2012 TRABZON I

II

T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü AKILLI EV OTOMASYON SİSTEMİ 210360 Alper AKKAYA 210397 Altan Kerim İLHAN 210320 Semih KAÇAR Yrd. Doç. Dr. Yusuf SEVİM Mayıs2012 TRABZON i

ii

LİSANS BİTİRME PROJESİ ONAY FORMU Alper Akkaya, Altan Kerim İlhan ve Semih Kaçar tarafından Yrd. Doç. Dr. Yusuf Sevim yönetiminde hazırlanan Akıllı Ev Otomasyon Sistemi başlıklı lisans bitirme projesi tarafımızdan incelenmiş, kapsamı ve niteliği açısından bir Lisans Bitirme Projesi olarak kabul edilmiştir. Danışman : Yrd. Doç. Dr. Yusuf SEVİM Jüri Üyesi 1 : Jüri Üyesi 2 : Bölüm Başkanı : Prof. Dr. İsmail H. ALTAŞ iii

iv

ÖNSÖZ Bu projenin hazırlanmasında emeği geçenlere, projenin son halini almasında yol gösterici olan kıymetli hocam Sayın Yrd. Doç. Dr. Yusuf SEVİM e şükranlarımızı sunmak istiyoruz. Ayrıca bu çalışmayı destekleyen Karadeniz Teknik Üniversitesi Rektörlüğü ne Mühendislik Fakültesi Dekanlığına ve Elektrik-Elektronik Mühendisliği Bölüm Başkanlığına içten teşekkürlerimizi sunarız. Her şeyden öte, eğitimimiz süresince bize her konuda tam destek veren ailemize ve bize hayatlarıyla örnek olan tüm hocalarımıza saygı ve sevgilerimizi sunarız. Mayıs, 2012 Alper AKKAYA Semih KAÇAR Altan Kerim İLHAN v

vi

ĠÇĠNDEKĠLER Lisans Bitirme Projesi Onay Formu Önsöz İçindekiler Özet Semboller Ve Kısaltmalar iii v vii ix xi 1.Giriş 1 2. Teorik Altyapı 3 2.1. Web Uygulamaları Geliştirme 3 2.1.1. Asp (Active Server Page) 3 2.1.2. Asp.Net 3 2.1.3. Visual Studio 2010 3 2.1.3.1. Toolbox Standart Kontrolleri 4 2.1.3.2. Toolbox Validation Kontrolleri 11 2.1.3.3. Toolbox Data Kontrolleri 13 2.1.3.4. Toolbox Ajax Extensions Kontrolleri 19 2.1.4. Veri Tabanı İşlemleri 19 2.1.5. Asp.Net Veri Tabanı Bağlantısı 22 2.1.6. Veri Türleri (Değişkenler) ve Tür Dönüşümleri 25 2.1.7. Metotlar (Fonksiyonlar) 28 2.1.8. C# Ortamında Operatörler 30 2.1.9. Statik ve Dinamik Sayfalama 31 2.2. USB (Universal Serial Bus) 33 2.2.1. USB Versiyonları 33 2.2.2. USB Kablosu 34 2.2.3. USB Veri Transfer Modları 35 2.2.4. USB nin Avantaj ve Dezavantajları 36 2.2.5. USB de Veri İletişimi 36 2.2.6. Satıcı Kimliği (VID) ve Ürün Kimliği (PID) 37 2.3. Devrelerde Kullanılan Elemanlar 37 2.3.1. Işık Sensörü (LDR) 37 2.3.2. Sıcaklık Sensörü (LM35) 38 2.3.3. Op-Amp (UA-741) 38 vii

2.3.4. Regülatör 39 3. Devrelerin Tasarımı 40 3.1. Sıcaklık Ölçüm Devresi 40 3.2. Işık Ölçüm Devresi 43 3.3. USB Çıkışlı PIC Devresi 45 3.4. Simetrik Besleme Devresi 48 4.Sonuçlar 50 5. Yorumlar ve Değerlendirmeler 53 Kaynaklar 54 Ek-1 55 Ek-2 Standartlar ve Kısıtlar Formu 58 Özgeçmişler 60 viii

ÖZET Hızla gelişen teknolojiye ayak uydurmanın imkansız olduğu günümüzde, her yerde olduğu gibi evler için de teknolojik gelişmeler yaşanmaktadır. Bu gelişmeler zor olan hayat şartlarını biraz daha kolay ve çekilir hale getirmektedir. Öyle ki gelişen ev teknolojisiyle birlikte, siz eve gelmeden attığınız bir mesajla evi ısıtan, siz evde yokken kötü niyetli kişilere karşı evinizi savunan, evde oluşan herhangi kötü bir durumda polis, itfaiye vb. gibi gerekli yerlere ve size haber veren hatta tuvaletinizden aldığı idrar örneğini inceleyip inceleme sonuçlarınızı doktorunuza haber veren ev sistemleri geliştirilmiştir. Uzaktan ev kontrolünü sağlamanın birçok yolu vardır. Örneğin, cep telefonunuzdan sisteminize bir mesaj göndererek istediğiniz ev aletini kumanda edebilirsiniz. ix

x

SEMBOLLER VE KISALTMALAR Sembol ve Kısaltmalar VID PID HID Op-Amp ADC LDR PIC Anlamı Vendor ID Product ID Human Interface Device Operational Amplifier Analog Digital Converter Light Dependent Resistors Peripheral Interface Controller xi

xii

1. GĠRĠġ Yapılacak olan bu uygulamada internet ortamını kullanarak evimizde bulunan bilgisayar ile herhangi bir elektronik devreyi kontrol etmek veya bilgi almak olacaktır. Bu işlemi yapmak için donanım olarak bir bilgisayar haricinde mikroişlemci ve kontrol edeceğimiz devreye uygun çeşitli sensörler yer alacaktır. Sensörden alınan bu veri bilgisayarın anlayabileceği duruma getirilebilmesi için mikroişlemci ile işlenecek ve bilgisayara o sensörle ilgili bilgiler gönderilecektir. Alınan bu veriler Windows Form uygulamalarında geliştirilecek ve kullanıcının anlayabileceği duruma getirilerek internet ortamında hazırlayacak olduğumuz web sayfasına gönderilecektir. Yapılacak olan web tasarımı için ise Microsoft şirketinin geliştirdiği Visual Studio 2010 un Asp.Net dili olacaktır. Daha önce gerçekleştirilen projelerin çoğunda iletişim ortamı olarak RS-232 haberleşme protokolü kullanılmıştır. Gerçekleştirecek olduğumuz bu uygulamanın diğer yapılan uygulamalardan en büyük farkı bilgisayar ile devre arasındaki iletişim ortamının USB olmasıdır. Türkiye de USB üzerine yapılan çalışmaların kısıtlı olması sebebiyle kaynak gösterilememiştir.

Çizelge 1. İş zaman çizelgesi 1. Hafta Site tasarımı ve geliştirilmesi 2. Hafta Site tasarımı ve geliştirilmesi 3. Hafta Site tasarımı ve geliştirilmesi 4. Hafta Site tasarımı ve geliştirilmesi 5. Hafta Windows uygulama tasarımı ve geliştirilmesi 6. Hafta Windows uygulama tasarımı ve geliştirilmesi 7. Hafta Windows uygulama tasarımı ve geliştirilmesi 8. Hafta Devrelerin belirlenmesi 9. Hafta Devrelerin belirlenmesi 10. Hafta Simülasyon tasarımı 11. Hafta Simülasyon tasarımı 12. Hafta Devrelerin gerçeklenmesi 13. Hafta Devrelerin gerçeklenmesi 14. Hafta Maket evin gerçeklenmesi 15. Hafta Devrelerin ev üzerine montajı 2

2. TEORĠK ALTYAPI 2.1. Web Uygulamaları GeliĢtirme 2.1.1. Asp (Active Server Page) Asp web sayfaları hazırlayabilmek için Microsoft tarafından geliştirilmiş bir uygulamadır. İlgili script dillerinden istenen bir tanesi seçilerek yazılan program bir derleme sonucunda web ortamında kullanılacak olan bir html çıktısı üretir ve istemcinin sunucuya bilgi göndererek istediği veriyi alması şeklinde gerçekleşir. 2.1.2. Asp.Net Asp nin devamı olarak adlandırılır ve ortak bir dil(common language runtime) üzerine inşa edilmiştir. Görsel bir programlama dilidir. Herhangi bir.net dilinde yazılan bir program ortak dil olan MSIL koduna çevrilir yani hangi.net dilinde yazılmış olursa olsun çevrilen bu MSIL kodu değişmez. Daha sonra oluşturulan bu MSIL kodu kullanılan.net diline bağlı olarak makine diline dönüştürülmektedir. 2.1.3. Visual Studio 2010 Visual c# web programlamadan windows uygulamaları geliştirmeye kadar birçok uygulamanın yapılıp derlenebildiği tasarım geliştirme programıdır. Visual c# web programlama bölümü 2 kısımdan meydana gelmektedir. Bunlardan bir tanesi source ( kod yazımının yapıldığı ) diğeri ise design ( görsel ) kısımdır. Visual c# nesneye dayalı bir program olarak kullanılmasını sağlayan Şekil 1 de gösterilen toolbox aracıdır. Toolbox aracı kendi içerisinde çeşitli web programlama kontrolleri barındırmaktadır. Bu araçlar c# programının design bölümünde istenilen yere eklendikten sonra kontrolün üzerine çift tıklayarak kontrolün kod kısmına geçmiş oluruz. Ayrıca c# ortamında kullanılan her toolbox kontrolünün boyut, şekil, renk, yazı 3

gibi özelliklerinin ayarlanabildiği bir properties(özellikler) sekmesi bulunmaktadır ve properties sekmesi altında değiştirilebilen tüm kontrollerin kullanımı kodlama ile de değiştirilebilmektedir. Şekil 1.C# toolbox aracı 2.1.3.1. Toolbox Standart Kontrolleri a) Label Kontrolü Kullanıcıyı yönlendirmek amacıyla kullanılır. Yazı yazdırılmak istenen yere eklenir properties(özellikler) kısmından text özelliği ayarlanabileceği gibi kod kısmından da ayarlanabilir. b) Textbox Kontrolü Kullanıcı veri girişleri için kullanılır. Properties özellikleri; Autopostback: Kontrolün sunucuya bilgi gönderip göndermeyeceğini belirler. Maxlength: Kontrolün içine yazılabilecek maksimum karakter sayısını belirler. Textmode: Kontrolün türünü belirler. c) Buton Kontrolü Tetikleme kontrolüdür. Autopostback özelliği true seçilmiştir değişmez. 4

d) Linkbuton Kontrolü Özel bir buton kontrolüdür. Yazıya link vermek amacı ile kullanılır. Properties sekmesinin postbackurl özelliğinden link eklenebileceği gibi kontrolün yapması gereken işlem source bölümünde de kod olarak aşağıda gösterildiği gibi yazılabilir. Response.Redirect( gidilmek istenen site adresi ); e) Ġmagebuton Kontrolü Görev bakımından link buton ile aynı görevi yapar fakat kullanılacak olan link bir resmin içerisine gömülür. f) Hyperlink Kontrolü Link buton ile İmage buton karışımı olan bir kontroldür ve link verme işlemini kullanıcı tanımına göre ister yazı ister resim olarak yapar. g) Dropdownlist Kontrolü Aşağı doğru açılan text listedir. İçerisine liste manuel olarak girilebileceği gibi herhangi bir databaseden veri alımı da yapılabilir. h) Listbox Kontrolü Kutu içerisinde gösterilen liste kontrolüdür. Örnek Uygulama 1 Textbox kontrolüne girilen bir veriyi buton aracılığı ile label kontrolünde göstermek. Şekil 2 de gösterildiği gibi oluşturmuş olduğumuz web sayfamıza bir adet label, bir adet textbox ve bir adet button kontrolü ekliyoruz. Şekil 2. Örnek uygulama 1 için design bölümü Labelimizin properties sekmesinden text özelliğini siliyoruz böylece sayfamız çalıştığında labelimizin içinde bir veri olmadığı için sitemizde görünmeyecektir. Textbox kontrolündeki yazıyı buton aracılığı ile label kontrolüne aktaracağımız için buton kontrolünün kod yazma bölümüne gelerek kodlarımızı Şekil 3 te gösterildiği gibi ekliyoruz. 5

Şekil 3. Örnek uygulama 1 için buton kodları Daha sonra sitemizi çalıştırıyoruz. Şekil 4 te görüleceği gibi textboxa yazılan KTÜ yazısı butona tıklandığında label kontrolüne aktarıldı. Ayrıca c# programının bize sağladığı diğer özellik ise Şekil 4 te adres satırından görüleceği gibi bilgisayarımızda localhost adında yalancı bir sunucu oluşturmasıdır. Bu sunucu yaptığımız işlemleri internete koymadan nasıl çalıştığını gözleme imkanı vermektedir. Şekil 4. Örnek uygulama 1 sonuç sayfası Örnek Uygulama 2 Listbox kontrolünde yapılan seçime uygun verilerin labelde gösterilmesi. Şekil 5 te görüldüğü gibi yeni bir sayfa açıp şekilde olduğu gibi bir adet listbox ve bir adet labeli ekliyoruz. Listbox kontrolümüzün içeriğini edit items kısmından düzenliyoruz ve enableautopostback kısmını true olarak gösteriyoruz. Eğer verilerimiz bir databasede ise choose datasource diyebiliriz. 6

Şekil 5. Örnek uygulama 2 design bölümü Listbox kontrolünün kod yazma bölümüne giriyoruz ve kodlarımızı Şekil 6 da gösterildiği gibi giriyoruz. Şekil 6. Örnek uygulama 2 listbox kodları Uygulamamızı localhostta çalıştırdığımızda uygulama sonucu Şekil 7 de görülmektedir. 7

Şekil 7. Örnek uygulama 2 sonuç sayfası i) Checkbox Kontrolü Seçim yapan bir kontroldür. Checked özelliği sayesinde kullanıcıların seçim yapmasını sağlamaktadır. Eğer yapılan seçim bir sonuç döndürecekse autopostback özelliği true olmalıdır. j) Checkboxlist Kontrolü Checkbox kontrolünün liste olarak düzenlenmiş şeklidir. k) Radiobuton Radiobuton aynı checkbox gibi seçim yapan bir kontroldür. l) Radiobutonlist Kontrolü Radiobuton kontrolünün liste olarak düzenlenmiş halidir. Checkboxlist kontrolünden farklı olarak birden fazla seçim yapmaya izin vermeyen bir kontroldür. m) Fileupload Sisteme dosya yüklenmesini sağlayan bir kontroldür ve genellikle kullanıcı etkileşimi ile kullanılır. n) Multiview Sadece kullanıcının yaptığı seçimleri göstermek amacıyla view kontrolleri ile birlikte kullanılırlar. o) View Multiview ile kullanılır yazılan koda göre aktif veya pasif durumda olabilirler. Örnek Uygulama 3 Checkbox ile yapılan seçimleri labeller aracılığı ile kullanıcıya gösterilmesi. C# ile yeni bir web sayfası açıyoruz ve kontrollerimizi Şekil 8 de gösterildiği gibi üç adet checkbox ve üç adet labeli sayfamıza ekliyoruz. Labellerimizin text özelliğini kaldırıyoruz ve checkboxlarımızın text özelliklerini düzenliyoruz. Ayrıca yapılan seçim bir sonuç döndüreceğinden checkbox kontrolümüzün autopostback özelliğini 8

true yapıyoruz ve sürekli kullanımda hataları engellemek için enableviewstate özelliğini false yapıyoruz. Şekil 8. Örnek uygulama 3 design bölümü Her bir checkbox kontrolünün yapacağı işlemler farklı olacağından yazılan kodlarda her bir checkbox için ayrı olacaktır. Checkboxların kod yazma kısımlarının düzenlenmesi Şekil 9 da gösterilmiştir. Şekil 9. Örnek uygulama 3 checkbox kodları Uygulamamızı localhostta çalıştırdığımızda elde edilen sonuç Şekil 10 da gösterilmektedir. 9

Şekil 10. Örnek uygulama 3 sonuç sayfası Örnek Uygulama 4 Radiobutonlist kontrolü ile yapılan seçim sonuçlarını, multiview ve view yardımı ile kullanıcıya göstermek. Yeni bir web sayfası oluşturuyoruz ve sayfamıza bir adet radiobutonlist, bir adet multiview ve multiview içerisine yapacağımız gösterim sayısı kadar view kontrolünü Şekil 11 de gösterildiği gibi ekliyoruz. Radiobutonlist yapılan işlem sonucunda bir değer döndüreceğinden autopostback özelliğini true hataları engellemek için ise enableviewstate özelliğini false yapıyoruz. Şekil 11. Örnek uygulama 4 design bölümü Her bir buton için farklı gösterim kullanacağımızdan dolayı if-else komut yapısını kullanarak her bir butonu birer resme Şekil 12 de gösterildiği gibi atıyoruz. 10

Şekil 12. Örnek uygulama 4 radiobutonlist kodları Uygulamamızı localhostta çalıştırdığımızda elde edilen sonuç Şekil 13 te gösterilmektedir. Şekil 13. Örnek uygulama 4 sonuç sayfası 2.1.3.2. Toolbox Validation Kontrolleri a) Requiredfieldvalidator Kontrolü Kullanıcının kontrol edilen toolbox kontrolünü boş geçmemesini sağlar ve kontrol edilecek toolbox kontrolü requiredfieldvalidator kontrolünün properties sekmesindeki 11

control to validate özelliğinden seçilir ve boş geçilen alanlarda gösterilecek hata mesajı ise yine properties sekmesindeki error message kısmından değiştirilebilir. b) Rangevalidator Kontrolü Kullanıcının giriş yapacağı kontrolün değerlerini kontrol eder. Kullanıcının gireceği maximum ve minimum değer properties sekmesindeki maximum value ve minimum value özellikleri ile ayarlanabilir. Kontrol edilecek toolbox kontrolü properties sekmesindeki control to validate özelliğinden seçilir ve kullanıcının girdiği değerin istenilen aralıklar dışında olması durumunda gösterilecek hata mesajı properties sekmesindeki error message kısmından değiştirilebilir. c) Regularexpressionvalidator Kontrolü Kullanıcının giriş yapacağı kontrolün giriş türünün ne olacağını kontrol eder. Kontrolün properties sekmesinde bulunan validationexpression kısmından kullanıcının ne tür veri gireceği seçilebilir, kontrol edilecek toolbox kontrolü ve hata mesajı da diğer validation kontrollerinde olduğu gibi properties sekmesinden istenilen şekilde ayarlanabilir. d) Comparevalidator Kontrolü Toolbox kontrollerinden istenilen iki tanesini birbiri ile karşılaştırmaya yarar ve karşılaştırılacak olan kontroller comparevalidator kontrolünün properties sekmesindeki compare to control ve compare to validate özelliklerinden seçilebilir. Bu kontrol genelde şifre uyuşmalarını kontrol etmek üzere kullanılır ve diğer validatorlerde olduğu gibi textbox kontrolleri ile birlikte kullanılmaktadır. Karşılaştırmalarımız şifre olmasından ve textbox kontrolüne girilen değerlerin gösterilmemesi gerektiğinden textbox kontrolünün properties sekmesindeki text mode özelliği password olarak seçilebilir. Örnek Uygulama 5 Validator kontrollerinin öğrenilmesi için yapılan bir uygulama. Yeni bir web sayfası oluşturuyoruz ve sayfamıza Şekil 14 te görüldüğü gibi dört adet textbox, bir adet buton bir adet requiredfieldvalidator, bir adet regularexpressionvalidator ve bir adet comparevalidator ekliyoruz. 12

Şekil 14. Örnek uygulama 5 design bölümü Üçüncü ve dördüncü textbox kontrolünün properties sekmesinden text mode özelliğini password yapıyoruz. Requiredfieldvalidator kontrolünün control to validate özelliğini ilk textbox olarak seçiyoruz. Regularexpressionvalidator kontrolünün control to validate özelliğini ikinci textbox olarak seçiyoruz ve validationexpression özelliğini internet e-mail adresses olarak seçiyoruz. Son olarak comparevalidator kontrolünün control to compare ve control to validate özelliklerini de üçüncü ve dördüncü textboxlar olarak seçip sitemizi localhostta çalıştırdığımızda elde edilen sonuç Şekil 15 te görülmektedir. Şekil 15. Örnek uygulama 5 sonuç sayfası C# toolbox standart kontrolleri hakkında detaylı bilgi için [1] e bakılabilir. 2.1.3.3. Toolbox Data Kontrolleri Asp.net ortamında neredeyse bütün kontroller veri gösterimi için kullanılabilmektedir fakat verilerin fazla olduğu ve düzenli bir şekilde listelenmesi gerektiği durumlarda ise birçok kontrol yetersiz kalmaktadır. Verilerin çok ve düzenli olmasını istediğimiz durumlar için geliştirilmiş kontroller toolbox data sekmesinin 13

altında bulunmaktadır. Data kontrolleri arasında en çok kullanılan kontroller datalist, gridview, datapager ve repeater ve ASP.NET 3.5 ile gelen listview kontrolleridir. a) Repeater Kontrolü En temel listeleme kontrollerinden birisidir. İstenilen veriyi istenilen şekil ve düzende görüntüleme imkanı sağlamaktadır. Bu kontrolün veri gösteriminde birkaç farklı şablon mevcut olsa da görüntülemeye olanak sağlayan en önemli şablonu itemtemplate şablonu ve <%Eval%> komutudur. b)datalist Kontrolü Genel olarak veri gösterimi bakımından repeater kontrolüne çok benzemesine rağmen HTML şablon oluşturma, veri güncelleme ve silme gibi ek özellikleri bakımından repeater kontrolünden daha kullanışlıdır. c)datapager Kontrolü Data pager kontrolü adından da anlaşılacağı üzeri veri sayfalama kontrolüdür. Verilerin tümünün gösterilmesinin görüntüleme açısından sorun oluşturacağı durumlarda verileri istediniz düzene göre sayfalama yaptırabileceğiniz bir kontroldür. d)gridview Kontrolü Tasarım geliştirilmesi bakımından çok sınırlı olan fakat çok fazla ana başlık içeren verilerin basit ve başarılı tablolar şeklinde gösterilmesine olanak sağlayan bir kontroldür. f)listview Kontrolü Listview kontrolü datalist kontrolüne çok benzemektedir fakat datalist kontrolünün sadece listeleme şeklinde kullanım oluşturması listview kontrolünü bir adım öne çıkarmaktadır. Ayrıca listview kontrolünün tablolama şeklinde kullanımında da bu kontrolü yine tablolama için kullanılan gridview kontrolünden ayıran en önemli özelliği ise görsel tasarım fazlalığının oluşudur. e)access/sql DataSouce Kontrolleri Access ve sql gibi veri tabanlarına bağlantı yapabilmek için geliştirilmiş bir kontroldür fakat kullanım esnekliği yeterli olmadığından bu kontrollerin kodlar ile oluşturulması daha kullanışlı olacaktır. Bu kontrollerin kodlar ile nasıl oluşturulup kullanılacağına ilerleyen konularda değinilecektir. Örnek Uygulama 6 Access veri tabanında bulunan verilerin sayfalar şeklinde gösterilmesi. 14

Yeni bir web sayfası oluşturulur ve sayfamıza Şekil 16 da gösterildiği gibi bir adetlistview eklenir listview kontrolünün sağ kısmında bulunan ok işaretine tıkladıktan sonra New Data Souce kısmını işaretleyerek veri tabanı seçme işlemine başlanır. Şekil 16. Örnek Uygulama 6 design bölümü Daha sonra karşımıza çıkan ve Şekil 17 de gösterilen veri tabanı seçme aracı ekranından kullandığımız veri tabanı tipi seçilir ve işleme OK butonuna basarak devam edilir. Şekil 17. Örnek uygulama 6 veri tabanı seçme aracı Bir sonraki adımda karşımıza çıkan ekrandan veri tabanımızın bulunduğu adres satırı bizden istenir bunu gerçekleştirebilmek için oluşturulan veri tabanı projeye dahil edilmiş olmalıdır. Veri tabanı seçim işleminden sonra Şekil 18 de gösterilen pencereden görüntülenmek istenen veri tabanı ve bu veri tabanına ait verilerin seçimi bizden istenir. Bu pencereden görüntülenmek istenen veriler seçilir ( * işareti bütün verilerin alınacağı anlamına gelmektedir) ve işleme devam edilir. 15

Şekil 18. Gösterilecek verilerin seçim yapılacağı ekran Bu ekranı da geçtikten sonra karşımıza çıkan ekran sorguları test etme ekranıdır yani çekmiş olduğumuz verilerin doğruluğu bu ekranda bulunan Test Query butonu ile görüntülenebilir. Görüntüleme işlemini de gerçekleştirip sorgumuzun doğru çalıştığından emin olunduğunda Finish butonu ile işlem tamamlanmış olur. İşlem sonucu listview kontrolünün yanında bulunan ok işaretine basılıp refresh schema özelliği ile listview kontrolünün tasarım şekli seçilebilir. Bütün işlemlerden sonra oluşan design bölümü görünümü Şekil 19 da gösterildiği gibi olmaktadır. Şekil 19. Veri tabanı bağlantısı kurulmuş listview kontrolü design bölümü Şekil 19 da görüldüğü gibi veri tabanı bağlantısı yapıldığında c# otomatik olarak accessdatasource kontrolünü sitemize eklemektedir. Çekilen bu verilerin internet ortamında gösterilecek olan son hali Şekil 20 de veri tabanı karşılaştırması ile birlikte gösterilmektedir. 16

Şekil 20. Örnek uygulama 6 web, veri tabanı ekran görüntüsü Şekil 20 den görüldüğü üzere sekiz adet verimiz bile sayfamızda gereksiz bir yer kaplamaktadır ve bu verilerin yüzlerce olabileceği göz önüne alındığında verileri sayfalama ihtiyacı doğmaktadır. Dataları sayfalama yapabilmek için projeye bir adet datapager kontrolü eklenir ve datapager kontrolünün properties sekmesinden pagedcontrolid özelliği ile sayfalama yapmak istenen kontrol ve pagesize özelliği ile bir sayfada gösterilecek veri sayısı seçilir. Bu yapılan değişiklikler Şekil 21 de gösterilmektedir. 17

Şekil 21. Datapager properties sekmesi ayarlamaları Gerekli tüm ayarlar tamamlandıktan sonra veri tabanından almış olduğumuz veriler her sayfada 4 er adet veri görüntülenmiş olacaktır. Uygulamanın son haliyle web üzerindeki görüntüsü Şekil 22 de gösterilmektedir. Şekil 22. Örnek uygulama 6 sonuç sayfası C# toolbox data kontrolleri hakkında detaylı bilgi için [1] e bakılabilir. 18

2.1.3.4. Toolbox Ajax Extensions Kontrolleri Ajax etkileşimli ve hızlı web uygulamaları geliştirebilmek için yazılmış bir web programlama dilidir. Ajax günümüzde neredeyse bütün sitelerde kullanılmaktadır. Örneğin mail hizmeti veren sitelerde mailleri incelerken gelen bir mailin sayfa tekrardan yenilenmeden görüntülenebilmesini sağlamaktadır. C# ortamında da bu tür uygulamaların geliştirilebilmesi için ajaxextensions kontrolleri bulunmaktadır ve bu kontrollerin çalışabilmesi için kontrolün kullanıldığı her sayfada scriptmanager kontrolünün kullanılması zorunludur. a)timer Kontrolü Adından da anlaşılacağı üzere timer kontrolü bir zamanlama kontrolüdür ve zamanlama ile yapılması gereken tüm işlere akla ilk gelen kontroldür. Timer kontrolünün dört temel komutu vardır. Bunlar; Start: Zamanlama işleminin ne zaman başlayacağını belirtir. Interval: Kontrolün kaç milisaniye aralıklarla sayacağını belirtir. Tick: Kontrolün sayma işlemi sonunda yapacağı işlemin belirtildiği kısımdır. Stop: Timer kontrolünü durdurmaya yarar. b)updatepanel Kontrolü Timer kontrolü ile kullanılan bir kontroldür ve yenilenecek olan sayfa içeriğini bulundurur. 2.1.4. Veri Tabanı ĠĢlemleri Bilgisayar terminolojisinde, sistemli olarak istiflenmiş ve içerisinde bulunan veriler arasında çeşitli bağlantıların tanımlanabildiği taşınabilir, güncellenebilir, saklanabilir veri topluluklarını barındıran programlar veri tabanı olarak adlandırılır. Veri tabanları ile istenilen bilgiye ulaşmak ancak sorgularla mümkün olabilir. Sorgular veri tabanına veri ekleme, veri silme, veriyi güncelleme ve verileri seçme gibi dört ana koddan meydana gelmektedir ve bu sorgular veri tabanı yazılımlarına göre farklı kodlar ile gerçekleştirilmektedir. 19

a) Access Seçim Yapma Sorgusu Veri tabanında bilgileri seçmek için kullanılan sorgudur ve temel yapısı; select seçilecek verinin sütun adı from tablo adı where verinin tam konumu şeklindedir. b) Access Veri Güncelleme Sorgusu Veri tabanında bulunan bilgileri güncellemek için kullanılan sorgudur ve temel yapısı; update veri tabanı adı set güncellenecek veri where verinin tam konumu şeklindedir. c) Access Veri Ekleme Sorgusu Veri tabanına yeni veri eklemek için kullanılan sorgudur ve temel yapısı; insert into veri tabanı adı(veri eklenecek sütun adları) values (eklenecek değerler) şeklindedir. d) Access Veri Silme Sorgusu Veri tabanında bulunan verileri silmek için kullanılan sorgudur ve temel yapısı; şeklindedir. delete tablo sütun adları from veri tabanı adı where verinin tam konumu Örnek Uygulama 7 Bölüm 1.4 te anlatılan Access temel sorguları üzerine bir uygulama. Yeni bir access uygulaması açıp Şekil 23 te görüldüğü gibi düzenliyoruz. Şekil 23. Access te oluşturulmuş veri tabanı ekran görüntüsü Şimdi ise sınıfı 4 olan öğrencileri görmek istiyoruz yani tabloda var olan verilerin seçimini yapmak istiyoruz bu nedenle yapacağımız sorgu ve sorgunun sonucu Şekil 24 te gösterilmiştir. 20

Şekil 24. Access select sorgusu uygulaması ve sonuç ekran görüntüsü Aynı veri tabanı üzerine veri eklememiz gerektiğini düşünelim bu durumda oluşturulacak sorgu insert into sorgusudur. Şekil 25 te oluşturulan sorgu ve sorgu sonucu gösterilmiştir. Şekil 25. Access insert sorgusu uygulaması ve sonuç ekran görüntüsü Şekil 25 te oluşturulan sorguya id değeri eklenmediği halde bir değer oluşturulmasının sebebi tablo oluşturulurken bu değerin otomatik sayı yapılmış olmasıdır ayrıca adı ve soyadı sütunlarına eklenen veriler metin(string) değeri olduğundan karakterleri arasında kullanılmıştır. Tekrardan elde edilen yeni veri tabanı üzerinden bir veriyi silmemiz gerektiğini düşünelim bu durumda oluşturulacak sorgu delete sorgusudur. Şekil 26 da oluşturulan sorgu ve sorgu sonucu gösterilmiştir ve sorguda kullanılan * operandı bütün sütunları temsil etmektedir. 21

Şekil 26. Access delete sorgusu uygulaması ve sonuç ekran görüntüsü Son olarak yine aynı veri tabanı üzerinde bir verinin değerini değiştirelim bu durumda oluşturulacak sorgu update sorgusudur. Şekil 27 de oluşturulan sorgu ve sorgu sonucu gösterilmiştir. Şekil 27. Access update sorgusu uygulaması ve sonuç ekran görüntüsü 2.1.5. Asp.Net Veri Tabanı Bağlantısı Veri tabanı ile bağlantı kurmanın yollarından bir tanesine önceki bölümlerde değinilmişti ve kontrol üzerinden yapılan bağlantının esnek olmadığı gözlemlenmişti. Oluşturduğumuz web sitelerinde daha esnek ve becerikli veri tabanı bağlantısı yapabilmenin diğer bir yolu ise kodlarla çalışmaktır. Asp.Net veri tabanı bağlantısı yapabilmek için çeşitli kütüphanelere ihtiyaç duymaktadır ve kullanılacak olan her veri tabanı için kütüphaneler değişmektedir. Örnek vermek gerekirse Access ile oluşturulmuş bir veri tabanına bağlanmak için system.data ve system.data.oledb kütüphaneleri, Sql veri tabanı için ise system.data.sqlclient kütüphaneleri projeye eklenmiş olmalıdır. Kütüphaneler eklendikten sonra sistemin ne zaman bağlantı kuracağı belirlenmelidir. Sistem bağlantıyı bir buton tetiklemesiyle mi bir textbox 22

içeriği ile mi yoksa sayfa açıldığında mı kuracaktır? Sistemin bağlantıyı ne zaman kuracağı belirlendikten sonra nasıl bir bağlantı kuracağı belirlenmelidir. Bağlantı kurmanın iki yolu vardır. Connected(Bağlantılı) Yapı: Bu yapıda sistem sürekli olarak veri tabanı ile bağlantı içerisindedir ve bundan dolayı veri tabanında yapılan değişiklik direkt olarak sisteme yansır fakat sürekli veri tabanı bağlantısı olduğu için sisteme fazladan yük olmaktadır. Genellikle anlık veri okumalarının önemli olduğu durumlarda kullanılmaktadır. Disconnected(Bağlantısız) Yapı: Bu yapıda ise veri tabanını ile bir süreliğine bağlantı kurulur, veri tabanının bir örneği ram üzerine alınır ve diğer işlemler ram üzerinden yapılır. Bu sistem veri tabanına fazla yük bindirmemekte fakat sürekli okuma yapılması gereken durumlarda eski bilgileri okuyacağı için bu tür durumlarda tercih edilmemektedir. Genel olarak veri tabanına veri eklemek, güncellemek ve veri silmek için kullanılmaktadır. Bağlantı türüne karar verildikten sonraki işlem ise bağlantıyı oluşturmak sorguyu belirlemek ve sorguyu icra ederek sorgu sonucunu göstermek olmalıdır. Bağlantı, sorgu oluşturmak ve sorguları icra edebilmek için gerekli kodlar Çizelge 2 de gösterilmektedir. Çizelge 2. Asp.Net veri tabanı bağlantısı oluşturabilmek için gerekli kod sözcükleri Kod Sözcüğü Kod Açıklaması OleDbConnection Bağlantıyı oluşturur ve bağlantının hangi veri tabanına bağlanacağını belirler. OleDbCommand Veri tabanının üzerinde çalışacak olan sorgudur. OleDbDataAdapter Disconnected bağlantı türünde kullanılan bir komuttur ve veri tabanından çekilen verileri ram üzerine yazar. OleDbDataReader Oluşturulan sorguların çalıştırılmasının sonucunu tutar yani new operatörü ile datareader oluşturulamaz. DataSet DataAdapter nesnesinin tuttuğu komutlar dataset üzerine yazılır DataTable Sanal bir tablo oluşturur DataColumn Sanal tablo içerisinde bulunan sütunu temsil eder DataRow Sanal tablo içerisinde bulunan satırı temsil eder 23

Örnek Uygulama 8 Bir şirketin yüzlerce satış noktası olduğunu ve her satış noktasının aynı stok üzerinden işlem yaptığını düşünelim. Böyle bir durum yapılan her satışın stoktan düşülmesi yeni malzeme girişlerinin eklenmesi gerekmektedir. Her satış noktasındaki değişiklerin aynı stok üzerinde değişiklik yapması gerektiğinden sistemin internet ortamına aktarılması kaçınılmaz olmaktadır. Böyle bir gereksinim üzerine yapılacak basit bir sistem tasarımı için yeni bir web sayfası oluşturup içerisine Şekil 28 de gösterildiği gibi bir adet gridview, bir adet multiview, üç adet view, beş adet buton, dört adet label, üç adet requiredfield validator, bir adet radiobuttonlist ve üç adet dropdownlist kontrolü eklenmiş ve her bir kontrole uygun ID isimleri verilmiştir. Şekil 28. Örnek uygulama 8 design bölümü Projeye eklenen tüm dropdownlist kontrollerinin ve gridview kontrolünün içeriğinin veri tabanından alınma işlemi örnek uygulama 6 daki gibi gerçekleştirilmiş, veri tabanı ile alakalı olarak diğer tüm kontrollerin çalışması kodlarla düzenlenmiş ve kodlar EK1 de verilmiştir. Uygulamada kullanılan veri tabanı içeriği Şekil 29 da gösterildiği gibidir. 24

Şekil 29. Kullanılan veri tabanı ekran görüntüsü Gerçekleştirilen uygulamanın derlenip localhostta çalıştırılması ile elde edilen sonuç Şekil 30 da gösterilmektedir. Şekil 30. Örnek uygulama 8 sonuç sayfası C# veri tabanı işlemleri ve veri tabanı bağlantıları hakkında detaylı bilgi için [1] e bakılabilir. 2.1.6. Veri Türleri (DeğiĢkenler) ve Tür DönüĢümleri Değişkenler girilen değerleri tutan ve saklayan yapılardır. Değişkenlere değer atanması sonucunda atanan değerin büyüklüğüne göre bellek üzerinde bir alan oluşturulmaktadır. Diğer bir ifade ile veri türlerinin oluşturulmasının amacı önceden değeri tahmin edilen veriler için bellekte alan oluşturulmasıdır. Aynı sebepten dolayıdır 25

ki oluşturulan değişkenin içeriği boş olamaz. Çizelge 3 te c# ortamında kullanılan veri türleri ve bu türlere ilişkin karakteristik özellikler gösterilmektedir. Çizelge 3. Veri türleri ve bu türlere ilişkin karakteristik özellikler Tür Açıklama Değer Aralığı sbyte 8 bit işaretli tamsayı -128 : 127 short 16 bit işaretli tamsayı -32.768 : 32.767 int 32 bit işaretli tamsayı -2.147.483.648 : 2.147.483.647 long 64 bit işaretli tamsayı -9.223.372.036.854.775.808 : 9.223.372.036.854.775.807 byte 8 bit işaretsiz tamsayı 0 : 255 ushort 16 bit işaretsiz tamsayı 0 : 65.535 uint 32 bit işaretsiz tamsayı 0 : 4.294.967.295 ulong 64 bit işaretsiz tamsayı 0 : 18.446.744.073.709.551.615 float 32 bit tek kayan sayı ±1,5x10-45 : ±3,4x10 38 double 64 bit çift kayan sayı ±5x10-324 : ±1,7x10 308 decimal 128 bit ondalıklı sayı ±1,5x10-28 : ±7,9x10 28 bool true/false char Bir karakter temsil eder 16 Unicode karakterleri string DateTime Bir metni temsil eder Tarih ve Zaman Tutar Bazı durumlarda kullanılacak olan veri türlerinin birbiri arasında değiştirilmesi gerekir. C# ortamında en çok kullanılan değişim string türünden bir değişkenin int bir değere dönüştürülmesidir. Veri dönüşümü iki türlü gerçekleştirilir. Bilinçsiz tür dönüşümü; küçük kapasiteli veri türlerinin herhangi bir kod gerekmeksizin büyük kapasiteli türlere aktarılabilmesi durumudur. Bilinçli tür dönüşümü; bir veri türünün harici bir kodla diğer bir veri türüne dönüştürülmesi işlemidir. 26

Bilinçsiz tür dönüşümünde bilgisayar küçük kapasiteli veri türünün büyük kapasiteli bir veri türüne dönüştürülürken herhangi bir kayıp yaşanmayacağını bildiğinden dolayı harici kod gerektirmemektedir fakat bilinçli tür dönüşümünde kullanılan kodun amacı programcının veri kaybı riskini göze alarak işlem yaptığını bilgisayara bildirmesi demektir. Bilinçli tür dönüşümü için gerekli kodlar convert sınıfı içerisinde bulunmaktadır. Örnek Uygulama 9 Tür dönüşümü ile ilgili örnek uygulama. Yeni bir web sayfası oluşturuyoruz ve içine bir adet textbox kontrolü ekledikten sonra sitemizin kod yazma bölümüne geçerek Şekil 31 de gösterilen kodlarımızı ekliyoruz. Şekil 31. Örnek uygulama 9 kod sayfası Şekil 31 den de görüldüğü gibi kodlar bu şekilde düzenlendiğinde bilgisayar int türünden bir veriyi string türünden bir veriye dönüştürmenin veri kaybına yol açacağını hesaplıyor ve programcının yanlışlıkla bir hata yapmasını engelliyor. Şekil 31 de gösterilen kodlar Şekil 32 de gösterildiği gibi düzenlendiğinde sistemimiz hiçbir hata vermeden dönüşüm işlemini gerçekleştirerek a değişkeninde bulunan veriyi textbox kontrolüne yazdırma işlemini gerçekleştirmektedir. 27

Şekil 32. Bilinçli tür dönüşümü örnek kod sayfası Veri türleri ve tür dönüşümleri hakkında detaylı bilgi için [3] ve [2] den yararlanılabilir. 2.1.7. Metotlar (Fonksiyonlar) Bir kodun birden çok kez kullanılmasının gerekli olduğu durumlarda metotlar devreye girmektedir. Bir kodun bir kez metot halinde yazılıp gerekli tüm yerlerde kullanılması hem projenin karmaşıklığını engeller hem de programcıya zaman kazandırır. Metotların kullanımı; (Erişim türü) (Geriye dönecek değer türü) (Metot adı) (Metot içerisinde kullanılacak değerler) { Metodun içeriği return (geriye döndürülecek değer) } EriĢim Türü: Metoda dışarıdan erişilip erişilemeyeceğini belirten kısımdır. Geriye Dönecek Değer Türü: Metodun işletilmesi sonucu dönecek olan değerin türüdür. Metot Adı: Metodun çağrılacağı durumlarda kullanılacağı isimdir. şeklinde gerçekleştirilmektedir. Örnek Uygulama 10 İki adet string değeri metot oluşturarak toplayıp sonucu string olarak döndüren program. Öncelikle yeni bir web sayfası oluşturup altı adet textbox ve bir adet butonu Şekil 33 de gösterildiği gibi web sayfamıza ekliyoruz. 28

Şekil 33. Örnek uygulama 10 design bölümü Sonucun gösterileceği textbox kontrolünün properties sekmesinden readonly özelliğini true yaparak sonucun gösterileceği textbox kontrolünün içerisine karakter girilmesini engelleyebiliriz. Bu işlemler tamamlandıktan sonra buton kontrolünün kod kısmına toplama işlemini gerçekleştirecek olan ekle metodunu Şekil 34 de gösterildiği gibi ekliyoruz. Şekil 34. Örnek uygulama 10 sayfa kod bölümü Bu metot string türü olarak girdi yapılan tüm rakamların toplama işlemini yapar ve sonucu string veri olarak gösterebilir. Yapılan uygulamanın sonuç sayfası Şekil 35 de gösterilmektedir. 29

Şekil 35. Örnek uygulama 10 sonuç sayfası Metotlar hakkında detaylı bilgi elde etmek için [3] ten yararlanılabilir. 2.1.8. C# Ortamında Operatörler Operatörler matematiksel ve mantıksal ifadelerin çıkarılmasını sağlamak için oluşturulmuş ifadelerdir ve c# dili en çok operatöre sahip dillerden bir tanesidir. C# ortamında kullanılan mantıksal ve matematiksel operatörler çizelge 4 te gösterilmektedir. Çizelge 4. C# Dili Operatör Tablosu Kategori Operatörler Temel x.y, f(x), a[x], x++, x--, new, typeof, checked, unchecked Tekli +, -,!, ~, ++x, --x, (T)x Çarpımsal *, /, % Katkısal +, - Kaydırma <<, >> İlişkisel <, >, <=, >=, is, as Eşitlik ==,!= Mantıksal &, ^,, &&, Atama =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, = 30

Operatörler hakkında detaylı bilgi için [3] e bakılabilir. 2.1.9. Statik ve Dinamik Sayfalama Asp.Net ortamında oluşturulan web sayfalarının belirli bölümlerinin(örn. menüler kullanılan takvim, saat uygulamaları) gibi bölümlerinin sabit olmasını isteriz ve bu statik kısımlarda yapılan değişikliklerin her sayfa için aynı şekilde uygulanması istenmektedir. İstenen statik durumların oluşturulup sadece dinamik kısımların değiştirilebilmesini sağlayan Asp.Net içerisinde bulunan master page özelliğidir. Master pageler ile yapılan sayfalarda bulunan dinamik kısımların gösterimi için contentplaceholder kontrolüne gerek vardır. Örnek Uygulama 11 Asp.Net ortamında master page yapısı kullanarak sayfalama yapmak. Yeni bir web sayfası oluşturuyoruz ve Şekil 36 da gösterildiği gibi solution explorer penceresinde bulunan projemize sağ tıklayarak add new item seçeneğini seçiyoruz. Şekil 36. Örnek uygulama 11 master page oluşturma Daha sonra karşımıza çıkan ekrandan master page özelliğini seçip sistemimize bir master page ekliyoruz ve sayfa dizaynımızı uygun bir şekilde ayarlıyoruz. Oluşturulan bu master page özelliğini uygulamak istediğimiz sayfalarımızı projemizden add new item seçeneği ile oluştururken Şekil 37 de gösterildiği gibi gerçekleştiriyoruz. 31

Şekil 37. Oluşturulacak sayfaları master page özellikli olarak seçme İstenilen master page özellikli sayfa oluşturulduğunda oluşan sayfanın içerik kısmını oluşturan contentplaceholder kontrolünün içeriğidir ve statik sayfalama işleminin sonuç görüntüsü Şekil 38 de gösterildiği gibi olmaktadır. Şekil 38. Örnek uygulama 11 design bölümü 32

Şekil 38 den de görüleceği gibi sayfanın sadece içerik kısmının arka planı ile site arka planı farklı tonlarda gösterilmektedir bunun nedeni oluşturulan yeni web sayfasından statik kısımları değiştirme imkanımızın olmamasıdır. Projeye eklenecek sayfaların statik kısmında yapılacak değişiklikler sadece master page sayfasında değişiklik yapılması ile gerçekleştirilebilmektedir. Master page hakkında detaylı bilgi için [1] e bakınız. 2.2. USB ( UNIVERSAL SERIAL BUS) Günümüzde yaygın olarak kullanılan cep telefonu, müzik çalar, fare, klavye, kamera vb. çeşitli çevre birim aygıtları ile bilgisayar arasında iletişim kurulmasını sağlayan bir çevre birimi veri yolu standardıdır. USB 1994 yılında bulunmuştur. 1996 yılında USB 1.0 versiyonuyla tanıtılmış ve bilgisayarlarda yerini almaya başlamıştır. USB 1.0 versiyonunun geliştirilmesiyle USB 1.1, USB 2.0 ve USB 3.0 tanıtılmıştır. USB tak&çalıştır olarak sağladığı fayda ile bir çevre birim aygıtının bilgisayara takıldıktan sonra sürücüye ihtiyaç duymadan çalışmasını ve aynı zamanda çoğu çevre birim aygıtının ilave bir elektrik kaynağına ihtiyaç duymadan çalışmasını sağlar. USB sürekli gelişen bir teknoloji olduğundan her yeni versiyonla birim zamanda taşınan bilgi ve kullanılan cihaz sayısı artmaktadır. USB ile bilgisayara 127 taneye kadar aygıt takılabilir. USB nin en büyük avantajı tüm işletim sistemleri tarafından desteklenmesidir. USB ye kullanıcı tarafından bakmak gerekirse kullanımı kolay, hızlı, güvenilir, kolay bulunabilir, tak&çalıştır, tek bir kablo ile birden çok cihaz kullanımı, ayarsız ve kolay kullanım ve çoğu cihaz için ekstra güç kaynağı istememesidir. Ürün geliştiricileri açısından ise kullanıcılar için yazılan avantajlardan yanı sıra kablo standartları, hata düzeltmeleri daha kolay olması ve tüm işletim sistemleri tarafından desteklenmesidir. 2.2.1. USB Versiyonları a) USB 1.0 1996 yılında tanıtılmıştır. USB 1.1 ile kullanım alanı genişlemiştir. Düşük hızda 1.5 Mbps ile transfer yaparken yüksek hızda 12 Mbps hızında transfer yapmaya imkan sunmaktadır. 33

b) USB 2.0 USB nin popülerliğini kazandığı ve bilgisayarlarda yaygın olarak kullanılmaya başladığı versiyondur. USB 2.0 tanıtılmasıyla yazıcı, tarayıcı, kameralar, harici diskler vb. ürünlerde kullanımı başladı. Yüksek hızlarda 480 Mbps hızında transfer yapmaya imkan tanımıştır. USB 2.0 ile kullanılan cihazların bataryaları şarj edilebilir. c) USB 3.0 2008 yılının Kasım ayında tanıtılan USB 3.0, USB 2.0 da tek kablo üzerinden data transferi yapılırken USB 3.0 da çift kablo üzerinden transfer yapılarak hızı yükseltildi. USB 3.0 ile transfer hızı USB 2.0 ın 10 katına çıkarken veri transfer hızı olarak 5 Gbps hızına ulaşılmıştır. 2.2.2. USB Kablosu USB kablosunun bilgisayara bağlantı ucu Şekil 39 da gösterildiği gibidir. Şekil 39.USB Kablosu Şekil 40 da USB kablosunun bağlantı kablosu gözükmektedir. Bağlantı kablosunda 4 adet uç bulunmaktadır.bu uçlar sırasıyla; 1. V cc 2. D- 3. D+ 4. Topraktır. 34

a)v cc USB yi çevre birim takıldığında çalışması için gereken gerilim değerinin sağlandığı uçtur. Bu uçtan 5 V dc gerilim alınır. b)d+, D- USB nin veri iletişimini sağladığı uçlardır. c) Toprak Çevre biriminin aldığı elektriğin devresini tamamlaması için gereken uçtur. Şekil 40.USB kablosu uçları 2.2.3. USB Veri Transfer Modları USB de 4 çeşit transfer modu bulunmaktadır. Bunlar düşük hız, tam hız, yüksek hız ve süper hızdır. Çevre birim aygıtı bilgisayara takıldığında bilgisayar ilk önce aygıtın çalışması için gerekli modu seçerek gerekli modda çalıştırır. Düşük hız, 1.5 Mbit/sn transfer hızına sahiptir. Çevre birim aygıtlarının genelinin; klavye, fare, mikrofon, joystick vb. cihazların kullandığı veri transfer modudur. Tam hız, 12 Mbit/sn hızında veri transferi sağlar ve geniş bant genişliği kullanacak taşınabilir hard disk, yazıcı, tarayıcı vb. cihazların transfer modudur. Yüksek hız, 480 Mbit/sn hızında veri iletişimi sağlar ve USB 2.0 için geçerlidir. Tüm cihazlar bu transfer modunu desteklememektedir. 35

Süper hız USB 3.0 ile kullanılmaya başlanmıştır. Transfer hızı 4800 Mbit/sn dir. 2.2.4. USB nin Avantajları ve Dezavantajlar USB tek bir arabirim üzerinden birden çok çevre birim aygıtının bir arada hızlı ve güvenli bir şekilde çalışmasını sağlayabilmektedir. Diğer bağlantı şekillerine oranla daha düşük güç tüketimi sağlamaktadır. Kullanılmayan cihazın elektriği geçici olarak düşürülür. Cihaz kullanılmaya tekrardan başlanıldığında çalışması için gereken güç sağlanır. USB nin en büyük problemi eski cihazların USB desteklememesidir. Eski cihazların kullanılması için dönüştürücü kullanılması gerekmektedir. USB bilgisayarlar için tasarlandığından 5 metreden uzun mesafeye veri iletiminde yaşanan sorunlar ayrı bir dezavantajdır. 2.2.5. USB de Veri ĠletiĢimi USB de veri göndermek veya veri almak için belirli bir adresleme bilgisi, hata kontrol bitleri, durum ve kontrol bilgilerini kullanır. Bütün USB veri iletişimi bilgisayar ile çevre birim aygıtları arasında yapılır. Bilgisayarın bus denetleyicisi çevre birim aygıtından veri alır veya veriyi gönderir. Çevre birim aygıtı ise bus denetleyicisinden yollanan veriyi alır ve cevap gönderir. Her bir çevre birim aygıtının numarası, yönetimi ve alınacak-gönderilecek verinin uzunluğu farklıdır. USB 2.0 da veri iletiminin başlaması için bus denetleyicisinin ilk olarak bir paket veri yollaması gereklidir. Yollanan paket verisinde gönderilecek cihazın adresi ve yönetimi mevcuttur. Yapılan her veri iletişimi paketinde veriye ek olarak hata düzeltme bitleri ve paket kimliği ile beraber senkronlama bitleri vardır. Çoğu iletişimde gönderilen verinin ilk olarak doğru veya yanlış olduğu kararlaştırılır. USB 3.0 ın veri iletişimi için paket ve protokolleri farklı olsa da adresleme biti hata kontrolü, veri senkronlama değerleri data ile ölçekli olarak değişmektedir. USB 4 farklı transfer tipini desteklemektedir. Bunlar kontrol, yığın, kesme sinyali ve eş zamandır. Kontrol transferinde, bilgisayar çevre birim aygıtına belirli bir istekte bulunur. Çevre birim aygıtı bilgisayara takıldığında bilgisayarın cihazı tanıması için bilgisayar tarafından çevre birim aygıtına bir veri paketi yollanır. Çevre birim 36

aygıtından gelen veri ile çevre birim aygıtının kapasitesi ve hangi yazılım ile çalıştırılacağına karar verilir. Kontrol transferi 3 farklı safha bulunmaktadır. Kurulum, veri ve durum safhalarıdır. Kurulum safhası durum isteğini içerir. Veri safhası yapılan isteğe göre bilgisayardan veya çevre birim aygıtından gelen verinin gönderildiği safhadır. Durum safhası ise yapılan isteğe verilen cevabın başarıyla alındığı safhadır. 2.2.6. Satıcı Kimliği (Vendor ID) ve Ürün Kimliği ( Product ID ) Çevre birim aygıtlarının çalışma biçimleri birbirinden farklıdır. Bilgisayarın cihazı tanıması için cihazı üreten firmanın kimliği ve cihazın kimliğine ihtiyaç duyar. Satıcı kimliği ve ürün kimliğini öğrenmek için bilgisayara takılan cihaza Get_Descriptor isteği gönderilir. Get_Descriptor isteğinin içinde maksimum konfigrasyon adedi, satıcı kimliği ve ürün kimliği bulunmaktadır. 2.3. Devrelerde Kullanılan Elemanlar Projede 4 ayrı devre kullanılmaktadır. Bu devrelerde birçok eleman kullanılmıştır. Ancak burada sadece ana elemanlar tanıtılacaktır. Bu elemanlar ışık sensörü (LDR), sıcaklık sensörü (LM35), Op-Amp (UA 741) ve regülatörden oluşmaktadır. 2.3.1. IĢık Sensörü (LDR) Bu sensör gelen ışığa göre direncini değiştiren bir devre elemanıdır. LDR nin direnci, üzerine düşen ışık çok olduğunda yani aydınlık ortamda iken küçüktür. LDR nin direnci, üzerine düşen ışık az olduğunda yani karanlık ortamda iken büyüktür. Işık şiddeti ile ters orantılı olarak direnç değerleri değişmektedir. Bu grafik ile gösterilirse Şekil 41 deki durum gözlenir. 37

Şekil 41. Işık sensörünün direncinin ışık şiddetiyle değişimi [4] 2.3.2. Sıcaklık Sensörü (LM35) Bu sensörler sıcaklıkla orantılı olarak çıkış gerilimi üreten sensördür. Sıcaklıktaki her 1ºC değişim ile bu sensörün çıkış gerilimi 10mV değişir. Ayrıca sıcaklık sensörünün ölçüm aralığı -55 ºC ile 150 ºC arası sıcaklıklardır. 2.3.3. Op-Amp (UA 741) Projede kullanılma amacı gerilimi yükseltmek içindir. Şekil 42 de görüldüğü gibi Op-Amp girişine gelen gerilim (V giriş ) belirli bir kazanç sağlanarak çıkışa (V çıkış ) yükselmiş olarak aktarılır. 38

Şekil 42. Op-Amp lı yükselteç devresi Devrenin kazancı ise; Av = Ra +Rb Ra (1) şeklinde elde edilir. 2.3.4. Regülatör Çıkışta sabit bir gerilim elde etmek için regülatörlere ihtiyaç vardır. Bu eleman girişine verilen değişken gerilimlerini çıkışa sabit bir gerilim şeklinde aktarır. Regülatör çeşidine göre giriş gerilimlerinin aralıkları ve çıkış gerilimleri değişir. Projede besleme olarak +5V ve -5V gerilimlerine ihtiyaç olduğundan 7805 ve 7905 regülatörleri kullanıldı. 7805 regülatörü için giriş gerilimi 8 volt ile 12 volt arasında olabilir. Çıkış gerilimi ise 5 volttur. 7905 regülatörü için giriş gerilimi -8 volt ile -12 volt arasında olabilir. Çıkış gerilimi ise -5 volttur. 39

3. DEVRELERĠN TASARIMI Projede; sıcaklık sensör devresi, ışık sensör devresi, simetrik besleme devresi ve USB çıkışlı PIC devresi yapılmıştır. 3.1. Sıcaklık Ölçüm Devresi Öncelikle devrenin projedeki yeri bir blok diyagramı ile açıklandı. Şekil 43. Sıcaklık ölçüm devresi blok diyagramı Şekil 43 de gerçeklenen, projede yer alan, sıcaklık ölçüm ve gösterimi için hazırlanan blok diyagram gösterilmektedir. Şekilde gösterilen diyagram sensör yardımı ile alınan sıcaklık verisinin mikroişlemci işlendikten sonra yapılan form ve web uygulamaları yardımı ile kullanıcıya anlayacağı bir şekilde gösterilmesi esasına dayanmaktadır. Bu uygulama kapalı bir çevrim haline getirilerek evin istenen sıcaklığa getirilmesini hatta belirtilen elektrik faturasını geçmeyecek şekilde ev ısıtmasını gerçekleştiren sistem haline dönüştürülebilir. Sıcaklık ölçüm devresi öncelikle simülasyon ortamında tasarlandı ve daha sonra uygulamaya geçildi. Bu devrede kullanılan sensör LM35 sıcaklık sensörüdür. Sensöre +5 voltluk gerilim uygulanmıştır. Ortamın sıcaklığına göre çıkışta bir gerilim elde edilir. Çıkış gerilimi düşük olduğu için yükselteç kullanılmıştır. Yükselteç olarak LM741 40

operational amplifier (Op-Amp) kullanılmıştır. Simülasyonda ortam sıcaklığının en alt seviyesine göre oluşan çıkış gerilimi Şekil 44 deki gibi gözlemlenmiştir. Şekil 44. -55 ºC de sıcaklık sensör devresindeki çıkış gerilimi Şekil 44 deki devrede ortam sıcaklığı -55 ºC ye kadar indirildi. Bu durumda sensörün çıkışında -0.06 voltluk bir gerilim oluştu. Op-Amp kazancı; Av = 4.7k + ( 1k ) 1k = 5.7 (2) olarak elde edildi. Bu yüzden Op-Amp çıkışında -0.36 voltluk bir gerilim meydana geldi. Sıcaklığı arttırıldığında çıkış gerilimlerinin de arttığı gözlendi. Şekil 45 te çıkış geriliminin maksimum değeri gözlendi. Belirli bir sıcaklık değerinden sonra çıkış geriliminin değişmediği gözükmektedir. Normalde LM35 sensörü -55 ºC ile 150 ºC arası sıcaklığı algılamaktadır. Fakat burada 70 ºC den sonra çıkış gerilimi değişmemektedir ve 4.01 volt olarak sabit kalmaktadır. 41

Şekil 45. 70 ºC de sıcaklık sensör devresindeki çıkış gerilimi Devrenin çalışması similasyonda test edildikten sonra delikli pertinaks üzerine Şekil 46 daki gibi montajı yapıldı. Devreye gerekli beslemeler verilerek çıkışındaki gerilimler ölçüldü ve devrenin sorunsuz bir şekilde çalıştığı test edildi. Şekil 46. Sıcaklık ölçüm devresi 42

3.2. IĢık Ölçüm Devresi Öncelikle bu devrenin projedeki yerini ve önemini anlatan blok diyagramı hazırlandı. Şekil 47. Işık ölçüm devresi blok diyagramı Şekil 47 de gerçeklenen, projede yer alan, ışık ölçüm ve gösterimi için hazırlanan blok diyagram gösterilmektedir. Şekilde gösterilen geri beslemeli kapalı çevrimde öncelikle ışığın açık mı yoksa kapalı mı olduğu sensör yardımı ile analog olarak alınmakta ve mikroişlemciye iletilmektedir. Mikroişlemcinin içerisinde mevcut olan adc ile analog veri işlenerek bilgisayarın anlayabileceği sayısal işaretlere dönüştürülmekte ve bilgisayar için geliştirilen form uygulaması ile veriler alınıp kullanıcının anlayabileceği duruma getirilerek veri tabanına kaydedilmektedir. Veri tabanına kaydedilen veriler geliştirilen web uygulaması ile alınarak kullanıcıya internet üzerinden gösterim sağlamaktadır. Geliştirilen web uygulaması kullanıcının ışığı kontrol etmesine de imkan sağlamaktadır. Web uygulamasından kullanıcı tarafından verilen ışık kontrol bilgisi yine geliştirilmiş olan form uygulamaları ve USB aracılığı ile mikroişlemciye iletmekte mikroişlemci bilgisayardan aldığı komutu değerlendirerek ışığın açılmasını veya kapanmasını gerçekleştirmektedir. Ayrıca yazılımların geliştirilip devrelerde de çeşitli değişiklikler yapılması ile ışığın parlaklığının ve güç sarfiyatının ayarlanması da gerçekleştirilebilir. 43

Burada kullanılan ışık ölçüm devresi gerçeklenmeden önce simülasyon ortamında denendi. Şekil 48 de görüldüğü gibi sensör olarak LDR kullanılmaktadır. Devreye 5 voltluk bir besleme gerilimi uygulandı. LDR transistörün baz ucundan toprağa gidecek şekilde yerleştirildi. Çünkü LDR nin direncinin ışıkla ters orantılı olarak değişmektedir. Şekil 48 de görüldüğü gibi ışık sönük iken LDR nin direnci yüksek olacaktır. Bu durumda bazdan akan akım artacağından transistör iletimde olacaktır. Kollektörden alınan çıkışta sıfıra yakın bir gerilim gözlendi. Burdaki 0.32 voltluk gerilim kollektör emetör arasındaki eşik gerilimden dolayı gözlenmiştir. Şekil 48. Işığın sönük olduğu durumda transistör çıkışındaki gerilim Şekil 49 daki gibi ışık yandığında LDR nin direnci düşük olacaktır. Bu durumda bazdan akan akım düşük olacak ve transistör tıkamada olacaktır. Böylece kollektörden alınan çıkış gerilimi, 470 Ω luk direnç üzerindeki gerilim ihmal edileceğinden besleme gerilimine eşit olacaktır. Şekil 49. Işığın açık olduğu durumda transistör çıkışındaki gerilim 44

Devrenin sağlıklı bir şekilde çalıştığı similasyon ortamında test edildikten sonra gerçekleştirilmiştir. Şekil 50 de olduğu gibi delikli pertinaks üzerine elemanlar yerleştirilerek devre yapılmıştır. Gerekli besleme gerilimi verilerek bu devre üzerinde ölçümler yapılıp ve sonuç olarak devrenin istenilen şekilde çalıştığı tespit edilmiştir. Şekil 50. Işık ölçüm devresi 3.3. USB ÇıkıĢlı PIC Devresi Projede en önemli kısım bu devredir. PC ile bağlantı bu devre ile sağlanmaktadır. Öncelikle simülasyon ortamında devre yapıldı ve ARES ortamında çizilerek baskı devresi gerçekleştirildi. İSİS ve ARES ile çizilen devre şemaları Şekil 51 ve Şekil 52 de gösterildiği gibidir. 45

Şekil 51. USB çıkışlı PIC devresinin İSİS çizimi Şekil 52. USB çıkışlı PIC devresinin ARES çizimi Bu devrenin baskı devresi yapıldıktan sonraki hali Şekil 54 teki gibidir. Görüldüğü gibi devrede sensör devrelerinden gelen verilerin PIC e aktarılması için 2 giriş vardır. Sensör devrelerinden gelen analog veriler ( sensör çıkış gerilimleri ) PIC te analogdijital çevirici ile dijitale çevrilir. Bu veriler USB aracılığı ile PC ye aktarılır. Bu durumlar 4.2.1 ve 4.2.2 bölümlerinde sensörlerin blok diyagramı üzerinde anlatılmıştı. Devreye bir adet de limit switch girişi konulmuştur. Limit switch in projedeki çalışma şekli ni anlatan blok diyagramı şekil 53 de görüldüğü gibidir. 46

Şekil 53. Hareket algılama devresi blok diyagramı Şekil 53 de gösterilen diyagram switch elemanından alınan besleme ve toprak potansiyellerini kullanıcıya bir hareketlilik olup olmadığını hem geliştirilen web uygulaması hem form uygulaması hem de mail yoluyla haber veren bir sistemi göstermektedir. Devrede oluşan hareketin mesafesinin ölçümü çok gerekli olmadığından ultrasonik sensör yerine limit switch kullanılmıştır. Bu sistem ayrıca polise hastaneye ve size telefon yoluyla ulaşan bir sistem ile desteklenebilir. Devrede görüldüğü gibi bir adet de çıkış vardır. Bu çıkış sayesinde web sitesinden gönderilen bir komut ile çıkışa yerleştirilen lamba yakılıp söndürülebilecektir. PC ile devrenin bağlantısını sağlamak için ise bir USB yuvası kullanılmıştır. Şekil 54. USB çıkışlı PIC devresi Devrede kullanılan en önemli eleman ise mikroişlemcidir. Burada kullanılan mikroişlemci PIC 18F2550 dir. Bu PIC in seçilmesinin sebebi USB haberleşmesi için arayüze sahip olmasıdır. PIC 18F2550 mikroişlemcisinin bilgisayara hid olarak tanıtılmasını sağlayan ve Microchip firması tarafından programcıların kullanımına sunulan hid n-byte.h kütüphanesidir. 47

usb_init(); = Bu kod, USB ile ilgili donanımı hazırlamaya yarar. Yazılımda kullanılan ilk komut olması lazımdır. USB PC ye takılıp haberleşme hattı aktif olana kadar yazılımın beklemesini sağlar. usb_wait_for_enumeration(); = Cihaz bilgisayar tarafından numaralandırılıncaya kadar program sonsuz döngü içerisinde bekler. usb_task(); = Cihaz bilgisayara bağlandığında USB yi hazırlar. usb_get_packet(); = Bu komut USB den PIC e gelen paketleri okumaya yarar. usb_put_packet(); = Bu komut PIC ten USB ye paket göndermek için kullanılır. 3.4. Simetrik Besleme Devresi Projede kullanılan sensör devreleri ve USB çıkışlı PIC devresi için beslemeye ihtiyaç vardı. Kesintisiz bir gerilim kaynağı sağlamak için bu devre yapılmaya karar verildi. Öncelikle devrenin tasarımı similasyon olarak şekil 55 deki gibi yapıldı. Şekil 55. Simetrik Besleme Devresi Similasyonu Sonra delikli pertinaks üzerine elemanlar yerleştirilerek devre elde edildi. Burada 220 voltluk AC şebeke gerilimi trafo ile 9 voltluk AC gerilime düşürüldü. Sonra Şekil 56 daki devre girişine bağlandı. Bu AC gerilim, köprü diyot ile doğrultularak DC gerilim elde edildi. Regülatörler sayesinde çıkışta +5V ve -5V elde edilmiş oldu. Burada kullanılan regülatörler, 7805 ve 7905 regülatörleridir. 48

Şekil 56. Simetrik Besleme Devresi 49

4. SONUÇLAR Akıllı ev otomasyon sistemi bitirme projemiz ile bir evdeki sıcaklığın değişimini grafiksel eş zamanlı olarak göstermek, evin ışık durumunu algılamak, gerektiğinde ışık yakıp söndürmek ve evimizdeki izinsiz hareketleri algılamak için bir güvenlik sistemi kurmayı ve bu projelerin hepsini internet ortamında göstermeyi hedeflemiştik. Şekil 57 de hedeflenen projelerimizin bilgisayar ortamında gösterilmesi için gereken program gösterilmektedir. Şekil 57. Akıllı ev otomasyon sistemi Windows arayüz programı Şekil 57 de verilen görüntüde sıcaklık, ışık ve güvenlik bilgilerini aktaran devrenin bilgisayara bağlandıktan sonra programla verilerin alınması gösterilmiştir. Bu görüntüde 4 adet ana bölüm bulunmaktadır. Bunlar bağlantı bölümü, okunan değerler bölümü, güvenlik bölümü ve cihaz bağlantı durumudur. Bağlantı bölümünde cihaz bilgisayara takıldıktan sonra BAGLAN butonuna basılarak programın çalışmasına başlanılmaktadır. Programın cihaz ile bağlantı kurup kuramadığına ise cihaz durum bölgesinden kontrol edilir. Okunan Değerler bölümünde Işık ve Sıcaklık olmak 50

üzere 2 tane durum gösterilmektedir. Işık kısmında ışık seviyesinin belirlenen bir değerin üstünde veya altında olmasına göre sitede ortamın durumu gösterilmektedir. Sıcaklık kısmında ise ortam sıcaklığı anlık olarak gösterilmektedir. Güvenlik bilgileri bölümünde ise evin içinden gelen sensör bilgisine göre tarih ve zaman belirterek hem programda uyarı vermekte ve aynı zamanda kullanıcıyı uyarmak için mail atılmaktadır. Programdan gelen bilgiler internet sitesinde eş zamanlı olarak gösterilmektedir. Şekil 58 de programdan gelen ışık bilgisine göre sitede odadaki ortamın aydınlık ya da karanlık olduğu gösterilmektedir. Şekil 58. Web sitesi üzerinden yapılan ışık kontrolü Şekil 58 de gösterilen internet sayfasında 2 adet kısım bulunmaktadır. Birincisi ortamın aydınlık durumunun gösterilmesi, ikincisi ise ışık yakılıp söndürülmesidir. Sıcaklığın ise eş zamanlı olarak internet sitesinde gösterilmesi ise şekil 59 da gösterilmiştir. 51

Şekil 59. Web sitesinde sıcaklığın eş zamanlı olarak gösterilmesi Şekil 59 da sıcaklığın son 11 değeri grafiksel olarak gösterilmiştir. Ortamdan belirli aralıklarla değer gelmekte ve grafik kendini gelen veri hızına bağlı şekilde yenileyerek ortam verileri grafik ekranında eş zamanlı olarak gösterilmektedir. Şekil 59 da yatay eksen zamanı, dikey eksen sıcaklık değerlerini göstermektedir. 52