back to top

Arduino Dersleri #22: Arduino ESP8266 Kullanımı – Thingspeak Nasıl Kullanılır?

Merhaba arkadaşlar ! Bu yazımızda sizlerle ESP8266 nedir, bu wifi modülü nasıl çalışır konularından bahsedeceğiz. Ayrıca bu modülü kullanarak Arduino ile sıcaklık ve nem ölçümü yapacağız ve verileri ThingSpeak’e yollayacağız. Hadi eğlenelim ve öğrenelim 🙂

Bir önceki yazımızda RFID modülünden bahsetmiştik ! >>> RC522 ile Kapı Kilidi yapalım !

Başlamadan önce ESP8266 modülüyle alakalı daha fazla bilgi edinmek istiyorsanız bu yazımızı okuduktan sonra ESP8266 WiFi modülü kullanarak yaptığımız adım adım dersleri incelemeyi unutmayın.

ESP8266 Wifi Modülü Nedir? Bu Modülü Kullanarak Ne tarz Projeler Yapabilirim?

ESP8266 bir WiFi modülüdür. Bu modül vasıtası ile hem kablosuz ağlara bağlanmak hem de kablosuz erişim noktası kurmak mümkündür. Modül kendi işlemcisine sahip olduğu için üzerinde bulunan I/O (giriş/çıkış) pinleri kullanılabilmektedir. Bu da Arduino ve buna benzer herhangi bir mikrokontrolcü bulunmadan da modül ile projeler yapabileceğimiz anlamına geliyor 🙂

Sitemizdeki tüm Wifi modüllerine buradan ulaşabilirsin !

Peki ESP8266 Wifi modülü ile ne tarz projeler yapabiliriz? Wifi ile kablosuz iletişim kurabildiğimizden dolayı internete bağlanarak pek çok keyifli proje yapabiliriz. Bunlara örnek verecek olursak hırsız alarmı, oda sıcaklığını tweet olarak paylaşma, akıllı kahve makinesi, internet üzerinden LED kontrolü ve buna benzer yüzlerce proje… Nasıl mı? Biz bunların hepsini yaptık ! Blog sayfamızda inceleyebilirsin 🙂

ESP8266 Pinout
ESP8266 Pinout

Arduino Kullanmadan ESP8266 İçindeki İşlemciyi Doğrudan Kodlamak Mümkün Mü?

Yukarıda da bahsettiğimiz gibi evet, mümkün. Modülde bulunan işlemci 32-bitlik CPU’ya sahip ve üzerinde yer alan GPIO pinleri ile bağlantı kurmamız sağlanıyor. Yani Arduino olmadan da ESP8266 modülünü doğrudan programlayabiliyoruz. Farklı markaların farklı türden ESP8266 modülleri olduğundan dolayı GPIO pin sayısı değişkenlik gösterebiliyor. ESP8266 içindeki işlemciyi doğrudan kodlamak ile ilgili detaylı bilgili bunun için hazırladığımız blog yazımızda bulabilirsiniz >>> NodeMCU’ya giriş ve Lua dilinde kodlama

Arduino İle ESP8266 Kullanarak Verilerimizi İnternet Olan Her Yerden Görecek Şekilde Ayarlamayı Öğrenelim

Gereken malzemeler:

Uygulamada kullanacağımız malzemeleri de belirledikten sonra devremizi aşağıdaki gibi kuralım:

ESP8266 Sıcaklık Nem Devresi
ESP8266 Sıcaklık Nem Devresi

Gerekli olan Arduino kodunu yazabiliriz.

#include <softwareserial.h>                                   //SoftwareSerial kütüphanimizi ekliyoruz.
#include <dht11.h>                                            //DHT11 sensör kütüphanemizi ekliyoruz.
String agAdi = "Robotistan";                 //Ağımızın adını buraya yazıyoruz.    
String agSifresi = "fortinet";           //Ağımızın şifresini buraya yazıyoruz.
int rxPin = 10;                                               //ESP8266 RX pini
int txPin = 11;                                               //ESP8266 TX pini
int dht11Pin = 2;
String ip = "184.106.153.149";                                //Thingspeak ip adresi
float sicaklik, nem;
dht11 DHT11;
SoftwareSerial esp(rxPin, txPin);                             //Seri haberleşme pin ayarlarını yapıyoruz.
void setup() {  
  
  Serial.begin(9600);  //Seri port ile haberleşmemizi başlatıyoruz.
  Serial.println("Started");
  esp.begin(115200);                                          //ESP8266 ile seri haberleşmeyi başlatıyoruz.
  esp.println("AT");                                          //AT komutu ile modül kontrolünü yapıyoruz.
  Serial.println("AT Yollandı");
  while(!esp.find("OK")){                                     //Modül hazır olana kadar bekliyoruz.
    esp.println("AT");
    Serial.println("ESP8266 Bulunamadı.");
  }
  Serial.println("OK Komutu Alındı");
  esp.println("AT+CWMODE=1");                                 //ESP8266 modülünü client olarak ayarlıyoruz.
  while(!esp.find("OK")){                                     //Ayar yapılana kadar bekliyoruz.
    esp.println("AT+CWMODE=1");
    Serial.println("Ayar Yapılıyor....");
  }
  Serial.println("Client olarak ayarlandı");
  Serial.println("Aga Baglaniliyor...");
  esp.println("AT+CWJAP=\""+agAdi+"\",\""+agSifresi+"\"");    //Ağımıza bağlanıyoruz.
  while(!esp.find("OK"));                                     //Ağa bağlanana kadar bekliyoruz.
  Serial.println("Aga Baglandi.");
  delay(1000);
}
void loop() {
  esp.println("AT+CIPSTART=\"TCP\",\""+ip+"\",80");           //Thingspeak'e bağlanıyoruz.
  if(esp.find("Error")){                                      //Bağlantı hatası kontrolü yapıyoruz.
    Serial.println("AT+CIPSTART Error");
  }
  DHT11.read(dht11Pin);
  sicaklik = (float)DHT11.temperature;
  nem = (float)DHT11.humidity;
  String veri = "GET https://api.thingspeak.com/update?api_key=2F55993RWVDCTSUS";   //Thingspeak komutu. Key kısmına kendi api keyimizi yazıyoruz.                                   //Göndereceğimiz sıcaklık değişkeni
  veri += "&amp;field1=";
  veri += String(sicaklik);
  veri += "&amp;field2=";
  veri += String(nem);                                        //Göndereceğimiz nem değişkeni
  veri += "\r\n\r\n"; 
  esp.print("AT+CIPSEND=");                                   //ESP'ye göndereceğimiz veri uzunluğunu veriyoruz.
  esp.println(veri.length()+2);
  delay(2000);
  if(esp.find("&gt;")){                                          //ESP8266 hazır olduğunda içindeki komutlar çalışıyor.
    esp.print(veri);                                          //Veriyi gönderiyoruz.
    Serial.println(veri);
    Serial.println("Veri gonderildi.");
    delay(1000);
  }
  Serial.println("Baglantı Kapatildi.");
  esp.println("AT+CIPCLOSE");                                //Bağlantıyı kapatıyoruz
  delay(1000);                                               //Yeni veri gönderimi için 1 dakika bekliyoruz.
}

Son Çıkan Yazılar

12 YORUMLAR

  1. Programi aynı kodlarla (ağ adı, ağ şifresi, thinkspeak api kodunu bana ait bilgilerle değiştirdim tabiki) kopyala yapıştır olarak denedim ve sağlıklı olarak çalıştığını gördüm. Programı deneyecek arkadaşlara not düşmek istedim.

    Konuyu yazan arkadaşlarada teşekkür ederim.

  2. arkadaşlar dht11 kütüphanesi linkte yok. Kütüphanesi inik olan arkadaşlar varsa e mail üzerinden gönderme şansı var mı? Üniversite final ödevim olduğundan hemen geri dönüş yapabilirseniz sevinirim.

  3. Merhaba ben muhammet ali ve kullanılan dht.11 dosyasının linki=https://github.com/Robotistan/YouTube-DIY-Projeler/blob/master/Arduino%20Dersleri/Ders-22%20ESP8266%20ThinkSpeak%20Kullanimi/dht11.rar
    Buradan dowland tuşuna basarak indirebilirsiniz. Yardım edebildiysem ne mutlu 😊

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz