esp8266 ve Arduıno ile Nesnelerin İnterneti Hasbi Sevinç



Benzer belgeler
ACR-Net 100 Kullanım Kılavuzu

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ GÖMÜLÜ SİSTEMLER DENEY FÖYÜ

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

LED YAKMAK. Circuit 2. Kablo LED. Direnç. Arduino LED. Direnç (330ohm)

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

Melih Hilmi ULUDAĞ. Yazılım Mühendisi Mekatronik Mühendisi. a aittir.

Arduino Uno ile Hc-Sr04 ve Lcd Ekran Kullanarak Mesafe Ölçmek

BİLGİSAYAR BİLİMİ DERSİ (KUR-2)

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

Örnek. int analogpin = 3; int val = 0; void setup() { Serial.begin(9600); } void loop() { val = analogread(analogpin); Serial.

PROJE RAPORU. Proje adı: Pedalmatik 1 Giriş 2 Yöntem 3 Bulgular 6 Sonuç ve tartışma 7 Öneriler 7 Kaynakça 7

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

Elif İLİKSİZ. Keziban TURAN. Radio Frekanslarla Hareket Eden Araç

DOKUMANLAR

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

web-sitesi : satış : teknik destek : tel : IM-SMO20 Ultrasonik Mesafe Sensörü Özellikler

SERNET ET485CAS x2 RS485/RS422 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

UniGSM Arduino SHIELD (UniGSM-A) KURULUM ve KULLANIM KİTAPÇIĞI

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

Visuino: Nextion Ekranla Parmak İzi Sensörü

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

Grove Parmak İzi Okuyucu Sensör ile Arduino Uno

BESLEME KARTI RF ALICI KARTI

VTIY DERS-4 YARDIMCI NOTLARI -2018

idea Kontrol Kartı (idea Board jv2.1) Kullanım Kılavuzu

Algılayıcılar / Transmitter

Mikroişlemciler ve Programlama Dersi- ARDUINO. Sensörler ve Analog-Digital Çeviriciler İle Çalışma

2019

Terminal Üzerinden Led Kontrol Uygulaması

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

Detaylı bilgi için veya adreslerine göz atabilirsiniz. -1-

EW-7416APn v2 & EW-7415PDn Macintosh Kurulum Kılavuzu

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

BETİ GSM/GPRS MODEM KULLANIM KILAVUZU

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1

ABB Tek Fazlı Dizi İnverterler

ATC-3200 ZigBee to RS232/422/485 Çevirici Kullanıcı Kılavuzu

USB 10 IN-OUT. Usb portundan, 10 adet giriş ve çıkış yapabilen, Opto izolasyonlu digital otomasyon devresi.

İÇİNDEKİLER VII İÇİNDEKİLER 1 ARDUINONUN TEMELLERİ 1

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

Bilgisayar ile Dijital Devrelerin Haberleşmesi. FT232R ve MAX232 Entegreleri. Çalışma Raporu

Online Elektronik Devre Simülasyonu 123D Circuits

Bölüm 20 FBs-4A2D Analog Giriş/Çıkış Modülü

BQ Modbus Analog Giriş Kartı 6 Kanal PT100 - PT1000. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

ATB100. ATB100 GPRS / GPS Tabanlı Filo Yönetim Terminali. Bilgi Dokümanı. 1

AirTies Kablosuz Erişim Noktası (Access Point) olarak kullanacağınız cihazı bilgisayarınıza bağlayarak ayarlarını yapabilirsiniz.

icono Kullanıcı Kılavuzu

IRT63M. Bilgi Dokümanı. 128x64 piksel grafik LCD, Klavye, UART ve Ethernet Haberleşme ile Temassız Kart (ISO14443A/B) Okuyucu (IRT63M)

TEKNOMOBİL UYDU HABERLEŞME A.Ş. KULLANICI KILAVUZU Rev. 1.0 Satcom SCATEL

WiFiBELL kablolu veya kablosuz olarak internete bağlanarak akıllı telefonunuzla çift yönlü görüntülü ve sesli bağlantı sağlar.

ARDUINO NEXTION UYGULAMASI. Bu makale, Arduino UNO kartı ile Nextion HMI ekranlarının nasıl kontrol edildiğini anlatmaktadır.

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

Strike 5.50 R Proximity Kart Okuyucu Kullanım Kılavuzu

Edimax Gemini Ev Wi-Fi Dolaşım Güncelleme Kiti RE11 Hızlı Kurulum Kılavuzu

PM 2 KARTLI VE ġġfrelġ GEÇĠġ KONTROL TERMĠNALĠ KURULUM VE KULLANIM KILAVUZU

WAP-3205 FirmWare Güncelleme Resetleme Universal Repeater Kurulumu CİHAZ ARAYÜZÜNE ERİŞİM

V Daq Kurulum adımları

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

F8914 ZİGBEE RF MODEM İLE MODBUS HABERLEŞME KILAVUZU

BlackRapid N+ Radyo kontrollü WLAN yönlendirici (router) Kısa kurulum kılavuzu

Patent & Faydalı Model Tescil No: 2009/02948

Horoz Programlanabilir Zaman Rölesi

FPGA İLE UYGULAMA ÖRNEKLERİ FPGA ile Seri Haberleşme (RS232) Uygulaması

MCR02-AE Ethernet Temassız Kart Okuyucu

Hızlı Kurulum Kılavuzu MODELLER P4320, P4520 UYARI!

IFD8520 ADRESLENEBİLİR RS-485/RS-422 İZOLELİ ÇEVİRİCİ KULLANIM KILAVUZU

İ İŞİ BÖLÜM ROBOTİK KODLAMA ÖĞRENME ALANLARI BASİT ELEKTRONİK DEVRELERE GİRİŞ AKILLI CİHAZ TASARIMINA GİRİŞ ROBOTİĞE GİRİŞ

F2164 GPRS MODEMLER İLE MODBUS TCP PROTOKOLÜ KULLANARAK DİJİTAL VE ANALOG I/O KONTROLÜ UYGULAMASI KILAVUZU

Erişim Noktası Ayarları

Bütün ümidim gençliktedir.

SAYFA : 2 / 9 VERSİYON GEÇMİŞİ VERSİYON TARİH AMAÇ AÇIKLAMA V V

ARDUINO WIFI SHIELD İLE ÇALIŞMAK

ST-1206A. Patent & Faydalı Model Tescil No: 2009/02948

BİLG Dr. Mustafa T. Babagil 1

ATBRFN. Radyo Frekansı (RF) Tabanlı Dorse Takip Birimi. Bilgi Dokümanı (ATBRFN) 1

Mifare Kart Yazıcı/Okuyucu Modül (MFM-200)

ZyXEL P-660HN-F1Z Modem ve VLAN Gerekliliği

UMUX Sistemi. Sistem Kartları v1. Hazırlayan: Rıdvan ŞANAL. Web Sitesi:

P-100 P-101. Bağlantı Şeması. İstanbul Yazılım ve Elektronik Teknolojileri

F3938 OTOBÜS MODEMİ KULLANIM KILAVUZU

Kullanım Kılavuzu / User s Guide Garanti Belgesi / Guarentee Certificate

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

AIRTIES MESH NETWORK KURULUMU:

Giriş. Kontrast ve Parlaklık. Seri Portlar

STAFF-02 SMART. KURULUM ve KULLANIM KİTAPÇIĞI. Kasım 2016 Rev.2.0

Hızlı Başlangıç. NETGEAR Trek N300 Travel Router and Range Extender. Model PR2000 NETGEAR LAN. Power. WiFi USB USB. Reset Internet/LAN.

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

Sunum İçeriği. Programlamaya Giriş

Kullanım Kılavuzu / User s Guide Garanti Belgesi / Guarentee Certificate

IOT UYGULAMALARINA GİRİŞ

AirTies Kablosuz Erişim Noktası (Access Point) olarak kullanacağınız cihazı bilgisayarınıza bağlayarak ayarlarını yapabilirsiniz.

ART S602W Standalone Kart Okuyucu

5. Bu alt butonlardan Kanal ve SSID isimli butona tıklayınız. B. AP-300 AYARLARI Bu bölümde 2 AP-300 ün Kanal ve SSID bölümü ile kablosuz ayarları LAN

KATES Yazılım Güncelleme Dokümanı

TL-WPS510U PRINT SERVER KURULUM DÖKÜMANI

Transkript:

esp8266 ve Arduıno ile Nesnelerin İnterneti Hasbi Sevinç

İçindekiler Bölüm 1: GİRİŞ 1 Ne Demektir Bu Nesnelerin İnterneti? 1 Yerel Ağdan İnternet Ağına Çıkma 2 Neler Öğrendik? 4 Bölüm 2: ESP8266 ile Wıreless Haberleşmeye Giriş 7 ESP8266 Nedir? 8 ESP8266 Modülleri 10 Arduino nun Seri Haberleşme Modülü Olarak Kullanılması 11 ESP8266 Baud Rate Ayarı 12 ESP8266 Firmware Güncellemesi 13 AT Komutları 15 Neler Öğrendik? 16 Bölüm 3: Arduıno ile ESP8266 19 SoftwareSerial Kütüphanesi 20 ESP8266 ile Arduino Uno mu Mega mı Kullanmalı? 20 Arduino Mega ile İnternet Sitesine Bağlanma 21 Arduino ile Hava Durumu 25 ThingSpeak.com Nedir? 30 Arduino ile Oda Sıcaklığını İnternete Yükleme 30 Arduino ile Tweet leme 35 Arduino ile Server Yapımı 38 İnternet Üzerinden LED Kontrolü 39 İnternet Üzerinden Şifreli Lamba Kontrolü 44

vii ESP8266 ve Arduıno ile Nesnelerin İnterneti - İçindekiler Mağazaya Giren Kişi Sayısını İnternetten Kontrol Edelim 50 Arduino ile TCP Server a Bağlanma 55 TCP Server Programı 55 Arduino ile Chat Odası 56 İnternet Üzerinden Kontrol Edilebilen Araç Yapımı 60 Neler Öğrendik? 67 Bölüm 4: NODEMCU ile ESP8266 69 Giriş 70 LUA Programlamaya Giriş 70 Koşul Yapıları 71 NODEMCU ile LUA Diline Eklenen Fonksiyonlar 72 ESP8266 nin NodeMCU Firmware Güncellemesi 73 FTDI Dönüştürücüsü ile Güncelleme 74 Arduino nun Bypass Edilerek ESP8266 nın Güncellenmesi 75 NodeMCU-Lua İçin IDE Seçimi 76 ESP8266 nın Harici Beslenmesi 77 Yanıp Sönen LED 78 ESP8266 ile Web Sayfası Oluşturma 80 ESP8266 ile Çoklu Web Sayfası Oluşturma 81 İnternet Üzerinden LED Kontrolü 82 İnternet Kontrollü RGB LED ve Şerit 85 ESP8266 ile RGB Şerit LED Kullanımı 89 ESP8266 ile Tweet Atma 89 DS18b20ile Sıcaklık Ölçümü 92 Buluta Veri Yollama 94 DS18B02 ile Oda Sıcaklığını Buluta Yükleme 96

viii ESP8266 ve Arduıno ile Nesnelerin İnterneti - İçindekiler Mail Bildirimli Hırsız Alarmı 99 Pushingbox.com Üzerinden Apı Alma 99 ESP8266 ile Pushingbox Bildirim Yollama 100 TCP Server Üzerinden Chat Yapma 102 Neler Öğrendik? 104 Bölüm 5: ESP-07 Modülü 107 ESP-07 Modülüne NodeMCU Yükleme 108 NodeMCU ile İnternet Üzerinden Araç Kontrolü 108 STATION Modunda Araç Kontrolü 110 Access Point Modunda Araç Kontrolü 112 Son Söz 115 İndeks 116

2 ESP8266 ile Wıreless Haberleşmeye Giriş Bu Bölümde ESP8266 Nedir? 8 ESP8266 Modülleri 10 Arduino nun Seri Haberleşme Modülü Olarak Kullanılması 11 ESP8266 Baud Rate Ayarı 12 ESP8266 Firmware Güncellemesi 13 AT Komutları 15 Neler Öğrendik? 16 Arduino yu internete bağlamanın en ucuz yolu ESP8266 Wifi modülü kullanmaktır. Bu modül ortamda bulunan kablosuz ağlara bağlanabileceği gibi, kendi internet ağını yayarak diğer cihazların bu ağa bağlanabilmesine de imkan sağlamaktadır. Bölüm 2 de ESP8266 nın teknik detaylarını ve bu modülü kullanmadan önce yapmamız gereken ayarlamaları göreceğiz.

8 Bölüm 2 ESP8266 ile Wıreless Haberleşmeye Giriş ESP8266 Nedir ESP8266, TTL (Seri Haberleşme) ile kablosuz internet ağına bağlanabilen bir modüldür. Ucuz ve kolay kullanıma sahip olmasından dolayı nesnelerin interneti projelerinde yaygın olarak kullanılmaktadır. ESP8266 modülü 3.3 Volt ile çalışmaktadır. Yani modülün çalışması için Arduino nun 3.3 Volt çıkışı kullanılabilir. Fakat ağa bağlanma ve veri alışverişi sırasında anlık olarak Arduino nun sağlayabileceği akımdan fazla akım çekebilmektedir. Bu yüzden ESP8266 yı harici bir 3.3 Volt gerilim kaynağından besleyerek kullanmak, modülün daha istikrarlı çalışmasını sağlayacaktır. Unutulmamalıdır ki harici 3.3 Volt kaynağının ve Arduino nun toprak hatları birbirine bağlanmalıdır. Yapacağımız uygulamalarda ESP-01 modülü kullanılacaktır. Bu modül ve diğer modüller arasındaki fark giriş ve çıkış pinlerinin sayısıdır. Kod kısmında bir değişiklik olmadan diğer ESP modülleri de kullanılabilir. Yeri gelmişken belirtelim, ESP-01 in seçilme nedeni diğer modüllere göre pin bağlantılarının daha kolay olmasıdır. Modül üzerinde VCC (3.3 Volt Besleme), GND (Toprak), TX, RX, RST (Reset), CH_PD, GPIO0 ve GPIO2 olmak üzere 8 adet pin bulunmaktadır. ESP-01 - PCB Anten - 3 Giriş/çıkış pini: GPOI0/2/16 - Diğer pinler; UART (URXD/UTXD) RESET, CH_PD (Güç kapatma) ve VCC/GND - Boyut: 14.3 mm x 24.8 mm ESP-02 - Extra anten için U-FL konnektörü bulunur - 2 Giriş/çıkış pini: GPOI0/2 - Diğer 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 - Diğer pinler: UART (URXD/UTXD) RESET, CH_PD (Güç kapatma) ve VCC/GND - Boyut: 12.1 mm x 17.3 mm

ESP8266 ırm are Gün ellemesi 13 ESP8266 nın baud rate hızının 9600 e çekilmesi için aşağıdaki komutu kullanınız. Eğer OK mesajını gördüyseniz yapmanız gereken işlem başarıyla gerçekleşmiştir. AT+CIOBAUD=9600 Bu işlem sonrasında tekrardan veri yollayabilmek için artık ekranın sağ altından baud rate hızınızı 9600 yapmayı unutmayınız. ESP8266 ırm are Gün ellemesi ESP8266 kablosuz internet modülüne, ilk üretildiği günden beri bir çok yazılım güncellemesi geldi. Bu güncellemeler sayesinde modül daha stabil çalışmaya başladı. Bu yüzden projelerimizi yapmadan önce modülün yazılımını güncellemeliyiz. Güncelleme için Arduino yu daha önce öğrendiğimiz şekilde bypass yapmalıyız. Daha sonra modülün güncelleme moduna girebilmesi için GPIO0 pinini toprağa bağlamalıyız. Aşağıdaki resimde güncelleme için kurulması gereken devre şeması gösterilmiştir. (ESP-12 kullanıcıları, GPIO0 ve GPIO15 pinlerini toprağa ve GPIO1 pinini 3.3 Volta bağlamaları gerekmektedir.)

3 Arduıno ile ESP8266 Bu Bölümde SoftwareSerial Kütüphanesi 20 ESP8266 ile Arduino Uno mu Mega mı Kullanmalı? 20 Arduino Mega ile İnternet Sitesine Bağlanma 21 Arduino ile Hava Durumu 25 ThingSpeak.com Nedir? 30 Arduino ile Oda Sıcaklığını İnternete Yükleme 30 Arduino ile Tweet leme 35 Arduino ile Server Yapımı 38 İnternet Üzerinden LED Kontrolü 39 İnternet Üzerinden Şifreli Lamba Kontrolü 44 Mağazaya Giren Kişi Sayısını İnternetten Kontrol Edelim 50 Arduino ile TCP Server a Bağlanma 55 TCP Server Programı 55 Arduino ile Chat Odası 56 İnternet Üzerinden Kontrol Edilebilen Araç Yapımı 60 Neler Öğrendik? 67 Şu ana kadar ESP8266 nın nasıl çalıştığını ve modülün Arduino ile nasıl haberleşeceğini öğrendik. Bu bölümde ESP8266 yı Arduino ile kullanarak çeşitli nesnelerin interneti projeleri geliştireceğiz. Bu bölümdeki örnekler üzerinde değişiklikler yaparak yeni projeler üretebileceğinizi unutmayın.

Arduıno ile eet leme 35 \ \r\n,10000,true); // wifi bağlantısı yapılıyor String durum = ; durum = ATKomuduYolla( AT+CIFSR\r\n,8000,true); // bağlantı bilgileri if(durum.indexof( FAIL )!= -1 ){ // bağlantı başarı durumu test ediliyor return false; } return true; } Arduıno ile eet leme Bir önceki uygulamamızda nasıl thingspeak.com adresine yollamak istediğimiz verileri POST metodu ile yolladıysak, aynı şekilde tweet lerimizi de Twitter. com adresine kendi kullanıcı adımız ile yollayabiliriz. Twitter ın mesajlarımızı kabul etmesi için öncelikle Token denilen biletlere sahip olmamız gerekir. Bu biletleri sağlayan ve mesaj yollamamızı kabul eden Twitter uygulamaları mevcut. Bu uygulamalara örnek olarak: http://arduino-tweet.appspot.com/oauth/twitter/login Öncelikle linke tıklayınız ve link yardımıyla Twitter a giriş yapınız. Buradan giriş yaptığınızda uygulamaya izin vermenizi isteyecektir. Uygulamaya izin verdikten sonra sayfada size ait Token yani bilet numaranız görünecektir. Bu bileti birazdan Arduino kodumuza yazacağız. Bu bileti bir yere kaydetmeyi unutmayınız. Twitter, çok sık ve benzer mesajlar attığınızda sizin mesajlarınızı filtrelemektedir. Bu yüzden bir sonraki tweet inizi atmadan önce bir süre beklemeyi ve bir önceki tweet inizden farklı bir tweet atmayı unutmayın. Kullanılacak Malzemeler 1 x Arduino 1 x ESP8266 (ESP-01) Arduino Kodu #include <SoftwareSerial.h> SoftwareSerial wifibaglantisi(10, 11); const String wifiadi = WIFI_ADI ;

