ESP8266 Wifi Uygulaması

By gokhan, 1 Nisan 2018

Bu uygulamada LM35 sensöründen alınan sıcaklık değerini thingspeak.com sitesine kaydetmeyi konu alan bir uygulama yapılacaktır. Thingspeak.com sitesi MATLAB – Mathworks firması tarafından oluşturulmuş, nesnelerin, sensörlerin mekandan bağımsız olarak internetten kontrol ve moniterizasyonunu sağlayan kullanıcı dostu bir platformdur.

Thingspeak.com sitesine üye olduktan sonra bu hesabı Arduino ve ESP modülünüz ile haberleştirmek için kullanacağız. İleri derslerde kendi sitemizde kendi veritabanımıza kendi sayfalarımız üzerinden kayıt ve erişimle alakalı uygulamalar yapılacaktır.

Üye olup giriş yaptıktan sonra Channels menüsünden My Channels seçeneği seçildiğinde aşağıdaki gibi bir ekran gelecektir.

Bu bölümde New Channel sekmesine tıklayın ve yeni gelen kısımda ilgili alanları kendinize göre doldurun.

Bu kısımda dikkat etmeniz gereken Field Name kısmıdır. Bu alana verilecek isim kodlamada gönderilecek olan parametre adı olarak kullanılacaktır. Biz uygulamamızda field1 olarak yapacağız. Sizde Türkçe karakter kullanmamaya ve boşluk kullanmamaya özen göstererek alan adı verin.
Birden fazla sensörden gönderilecek değeriniz varsa parametre olarak eklemeniz gerekiyor. İstediğiniz kadar field parametre olarak tanımlayın.Bilgileri girip Save Channel ‘a tıkladığımızda kanalımız oluşturuluyor ve aşağıdaki gibi bir sayfaya yönlendiriliyoruz.Bu kısımda API Keys kısmına tıklayarak site tarafından authentication sağlayacak anahtarımızı alacağız.

Gelen pencereden Write API Key kısmı kodlamada kullanacağımız Keyimiz. Siz kendi kullanıcı API keyinizi kodlarda ilgili alana yazınız.

Kodlamada değiştirmeniz gereken yerler: ag_ismi, ag_sifresi kendi Wifi isminiz ve şifrenize göre düenleyin.

yollanacakKomut tanımlarken key bölümünü kendi Write API Key ile değiştirin.
Devreyi aşağıdaki şekilde kurun.
!!!! Dikkat !!!! Arduinoya kodu yüklerken Tx ve Rx bacaklarını çıkarmalısınız. Yoksa yükleme sırasında
hata alırsınız. Yükleme bitince Tx ve Rx bacaklarını bağlayın ve Arduinoyu üzerindeki kırmızı Reset butonuyla resetledikten sonra 5-10sn bekleyin ki kurulum ve bağlantılar yapılabilsin.

[csharp]
#define ag_ismi "Wifi_Adi"
#define ag_sifresi "Wifi_Sifrem"
//thingspeak.com IP adresi
#define IP "184.106.153.149"

float sicaklik;

void setup() {
Serial.begin(115200);
//Seri port aciliyor. ESP8266 icin 115200 olmalı
Serial.println("AT");
//Baglanti modulunun bagli olup olmadigini kontrol ediyor
delay(3000);
//ESP8266 ile baglanti kurmak icin 3 sn

analogReference(INTERNAL);
//LM35 için sıcaklıkta ara değerleri ölçmeyi sağlar.
// 0-1V arasını 1024 e uyarlar.

if(Serial.find("OK"))
{
Serial.println("AT+CWMODE=1");
//CW: Change Wireless
//Kablosuzun modunu degistir, 1 olmasi internete baglanacagini belirtir
delay(2000);
String baglantiKomutu=String("AT+CWJAP=\"")+ag_ismi+"\",\""+ag_sifresi+"\"";
//JAP: Join Access point
Serial.println(baglantiKomutu);

delay(5000);
}

}

void loop() {
float sicaklik=analogRead(A0)/9.31;
Serial.println(sicaklik);
sicaklik_yolla(sicaklik);
//Dakikada bir guncellemek icin 1 dakika bekle
delay(5000);

}

void sicaklik_yolla(float sicaklik)
{
Serial.println(String("AT+CIPSTART=\"TCP\",\"")+ IP+"\",80");
//https:443, HTTP:80
//Bu IP adresine 80 portundan baglanti ac

delay(1000);
if(Serial.find("Error"))
{
Serial.println("AT+CIPSTART hatasi");
return;
}

String yollanacakKomut= "GET /update?key=IZ3LGJETBTGRSTBY&field1=";
//Bu kısımda kendi API Key inizi yazınız.
yollanacakKomut +=(int(sicaklik));
yollanacakKomut +="\r\n\r\n";
delay(3000);

//Veri gonderme bolumu
Serial.print("AT+CIPSEND=");
Serial.println(yollanacakKomut.length()+2);
delay(1000);

if(Serial.find(">"))
{
Serial.print(yollanacakKomut);
Serial.print("\r\n\r\n");
}
else
{
//Baglantiyi kapa
Serial.println("AT+CIPCLOSE");
}

}
[/csharp]

Sonuç: