Arduino ile ESP8266 Kullanımı ve İnternet Erişimi Serisi -2 (İnternete Veri Gönderme)



Herkese merhabalar. Bu video serisinin ikinci videosunda sizlere ESP8266 modüllerini kullanarak arduino ile internete nasıl erişebileceğimizi ve topladığımız sensör verilerini internet üzerine nasıl aktarabileceğimizi göstermeye çalışacağım. Video serisinin ilk videosunda ThingSpeak web sitesini kullanarak herhangi bir internet sitesindeki canlı ve değişken bir veriyi nasıl yakalayıp arduinoya alabileceğimizi irdelemek istemiştim. Aldığımız bu veriyi projelerimizde çok değişik amaçlar ile kullanabilir ve lokal olarak oluşturduğumuz sistemleri internetle konuşur hale getirebiliriz.

Bu videoda ise senörlerden topladığımız verileri internet ortamında depolamayı ve farklı kaynaklara erişilebilir hale getirmeyi göstermeye çalışacağım. Bu uygulama serisi sonunda IOT-Internet of Things, yani nesnelerin interneti olarak da adlandırılan birbiri ile haberleşen akıllı cihazlara yönelik uygulamalara daha aşina olacağımızı hatta kendi akıllı ev sistemimizi bile kurabilecek hale geleceğimizi düşünüyorum. Umarım içeriği beğenmişsinizdir, kanalıma abone olarak bana destek olabilirsiniz. Teşekkürler...




Gerekli Ekipman:
1 adet arduino kontrol kartı
1 adet DHT-11 sensör
1 adet ESP8266 modül
1 adet 16v 100uf kapasitör
3 adet 1K Ohm direnç
3.3V ve 5v besleme kaynağı

Devre Şeması:


Arduino Kodu:


//ESP8266 ile thingspeak'e veri gönderme

#include <SoftwareSerial.h>                                   //Gerekli kütüphaneleri ekledik.
#include <dht11.h>                                            

String agAdi = "*************";                     //Ağ adı.    
String agSifresi = "********";                              //Ağ şifresi.

int rxPin = 10;                                               //ESP8266 TX pinine
int txPin = 11;                                               //ESP8266 RX pinine
int dht11Pin = 2;

String ip = "184.106.153.149";                                //Thingspeak ip adresi
float nem, sicaklik;

dht11 DHT11;                                                  //DHT 11 nesnesi oluşturduk.

SoftwareSerial esp(rxPin, txPin);                             //Seri haberleşme pin ayarları

void setup() {  
  
  Serial.begin(9600);                                         //Seri port ile haberleşme başlatılıyor.
  Serial.println("Bağlantı Başlatılıyor");
  esp.begin(9600);                                            //ESP8266 ile seri haberleşme başlatılıyor.
  esp.println("AT");                                          //AT komutu ile modül kontrolünü yapıyoruz.
  Serial.println("AT Komutu Yollandı");
  while(!esp.find("OK")){                                     //Modülün hazır olmasını bekliyoruz.
    esp.println("AT");
    Serial.println("ESP8266 ile Bağlantı Kurulamadı.");
  }
  Serial.println("OK Cevabı 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("Modül Türü Ayarlanıyor.");
  }
  Serial.println("Client olarak ayarlandı");
  Serial.println("Ağa Bağlanılıyor...");
  esp.println("AT+CWJAP=\""+agAdi+"\",\""+agSifresi+"\"");    //Ağa bağlanıyoruz.
  while(!esp.find("OK"));                                     //Ağa bağlanana kadar bekliyoruz.
  Serial.println("Ağa Bağlanıldı.");
  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);                                       //DHT sensörden verileri okuyoruz
  
  sicaklik = (float)DHT11.temperature;                        //sıcaklık bilgisini aldık
  nem = (float)DHT11.humidity;                                //nem bilgisini aldık
  
  String veri = "GET https://api.thingspeak.com/update?api_key=73N0W23NT8T81AB3";   //Thingspeak komutu. Key kısmına kendi api keyimizi yazıcaz.                                  
  veri += "&field1=";
  veri += String(sicaklik);                                   //Gönderilecek sıcaklık değişkeni
  veri += "&field2=";
  veri += String(nem);                                        //Gönderilecek nem değişkeni
  veri += "\r\n\r\n"; 
  esp.print("AT+CIPSEND=");                                   //ESP'ye gönderilecek veri uzunluğu.
  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 saniye bekliyoruz.
}

Yorumlar

  1. merhaba siteniz harika elin koluna saglik islerinden basarilar dilerim

    YanıtlaSil
  2. Merhaba dht11 için hangi library indirdiniz paylaşabilirmisiniz acaba zip olarak varsa o şekilde de alabilirim

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

QTR-8A Kızılötesi Çizgi Sensörü Kullanımı ve Basit PID Çizgi İzleyen Robot Yapımı

A4988 Step Motor Sürücü Kartı ile NEMA Step Motor Kullanımı

Arduino ile ESP8266 Kullanımı ve İnternet Erişimi Serisi -1 (İnternet Üzerinden Veri Çekme)