Professional Documents
Culture Documents
SEYH
BILEC
IK
EDEBALI NIVERS
ITES
I
IK
FAKLTESI
MHENDISL
I BLM
ISAYAR
IG
BILG
MHENDISL
ARDUINODA
LM35 SENSR ILE
ODA SICAKLIGININ
THINGSPEAK
IN
IN
ELDE EDILMES
ZERINDEN
GRAFIG
I
Frat UAR
PROJE II ALISMASI
PROJE II DANISMANI
BILEC
IK
11 Ocak 2017
T.C.
SEYH
BILEC
IK
EDEBALI NIVERS
ITES
I
IK
FAKLTESI
MHENDISL
I BLM
ISAYAR
IG
BILG
MHENDISL
ARDUINODA
LM35 SENSR ILE
ODA SICAKLIGININ
THINGSPEAK
IN
IN
ELDE EDILMES
ZERINDEN
GRAFIG
I
Frat UAR
PROJE II ALISMASI
PROJE II DANISMANI
BILEC
IK
11 Ocak 2017
ZET
Projenin Amac
Projenin Kapsam
Proje iki ana blmden olusmaktadr. Birinci blmde genel itibariyle arduino ve kullanlan malzemeler tantlrken, ikinci blmde ise verilerin aktarldg www.thingspeak.
comun islevi ve kod paralarnn alsmas incelendi.
Sonular
ii
ABSTRACT
Project Objective
By using the Arduino UNO LM35 sensor, it was aimed to obtain a temperature-time
graph of room temperature over the www.thingspeak.com internet site.
Scope of Project
The project consist of two main parts. The first part introduces the arduino and the used
materials in general, while the second part examines the function of the information and
the functioning of the code pieces of www.thingspeak.com.
Results
As a result, the room temperature was shown to change over time with the LM35 sensor,
open to all internet users via www.thingspeak.com.
iii
TESEKKR
Frat UAR
11 Ocak 2017
iv
INDEK
I
ILER
ZET
ii
ABSTRACT
iii
TESEKKR
iv
LISTES
SEK
IL
I
vii
IS
1 PROJEYE GIR
1.1
2.1
2.1.1
G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2
Hafza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3
Giris-ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4
Haberlesme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.5
Programlama . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ESP8266y Tanyalm . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1
Genel zellikleri . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2
ESP8266 Gncellenmesi . . . . . . . . . . . . . . . . . . . . . .
2.3
LM35i Tanyalm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
2.2
12
3.1
AT Komutlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
3.2
15
4 SONULAR VE NERILER
19
KAYNAKLAR
21
v
ZGEMIS
22
vi
LISTES
SEK
IL
I
1
Gncelleme devresi[3] . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
11
10
12
11
13
12
14
BaudRate ayar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
15
14
16
AT komutlar [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
17
15
18
Setup metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
19
Loop metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
20
17
21
18
vii
IS
PROJEYE GIR
Bu projede arduinoda LM35 scaklk sensr ile oda scaklgnn degerinin bir internet
sitesi zerinden tm kullanclara ak bir sekilde scaklk-zaman grafiginin gsterilmesi
amaland .
Bylece devresini kurdugumuz bu proje sayesinde istedigimiz bir yerin anlk scaklgnn grafigini herhangi bir internet baglantsyla projenin linkine tklayarak grenmis
olacagz.
Verilerin gnderilecegi site olan Thingspeak ayn zamanda birok daha uygulamann
tabann olusturmaktadr. Thingspeak ve uygulama alanlar 1. Blmde daha detayl anlatlacaktr.
Bu blmde projenin yapm asamalarna da deginilirse ;
1.1
2.1
Sekil
Arduino UNO; Atmega328 temelli bir mikrodenetleyici kartdr. zerinde 14 adet dijital giris/ks pini (6 tanesi PWM ks olarak kullanlabilir), 6 analog giris, 16Mhz
kristal, usb soketi, g soketi, ISCP konektr ve reset tusu bulundurmaktadr. Kart zerinde mikrodenetleyicinin alsmas iin gerekli olan her sey bulunmaktadr. Kolayca usb
kablosu zerinden bilgisayara baglanabilir, adaptr ve ya pil ile alstrlabilir.
Arduino UNOnun teknik zellikleri asagda belirtilmistir.
2
Sekil
2.1.1
sart degildir. Kart sadece adaptr ve ya batarya ile alstrlabilir. Bu sayede kart bilgisayardan bagmsz olarak alstrlabilir.
bilir.Ancak bu degerler limit degerleridir. Kart iin nerilen harici besleme 7-12V arasdr.
nk kart zerinde bulunan reglatr 7V altndaki degerlerde stabil alsmayabilir. 12V
stndeki degerlerde de asr snabilir. UNO kartnn zerindeki mikrodenetleyicinin alsma gerilimi 5Vdur. Vin pini ve ya g soketi zerinden verilen 7-12V aras gerilim
kart zerinde bulunan voltaj reglatr ile 5Va dsrlerek karta daglr.
G pinleri asagdaki gibidir.
VIN: Harici g kaynag kullanlrken 7-12V aras gerilim giris pini.
5V: Bu pin reglatrden kan 5V ks verir. Eger kart sadece usb(5V) zerinden alsyor ise usb zerinden gelen 5V dogrudan bu pin zerinden ks olarak verilir. Eger
karta g Vin(7-12V) ve ya g soketi (7-12V) zerinden veriliyorsa reglatrden kan
3
2.1.2
Hafza
Atmega328 32KBlk flash bellege sahiptir.(0.5 KB kadar bootloader tarafndan kullanlmaktadr). 2 KB SRAM ve 1 KB EEPROMu bulunmaktadr.
2.1.3
Giris-ks
2.1.4
Haberlesme
Arduino UNOnun bilgisayarla, baska bir arduino ve ya mikrodenetleyici ile haberlesmesi iin birka farkl seenek vardr. Atmega328, 0(RX) ve 1(TX) pinleri zerinden
UART TTL(5V) seri haberlesme imkan sunar. Kart zerinde bulunan Atmega16u2 usbseri dnstrcde bilgisayarda sanal bir com port aarak Atmega328 ile bilgisayar arasnda bir kpr kurar. Arduino bilgisayar program ierisinde barndrdg seri monitr ile
arduino ile bilgisayar arasnda text temelli bilgilerin gnderilip alnmasn saglar. Usb-seri
dnstrc ile bilgisayar arasnda usb zerinden haberlesme oldugu zaman kart zerinde
bulunan RX ve TX ledleri yanacaktr. UNO zerinde donanmsal olarak bir adet seri port
bulunmaktadr. Ancak SoftwareSerial ktphanesi ile bu say yazlmsal olarak arttrlabilir.
4
Atmega328 ayn sekilde I2C ve SPI portlarda saglamaktadr. Arduino bilgisayar program ile gelen Wire ktphanesi I2C kullanmn, SPI ktphaneside SPI haberlesmesini
saglamak iin kullanlr.
2.1.5
Programlama
Arduino UNO kart Arduino bilgisayar program (Arduino IDE) ile programlanr. Programda Tools>Board sekmesi altnda Arduino UNOyu seip programlamaya baslayabilirsiniz. Arduino UNO zerindeki Atmega328 zerine bootloader denilen zel bir yazlm
ykl gelir. Bu sayede kart programlarken ekstra bir programlayc kullanmanza gerek
yoktur. Haberlesme orjinal STK500 protokol ile saglanr.
Bootloader yazlm bypass edilerek kart dogrudan mikrodenetleyicinin ISCP headeri
zerinden ISP programlayc ile programlanabilir. Bootloader yazlm gibi Atmega16u2
ierisindeki kaynak yazlmda ak kaynakldr. Bu yazlma da DFU bootloader yazlm
ad verilir. Gerek Atmega328 gerekse 16u2 ierisindeki yazlmlar her zaman en gncel
hali ile gnderilir. O yzden mecbur kalmadka bu yazlmlar degistirmenize gerek yoktur.
2.2
ESP8266y Tanyalm
Sekil
ESP8266 Wifi Serial Transceiver Modl olduka ekonomik ve kullansl bir modldr.
TCP/IP protokoln desteklemektedir.
2.2.1
Genel zellikleri
Sekil
2.2.2
ESP8266 Gncellenmesi
Modl aldgmzda kullanmaya baslamadan nce modl iindeki srm gncellemek gerekiyor. Bunun nedeni her gelen yeni srm ile modln daha da stabil bir hale
gelmesidir. Modln gncellenmesi iin nce baglantlar asagdaki sekilde yapmamz
gerekiyor.
6
Sekil
5: Gncelleme devresi[3]
Sekil
Sekil
Ayarlar dogru bir sekilde yaptktan sonra, tekrar ilk menye dnp ortadaki byk
butona basyoruz ve bylece gncelleme islemi baslams oluyor. Islem tamamlandgnda
ESP8266 modlmz gncellenmis oluyor.
Sekil
2.3
LM35i Tanyalm
Yar iletken bir yapya sahip olan LM35 s sensrdr. Hassas ve kk degerli scaklk
lmleri iin ideal bir sensrdr. -55 ile +150 derece arasnda alsabilen LM35 s
8
sensr ks geriliminin scaklk farkna gre degismesi prensibi ile alsr. Bir derece
degisim ks voltajn 10 mV degistirir. 4 ile 20V arasnda giris voltaj uygulanabilecek
sensr, 0.5 derece hassasiyete sahiptir.
Sekil
2.4
Sekil
Bu menye girdigimizde New Channel sekmesine tkladgmzda yeni bir kanal amak
iin hazrlklarmz yapms bulunuyoruz.
Sekil
Gelen sayfada Name yazan yere kanalmzn ismini yazyoruz. Bu alanlara yazdklarmz daha sonra degistirmemiz de mmkn. nemli olan ksm yapacagmz isimlendirmelerde Trke karakter kullanmamamz gerektigi. Description ksmna ise kanalmz
ile ilgili bir aklama yazmamz gerekiyor. Field 1 yazan ksm ise yolladgmz veriler
ile olusturacagmz grafigin ne grafigi oldugudur. Birden fazla grafik almak istediginizde
10
Field 2, Field 3 gibi baska grafiklerde olusturabilirsiniz. Bilgileri girip Save Channele
tkladgmzda kanalmz olusturuluyor ve karsmza asagdaki gibi bir ekran geliyor.
Sekil
Bu sayfada yolladgmz verileri scaklk-zaman grafigi seklinde grebilecegiz. st menden biraz bahsetmek gerekirse Private View sekmesi grafigi sadece bizim grebildig imiz sekmedir. Eger veriler herkes ile paylasmak istenirse kanalmz public olarak deg istirip sayfann linkini paylasmamz yeterli olacaktr. Channel Settings sekmesinden
ise yukarda ayarladgmz tm ayarlar degistirebiliriz. API Keys sekmesi ise bizim iin
nemli bir ksm nk Arduino ve ESP modlmz ile kanalmz haberlestirirken bu
sekme iinde bulunan, bize zel API Keyini kullanacagz. Bu key tamamen bize zel
olup, kanal ve ESP arasnda bir sifre gibi dsnlebilir. En sagdaki Data Inport/Export
sekmesinde ise daha nce elimizde kanalmza ait bir veri varsa bu veriyi grafigimize
eklemeye ya da grafigimizdeki verileri bilgisayarmza indirmeye olanak saglar.
11
3.1
AT Komutlar
Sekil
Bu baglantlar yaptktan sonra komut setlerini yollayabilmek iin bir seri port uygulamasna ihtiya duyacagz. Kullanm kolaylg asndan projemizde Arduino IDE seilmistir. Komutlar kullanmadan nce Arduino IDEnin serial port ekrannda esitli
ayarlamalar yapmamz gerekiyor. Yaplacak ayarlar asagdaki resimdeki gibi olmaldr.
12
Eger BaudRateyi 115200den farkl bir degerde girecek olursak modl ile haberlesmede
sorun kabilir.
Sekil
Bu ayarlar ile beraber artk komutlar kullanmaya baslayabiliriz. Serial port ekrannn
komut satrna AT yazdgmzda ESP modl bize OK mesaj ile geri dnecektir. OK
mesaj modl ile iletisimin saglandg anlamna gelmektedir. Modl ile iletisimi sagladgmza gre diger komutlara geebiliriz. AT+CWMODE? komutu ile modlmz
hangi modda kullandgmz grenebiliriz. Modl bize 1, 2 ve ya 3 geri dns yapacaktr.
1 ile dnerse modl STA modunda yani baska aglara baglanabilecek sekilde kullanyoruz anlamna gelmektedir. 2 ile dnerse modlmz access point(AP) olarak kullanlabilmektedir. Bu mod ile local ag kurulabilip, bir ka ESPyi birbirine baglayabiliriz. Modl
bize 3 ile dnerse hem STA hem de AP olarak alsmaktadr.
Modl STA moduna sokmak iin AT+CWMODE=1 komutunu vermemiz gerekmektedir. Diger modlar iinde ilgili sayy yazmak yeterli olacaktr. Eger ortamdaki aglara
baglanmak istiyorsak STA modunda alstrmamz gerekiyor.
AT+CWLAP
Sekil
Sekil
3.2
Sekil
Kodumuzun bu blmnde ncelikle internet sitesinden indirdigimiz thingspeak ktphanesini programmza dahil ediyoruz. Ardndan define kullanarak ESP modlmz
baglamak istedigimiz wifi agnn ismini, sifresini ve uygulamada kullandgmz thingspeakin ip adresini tanmlyoruz. Son olarak program iinde bize asl lazm olan scaklk
degerini de float olarak tanmlyoruz. Simdi
Sekil
Sekil
Yukarda grdgnz Loop metodumuzun iinde kodlamann en basnda tanmlams oldugumuz scaklk degerine A0 pinine baglams oldugumuz LM35 sensrnn okudugu
scaklk degerini atams olduk. Bu atamay yaptktan sonra Loop metodu dsnda tanmladgmz sicaklikyolla fonksiyonuna bu scaklk degerimizi gndermis bulunduk. Bundan
16
sonra son islem olan sicaklikyolla fonksiyonu ierisinde LM35 ile ltgmz scaklk
degerini komutlarmzla thingspeak adresine grafigini olusturmak zere gnderecegiz.
Asagda programn kod asamasnn son ksm olan sicaklikyolla fonksiyonu gsterilmistir.
Sekil
Sekil
18
SONULAR VE NERILER
Bu projede elde edilen sonular asagda projeye baslamadan ncesi ve sonras seklinde
iki blmde ifade edilmistir.
Projeye baslamadan nce; arduionun genel itibariyle alsma prensipleri, genel yaps, kapsadg alanlar detaylar bir sekilde arastrlp, incelendi.
Projede kullanlacak olan malzemelerin siparisleri verildi ve malzemeler temin edildi.
Malzemeler temin edildikten sonra bu malzemelerin alsma prensipleri, uygulama alanlar, rnek uygulamalar arastrlp, incelendi.
Projenin kodlama asamasnda gerekli olacak ktphaneler belirlendi ve uygulamaya dahil edilmesi iin indirildi.
Projeye basladktan sonra; ncelikle projede kullanlacak malzemelerin board zerinde olusturacag devre iin gerekli arastrmalar yapld. Daha nce arduino ile ilgili bir
proje ve ya uygulamada bulunulmadg iin ok daha fazla arastrma ve inceleme yaplmas uygun grld.
Yaplan bu yogun arastrmalardan sonra board zerinde kurulmas gereken devre sekillendi ve sonunda kuruldu. Devre kurulduktan sonra bu konuda daha fazla bilgiye sahip
olan kisiler tarafndan devrenin dogrulugu teyit ettirildi.
Devreyi kurduktan sonra wifi modlnn baglant kuracag sunucu konusunda arastrmalar yapld. Bu sunucu bize wifi modlnn gnderdigi degeri grafik haline getirecegi
iin nemli bir paya sahipti. O yzden hem arduino ile uyumlu hem de wifi modl ile
uyumlu bir site olmas gerekliydi. Internette yaplan arastrmalar sonunda tam da bu tarz
uygulamalar iin ok uygun bir alt yap olusturan www.thingspeak.com adresi kesfedildi. Bu adres arastrlp detayl bir sekilde uygulama alanlar, ierdigi uygulamalar
arastrld. Daha birok gzel uygulamaya yer veren bu site bizim projemiz iinde belkide
en uygun siteydi.
Scaklk sensrnden okunan degeri wifi modl ile gnderecegimiz adreste belirlendikten sonra geriye kalan bu islemleri koda dkmek oldu. Projenin kodlama asamasna
geildi. Bu kodlama asamas iinde ok fazla uygulama ve rnek arastrlp, incelendi.
19
Yaplan arastrmalar, incelemeler ve denemeler sonucunda projenin kod ksmda tamamland. Artk scaklk sensrnn ltg degeri sunucuda grmek kald. Ilk birka deneme
de esitli hatalarla karslaslsa da www.thingspeak.com adresinden scaklk-zaman
grafigi grld. Bu asamadan da sonra projede istenilenlere ulaslms olundu.
20
KAYNAKLAR
[1] http://www.robotistan.com/orjinal-arduino-uno-r3-yeni-versiyon
[2] http://www.robotistan.com/esp8266-ekonomik-wifi-serial-transceiv
[3] http://maker.robotistan.com/esp8266-ile-iot-dersleri-1-esp8266-m
[4] http://www.robotistan.com/lm35/
[5] https://thingspeak.com/channels/
[6] https://thingspeak.com/channels/new/
[7] http://maker.robotistan.com/esp8266-dersleri-3-at-komutlarinin-k
[8] http://gu.ray.kim/esp/kitap.pdf/
[9] https://community.particle.io/t/update-twitter-with-thingspeak/
5587/
[10] https://thingspeak.com/apps/thingtweets/
21