ARDUİNO İLE ESP8266 WİFİ MODÜLÜ KULLANARAK SICAKLIK VE NEM ÖLÇÜMÜ – THİNGSPEAK’E YOLLAMA

ARDUİNO İLE ESP8266 WİFİ MODÜLÜ KULLANARAK SICAKLIK VE NEM ÖLÇÜMÜ – THİNGSPEAK’E YOLLAMA

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 

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şmaakıllı kahve makinesiinternet üzerinden LED kontrolü ve buna benzer yüzlerce proje…

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.

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

Gereken malzemeler:

  • Arduino UNO
  • Breadboard
  • ESP8266 Wifi Modülü
  • DHT11 Sıcaklık ve Nem Sensörü
  • Erkek-erkek jumper kablo

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.

//elektroforum.net

#include                                    //SoftwareSerial kütüphanimizi ekliyoruz.
#include                                             //DHT11 sensör kütüphanemizi ekliyoruz.

String agAdi = "Elektroforum";                 //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 += "&field1=";
  veri += String(sicaklik);
  veri += "&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(">")){                                          //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.
}

Yazar Hakkında

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir