• Sonuç bulunamadı

AKILLI EV OTOMASYON SİSTEMİ

N/A
N/A
Protected

Academic year: 2022

Share "AKILLI EV OTOMASYON SİSTEMİ"

Copied!
74
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

I

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

(2)

II

(3)

i

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

(4)

ii

(5)

iii

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Ş ………

(6)

iv

(7)

v Ö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

(8)

vi

(9)

vii

ĠÇĠNDEKĠLER

Lisans Bitirme Projesi Onay Formu iii

Önsöz v

İçindekiler vii

Özet ix

Semboller Ve Kısaltmalar 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

(10)

viii

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

(11)

ix Ö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.

(12)

x

(13)

xi SEMBOLLER VE KISALTMALAR

Sembol ve Kısaltmalar Anlamı

VID Vendor ID

PID Product ID

HID Human Interface Device

Op-Amp Operational Amplifier

ADC Analog Digital Converter

LDR PIC

Light Dependent Resistors Peripheral Interface Controller

(14)

xii

(15)

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.

(16)

2 Ç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ı

(17)

3 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ı

(18)

4

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.

(19)

5 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.

(20)

6

Ş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.

(21)

7

Ş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.

(22)

8

Ş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

(23)

9

“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.

(24)

10

Ş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.

(25)

11

Ş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

(26)

12

“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.

(27)

13

Ş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

(28)

14

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.

(29)

15

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.

(30)

16

Ş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.

(31)

17

Ş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.

(32)

18

Ş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.

(33)

19 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.

(34)

20 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ı;

delete tablo sütun adları from veri tabanı adı where verinin tam konumu şeklindedir.

Ö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.

(35)

21

Ş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.

(36)

22

Ş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

(37)

23

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

(38)

24

Ö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.

(39)

25

Ş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

(40)

26

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,4x1038 double 64 bit çift kayan sayı ±5x10-324 : ±1,7x10308 decimal 128 bit ondalıklı sayı ±1,5x10-28 : ±7,9x1028

bool true/false

char Bir karakter temsil eder 16 Unicode karakterleri string Bir metni temsil eder

DateTime 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.

(41)

27

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.

(42)

28

Ş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.

(43)

29

Ş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.

(44)

30 Ş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 =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=

(45)

31

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.

(46)

32

Ş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ü

(47)

33

Ş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.

(48)

34 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. Vcc

 2. D-

 3. D+

 4. Topraktır.

(49)

35 a)Vcc

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.

(50)

36

 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

(51)

37

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.

(52)

38

Ş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 (Vgiriş) belirli bir kazanç sağlanarak çıkışa (Vçıkış) yükselmiş olarak aktarılır.

(53)

39

Şekil 42. Op-Amp‟lı yükselteç devresi

Devrenin kazancı ise;

Av = Ra +RbRa (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.

(54)

40 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

(55)

41

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.

(56)

42

Ş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

(57)

43 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.

(58)

44

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

(59)

45

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.

(60)

46 Ş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 analog- dijital ç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.

(61)

47

Ş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.

(62)

48

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.

(63)

49

Şekil 56. Simetrik Besleme Devresi

(64)

50 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

Referanslar

Benzer Belgeler

- TFRS 5 Satış Amaçlı Elde Tutulan Duran Varlıklar ve Durdurulan Faaliyetler – elden çıkarma yöntemlerindeki değişikliklerin (satış veya ortaklara

- TFRS 5 Satış Amaçlı Elde Tutulan Duran Varlıklar ve Durdurulan Faaliyetler – elden çıkarma yöntemlerindeki değişikliklerin (satış veya ortaklara

1 Ocak 2016 tarihinde veya bu tarihten sonra başlayan yıllık raporlama dönemlerinde geçerlidir. Bu değişiklikler yatırım işletmeleri ve onların bağlı

Dijital Şeker Ofset koyu renk zeminli

42.6.1. Sözleşmenin feshi halinde, Yüklenici İşyerini terk eder. İdare tarafından istenilen malzemeleri, araçları, tüm evrak ve belgeleri, İş için yaptırdığı

Teknik Özellikleri Çıkış: 2.4W Rating Güçü:1.8W Boyutlar:50W x 50L x 35H(mm) Hoparlör:36mm mikro hoparlör, 4 Ohm Frekans Cevabı: 100Hz-20kHz Sinyal/

kaydedilir ve sözleşme feshedilerek, alım konusu iş genel hükümlere göre tasfiye edilir. Sözleşmenin uygulanması sırasında yüklenicinin Vakıf Yükseköğretim Kurumları İhale

ListView nesnesi projelerimizde listeler oluşturmak, bu listeleri yeni bilgiler girmek, listeden bir bilgiyi seçmek, listeden bir bilgiyi silmek amacıyla