36 Bölüm 3 Arduıno ile ESP8266 const String wifisifresi = WIFI_SIFRE ; const String TOKEN = TOKEN_BURAYA ; void setup() { Serial.begin(9600); wifibaglantisi.begin(9600); delay(500); delay(1000); } if(!internetebaglan()){ Serial.println( internete baglanilamadi ); } else { Serial.println( Modul internete baglandi ); } 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 Bölüm 3 Arduıno ile ESP8266 Arduino Kodu #include <SoftwareSerial.h> SoftwareSerial wifibaglantisi(10, 11); /* Arduino nun 10. pini ESP nin Tx, 11. pini ESP nin Rx pinine bağlandı */ 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 haberleşme bağlantısı kuruldu wifibaglantisi.begin(9600); // ESP bağlantısı kuruldu delay(500); pinmode(led1,output); // LED pinleri çıkış olarak tanımlandı pinmode(led2,output);

44 Bölüm 3 Arduıno ile ESP8266 } return cevap; boolean internetebaglan(){ ATKomuduYolla( AT+CWMODE=1,1000,true); // internete bağlanacağımız için 1. moda alıyoruz ATKomuduYolla( AT+CWJAP=\ + wifiadi + \,\ + wifisifresi + \,10000,true); // wifi bağlantısı yapılıyor String durum = ; durum = ATKomuduYolla( AT+CIFSR,8000,true); // bağlantı bilgileri if(durum.indexof( FAIL )!= -1 ){ // bağlantı başarı durumu test ediliyor } } return false; return true; Yukarıdaki kodu Arduino ya yükledikten sonra Serial Monitör ü açalım. Burada öncelikle ESP8266 nın internete bağlandığını söyleyen mesajı görmeliyiz. Eğer bağlantı başarı ile gerçekleştirildi ise Arduino Server ı oluşturacaktır. Server oluşturulduktan sonra ESP8266 nın ağ içerisinde aldığı yerel IP adresi ve kodda belirtilen port numarası ile Server a bağlanabiliriz. Örneğin: 192.168.2.224:80 Buradaki önemli notlardan birisi Server kullanıcıya bağlantının yükleme sonrasında kapatıldığını belirten Connection: close\r\n komutunu yollamasıdır. ESP8266 nın bağlantı sonlandırma kodu bulunmaktadır. Fakat bu kod zaman zaman yeni bağlantıları engellemektedir. Yukarıdaki kodlar üzerinde değişiklikler yaparak siz de kendinize ait bir Server oluşturabilir ve evinizdeki elektronik eşyaları bu Server üzerinden kontrol edebilirsiniz. İnternet zerinden Şi reli amba ontrolü Bir önceki örnekte ESP8266 ve Arduino yardımıyla basit bir Server ın nasıl kurulacağını öğrendik. Örnekte sadece LED ler kontrol edilmiştir. Bu uygulamada farklı olarak röle kontrolü yapılacaktır. Bu röleye bağlanan lamba, LED ler gibi internet üzerinden kontrol edilebilecektir. Örnekte röleye lamba bağlanmıştır. Siz de evdeki diğer elektronik eşyalarınızı lamba yerine bağlayarak internet üzerinden kontrol edebilirsiniz.

56 Bölüm 3 Arduıno ile ESP8266 Arduıno ile C at Odası TCP Server Arduino ile internete bağlı diğer cihaz arasında hızlı haberleşmeyi sağlamak için kurulmaktadır. Böyle bir bağlantı kurulduğunda ilk yapmamız gereken gönderilen mesajların karşı tarafa düzgün ulaşıp ulaşmadığını test etmektir. TCP haberleşme mantığının kavranması ve sistemin çalışıp çalışmadığını test etmek için Bilgisayar programı ve Arduino nun katıldığı bir chat (sohbet) odası kuracağız. Bu uygulamada bilgisayar programı olarak bir önceki konuda tanıttığımız programı kullanacağız. Program açıldığı gibi TCP Server kurulmaktadır. Kurulan TCP Server ın IP ve port numaraları programın altında yazmaktadır. Bu sayıları Arduino kodumuzda güncellememiz gerektiğini unutmayalım. Kullanılacak Malzemeler 1 x Arduino 1 x ESP8266 (ESP-01) Devre şeması aşağıdaki resimde gösterilmiştir. Bu devrede ESP8266 daha önceki devre şemalarında olduğu gibi bağlanmıştır.

4 NODEMCU ile ESP8266 Bu Bölümde Giriş 70 LUA Programlamaya Giriş 70 NODEMCU ile LUA Diline Eklenen Fonksiyonlar 72 ESP8266 nin NodeMCU Firmware Güncellemesi 73 NodeMCU-LUA İçin IDE Seçimi 76 ESP8266 nın Harici Beslenmesi 77 Yanıp Sönen LED 78 ESP8266 ile Web Sayfası Oluşturma 80 ESP8266 ile Çoklu Web Sayfası Oluşturma 81 İnternet Üzerinden LED Kontrolü 82 İnternet Kontrollü RGB LED ve Şerit 85 ESP8266 ile Tweet Atma 89 DS18b20ile Sıcaklık Ölçümü 92 Buluta Veri Yollama 94 DS18B02 ile Oda Sıcaklığını Buluta Yükleme 96 Mail Bildirimli Hırsız Alarmı 99 TCP Server Üzerinden Chat Yapma 102 Neler Öğrendik? 104 Bu Bölümde ESP8266 yı AT komutları ve Arduino IDE si ile kullanabileceğimiz gibi, hiç Arduino olmadan sadece ESP8266 ya kod atarak da çalıştırabiliriz. Böylece Arduino ya ihtiyaç duymadan yapmak istediğimiz istediklerimizi ESP8266 yı bir mikrokontrolcü olarak gerçekleştirebiliriz.

70 Bölüm 4 NODEMCU ile ESP8266 Giriş ESP8266 nın Arduinoya ihtiyaç duymadan LUA programlama dilinde çalışması için NodeMCU platformu geliştirilmiştir. Bu platform ücretsiz olarak internet üzerinde paylaşılmıştır. Bu platformun çalışması için öncelikle ESP8266 ya bu platform yüklenmelidir. Platform sayesinde, ESP8266 üzerinde bulunan pinler giriş ve çıkış olarak kullanılabilir. Bu platform pinlerin sadece I/O olarak kullanılmasından daha fazlasını, ADC, PWM, UART gibi özellikler ile de kullanılmasını sağlamaktadır. Platform Lua programlama dilinde çalıştığı için öncelikle bu programlama dilini öğrenmemiz gerekir. Dil öğrenilmesi en kolay dillerden birisidir. Bu dile NodeMCU platformu ile ESP8266 için özelleştirilmiş yeni fonksiyonlar da eklenmektedir. NodeMCU nun resmi web sayfası: www.nodemcu.com/index_en.html ua Pro ramlamaya Giriş ESP8266 yeni programlarımızda Lua programlama dilinde programlayacağız. Bu dil ile ilk defa tanışanlar için kod yapısı biraz farklı gelse de aslında dil Arduino dili kadar kolaydır. Yorum Bloğu Diğer programlama dillerinden farklı olarak Lua da yazılan koda açıklama eklemek için -- ifadesini kullanılır. Bu çift tire işaretinden sonra yazılan ifadeler ESP8266 tarafından işleme alınmayacaktır. Değişken Tanımlama Lua dilinde kullanacağımız değişkenin türünü belirtmeye gerek yoktur. String formatında bir değişken tanımlamak için a = mesaj, tam sayı formatında bir değişken tanımlamak için i = 5 şeklinde tanımlamalar yapılabilir Ekrana Yazdırma Bulduğumuz sonuçları ve mesajlarımızı ekrana yazdırmak için print() fonksiyonu kullanılır. Kod İ = 10 print( i degişkeninin degeri ) print(i)

80 Bölüm 4 NODEMCU ile ESP8266 ESP8266 ile Web Say ası Oluşturma Bu uygulamada ESP8266 bir web sayfası (server) olarak görev yapacaktır. Web sayfasını ziyaret edenlere HTML komutları ile istenilen veriler aktarılabilir. Örneğin uygulamamızda Server ın çalışma süresi kullanıcıya gösterilecektir. Kod yapısına bakılacak olursa, öncelikle ESP8266 nın internet ağına katılması sağlanmıştır. Daha sonra kullanacağımız Server kurulmuştur. Server ı ziyaret edenleri tespit etmek için Server portu dinlenmeye başlamıştır. Eğer siteyi ziyaret eden kişi var ise oluşturulan HTML kodları kullanıcının internet tarayıcısına aktarılmıştır. Devre şeması aşağıdaki resimde gösterilmiştir. Kod wifi.setmode(wifi.station) -- aga baglanti için ayarlandi wifi.sta.config ( WIFI_ADI, WIFI_SIFRE ) -- internet agina katil print(wifi.sta.getip()) -- Aga baglanti kurulduysa IP bilgilerini yazdir srv=net.createserver(net.tcp) -- server yaratildi srv:listen(80,function(baglanti) baglanti:on( receive,function(baglanti,bilgi) print(bilgi) baglanti:send( <h1> Merhaba Dunya</h1> ) baglanti:send( <p>bu server ) baglanti:send(tmr.now()/1000000)

86 Bölüm 4 NODEMCU ile ESP8266 ESP8266 (ESP-07) GND GPIO0 GPIO2 GPIO14 GPIO15 VCC CH_PD Tx Rx Devre GND (LED) ve GND (FTDI) Kırmızı (LED) Mavi (LED) Yeşil (LED) GND 3.3 Volt (regülatör) 3.3 Volt (regülatör) Tx (FTDI) Rx (FTDI) Kod led1 = 3 led2 = 4 led3 = 5 function baglan() wifi.setmode(wifi.station) -- aga baglanti için 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 Bölüm 4 NODEMCU ile ESP8266 DS18b20ile Sı aklık Ölçümü Daha önceki uygulamalarımızda LM35 sıcaklık sensörünün çıkışındaki analog veriyi okuyarak sıcaklık bilgisini almıştık. ESP8266 nın bazı modüllerinde (örneğin: ESP-01) analog pini bulunmadığı için bu uygulamamızda LM35 yerine DS18b20 sıcaklık sensörünü kullanacağız. Bu sensör tek kablo üzerinden dijital olarak haberleşme yapmaktadır. NodeMCU nun bize sağladığı kolaylıklardan birisi de ow nesnesidir. Bu nesne DS18b20 gibi tek kablo üzerinden haberleşen cihazların kontrolünü sağlamaktadır. Öncelikle ow.setup(pin) metodu ile sensörün bağlı olduğu pini belirtmeliyiz. Daha sonra sensörün adresini taramalıyız. Sensörün adresi bulunduktan sonra sıcaklık verisi ölçülmeye başlanabilir. Uygulamada t1 değişkeni sıcaklığın tam sayı kısmını, t2 değişkeni ise sıcaklığın virgülden sonraki kısmını tutmaktadır. Devre bağlantısı aşağıdaki resimde gösterilmiştir. Sensör devreden uzaklaştığında hatta kayıplar meydana gelmektedir. Bu yüzden 4.7 K ohm değerindeki direnç pull-up olarak devreye bağlanmıştır.