sms kontrollÜ kombİ sİstemİ -...
TRANSCRIPT
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
SMS KONTROLLÜ KOMBİ SİSTEMİ
Ozan AKBULUT
Prof. Dr. Temel KAYIKÇIOĞLU
Mayıs 2013
TRABZON
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
SMS KONTROLLÜ KOMBİ SİSTEMİ
Ozan AKBULUT
Prof. Dr. Temel KAYIKÇIOĞLU
Mayıs 2013
TRABZON
ii
LİSANS BİTİRME PROJESİ ONAY FORMU
Ozan AKBULUT tarafından Prof. Dr. Temel KAYIKÇIOĞLU yönetiminde
hazırlanan “SMS Kontrollü Kombi 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 : Prof. Dr. Temel KAYIKÇIOĞLU
Jüri Üyesi 1 : Doç. Dr. Ali GANGAL
Jüri Üyesi 2 : Yrd. Doç. Dr. Gökçe HACIOĞLU
Bölüm Başkanı : Prof. Dr. İsmail Hakkı ALTAŞ
iii
ÖNSÖZ
Bu kılavuzun ilk taslaklarının hazırlanmasında emeği geçenlere,
kılavuzun son halini almasında yol gösterici olan kıymetli hocam Sayın
Temel KAYIKÇIOĞLU‘na şükranlarımı sunmak istiyorum. 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ürlerimi sunarım.
Her şeyden öte, eğitimim süresince bana her konuda tam destek veren
aileme ve bana hayatlarıyla örnek olan hocalarıma saygı ve sevgilerimi
sunarım.
Ozan AKBULUT
Trabzon, 2013
iv
İÇİNDEKİLER
Lisans Bitirme Projesi Onay Formu ……………………… ii
Önsöz ……………………… iii
İçindekiler ……………………… iv
Özet ……………………… vi
Şekiller Dizini ……………………… vii
Çizelgeler Dizini ……………………… viii
Semboller Ve Kısaltmalar ……………………… ix
1. GİRİŞ 1
2. GENEL BİLGİLER 2
2.1. Kontrol Devresi ……………………… 3
2.2. Besleme Devresi ……………………… 5
2.3. Sistem Elemanları ……………………… 6
2.3.1. Arduino Uno R3 Launchpad ……………………… 6
2.3.2. GSM/GPRS Modem ……………………… 8
2.3.3. Röle ……………………… 9
2.3.4. LM35 Sıcaklık Sensörü ……………………… 10
2.3.5. Oda Termostatı ……………………… 10
2.3.6. Kombi ……………………… 11
2.3.7. LCD Ekran ……………………… 11
2.3.8. BC337 Transistör ……………………… 12
2.3.9. Direnç ……………………… 13
2.3.10. Kondansatör ……………………… 13
2.3.11. Transformatör ……………………… 13
2.3.12. Köprü Diyot ……………………… 14
2.3.13. 7805 ve 7812 ……………………… 14
2.3.14. Led ……………………… 15
3. AT KOMUTLARI 16
4. YAZILIM 19
4.1. Arduino IDE ……………………… 19
4.2. Programın Akış Diyagramı ……………………… 20
4.3. Program ……………………… 22
5. DENEYSEL ÇALIŞMALAR 28
5.1. Sistem Bağlantıları ……………………… 28
5.1.1. Besleme Devresi İle Kontrol
Devresi Arasındaki Bağlantılar ……………………… 28
5.1.2. Arduino Launchpad İle
GSM/GPRS Modem Arasındaki
Bağlantılar
……………………… 30
v
5.1.3. Arduino Launchpad İle Kontrol
Elemanları Arasındaki
Bağlantılar
……………………… 30
5.2. Sistemin Çalışması ……………………… 31
6. SONUÇLAR 34
7. YORUMLAR VE DEĞERLENDİRMELER 35
Kaynaklar ……………………… 36
Ek-1: Çalışma Takvimi ……………………… 37
Standartlar ve Kısıtlar Formu ……………………… 38
Özgeçmiş ……………………… 42
vi
ÖZET
Günümüzde cep telefonlarının kullanımı oldukça yaygınlaşmıştır. Gelişen
teknoloji ve mobil iletişim sektörü sayesinde, uzaktan istenilen bir sistemi kontrol etmek
ve sistemin işleyişinden haberdar olmak mümkündür. “SMS Kontrollü Kombi Sistemi”
projesi ile kullanıcının mobil telefondan SMS yollayarak kombinin açılıp kapanmasını
sağlayacağı bir sistem tasarlanmıştır.
Gerçekleştirilen bu sistemin en büyük avantajı; yerden ve zamandan bağımsız
olmasıdır. Şöyle ki; kullanıcı istediği zaman, istediği yerden sadece SMS yollayarak
kombinin açılmasını ve kapanması sağlamaktadır. Diğer bir avantajı ise sistem üzerinde
küçük değişiklikler yaparak kontrol edilmek istenen başka sistemlere de uygun hale
getirilebilmesidir.
Sistem uzaktan kontrol uygulamaları için hem esnek yapıda hem de ucuz
maliyetli bir çözüm sunmaktadır.
Bu projede, piyasada yaygın olarak kullanılan PIC mikrodenetleyici yerine
ARDUINO UNO R3 mikroişlemci kullanılmıştır.
vii
ŞEKİLLER DİZİNİ
Sayfa No
Şekil 1. Projenin sistem modeli………………………………………………………….2
Şekil 2.1. Arduino Uno R3………………………………………………………………4
Şekil 2.2. Beti GSM/GPRS Modem……………………………………………………..4
Şekil 3. Sistemin blok diyagramı………………………………………………………...5
Şekil 4. Besleme devresinin Proteus Isis programında çizilmiş şeması…………………6
Şekil 5. ATMEGA328P Mikroişlemci pin yapısı……………………………………….7
Şekil 6.1. Rölenin Proteus Isis programındaki görüntüsü……………………………….9
Şekil 6.2. Kullanılan röle………………………………………………………………...9
Şekil 7. LM35 Sıcaklık sensörünün pin yapısı…………………………………………10
Şekil 8. LM016L LCD ekran ve bu ekranın Proteus Isis görüntüsü…………………...12
Şekil 9. BC337 Transistörün pin yapısı………………………………………………...12
Şekil 10. Köprü diyotun Proteus Isis programındaki görüntüsü……………………….14
Şekil 11. Entegre tipi gerilim regülatörü……………………………………………….14
Şekil 12. Modeme gelen SMS’i okuma komutları……………………………………..17
Şekil 13. Sistem tarafından gönderilen SMS…………………………………………...18
Şekil 14. Boş bir Arduino IDE sayfası…………………………………………………19
Şekil 15. Programın akış diyagramı……………………………………………………20
Şekil 16. Besleme devresi………………………………………………………………28
Şekil 17. Besleme devresi ile kontrol devresi arasındaki bağlantı……………………..29
Şekil 18. Arduino Launchpad ile modem arasındaki bağlantı………………………….30
Şekil 19. Arduino Launchpad ile kontrol elemanları arasındaki bağlantı……………...31
Şekil 20. SMS ile Arduino çıkış pininin değişiminin testi……………………………..32
viii
ÇİZELGELER DİZİNİ
Sayfa No
Çizelge 1. Atmega328P hafızaları……………………………………………………….8
Çizelge 2. Renklerine göre ledlerin eşik gerilimleri……………………………………14
Çizelge 3. Programda kullanılacak AT komutları……………………………………...16
ix
SEMBOLLER VE KISALTMALAR
A : Amper
V :Volt
W :Watt
Ω :Ohm
DC :Doğru Akım
AC :Alternatif Akım
Hz :Hertz
F :Frekans
GND :Ground (Toprak)
ADC :Analoj/Dijital Çevirici
Si :Silisyum
Np :Transformatörün primer sarım sayısı
Ns :Transformatörün sekonder sarım sayısı
Vi :Giriş gerilimi
Vo :Çıkış gerilimi
Ii :Giriş akımı
Io :Çıkış akımı
s :Saniye
m :Mili
k :Kilo
NO :Normally Open
NC :Normally Closed
SMS :Short Message Service (Kısa mesaj servisi)
GSM :Groupe Spécial Mobile (Global System for Mobile Communications)
GPRS :General Packet Radio Service
AT :Attention command
SIM : Subscriber Identity Module
LCD :Liquid Crystal Display
LED :Light Emitting Diode
M2M :Machine to Machine
x
ETSI :European Telecommunication Instute
ASCII :American Standart Code for Information Interchange
EEPROM :Electronically Erasable Programmable Read Only Memory
RAM :Read Access Memory
IDE :Bütünleşik geliştirme ortamı
Tx :Verici
Rx :Alıcı
1. GİRİŞ
Yapılan bu çalışmada kombi bir kontrol sistemine bağlanmıştır. Kontrol sisteminin
ana elemanları ARDUINO UNO R3 Mikroişlemci, GSM Modem ve röledir. ARDUINO
UNO R3 Mikroişlemci, bilgisayar üzerinden, istenilen değişiklikleri sağlamak amacıyla
programlanmıştır.
Literatür çalışmaları sonucunda görüldü ki; SMS ile uzaktan kontrol sistemi birçok
alanda kullanılmıştır. Bu uygulamaların çoğu PIC Mikrodenetleyici kullanılarak
gerçekleştirilmiştir. Yapılan uygulamalardan biri; kullanıcının sıcaklık ölçme isteğini
SMS yollayarak sisteme bildirmesi ve sistemin sıcaklık sensörü ile ölçtüğü sıcaklık
değerini kullanıcıya SMS olarak geri bildirmesidir [1]. Bu uygulamayı daha da
geliştirerek kullanıcı tarafından gelen SMS ile ayarlanabilen, istenen saat ve tarihlerde
sulama yapabilen, hava şartlarına göre sulama zamanlarını ayarlayarak kullanıcıya bilgi
mesajı gönderen bir SMS tabanlı sulama sistemi de gerçekleştirilen sistemlerden bir
diğeridir[2]. SMS ile uzaktan kontrol sistemlerinin en yaygın olarak kullanıldığı
sistemlerin başında akıllı ev otomasyonlar gelir. Bu konuda birçok çalışma yapılmıştır.
Genel olarak lambaların, camların, çeşitli alarmların ve kapıların açılıp kapanmasının
SMS ile kontrol edilmesi için sistemler geliştirilmiştir [3]. Yine buna benzer olarak kapı,
pencere, sulama sistemi, kombi, fırın, aydınlatma sistemi kontrolü ve bunlara ek olarak
gaz sensörü ile herhangi bir gaz kaçağında kullanıcıyı SMS ile bilgilendiren bir sistem de
geliştirilmiştir [4].
Kombi sistemleri için yapılmış olan çalışmalarda SMS ile kontrol uygulaması pek
kullanılmamıştır. Bunun yerine sabit bir hat kullanılarak, arama yapma yöntemiyle kombi
kontrol edilmiştir. Bu sistemde kullanıcı kontrol devresindeki hattı arıyor, telefon belirli
sayıda çaldıktan sonra sistem cevap veriyor ve kontrol edilmek istenen eleman hangi
röleye bağlıysa bu rölelere numara veriliyor. Kullanıcı kontrol edeceği elemanın
numarasını tuşlayarak aç/kapa yapıyor. Bu sistem kullanıcılara karışık gelebilir ve zaman
kaybı yaratır. Bu nedenle SMS ile kontrol uygulaması bir adım daha öne çıkmaktadır.
2
2. GENEL BİLGİLER
Günümüzde kombi ile ısıtılan evlerdeki en büyük sorun gaz ve enerji sarfiyatı
sorunudur. Şöyle ki; kullanıcıların çoğu gaz tasarrufu sağlamak için evden çıkarken
kombilerini kapatmaktadırlar. Dolayısıyla evlerine geri döndüklerinde soğuk bir ev ile
karşılaşmaktadırlar. Kullanıcılar hem gaz tasarrufu sağlamak hem de sıcak bir eve girmek
istemektedirler. Bu sorunun çözümü “SMS Kontrollü Kombi Sistemi” projesi ile
sağlanmıştır. Kullanıcı evden çıkarken kapattığı kombiyi eve dönmeden SMS yollayarak
çalıştırır ve döndüğünde sıcak bir evle karşılaşır. Bir başka açıdan, kullanıcı evden
çıkarken kombiyi açık unutmuş olabilir. Kombiyi kapatmak için eve dönmek yerine SMS
yollayarak kombinin kapanmasını sağlayabilmektedir.
Bu projede kombi kullanıcılarının bir başka sorunu olan, kombi açık
durumdayken oluşan gaz ve enerji sarfiyatının en aza indirilmesi için oda termostatı
kullanılmıştır. Oda termostatı ile sistemin sıcaklığı tesisat suyu sıcaklığına göre değil de
ev içindeki sıcaklığa göre ayarlanmaktadır.
Şekil 1. Projenin sistem modeli
3
Şekil 1 incelendiğinde; verici telefon yani kullanıcı, kombiyi açma veya kapama
isteğini SMS şeklinde göndermektedir. Bu SMS’in içeriği “ON” veya “OFF” şeklinde
olmalıdır. Kullanıcı “ON” mesajı gönderdiğinde kombi açılacak, “OFF” mesajı
gönderdiğinde kombi kapanacaktır. Kullanıcının attığı bu SMS’ler, kontrol devresine
bağlı bulunan GSM Modem tarafından alınmaktadır. Kontrol devresinde, bu modeme
bağlı bulunan Arduino Uno R3 mikroişlemcisi gerekli AT komutları ile gelen mesajı
okumaktadır ve önceden programlandığı şekilde bu mesajları değerlendirmektedir.
İçindeki program sayesinde çıkış pinini lojik-1 veya lojik-0 yaparak, bu pine bağlı
bulunan röle ile kombiyi açmakta veya kapamaktadır.
Sistemin çalışması için 12V (DC) ve 5V (DC) gerilimlere ihtiyaç vardır. Bu
projede gerçekleştirilen sistem gerekli gücü şebeke geriliminden (220V, 50 Hz.)
sağlamaktadır. Dolayısıyla AC/DC invertör devresi tasarlanmış ve projeye entegre
edilmiştir. Bu invertör devresi sayesinde harici bir adaptöre ihtiyaç olmadan şebekeden
çekilen AC gerilim, 12V (DC) ve 5V (DC) gerilimlere dönüştürülmektedir.
2.1. Kontrol Devresi
Gerçekleştirilen sistem bir uzaktan kontrol sistemidir. Dolayısıyla sistemin en
önemli kısmı kontrol devresidir. Kontrol devresi bir mikroişlemci, mikroişlemci
launchpad, bir GSM Modem, bir röle ve gerekli ayarlamalar için elektronik
malzemelerden oluşmaktadır. Bu projede mikroişlemci olarak; ATMEL firmasının
ATMEGA328P-PU mikroişlemcisi ve ARDUINO UNO R3 Launchpad kullanılmıştır.
GSM Modem olarak; üzerine SIM900 GSM Modül entegre edilmiş Beti firmasının
geliştirdiği Beti GSM/GPRS Modem kullanılmıştır.
Şekil 2.1 ve şekil 2.2 de, kullanılan GSM modem ve Launchpad üzerinde
mikroişlemci resimleri bulunmaktadır. Şekil 2.2’deki GSM modem resmi incelendiğinde,
modemin sağ alt tarafında SIM900 GSM modülü gözükmektedir. Aynı zamanda
bilgisayar bağlantısı için gerekli olan RS232 seri portu ve GSM haberleşmesi için gerekli
olan anten de yine bu şekilden gözükmektedir.
4
Şekil 2.1. ARDUINO UNO R3 Şekil 2.2. Beti GSM/GPRS modem
Kullanıcının attığı SMS, GSM modem üzerine takılmış olan SIM kart tarafından
alınacaktır. Önceden programlanmış Arduino, GSM modem üzerindeki SIM900 GSM
modülüne AT komutları ile ulaşmaktadır. AT komutlarına göre gelen mesajı okur, kendi
içerisinde değerlendirir, bu değerlendirmenin sonucunda çıkış pininin durumunu ayarlar
ve okunan mesajı siler.
Sistem geri beslemesi için LM35 sıcaklık sensörü kullanılmıştır. Kullanıcının
verdiği komut okunduğu anda ve okunduğu andan 5 dakika sonra kullanıcıya LM35’den
okunan sıcaklık değeri SMS olarak gönderilmektedir. Böylelikle kullanıcı komut
verildiği andaki sıcaklık değeri ile 5 dakika sonraki sıcaklık değerinin karşılaştırarak
verdiği komutun çalışmaya başlayıp başlamadığını görebilecektir.
Kullanıcı kombiye açılmasını bildirdiğinden 5 dakika sonra gelen mesajdaki
sıcaklık değeri, komutu yolladığında gelen sıcaklık değerinden daha yüksekse sistemde
bir sorun yok demektir. Aynı şekilde kullanıcı kombinin kapanmasını istediğinde, 5
dakika sonra gelen sıcaklık değeri, ilk andaki değerden düşük olacaktır.
5
SMS
Şekil 3. Sistemin blok diyagramı
Şekil 3’de sistemin blok diyagramı gösterilmiştir. Arduino ile GSM modem
sürekli bir seri iletişim içinde bulunmaktadır. Arduino modeme sürekli AT komutu
yollamakta ve modem de sürekli olarak bu komutlara cevap vermektedir. Bu nedenle
Arduino Uno R3 ve GSM modem arasındaki ok çift yönlüdür. Geri besleme zamanı
geldiğinde LM35’den alından sıcaklık değeri kullanıcıya gönderileceği için GSM modem
ile kullanıcı cep telefonu arasında da iki yönlü haberleşme olmaktadır. Dolayısıyla
modem ve cep telefonu arasındaki ok da çift yönlü olarak kullanılmıştır.
Sistem çalışırken yapılan işlemleri izleyebilmek için LCD ekran kullanılmaktadır.
2.2. Besleme Devresi
Sistemin çalışması için gerekli olan 12V (DC) ve 5V (DC) gerilimler, ana
şebekeden (220V, 50 Hz.), AC/DC invertör ile sağlanmaktadır.
ARDUINO UNO R3
GSM
MODEM
RÖLE
LCD EKRAN
ODA
TERMOSTATI
KULLANICI
CEP
TELEFONU
KOMBİ
LM35
6
Şekil 4. Besleme devresinin Proteus Isis programında çizilmiş şeması
Şekil 4.’deki devrenin üstte kalan kısmı 5V, alttaki kısmı 12V DC gerilim
üretmektedir. Devrede önce şebeke voltajı olan 220V AC gerilim, gerilim değeri 2*12V,
gücü 3W olan bir transformatör ile 12V değerine indirilmektedir. Ardından köprü diyotlar
ile gerilim doğrultulmaktadır. 5V için 7805 gerilim regülatörü, 12V için 7812 gerilim
regülatörü kullanılmaktadır. Doğrultulan gerilim 7805 ve 7812 gerilim regülatörlerinin 1.
bacağına bağlanmıştır. Bu regülatörlerin 2. bacakları toprak uçlarıdır. Dolayısıyla 2.
bacaklar toprağa bağlanmıştır. Çıkış uçları olan 3. Bacaklarından 7805 regülatöründe 5V,
7812 regülatöründe 12V DC gerilim elde edilmektedir.
2.3. Sistem Elemanları
Bu bölümde projede kullanılan elemanları tanımlanacaktır.
2.3.1. Arduino Uno R3 Launchpad
Arduino, bir işlemci değildir. Arduino bir geliştirme platformudur ve açık
kaynaklıdır. Arduino üzerinde ATMEL firmasının ürettiği ATMEGA328P
7
mikroişlemcisi bulunmaktadır. Arduino ile bu işlemci programlanmaktadır. Arduino Uno
R3 Lanuchpad şekil 2.1’de gösterilmiştir.
Arduino’nun analog ve dijital giriş pinleri bulunmaktadır. Bu pinler sayesin
analog ve dijital veriler işlenebilmektedir. Bu durum sensörler ile iletişimi
kolaylaştırmaktadır.
ATMEGA328P 28 pinli bir mikroişlemcidir. 7. Ve 8. pinleri sırasıyla Vcc ve
GND uçlarıdır. Aynı şekilde 22. pin de GND ucudur. ATMEGA328P’de B, C ve D
portları mevcuttur.
Şekil 5: ATMEGA328P Mikroişlemci pin yapısı
Şekil 5’de ATMEGA328P’nin pin yapısı gösterilmiştir.
PORT B: 8 bitten oluşmaktadır. Her bir bit giriş/çıkış olarak kullanılabilmektedir.
Bu pinler kendi içlerinde pull-up dirençlerine sahiptirler.
PORT C: 7 bitten oluşmaktadır. Her bir bit giriş/çıkış olarak kullanılabilmektedir.
Bu pinler kendi içlerinde pull-up dirençlerine sahiptirler. C Portunun pinleri aynı
8
zamanda ADC (analog/dijital dönüştürücü) olarak kullanılabilmektedirler. PC6 pini (C
portunun 6. pini) aynı zamanda RESET pinidir.
PORT D: 8 bitten oluşmaktadır. Her bir bit giriş/çıkış olarak kullanılabilmektedir.
Bu pinler kendi içlerinde pull-up dirençlerine sahiptirler. PD0 (D portunun 0. pini) ve
PD1 (D portunun 1. pini) pinleri sırasıyla Rx, Tx pinleridir.
ATMEGA328P’nin 20. pini olan AVcc; ADC içim gerekli gücü sağlamaktadır.
ADC kullanılmıyorsa, AVcc Vcc ile ilişkilenir ve AVcc=Vcc olur. ADC kullanılıyorsa,
AVcc; Vcc’nin alçak geriçeren süzgeç ile filtrelenmiş hali olur.
AREF pini; ADC için analog referans pinidir.
Çizelge 1’de ATMEGA328P mikroişlemcisinin hafızaları gösterilmiştir. [5]
Çizelge 1. ATmega328P hafızaları
Flash EEPROM RAM
32 KByte 1 KByte 2 KByte
2.3.2. GSM/GPRS Modem
GSM/GPRS Modem, M2M uygulamalarda GSM üzerinden kontrol
sağlanabilmek için geliştirilmiştir. Modem üzerinde SIM900 GSM modülü bulunur. SIM
kart bu modüle bağlanır. Modem üzerindeki diğer elemanlar modülün düzgün çalışması
için tasarlanan devrenin elemanlarıdır. Modem üzerinde seri iletişimi kolaylaştırmak için
portlar oluşturulmuştur. Böylelikle fazladan entegrelere gerek kalmadan direkt olarak
modem ile iletişimin sağlanmasına olanak tanınmıştır. Aynı zamanda modemin
mikroişlemci vb. entegreler yerine bilgisayar gibi aletlere bağlanılması gerektiğinde
kullanılması için RS232 seri portu ve MAX232 entegresi bu modeme eklenmiştir.
9
Bu projede GSM/GPRS modem ile Arduino Uno R3 Launchpad ek bir bağlantı
kullanılmadan direkt olarak Rx, Tx uçlarından birbirlerine bağlanmıştır.
Projede kullanılan GSM/GPRS modem şekil 2.2’de verilmiştir.
Modem üzerindeki SIM900 modülün bazı özellikleri:
850, 900, 1800, 1900 MHz frekans bandlarında çalışabilmektedir.
AT Komutları ile kontrol edilebilmektedir.
Çalışma sıcaklığı -40°C ile +85°C arasındadır. [6]
Türkiye’de GSM operatörleri GSM900 ve GSM1800 frekans bandlarını
kullanmaktadır. Kullanıcı hangi operatör ile çalışacağını kendisi seçeceğinden dolayı
kullanılan modemin bu iki frekans bandını destekliyor olması gerekmektedir.
2.3.3. Röle
Röleler bir elektrik devresinin açılıp kapanmasını sağlayan elektriksel
anahtarlardır. Şekil 6.1’de rölenin Proteus Isis programındaki görüntüsü, şekil 6.2’de de
sistemde kullanılan rölenin resmi verilmektedir.
Şekil 6.1. Rölenin Proteus Isis programındaki görüntüsü Şekil 6.2. Kullanılan röle
Röleler 3 bölümden meydana gelir. Bunlar: Bobin, Palet ve Kontaktır. Rölenin
girişi bobindir.
Gerçekleştirilen sistemde röleler oda termostatın kombiye bağlanan aparatının
girişine bağlanmıştır.
10
2.3.4. LM35 Sıcaklık Sensörü
LM35, 3 bacaklı, yarı iletken bir sıcaklık sensörüdür. Gerçekleştirilen sistemde
geri besleme için kullanılmıştır. LM35’in çıkışı analogtur. Dolayısıyla Arduino’da
LM35’ten gelen uç analog girişe girer ve Arduino’nun içindeki program sayesinde gelen
analog bilgi sayısala dönüştürülür. LM35’in pin yapısı şekil 7’de gösterilmektedir.
Şekil 7. LM35 Sıcaklık sensörünün pin yapısı
LM35 Sıcaklık sensörünün bazı teknik özellikleri:
* Giriş gerilimi: -0.2V – 35V
* Çıkış gerilimi: -1V – 6V
* Çıkış akımı: 10mA
* -40°C ile +110°C arasını ölçebilmektedir. [7]
2.3.5. Oda Termostatı
Oda termostatında bir sıcaklık sensörü bulunmaktadır. Bu sensörden odanın
sıcaklığı alınır ve termostatın üzerindeki LCD ekrandan sürekli olarak gösterilir.
Termostatın içerisindeki program sayesinde kullanıcı termostatı istediği sıcaklığa göre
programlayabilmektedir. Böylelikle kombinin çalışması tesisat suyu sıcaklığına göre
değil de ev içindeki sıcaklığa göre ayarlanmaktadır. Örneğin; oda termostatı 22°C ‘ye
ayarlı ise oda sıcaklığı 22°C’de sabit kalmaktadır. Böylelikle yakıttan ve enerjiden
tasarruf sağlanmaktadır.
11
2.3.6. Kombi
Kombi kelimesi dilimize İngilizce olan “Combined (Birleşik)” kelimesinden
geçmiştir. Kombi ile konutun hem ısınma hem de sıcak su ihtiyacı karşılandığı için
birleşik bir sistemdir.
Kombilerde ısıtılan su borular aracılığıyla konut içerisindeki kalorifer peteklerine
ve sıcak su borularına dağılmaktadır. Bu dağıtımın yapılabilmesi için kombinin içerisinde
bir pompa bulunmaktadır. Kullanıcı kombinin üzerindeki kontrol panelinde dolanan
suyun sıcaklığı ayarlamaktadır. Suyun sıcaklığı kullanıcının istediği değere geldiğinde
kombi kendini otomatik olarak kapatır. Suyun sıcaklığı düşmeye başladığında kombi
kendini tekrar çalıştırır ve suyu, programlanmış olan sıcaklık değerine kadar ısıtır.
Kombinin bu sıcaklık değerlerini karşılaştırabilmesi için içerisinde bir termostat
bulunmaktadır.
Kombilerde, dışarıdan bir kontrol sistemi bağlanabilmesi için 2 addet uç
bırakılmaktadır. Eğer dışarıdan harici bir kontrol sistemi bağlanmıyorsa bu uçlar kısa-
devre edilir.
2.3.7. LCD Ekran
LCD (Liquid Crystal Display) ekran, 2 adet cam tabakanın arasına likid kristal
sıkıştırılarak oluşturulmaktadır. İçerisinde bulunan sıvı, ışığı tek fazlı olarak
geçirmektedir.
Kontrol sisteminde kullanılan LCD ekran 2 satır, 16 sütunluk LM016L LCD
ekranıdır. Şekil 8’de kullanılmakta olan LCD ekran ve bu ekranın Proteus Isis
programındaki görüntüsü verilmiştir.
12
Şekil 8. LM016L LCD ekran ve bu ekranın Proteus Isis programında görüntüsü
LM016L LCD ekranının beslemesi 2 numaralı VDD ucudur. Kullanılmayan
D0,D1,D2,D3 uçları ile 1 numaralı VSS ucu toprağa bağlanmaktadır.
2.3.8. BC337 Transistör
BC337 Silisyum malzemeden üretilmiş, npn tipinde bir transistördür. Düşük güçlü
uygulamalarda anahtarlama görevi görmek üzere kullanılabilmektedir. Aynı zamanda
BC337 yükselteç devrelerinde de kullanılabilmektedir.
Kollektör ile Emitör arasındaki doyma gerilimi (Vce), 50V’dur. Emitör ile baz
arasındaki ters yönlü gerilim değeri (Vbe), 5V’dur. Kollektör akımı 800mA, baz akımı
100mA’dir. 150°C sıcaklığa kadar olan ortamlarda çalışabilmektedir. [8]
BC337 Transistörün pin yapısı şekil 9’da gösterilmiştir. Transistörün 1. pini
kollektör, 2. pini baz, 3. pini emitör uçlarıdır.
Şekil 9. BC337 Transistör pin yapısı
13
2.3.9. Direnç
Dirençler kullanıldıkları devrelerde akımı düşürmeye veya gerilimi bölmeye
yarayan elemanlardır. Projede direnç kullanılmasının nedeni devre elemanlarının yüksek
akımdan dolayı yanmasını önlemektir.
2.3.10. Kondansatör
Kondansatör iki iletken levha arasına bir dielektrik malzeme konularak üretilmiş
devre elemanlarıdır. Kısa süreli olarak elektrik yükünü depo ederler. AC kuplaj için
kullanılabilirler.
2.3.11. Transformatör
Transformatörler AC işaretlerin, frekanslarını değiştirmeden, genlik değerlerini
değiştirmeye yarayan devre elemanlarıdır. Bu değişim manyetizma sayesinde
gerçekleşmektedir. Girişindeki ve çıkışındaki gerilim ve ya akım değerlerinin
ayarlanması, transformatörün girişindeki (primer) ve çıkışındaki (sekonder) sarım sayıları
ile orantılıdır. Bu orantı denklem (1) de verildiği gibidir.
𝑁𝑝
𝑁𝑠=
𝑉𝑖
𝑉𝑜=
𝐼𝑜
𝐼𝑖 (1)
(1) Denkleminde; Np: Primer sarım sayısı
Ns: Sekonder sarım sayısı
Vi: Giriş gerilimi
Vo: Çıkış gerilimi
Ii: Giriş akımı
Io: Çıkış akımını ifade etmektedir.
14
2.3.12. Köprü Diyot
AC/DC İnvertör devresi yaparken girişteki AC işaretin doğrultulması
gerekmektedir. Bu doğrultma köprü diyot ile gerçekleştirilir. Köprü diyot, 4 adet diyotun
uygun şekilde birleştirilmesiyle oluşmaktadır. Diyotların kutuplanması alternatif akımın
hem pozitif hem de negatif alternansını doğrultacak şekildedir. Şekil 10’da bir köprü
diyotun Proteus Isis programındaki görüntüsü verilmiştir. Diyotların kutuplanması bu
şekil üzerinden daha iyi anlaşılabilmektedir.
Şekil 10. Köprü diyotun Proteus Isis programındaki görüntüsü
2.3.13. 7805 ve 7812
Gerilim Regülatörleri sabit DC bir gerilim elde etmek için kullanılmaktadır.
Elektronik cihazların çoğu hassas cihazlardır ve ufak bir gerilim dalgasından kolaylıkla
etkilenerek bozulabilmektedirler. Bu dalgalanmaları yok etmek için gerilim regülatörleri
kullanılmaktadır.
Şekil 11. Entegre tipi gerilim regülatörü
15
Şekil 11’de de görüldüğü gibi entegre tipi gerilim regülatörleri 3 bacaklıdır. 78xx
serisinin 1 numaralı bacağı giriş bacağıdır. 2 numaralı bacak GND, 3 numaralı bacağı
çıkış bacağıdır.
Pozitif DC gerilim regüle etmek için en çok kullanılan gerilim regülatörü 78xx
serisidir. Bu serinin son iki rakamı çıkış gerilimini vermektedir. Örneğin 7805; 5V, 7812;
12V çıkış gerilimi sağlamaktadır. Negatif gerilim regüle etmek için 79xx serisi yaygın
olarak kullanılmaktadır.
2.3.14. Led
Ledler ışık yayan diyotlardır. Doğru polarlandıklarında üzerinden geçen akıma
göre ışık yayarlar. Ledler de diyot oldukları için onların da bir eşik gerilimi vardır ve bu
gerilim değeri ledin rengine göre değişiklik gösterir. Farklı renklerdeki bazı ledlerin eşik
gerilimi çizelge 2’de verilmiştir.
Çizelge 2. Renklerine göre ledlerin eşik gerilimleri
Kırmızı Turuncu Sarı Yeşil Mavi Beyaz 1.8V – 2.1V 2.2V 2.4V 2.6V 3V – 3.5V 3V – 3.5V
16
3. AT KOMUTLARI
AT Komutları (Attention Command), ETSI (European Telecommunication
Instute)’nin cep telefonları için geliştirdiği bir standarttır. AT komutları ile SIM karta
erişilebilmekte ve istenilen şeyler bu komutlar sayesinde telefona dokunmadan
yaptırılabilmektedir. Bu komutlarla IMSI bilgisinden, modem veya telefon üreticisine
kadar her bilgi öğrenilebilmektedir. Aynı zamanda SMS gönderme, SMS okuma, SMS
silme, arama yapma gibi fonksiyonlar da bu komutlar sayesinde herhangi bir tuşa
basmadan yapılabilmektedir.
AT komutlarının iki formatı vardır. Bunlar: TEXT ve PDU’dur. Bu projede
“TEXT” formatı kullanılmıştır. PDU formatında metinler ASCII (American Standard
Code for Information Interchange) kodlarına dönüştürülmekte ve o şekilde işlem
yapılmaktadır. TEXT formatında ise bu dönüşüme ihtiyaç olmadan yazılan metinler
direkt olarak işleme tabi tutulabilmektedir.
Çizelge 3. Programda Kullanılacak AT Komutları:
KOMUT AÇIKLAMA KULLANIM ŞEKLİ
AT
Uyarma Komutu (Attention
command). Her komut AT
ön eki ile başlar.
“AT” komutu verildiğinde GSM
modülünden “OK” cevabı gelir. Bu
bağlantının gerçekleştiğini gösterir.
AT+CMGF
Mesaj formatının seçilmesi
için kullanılır. “0” PDU, “1”
TEXT formatını seçer. AT+CMGF=1
AT+CMGD Mesaj silme komutudur. AT+CMGD=1
AT+CMGR
Mesaj okuma komutudur.
AT+CMGR=0 ise alınan mesaj okunmamış, AT+CMGR=1 ise alınan mesajı oku demektir.
AT+CMGR=1
AT+CPMS Mesaj hafıza tipini belirler.
AT+CPMS=<mem1>,<mem2>,<mem3> <mem1> : okuma-silme <mem2> : yazma – gönderme <mem3> : alma
17
Çizelge 3’ün devamı
KOMUT AÇIKLAMA KULLANIM ŞEKLİ
AT+CMGS Mesaj gönderme komutudur. AT+CSCA=”+90msjmerkezinumarası” AT+CMGS=”+90alıcınınnumarası”
Çizelge 3’te projede kullanılan AT komutları ve bu komutların kullanım şekli
gösterilmiştir. Çizelge 3’te de görüldüğü gibi kullanılan her AT komutu, AT ön eki ile
başlamaktadır. Modem ile bağlantı kurabilmek için önce modeme “AT” şeklinde bir
komut gönderilmektedir. Modem “OK” cevabı gönderdiğinde bağlantı kurulmuş
demektir. Bu noktadan sonra modem istenildiği gibi yönlendirilebilmektedir [9].
Gerçekleştirilen projede, ilk aşamada GSM/GPRS modeme AT komutu
gönderilmiştir. Bağlantı gerçekleştiğinde mesaj formatını seçmek için AT+CMGF=1
komutu gönderilmiştir. Bu komuta da OK cevabı geldiğinde mesaj okuma komutu olan
AT+CMGR=1 komutu gönderilmiştir. GSM/GPRS Modem bu komutu aldıktan sonra
mesaj bilgileri ile birlikte, gelen mesajı Arduino aracılığı ile ekranı ekrana
yansıtmaktadır. Şekil 12’de bahsedilen bu işlemler gösterilmiştir.
Şekil 12. Modeme gelen SMS’i okuma komutları
18
Şekil 12’de “ +CMGR: “REC READ”, ”+905054471468”, ””, ”13/05/06,
21:55:21+12” KOMBIAC “ olarak gözüken kısım mesaj okuma komutuna GSM/GPRS
modemin verdiği cevaptır. “REC READ” mesajın okunduğunu göstermektedir.
“+905054471468” mesajı atanın numarasını göstermektedir. “13/05/06” yıl/gün/ay
formatında mesajın geldiği tarihi ve “21:55:21” ise mesajın geldiği saati göstermektedir.
Bunların bir alt satırındaki KOMBIAC, sisteme gelen mesajdır.
Sistemin geri beslemesinde, kontrol devresi kullanıcıya SMS göndermektedir.
Bunun için yine AT komutu ile bağlantı kurulmakta ve AT+CMGF=1 komutu ile
gönderilecek mesajın formatı seçilmektedir. Daha sonra AT+CMGS=”+905054471468”
komutunu yazıp “Enter” tuşuna basılması gerekmektedir. “Enter” tuşunun ASCII
karşılığı “13” tür. Bu komuta cevap “>” şeklinde olmaktadır. Burada > işaretinden sonra
gönderilecek mesaj yazılmaktadır. Mesaj yazıldıktan sonra gönderilebilmesi için
“CTRL+Z” tuşlarına aynı anda basılması gerekmektedir. Sistem otomatik bir sistem
olduğundan dolayı CTRL+Z tuşunun ASCII karşılığı Arduino’ya yüklenmiştir. Bu
tuşlamanın ASCII karşılığı “26” tür.
Şekil 13. Sistem tarafından gönderilen SMS
Şekil 13’te “Otomasyon Sistemi” tarafından gönderilen SMS, LM35 tarafından
ölçülen o anki sıcaklık değerini göstermektedir.
19
4. YAZILIM
4.1. Arduino IDE
Arduino IDE (Bütünleşik geliştirme ortamı) ile programın kodları yazılmıştır ve
derlenerek Arduino Launchpadinde bulunan mikroişlemcinin üzerine yazılmıştır.
Arduino’da yazılan programların uzantısı .ino’dur. Arduino programlama dili C++
tabanlı bir dildir. Burada yazılmış olan kodlar, her bilgisayarda bulunan notepad gibi
dosyalar ile açılabilmektedir. Şekil 14’de Arduino IDE’nin boş bir sayfası
gözükmektedir.
Şekil 14. Boş bir Arduino IDE sayfası
Şekil 14’te görüldüğü gibi Arduino IDE üzerinde yazılan programlara “Sketch”
adı verilmektedir. Şeklin sağ üst tarafındaki büyütece benzeyen işaret “Serial Monitor”ü
simgelemektedir. Programı Arduino üzerindeki mikroişlemciye yükledikten sonra bu
işarete tıklayarak, işlemcinin gerçekleştirdiği komutlar izlenebilmektedir.
20
4.2. Programın Akış Diyagramı
HAYIR
EVET
ON OFF
Şekil 15. Programın akış diyagramı
BAŞLA
DEĞİŞKENLER
VE GENEL
AYARLAMALAR
DÖNGÜ
BAŞLANGICI
GSM MODEM İLE
BAĞLANTI KUR
MESAJ GELDİ
Mİ?
MESAJIN İÇERİĞİ
NE?
ÇIKIŞI
LOJİK-1 YAP
ÇIKIŞI LOJİK-0
YAP
MESAJLARI
SİL
HATALI
MESAJ
SMS TİPİNİ BELİRLE
SICAKLIĞI
GÖNDER
SICAKLIĞI
GÖNDER
21
Arduino IDE ortamında yazılan programın akış diyagramı şekil 15’de
verilmektedir. Şekil 15’deki akış diyagramı incelendiğinde; Arduino’ya güç verilmesi ile
birlikte diyagramın birinci basamağı olan BAŞLA kısmı aktifleşmiş olmaktır. Daha sonra
seri iletişim için gerekli olan kütüphane çağrılmıştır. Ardından ATMEGA328P
işlemcisinin hangi pinin ne görevde kullanılacağı belirlenmiştir. Gerekli olan integer,
karakter ve string değişkenleri tanımlanarak seri iletişim için gerekli olan data hızı
tanımlanmıştır. GSM/GPRS Modeme “AT” komutu yollanarak modem ile işlemci
arasındaki bağlantı kurulmaktadır. Bu komuttan belli bir süre sonra “AT+CMGF=1”
komutu ile kullanılacak mesaj tipi tanımlanmıştır. Gerekli olan bu ayarlamalar yapılarak
modem ile bağlantı gerçekleştikten sonra program sonsuz döngüye girmektedir. Bu
döngüde modeme “AT+CMGR=1” komutu ile gelen mesajı okuma emri
gönderilmektedir. Mesaj gelmediyse program döngünün başlangıcına geri dönmektedir.
Mesaj geldiyse program gelen mesajı okur ve mesajın içeriğine göre hareket eder.
Gelen mesaj “ON” ise ATMEGA328P mikroişlemcisinin çıkış olarak seçilen pini
lojik-1 olmakta ve kombi çalışmaya başlamaktadır. Ardından program, geri besleme alt
programına gitmekte ve LM35’ten alınan sıcaklık bilgisi kullanıcıya SMS olarak
gönderilmektedir. Bu işlem tamamlandıktan sonra program mesaj silme alt programına
gitmekte ve okunan mesaj silinmektedir. Mesaj silindikten sonra program döngü başına
geri dönmekte ve yeni gelecek mesajı beklemektedir.
Gelen mesaj “OFF” ise ATMEGA328P mikroişlemcisinin çıkış olarak seçilen
pini lojik-0 olmakta ve kombi kapanmaktadır. Ardından program, geri besleme alt
programına gitmekte ve LM35’ten alınan sıcaklık bilgisi kullanıcıya SMS olarak
gönderilmektedir. Bu işlem tamamlandıktan sonra program mesaj silme alt programına
gitmekte ve okunan mesaj silinmektedir. Mesaj silindikten sonra program döngü başına
geri dönmekte ve yeni gelecek mesajı beklemektedir.
Farklı bir mesaj gelmiş ise program her hangi bir işlem yapmadan direkt olarak
mesaj silme alt programına gitmekte ve bu mesaj silinmektedir. Mesaj silindikten sonra
program döngü başına geri dönmekte ve yeni gelecek mesajı beklemektedir.
22
4.3. Program
Programda kullanılacak seri haberleşme kütüphanesi “SoftwareSerial.h” dır.
#include <SoftwareSerial.h> komutuyla kullanılacak olan bu kütüphane
çağrılmaktadır.
SoftwareSerial mySerial(9,10); komutuyla seri haberleşme için kullanılacak pinler
seçilmektedir. Bu programda 9 numaralı pin Rx, 10 numaralı pin Tx ucu olarak
seçilmiştir.
Programda kullanılan, gerekli tanımlamalar aşağıdaki kodda gösterilmiştir. Bazı
komutların yanına açıklamaları eklenmiştir.
const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
int i;
int timestosend=1; //Mesaj gönderme döngüsü için kullanılan değişken
int count=0; //Mesaj gönderme döngüsü için kullanılan değişken
int readValue = 0;
int analogPin = 3; //LM35’in çıkış pininin bağlı olduğu pin
float temperature = 0;
float yy=0;
char c[160];
char m[160];
String sms;
Programda kullanılacak genel ayarlar setup() programı içerisinde tanımlanmıştır.
Burada GSM/GPRS modem ile Arduino arasındaki seri iletişim hızı 9600 Baud olacak
şekilde tanımlanmıştır. Aynı zamanda Arduino ile GSM/GPRS modem arasındaki
bağlantının kurulması aşamasında kullanılacak olan komutlar da yine setup() programı
içerisinde tanımlanmıştır.
23
void setup() //setup() programının başlangıcı
Serial.begin(9600); //Arduino IDE’nin seri haberleşme hızı 9600 Baud
mySerial.begin(9600); // Arduino ile modem arasındaki seri haberleşme hızı 9600
Baud
delay(200); //200 ms bekle
mySerial.println("AT"); //Arduino’dan modeme AT komutu yolla
delay(200); // 200 ms bekle
mySerial.println("AT+CMGF=1"); //Arduino’dan modeme AT+CMGF=1
komutu yolla
delay(200); //200 ms bekle
setup() programında AT komutları Arduino’dan modeme yollanırken
mySerial.println() komutu kullanılmaktadır. Gönderme komutu bu şekilde
kullanıldığında komutun modeme ulaşması için “ENTER” tuşunu temsil den ASCII kodu
(13) gönderilmesine gerek kalmamaktadır.
Gerekli ayarlamalar yapıldıktan ve Arduino ile GSM/GPRS modem bağlantıya
geçtikten sonra program sonsuz döngüye girmektedir. Bu döngü loop() programıdır.
loop() programında, döngü için gerekli değişkenler tanımlandıktan sonra AT+CMGR=1
komutuyla mesaj okuma işlemi sürekli olarak gerçekleşmektedir. Gelen mesaj olduğunda
programın bu mesajı anlayabilmesi için string değişkeni tanımlanmıştır. Program for
döngüsü ile gelen mesajı karakter olarak okuyabilmektedir. Program gelen mesajı
okumayı tamamladığında if komutlarıyla karşılaştırma yapılmaktadır. İf içerisindeki
IndexOf komutu ile program direkt olarak gelen mesajın içerisindeki string bilgiye
bakmaktadır. Bu bilgiye göre gerekli çıkışlar program tarafından ayarlanmakta ve
program sırasıyla gbes() alt programına ve sil() alt programına dallanmaktadır. Bu alt
programlardaki komutlar yerine getirildikten sonra program 200 ms bekleyerek döngü
başlangıcına geri dönmektedir. Bu işlem sürekli tekrarlanmaktadır.
24
void loop() //Döngü başlangıcı
char incoming_char[200]=" ";
String sms = String(200);
mySerial.write("AT+CMGR="); // Arduino’dan modeme yollamak üzere
AT+CMGR= yaz
mySerial.write("1"); // Arduino’dan modeme yollamak üzere 1 yaz
mySerial.write(13); //ENTER komutunun ASCII karşılığını yaz
// Bu işlemler sonucunda Arduino’dan modeme AT+CMGR=1 komutu yollanır
delay(100); // 100 ms bekle
for(i=0;i<100;i++) //Alınan mesajı anlamak için for döngüsü başlat
char m= mySerial.read(); //mySerial’den okuduğu karakterleri m değişkenine ata
delay(4); //4 ms bekle
Serial.print(m); //Serial Monitor’e m değişkenini yaz
incoming_char[i]=m; // m değişkenini incoming_char dizisine ata
sms=incoming_char; //sms değişkenini incoming_char’a eşitle
if(sms.indexOf("ON")>=0) //sms değişkeninin içerisinde ON ifadesi var ise
Serial.println("ON mesajı okundu"); //Serial Monitor’e “ON mesajı okundu” yaz
digitalWrite(2,HIGH); //mikroişlemcinin 2. pinini lojik-1 yap
gbes(); //gbes() alt programına dallan
sil(); //sil() alt programına dallan
digitalWrite(2,HIGH); // Çıkış pinini lojik-1’de tut
if(sms.indexOf("OFF")>=0) //sms değişkeninin içerisinde OFF ifadesi var ise
Serial.println("OFF mesajı okundu"); //Serial Monitor’e “OFF mesajı okundu” yaz
digitalWrite(2,LOW); // mikroişlemcinin 2. pinini lojik-0 yap
25
gbes(); // gbes() alt programına dallan
sil(); //sil() alt programına dallan
delay(200); // 200 ms bekle
loop() programında Arduino’dan GSM/GPRS modeme AT+CMGR=1 komutu
yollanırken mySerial.write() komutu kullanılmaktadır. Bu komuttan sonra modeme
ENTER tuşunun ASCII kodunda karşılığı olan 13 komutu yollanmaktadır.
Program yalnızca 1 mesaj okuyabilmektedir. Dolayısıyla gelen mesajın silinmesi
gerekmektedir. Ayrıca SIM kartların hafızası çok küçüktür ve eğer mesajlar silinmezse
bu hafıza dolabilir. Bu da programın düzgün çalışmamasına neden olur. Gelen mesajın
silinmesi sil() alt programı yapılmaktadır. Bu alt programda Arduino’dan GSM/GPRS
modeme, AT komutlarından sil emrini veren AT+CMGD=1 komutu yollanmaktadır.
void sil() //sil() alt programının başlangıcı
mySerial.println("AT+CMGD=1"); // Arduino’dan modeme AT+CMGD=1
komutu yolla
delay(200); //200 ms bekle
Sistemin geri beslemesinde, GSM/GPRS modemden kullanıcıya LM35’den
alınan sıcaklık bilgisinin sayısala dönüştürülmüş değeri, SMS olarak gönderilmektedir.
AT+CMGS komutu SMS gönderme komutudur. gbes() alt programında bu AT komutu
kullanılarak kullanıcıya mesaj gönderilmesi sağlanmaktadır. gbes() programının içinde
çağrılan sicaklik() alt programı ile kullanıcıya gönderilecek olan sıcaklık bilgisinin
analogtan sayısal değere dönüştürülmesi için gerekli program sağlanmaktadır. Sistemin
kullanıcıya sürekli olarak SMS atmasını engellemek amacıyla, programın SMS gönderme
kısmı bir while döngüsüne alınmıştır. Böylelikle sistem kullanıcıya yalnızca 1 SMS
göndermektedir.
26
void gbes() // gbes() alt programı başlangıcı
while(count<timestosend) //while döngüsü başlangıcı
mySerial.println("AT+CMGF=1"); //Mesaj formatını TEXT seç komutu
delay(2500); //2500 ms bekle
mySerial.write("AT+CMGS="); // Arduino’dan modeme yollamak üzere
AT+CMGS= yaz
mySerial.write(34); // “ İşaretinin ASCII kodundaki karşılığını yaz
mySerial.write("+905378479585"); //Mesaj gönderilecek numara
mySerial.write(34); // ” İşaretinin ASCII kodundaki karşılığını yaz
mySerial.write(13); // ENTER komutunun ASCII karşılığını yaz
mySerial.write(10); // Alt satıra geç
delay(2500); //2500 ms bekle
sicaklik(); // sicaklik() alt programına dallan
delay(2500); // 2500 ms bekle
mySerial.write(26); // CTRL+Z tuşunun ASCII kodundaki karşılığını yaz
mySerial.write(13); // ENTER komutunun ASCII karşılığını yaz
mySerial.write(10); //Alt satıra geç
delay(2500); //2500 ms bekle
count++; //count değişkenini artır
void sicaklik() // sicaklik() alt programının başlangıcı
float yy=0; // yy değişkenini 0 yap
readValue = analogRead(analogPin); //analogPin’den okuduğunu read Value
değişkenine ata
temperature = (readValue * 0.0049); //analog veriyi sayısala çevirme işlemi
temperature = temperature * 100; //analog veriyi sayısala çevirme işlemi
yy=temperature; //yy değişkenini temperature’a eşitle
27
mySerial.print("Oda sicakligi"); //Kullanıcıya göndermek için “Oda
sicakligi” yaz
mySerial.print(yy); // Kullanıcıya göndermek için yy sayısal değerini yaz
mySerial.println(" C "); // Gönderilecek mesajda yy değerinden sonra C ekle
sicaklik() alt programındaki temperature = readValue * 0.0049 ve
temperature=temperature * 100 işlemleri ile LM35’den gelen analog sinyalin gerilim
değeri hesaplanmaktadır. LM35 Sıcaklık sensöründe 1°C’lik değişim yaklaşık 10mV ‘a
denk gelmektedir. ATMEGA328P mikroişlemcinin içerisindeki dahili ADC ve bu
işlemler ile analog sinyal, sayısala dönüştürülmekte ve değeri hesaplanmaktadır.
28
5. DENEYSEL ÇALIŞMALAR
5.1. Sistem Bağlantıları
Bu bölümde besleme devresi ile kontrol devresi arasındaki bağlantılar ve kontrol
devresinde; Arduino Uno R3 launchpad ile GSM/GPRS modem ve Arduino Uno R3
launchpad ile kontrol elemanları arasındaki bağlantılar anlatılacaktır.
5.1.1. Besleme Devresi İle Kontrol Devresi Arasındaki Bağlantılar
Besleme devresin 5V (DC) ve 12V (DC) gerilimler üretilmektedir. Besleme
devresinin çıkışında 2 adet 5V, 2 adet 12V gerilimler için çıkış bulunmaktadır.
Besleme devresinin şeması şekil 4’de verilmiştir. Bu devre şemasına göre besleme
devresi önce bread board’a kurularak test edilmiştir. Devrenin düzgün çalıştığı
görüldükten sonra şekil 16’daki gibi delikli plaket üzerine lehimlenmiştir.
Şekil 16. Besleme devresi
29
Şekil 16’da görüldüğü üzere transformatörün çıkışına bir adet cam sigorta
konulmuştur. Bu cam sigortanın değeri 2A’dir. Transformatörün çıkışında 2A’der fazla
akım olması durumunda sigorta devre ile bağlantıyı kesmekte ve devreyi yüksek akıma
karşı korumaktadır.
Besleme devresinin 5V olan uçlarından birisi GSM/GPRS modemin güç girişi
ucuna bağlanmıştır. 12V olan uçlarından birisi Arduino Uno R3 launchpadin güç girişine
bağlanmıştır. Diğer 12V’luk çıkış ucu rölenin beslenmesinde kullanılmaktadır.
Bağlantılar şekil 17’de gösterilmektedir.
Şekil 17. Besleme devresi ile kontrol devresi arasındaki bağlantılar
Şekil 17’deki bağlantılar incelendiğinde, GSM/GPRS modeme besleme
devresinin 5V’luk ucunun bağlanmadığı gözükmektedir. GSM/GPRS modemin
30
beslenmesi, besleme devresinden sağlanabildiği gibi Arduino Uno R3 launchpadin
üzerindeki 5V’luk çıkıştan da elde edilebilmektedir.
5.1.2. Arduino Launchpad İle GSM/GPRS Modem Arasındaki Bağlantılar
Arduino ile GSM/GPRS modem arasında bir seri iletişim gerçekleşmektedir. Bu
iletişimin sağlanabilmesi için; Arduino’nun Tx ucu modemin Rx ucuna, Arduino’nun Rx
ucu modemin Tx ucuna bağlanmaktadır.
Şekil 18. Arduino launchpad ile GSM/GPRS modem arasındaki bağlantılar
Şekil 18’de Tx-Rx, Rx-Tx bağlantıları gösterilmiştir. Arduino’nun Rx ucu olan 9.
pini modemin Tx ucuna, Arduino’nun Tx ucu olan 10. Pini modemin Rx ucuna
bağlanmaktadır. GSM modeme besleme devresinden bağlantı yapılmak istenmediği
durum için şekildeki kırmızı ve siyah kablolar ile modemin beslenmesi sağlanmıştır.
Kırmızı kablo 5V(DC), siyah kablo GND bağlantısıdır.
5.1.3. Arduino Launchpad İle Kontrol Elemanları Arasındaki Bağlantılar
Arduino’nun çıkış olarak seçilen pini rölenin ilgili bacağına BC337 transistör ile
bağlanmaktadır. BC337 transistörünün kollektör ucu rölenin ilgili bacağına
31
bağlanmaktadır. Arduino’nun çıkışı 1kΩ’luk direnç ile bu transistörün baz ucuna
bağlanmaktadır. Transistörün emitör ucu toprağa bağlanmaktadır. Rölenin NO bacağı
oda termostatının kombiye bağlanan aparatını tetiklemek üzere bağlanmaktadır. Rölenin
NC bacağı boşta bırakılmaktadır. Diğer iki bacak ise 12V (DC) gerilim ile
beslenmektedir. Yapılmış olan bu bağlantılar şekil 19 da gösterilmektedir.
Şekil 19. Arduino Launchpad ile kontrol elemanları arasındaki bağlantı
5.2. Sistemin Çalışması
Gerekli bağlantılar yapıldıktan sonra sistemin çalışmasını düzenlemek için
deneysel çalışmalar yapılmıştır. Bu çalışmalarda stabil bir çalışma sağlanması için,
bağlantıların doğruluğu test edilmiş ve program içerisindeki bekleme zamanları
düzenlenmiştir. Bu düzenlemeler yapılırken devre elemanları birbirine lehimlenmemiş,
32
bread bord kullanılmıştır. Bunun nedeni her hangi bir aksilik çıkması durumunda lehim
sökmek yerine borddaki kablolarla oynamanın daha kolay olmasıdır.
İlk aşamada sms ile Arduino çıkış pinin durumunun değişip değişmediğini test
etmek amacı ile devreye röle konulmadan, Arduino’nun çıkış pinine bir 180Ω’luk bir
direnç ile led bağlanmıştır. Çalışmanın doğruluğu gözlemlendikten sonra röle ve diğer
elemanların bağlantıları yapılmıştır.
Şekil 20. SMS ile Arduino çıkış pininin değişiminin testi
33
Şekil 20’de; sisteme ON mesajı yollandığında Arduino’nun çıkış pinin lojik-1
değerini alarak bı pine bağlı ledin yanması test edilmektedir. Burada da görüldüğü gibi
Arduino istenildiği gibi SMS ile kontrol edilebilmektedir.
GSM/GPRS Modem içerisindeki SIM kartta birden fazla mesaj olması
durumunda sistem sürekli olarak ilk mesajı okumaktadır. Dolayısıyla sisteme atılan ilk
mesaj ile ikinci mesaj arasında en az 2s’lik bir bekleme olması gerekmektedir.
34
6. SONUÇLAR
SMS Kontrollü kombi sistemi, kombi kullanıcılarına hem ekonomik hem de
sosyal olarak katkı sağlamaktadır. Bu sistemle gereksiz gaz sarfiyatı önlenmektedir.
Bununla birlikte gerçekleştirilen sistem içerisinde oda termostatı kullanılarak, gereksiz
gaz sarfiyatı daha da azaltılmıştır. Böylelikle kullanıcının daha az fatura ödemesi
sağlanmıştır. Ayrıca gereksiz gaz sarfiyatının azaltılması ile çevre kirliliği de
azaltılmaktadır. Sistemin yerden ve zamandan bağımsız olması ve kullanıcının kombiyi
açmak veya kapatmak için kombinin yanında olmasına gerek kalmaması, kullanıcıya
sosyal açıdan katkı sağlamaktadır. Kullanıcı sosyal yaşantısına devam ederken sadece bir
SMS ile konutundaki veya iş yerindeki ısı seviyesini ayarlayabilmektedir.
35
7. YORUMLAR VE DEĞERLENDİRMELER
Bu projede kullanılan mikroişlemci, ATMEGA328P, daha önce bu tip SMS
kontrollü sistemlerde çok fazla kullanılmamıştır. Dolayısıyla bu işlemci ile SMS
kontrollü sistemlere bir yenilik getirilmiştir.
“SMS Kontrollü Kombi Sistemi” projesinde kullanılan programlama, SMS
kontrollü sistem geliştirmek isteyen kişilere yön gösterici olacaktır. AT komutlarının
kullanılması konusunda Türkçe olarak çok fazla bilgi kaynağı mevcut değildir.
Dolayısıyla bu proje AT komutlarını kullanarak sistem tasarlayacak olan kişilere bir
kaynak olacak niteliktedir.
Projede kullanılan mikroişlemcinin çıkış pinleri çoğaltılarak, SMS ile uzaktan
kontrol uygulaması birçok sistem için eş zamanlı veya ayrık olarak kullanılabilmektedir.
Özellikle akıllı ev otomasyonlarında bu sistemler oldukça fazla tercih edilmektedir.
Bunun yanında günümüzde SMS haberleşmeli güvenlik sistemi uygulamaları da hızla
çoğalmaktadır. Yine sera otomasyonu uygulamaları da bu sistemler içerisinde önemli
yere sahiptir.
36
KAYNAKLAR
[1]. M. Şanlı, F. Zengin, O. Urhan, “GSM Üzerinden SMS ile Sıcaklık Ölçümü”
Kocaeli Üniversitesi Elektronik ve Haberleşme Mühendisliği Bölümü,
İzmit/KOCAELİ
[2]. U. Fidan, N. Karasekreter, “GSM/SMS Tabanlı Sulama Otomasyonu Kontrol
Biriminin Geliştirilmesi ve Uygulanması”, NWSA Engineering Sciences, Ocak
2011
[3]. İ. Çayıroğlu, S. Görgünoğlu, “Mobil Telefon ve Pic Mikrodenetleyici
Kullanılarak Uzaktan Esnek Kontrol Sağlanması”, Int. J. Eng. Research &
Development,Vol12, No.1, Ocak 2010
[4]. F. Vatansever, B. Cincirop, “GSM Kontrollü Akıllı Ev Otomasyonu”,
6.International Advanced Technologies Symposium (IATS’11) 16-18 Mayıs
2011, Elazığ, Türkiye
[5]. “ATMEGA328p data sheet”, Atmel, California, USA
[6]. Beti GSM/GPRS Kullanım Kılavuzu, Beti, 2012
[7]. LM35 Precision Centigrade Temperature Sensors (SNIS159B), Texas
Instruments, 2000
[8]. “BC337 data sheet”, Fairchild Semiconductor, San Jose, USA
[9]. SIM 900 AT Command Manual, SIMCom, 2011
37
EK-1: Bitirme Projesi Çalışma Takvimi
HAFTALAR
1 2 3 4 5 6 7 8 9 10 11
PROGRAMLAMA
SİSTEMİN
PROTOTİP
ÇALIŞMASI
SİSTEMİN TEST
EDİLMESİ
MONTAJ
TEZ YAZIMI
38
Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü
STANDARTLAR VE KISITLAR FORMU
Bitirme Projesinin hazırlanmasında Standart ve Kısıtlarla ilgili olarak, aşağıdaki soruları
cevaplayınız.
1. Projenizin tasarım boyutu nedir? Açıklayınız.
Yapılmış olan bu proje evrenseldir. Dünyanın her yerindeki kombi sistemlerine entegre
edilebilir. Yalnız 220V’dan farklı şebeke gerilimi kullanan ülkelerde besleme devresi
değiştirilmelidir. Yine farklı ülkelerde bu sistemi kullanmak için kontrol devresine o
ülkede aktif olan Sim kart takılmalıdır.
2. Projenizde bir mühendislik problemini kendiniz formüle edip, çözdünüz mü?
Evet. Programlama kısmındaki problemlerin çözümü.
3. Önceki derslerde edindiğiniz hangi bilgi ve becerileri kullandınız?
Malzeme bilgisi, programlama.
4. Kullandığınız veya dikkate aldığınız mühendislik standartları nelerdir?
Sistem şebeke gerilimi olan 220V, 50Hz’de çalışacak şekilde gerçekleştrildi. Ayrıca
SMS ile iletişim bulunduğundan dolayı GSM900 ve GSM1800 standartları dikkate
alındı. Tasarlanan sistemin üniversal olması için malzeme seçimi buna uygun
yapıldı.
39
Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü
STANDARTLAR VE KISITLAR FORMU
5. Kullandığınız veya dikkate aldığınız gerçekçi kısıtlar nelerdir?
a) Ekonomi
Bu proje ile kullanıcılar %20-30 arasında gaz tasarrufu sağlamaktadırlar. Bu da
ekonomik yönden kullanıcıyı oldukça rahatlatmaktadır. Ayrıca sistem gaz
tasarrufunun yanında enerji tasarrufu da sağlamaktadır. Bu da elektrik
faturalarının düşmesini sağlar. Sistemin ekonomik olması için tasarlanabilir
malzemeler, dışarıdan satın alınmayarak proje içerisinde üretilmiştir
b) Çevre sorunları:
Kömür yakımı sonucu ortaya çıkan karbonmonoksit gazı kadar olmasa da
doğalgaz salınımının da çevreye zararlı olduğu bilinmektedir. Gaz salınımı
minimuma indirgenerek çevreye daha az zarar verilmektedir.
c) Sürdürülebilirlik:
Bu sistem kullanım kolaylığı ve gaz ve enerji tasarrufu sağlamasından dolayı
sürekli tercih edilecek bir sistemdir. Ayrıca sisteme yeni elemanlar eklenerek
başka sistemler için de kullanımı sağlanabilir.
d) Üretilebilirlik:
Projede kullanılan malzemeler ucuz ve kolaylıkla bulunabilen
malzemelerdir. Dolayısıyla bu şekilde bir sistemin üretilebilirliği kolaydır.
40
Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü
STANDARTLAR VE KISITLAR FORMU
e) Etik:
Projede etik dışı herhangi bir unsur bulunmamaktadır.
f) Sağlık:
Gaz tasarrufunun aza indirgenmesi, canlıların bu atık gazı solumasının da
aza indirgenmesi demektir. Dolayısıyla tasarlanan sistem canlıların sağlığına
zarar vermez.
Ayrıca kullanıcılar evlerine gelmeden önce istedikleri zamanda ısıtma
sistemini devreye sokarak, belirledikleri sıcaklık derecesindeki evlerine girecek
ve soğuktan kaynaklanan rahatsızlıklar da önlenmiş olunacaktır.
g) Güvenlik:
Projede güvenlik için, sistem yalnızca kayıtlı numaralardan gelen komutları
dikkate almaktadır. Bu da istenmeyen kişilerin sisteme müdahalesini imkansız
kılmaktadır.
h) Sosyal ve politik sorunlar:
Toplu kullanılan mekanlarda, yapılacak aktivitelerden önce görevli kişinin
SMS ile kombiyi kontrol ederek aktivite saatinden önce sıcaklık sistemini
çalıştırması ile aktivitenin sağlıklı ve rahat bir ortamda gerçekleşmesi
sağlanmaktadır.
41
Projenin Adı SMS KONTROLLÜ KOMBİ SİSTEMİ
Projedeki Öğrencilerin Adları
Ozan AKBULUT
Tarih ve İmzalar 23.05.2013
42
ÖZGEÇMİŞ
OZAN AKBULUT
Adres: TÜRKİYE-TRABZON-MERKEZ
GSM: 0505 447 1468
0537 847 9585
E-POSTA: [email protected]
KİŞİSEL BİLGİLER
Doğum Tarihi : 23/10/1990
Doğum Yeri : Giresun
Nüfusa Kayıtlı Olduğu İl : Trabzon
EĞİTİM BİLGİLERİ
Üniversite (Lisans) : Karadeniz Teknik Üniversitesi
(09/2009 - 06/2013) Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği
Üniversite (Lisans) : Anadolu Üniversitesi
(10/2011 – 06/2016) Açık Öğretim Fakültesi, İşletme
Lise : Giresun Keşap Anadolu Öğretmen Lisesi
YETKİNLİKLER
Sertifikalar Bilgileri:
EĞİTİM VE BAŞARI SERTİFİKASI
Kriz Yönetimi ve Stresle Başa Çıkma
Kişilerarası İletişim ve Kriz Yönetimi
Takım Çalışması
EYOF 2011 Trabzon Genel Koordinatörlüğü – 01/08/2011
KATILIM SERTİFİKASI
Geleceğe Değer
Türk Telekom Akademi – 08/12/2010
43
Facebook İle Uygulama Geliştirme
Bilge Adam – 10/02/2011
EYOF 2011 TRABZON ( European Youth Olympic Festival)
EYOF 2011 Trabzon Genel Koordinatörlüğü – 01/08/2011
Bilgisayar Bilgileri : MATLAB, C++, Assembly, CCS, PicBasic Pro, Arduino,
Proteus Isis, Proteus Ares, AutoCad, Microsoft Office