Professional Documents
Culture Documents
Nesnelerin nterneti
Hasbi Sevin
indekiler
Blm 1: GR
Neler rendik?
ESP8266 Nedir?
ESP8266 Modlleri
10
11
12
13
AT Komutlar
15
Neler rendik?
16
19
SoftwareSerial Ktphanesi
20
20
21
25
ThingSpeak.com Nedir?
30
30
35
38
39
44
vii
50
55
55
56
60
Neler rendik?
67
69
Giri
70
70
Koul Yaplar
71
72
73
74
75
76
77
78
80
81
82
85
89
89
DS18b20ile Scaklk lm
92
94
96
viii
99
99
100
102
Neler rendik?
104
107
108
108
110
112
Son Sz
115
ndeks
116
2
ESP8266 ile Wreless
Haberlemeye Giri
Bu Blmde
ESP8266 Nedir?
ESP8266 Modlleri
Arduinonun Seri Haberleme Modl
Olarak Kullanlmas
ESP8266 Baud Rate Ayar
ESP8266 Firmware Gncellemesi
AT Komutlar
Neler rendik?
8
10
11
12
13
15
16
Blm 2
ESP8266 Nedir
ESP8266, TTL (Seri Haberleme) ile kablosuz internet ana balanabilen bir
modldr. Ucuz ve kolay kullanma sahip olmasndan dolay nesnelerin interneti projelerinde yaygn olarak kullanlmaktadr. ESP8266 modl 3.3 Volt ile
almaktadr. Yani modln almas iin Arduinonun 3.3 Volt k kullanlabilir. Fakat aa balanma ve veri alverii srasnda anlk olarak Arduinonun
salayabilecei akmdan fazla akm ekebilmektedir. Bu yzden ESP8266y
harici bir 3.3 Volt gerilim kaynandan besleyerek kullanmak, modln daha
istikrarl almasn salayacaktr. Unutulmamaldr ki harici 3.3 Volt kaynann
ve Arduinonun toprak hatlar birbirine balanmaldr.
Yapacamz uygulamalarda ESP-01 modl kullanlacaktr. Bu modl ve dier
modller arasndaki fark giri ve k pinlerinin saysdr. Kod ksmnda bir deiiklik olmadan dier ESP modlleri de kullanlabilir. Yeri gelmiken belirtelim,
ESP-01in seilme nedeni dier modllere gre pin balantlarnn daha kolay
olmasdr. Modl zerinde VCC (3.3 Volt Besleme), GND (Toprak), TX, RX, RST (Reset), CH_PD, GPIO0 ve GPIO2 olmak zere 8 adet pin bulunmaktadr.
ESP-01
- PCB Anten
- 3 Giri/k pini: GPOI0/2/16
- Dier pinler; UART (URXD/UTXD)
RESET, CH_PD (G kapatma) ve VCC/GND
- Boyut: 14.3 mm x 24.8 mm
ESP-02
- Extra anten iin U-FL konnektr bulunur
- 2 Giri/k pini: GPOI0/2
- Dier pinler: UART (URXD/UTXD)
RESET, CH_PD (G kapatma) ve VCC/GND
- Boyut: 14.2 mm x 14.2 mm
ESP-03
- Seramik Anten
- 7 Giri/k pini: POI0/2/12/13/14/15/18
- Dier pinler: UART (URXD/UTXD)
RESET, CH_PD (G kapatma) ve VCC/GND
- Boyut: 12.1 mm x 17.3 mm
13
ESP8266nn baud rate hznn 9600e ekilmesi iin aadaki komutu kullannz.
Eer OK mesajn grdyseniz yapmanz gereken ilem baaryla gereklemitir.
AT+CIOBAUD=9600
3
Arduno ile ESP8266
Bu Blmde
SoftwareSerial Ktphanesi
20
ESP8266 ile Arduino Uno mu Mega m
Kullanmal?
20
Arduino Mega ile nternet Sitesine Balanma 21
Arduino ile Hava Durumu
25
ThingSpeak.com Nedir?
30
Arduino ile Oda Scakln nternete
Ykleme
30
Arduino ile Tweetleme
35
Arduino ile Server Yapm
38
nternet zerinden LED Kontrol
39
nternet zerinden ifreli Lamba Kontrol44
Maazaya Giren Kii Saysn nternetten
Kontrol Edelim
50
Arduino ile TCP Servera Balanma
55
TCP Server Program
55
Arduino ile Chat Odas
56
nternet zerinden Kontrol Edilebilen Ara
Yapm
60
Neler rendik?
67
u ana kadar ESP8266nn nasl altn ve modln Arduino ile nasl haberleeceini rendik.
Bu blmde ESP8266y Arduino ile kullanarak eitli nesnelerin interneti projeleri gelitireceiz. Bu
blmdeki rnekler zerinde deiiklikler yaparak
yeni projeler retebileceinizi unutmayn.
Arduno ile
eet leme
35
Arduno ile
eet leme
Bir nceki uygulamamzda nasl thingSpeak.com adresine yollamak istediimiz verileri POST metodu ile yolladysak, ayn ekilde tweetlerimizi de Twitter.
com adresine kendi kullanc admz ile yollayabiliriz. Twittern mesajlarmz kabul etmesi iin ncelikle Token denilen biletlere sahip olmamz gerekir. Bu biletleri salayan ve mesaj yollamamz kabul eden Twitter uygulamalar mevcut.
Bu uygulamalara rnek olarak:
http://arduino-tweet.appspot.com/oauth/twitter/login
ncelikle linke tklaynz ve link yardmyla Twittera giri yapnz. Buradan giri
yaptnzda uygulamaya izin vermenizi isteyecektir. Uygulamaya izin verdikten
sonra sayfada size ait Token yani bilet numaranz grnecektir. Bu bileti birazdan
Arduino kodumuza yazacaz. Bu bileti bir yere kaydetmeyi unutmaynz.
Twitter, ok sk ve benzer mesajlar attnzda sizin mesajlarnz filtrelemektedir. Bu yzden bir sonraki tweetinizi atmadan nce bir sre beklemeyi ve bir
nceki tweetinizden farkl bir tweet atmay unutmayn.
Kullanlacak Malzemeler
1 x Arduino
1 x ESP8266 (ESP-01)
Arduino Kodu
#include <SoftwareSerial.h>
SoftwareSerial wifiBaglantisi(10, 11);
const String wifiAdi = WIFI_ADI ;
36
Blm 3
void loop()
{
String mesaj = ESP ile deneme mesaji;
tweetle(mesaj);
Serial.println(Tweet islemi tamamlandi);
while(1);
}
void tweetle(String tweet){
String mesaj = token=+TOKEN+&status=+tweet;
String istek;
istek = POST http://arduino-tweet.appspot.com/update HTTP/1.0\r\nHost:
arduino-tweet.appspot.com \r\nContent-Length: +String(mesaj.length())+
\r\n\r\n;
wifiBaglantisi.print(AT+CIPSTART=\TCP\,\arduino-tweet.appspot.com\,80\r\n);
wifiBaglantisi.find(OK);
Serial.println(Baglanti istegi yollandi);
40
Blm 3
Arduino Kodu
#include <SoftwareSerial.h>
SoftwareSerial wifiBaglantisi(10, 11);
/* Arduinonun 10. pini ESPnin Tx, 11. pini ESPnin Rx pinine baland */
const String wifiAdi = WIFI_ADI ;
const String wifiSifresi = WIFI_SIFRE ;
#define DEBUG true
const int LED1 = 13, LED2 = 12; // LED pinleri
void setup()
{
Serial.begin(9600); // Seri haberleme balants kuruldu
wifiBaglantisi.begin(9600); // ESP balants kuruldu
delay(500);
pinMode(LED1,OUTPUT); // LED pinleri k olarak tanmland
pinMode(LED2,OUTPUT);
44
Blm 3
return cevap;
}
boolean interneteBaglan(){
ATKomuduYolla(AT+CWMODE=1,1000,true);
// internete balanacamz iin 1. moda alyoruz
ATKomuduYolla(AT+CWJAP=\ + wifiAdi + \,\+ wifiSifresi + \,10000,true);
// wifi balants yaplyor
String durum = ;
durum = ATKomuduYolla(AT+CIFSR,8000,true); // balant bilgileri
if(durum.indexOf(FAIL) != -1 ){
// balant baar durumu test ediliyor
return false;
}
return true;
}
56
Blm 3
4
NODEMCU ile
ESP8266
Bu Blmde
Giri
70
LUA Programlamaya Giri
70
NODEMCU ile LUA Diline Eklenen
Fonksiyonlar
72
ESP8266nin NodeMCU Firmware
Gncellemesi
73
NodeMCU-LUA in IDE Seimi
76
ESP8266nn Harici Beslenmesi
77
Yanp Snen LED
78
ESP8266 ile Web Sayfas Oluturma
80
ESP8266 ile oklu Web Sayfas Oluturma 81
nternet zerinden LED Kontrol
82
nternet Kontroll RGB LED ve erit
85
ESP8266 ile Tweet Atma
89
DS18b20ile Scaklk lm
92
Buluta Veri Yollama
94
DS18B02 ile Oda Scakln Buluta Ykleme 96
Mail Bildirimli Hrsz Alarm
99
TCP Server zerinden Chat Yapma
102
Neler rendik?
104
Bu Blmde
ESP8266y AT komutlar ve Arduino IDEsi ile kullanabileceimiz gibi, hi Arduino olmadan sadece
ESP8266ya kod atarak da altrabiliriz. Bylece
Arduinoya ihtiya duymadan yapmak istediimiz
istediklerimizi ESP8266y bir mikrokontrolc olarak
gerekletirebiliriz.
70
Blm 4
Giri
ESP8266nn Arduinoya ihtiya duymadan LUA programlama dilinde almas iin NodeMCU platformu gelitirilmitir. Bu platform cretsiz olarak internet
zerinde paylalmtr. Bu platformun almas iin ncelikle ESP8266ya bu
platform yklenmelidir. Platform sayesinde, ESP8266 zerinde bulunan pinler
giri ve k olarak kullanlabilir. Bu platform pinlerin sadece I/O olarak kullanlmasndan daha fazlasn, ADC, PWM, UART gibi zellikler ile de kullanlmasn
salamaktadr. Platform Lua programlama dilinde alt iin ncelikle bu programlama dilini renmemiz gerekir. Dil renilmesi en kolay dillerden birisidir.
Bu dile NodeMCU platformu ile ESP8266 iin zelletirilmi yeni fonksiyonlar da
eklenmektedir.
NodeMCUnun resmi web sayfas:
www.nodemcu.com/index_en.html
80
Blm 4
Kod
wifi.setmode(wifi.STATION) -- aga baglanti iin ayarlandi
wifi.sta.config ( WIFI_ADI , WIFI_SIFRE )
86
Blm 4
ESP8266 (ESP-07)
GND
GPIO0
GPIO2
GPIO14
GPIO15
VCC
CH_PD
Tx
Rx
Devre
GND (LED) ve GND (FTDI)
Krmz (LED)
Mavi (LED)
Yeil (LED)
GND
3.3 Volt (reglatr)
3.3 Volt (reglatr)
Tx (FTDI)
Rx (FTDI)
Kod
led1 = 3
led2 = 4
led3 = 5
function baglan()
wifi.setmode(wifi.STATION) -- aga baglanti iin ayarlandi
wifi.sta.config ( WIFI_ADI , WIFI_SIFRE ) -- internet agina katil
print(wifi.sta.getip()) -- Aga baglanti kurulduysa IP bilgilerini yazdir
end
gpio.mode(led1,gpio.OUTPUT)
gpio.mode(led2,gpio.OUTPUT)
gpio.mode(led3,gpio.OUTPUT)
pwm.setup(led1,500,1023)
pwm.setup(led2,500,1023)
92
Blm 4
DS18b20ile S aklk lm
Daha nceki uygulamalarmzda LM35 scaklk sensrnn kndaki analog
veriyi okuyarak scaklk bilgisini almtk. ESP8266nn baz modllerinde (rnein: ESP-01) analog pini bulunmad iin bu uygulamamzda LM35 yerine
DS18b20 scaklk sensrn kullanacaz. Bu sensr tek kablo zerinden dijital
olarak haberleme yapmaktadr.
NodeMCUnun bize salad kolaylklardan birisi de ow nesnesidir. Bu nesne
DS18b20 gibi tek kablo zerinden haberleen cihazlarn kontroln salamaktadr. ncelikle ow.setup(pin) metodu ile sensrn bal olduu pini belirtmeliyiz. Daha sonra sensrn adresini taramalyz. Sensrn adresi bulunduktan
sonra scaklk verisi llmeye balanabilir. Uygulamada t1 deikeni scakln
tam say ksmn, t2 deikeni ise scakln virglden sonraki ksmn tutmaktadr.
Devre balants aadaki resimde gsterilmitir. Sensr devreden uzaklatnda hatta kayplar meydana gelmektedir. Bu yzden 4.7 K ohm deerindeki
diren pull-up olarak devreye balanmtr.