Site icon Teknikerler

Arduino Wifi – internet – Esp8266 – Thingspeak veri Gönderme – Arduino projesi – 72 –

esp8266_72

esp8266_72

Arduino Wifi – internet – Esp8266 – Thingspeak veri Gönderme hakkında detaylar yer almaktadır.

Bir önceki yazımızda ESP8266 wifi modülü hakkında kısaca bilgi vermiştik. Arduinoyu internete bağlamak için kablosuz bir yöntem olan wifi ağı ile haberleştirilebilmektedir. Wifi modem sayesinde arduino kendisine bağlanan ESP8266 yada ESP01 diye anılan wifi modülünü kullanarak evimizdeki wifi modeme bağlanabiliriz. Wifi üzerinden bağlantı sağlandıktan sonra kendi algoritmanıza uygun olarak artık internet dünyasına adım atmış olacaksınız.

ESP8266 kullanılarak arduino 3 farklı yöntemle wifi ile haberleştirilebilir.

  • İlk yöntem; internet üzerinden herhangi bir web sitesinden istediğimiz verileri çekebiliriz. BU bir döviz kuru olabilir, altın fiyatı olabilir yada bir deprem bilgisi olabilir. Anlık olarak web sitesindeki verilere erişebilir bu verileri arduino ile işleyip istediğimiz gibi kullanabiliriz. Örneğin: Anlık olarak kandilli rasathanesinden deprem bilgisi alabiliriz aldığımız değerleri karşılaştırıp yüksek şiddette bir deprem olunca arduinonun buna uygun tepkiler vermesini sağlayabiliriz.
  • İkinci yöntem; arduino ile bir sensörü okuyabiliriz, yada arduinoya bağlı butonlar, tuşlar, sayaçlar vb… arduino ile kurmuş olduğumuz sistemdeki verileri bir web sitesine gönderebilir bu verilere istediğimiz zaman internet üzerinden erişebilir anlık olarak takip edebilir. Örneğin: DHT11 ısı ve nem sensörünü arduinoya bağlayabiliriz bu sensörden gelen verileri web sitesine gönderebilir ve internetin olduğu herhangi bir yerden anlık olarak ortamın ısı ve nem miktarını takip edebiliriz.
  • Üçüncü olarak; Web yada Lokal server yöntemi ile esp8266 doğrudan wifi modeme bağlayabilir internet olmasa dahi aynı modeme bağlı diğer cihazları kontrol edebiliriz. Yine lokal server üzerinden arada herhangi bir modem/wifi olmadan ESP8266 doğrudan cep telefonumuza bağlanabilir uygulama üzerinden arduinoya bağlı cihazları kontrol edebiliriz.
  • Esp8266 öncelikle güncel yazılıma sahip olmalı. Eğer güncel yazılıma sahip değilse AT komutlarını işletirken hata alabilirsiniz.Esp8266 güncelleme için bu resmi web sayfasını ziyaret edebilirsiniz.
    ESP01v0

    Esp8266 3.3Volt ile çalışan bir modüldür. Bu modülü arduino ile kullanırken öncelikle voltaj noktasına dikkat etmelisiniz.

    Bu modül arduino olmadan da kodlanarak kullanılabilen bir modüldür. GPO0 veGPO1 pinleri sayesinde arduino olmadan da kontrol edilebilmektedir.

    ESP8266 BAĞLANTI ŞEMASI İÇİN BU YAZIMIZA BAKABİLİRSİNİZ.

    Bu yazımızda esp8266 ile arduino uno r3 bağlantısı yapacağız bu bağlantı ile arduino üzerine bağlayacağımız Sıcaklık ve Nem sensörü olan DHT11 üzerinden okuduğumuz bilgileri thingspeak web sitesi üzerine göndereceğiz ve kaydedebileceğiz. Bu bilgilere anlık olarak ulaşabileceğiz. Esp8266 ile uzaktaki arduino dan Sensör bilgisini  ve istediğimniz verileri almış olacağız.

esp8266_sema

 




//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı ESP8266 wifi Kart Kodları - kullanımı örnek Kodları

//ESP8266 ile thingspeak'e veri gönderme

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

String agAdi = "wifi modeminizin adı";                                 //Ağ adı.    
String agSifresi = "wifi modeminizin şifresi";                                //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.115200 olabilir
  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=949QTV6VMJT7TTJW";   //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.
}

Bu bağlantı ile web sitesi üzerinden bilgilerinizi aşağıdaki gibi görebileceksiniz.

gorsel_isi_nem
Videoyu İzlemek İçin Tıklayınız

Exit mobile version