| 3 dk okuma | 20 okunma

Bölüm 7: Nesnelerin İnterneti (IoT) Pratiği: Verileri Buluta Göndermek

ESP32'mizi gerçek bir IoT cihazına dönüştürüyoruz! 5. Bölümde sensörlerden okuduğumuz verileri (ışık, sıcaklık vb.) artık sadece kendi bilgisayarımızın ekranında görmekle kalmayacak, internet üzerinden bir bulut sunucusuna göndereceğiz. Bu sayede cihazınızın topladığı verilere dünyanın her yerinden, şık grafikler eşliğinde ulaşabileceksiniz.

Bölüm 7: Nesnelerin İnterneti (IoT) Pratiği: Verileri Buluta Göndermek

Şu ana kadar harika ilerledik. ESP32'yi Wi-Fi'a bağladık, içine web sitesi kurduk ve sensörlerden ortam verilerini okuduk. Ancak bir sorunumuz var: Okuduğumuz ışık veya sıcaklık verilerini sadece bilgisayarımızın başındayken, USB kablosu takılıyken (Seri Port Ekranından) görebiliyoruz.

Peki ya biz tatildeyken evdeki seramızın sıcaklığını telefonumuzdan anlık olarak takip etmek istersek ne olacak? İşte bu noktada verileri internetteki bir depolama alanına, yani Buluta (Cloud) göndermemiz gerekiyor.

ThingSpeak ile Tanışın

IoT projelerinde verileri toplayıp görselleştirmek için kullanabileceğimiz birçok platform var (Firebase, AWS, Blynk vb.). Biz bu yazımızda yeni başlayanlar için en ücretsiz, en popüler ve kurulumu en kolay platformlardan biri olan ThingSpeak'i kullanacağız.

ThingSpeak, ESP32'nizin gönderdiği verileri alır, veritabanına kaydeder ve size tarih/saat damgasıyla birlikte güzel çizgi grafikler halinde sunar.

1. Adım: ThingSpeak Kurulumu

  1. thingspeak.com adresine gidin ve ücretsiz bir hesap oluşturun.
  2. Giriş yaptıktan sonra "New Channel" (Yeni Kanal) butonuna tıklayın.
  3. Kanalınıza bir isim verin (Örn: "Ev Hava Durumu").
  4. "Field 1" (Alan 1) kutucuğunu işaretleyip karşısına "Sıcaklık" (veya Işık) yazın ve en alttaki "Save Channel" butonuna basarak kanalı kaydedin.
  5. Kanal sayfanız açıldığında üst sekmelerden "API Keys" kısmına gelin. Orada "Write API Key" (Yazma Anahtarı) adında karmaşık bir harf/sayı dizisi göreceksiniz. Bu şifre, ESP32'nizin sizin kanalınıza veri yazabilmesi için gereken özel anahtardır. Bunu kopyalayın.

2. Adım: Veriyi Buluta Gönderen Kod

Aşağıdaki kod, ESP32'yi önce Wi-Fi ağınıza bağlar. Ardından sanki bir sensör okuyormuş gibi (şimdilik test amaçlı rastgele bir sıcaklık değeri üreterek) bu veriyi ThingSpeak sunucularına gönderir.

Arduino IDE'yi açın ve kodu yapıştırın. WIFI_ADI, WIFI_SIFRESI ve API_ANAHTARINIZ kısımlarını doldurmayı unutmayın!

C++


#include <WiFi.h>
#include <HTTPClient.h>

// Wi-Fi Bilgileriniz
const char* ssid = "WIFI_ADI";
const char* password = "WIFI_SIFRESI";

// ThingSpeak API Bilgileriniz
// Buraya ThingSpeak'ten kopyaladığınız "Write API Key" gelecek!
String apiKey = "API_ANAHTARINIZ"; 

// ThingSpeak sunucu adresi
const char* server = "http://api.thingspeak.com/update";

void setup() {
  Serial.begin(115200);
  
  // Wi-Fi'a bağlanıyoruz
  WiFi.begin(ssid, password);
  Serial.print("Wi-Fi'a baglaniliyor");
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nBaglanti Basarili!");
}

void loop() {
  // Sadece Wi-Fi bağlıysa işlem yap
  if(WiFi.status() == WL_CONNECTED) {
    
    HTTPClient http;
    
    // Test amaçlı rastgele bir sıcaklık değeri üretiyoruz (20 ile 30 derece arası)
    // (İleride buraya 5. Bölümdeki LDR sensörünün değerini koyabilirsiniz)
    int sicaklikDegeri = random(20, 31); 
    
    // Veriyi göndereceğimiz web adresini (URL) hazırlıyoruz
    // Örnek URL: http://api.thingspeak.com/update?api_key=SİZİN_ŞİFRENİZ&field1=25
    String url = String(server) + "?api_key=" + apiKey + "&field1=" + String(sicaklikDegeri);
    
    // Hazırladığımız URL'ye gidiyoruz (Sanki tarayıcıdan giriyormuş gibi)
    http.begin(url);
    
    // GET talebini gönderiyoruz (Veriyi yolla)
    int httpResponseCode = http.GET();
    
    if (httpResponseCode > 0) {
      Serial.print("Veri basariyla gonderildi. Gonderilen Deger: ");
      Serial.println(sicaklikDegeri);
    } else {
      Serial.print("Hata olustu. Hata Kodu: ");
      Serial.println(httpResponseCode);
    }
    
    // İşimiz bitince bağlantıyı kapatıyoruz
    http.end();
  }
  
  // ThingSpeak ücretsiz hesaplarda 15 saniyede bir veri kabul eder.
  // Biz garanti olması için 20 saniye (20000 milisaniye) bekliyoruz.
  delay(20000); 
}

Sonuçları İzleme Zamanı

Kodu ESP32'ye yükleyin ve Seri Port Ekranını açın. Wi-Fi'a bağlandıktan sonra her 20 saniyede bir "Veri basariyla gonderildi" mesajını göreceksiniz.

Şimdi bilgisayarınızdan veya telefonunuzdan ThingSpeak kanalınıza girip "Private View" (Özel Görünüm) sekmesine tıklayın. İşte sihir! Sizin oluşturduğunuz Field 1 (Sıcaklık) grafiğinde, ESP32'nizin gönderdiği verilerin anlık olarak çizildiğini, inip çıkan bir grafik oluşturduğunu göreceksiniz.

Tebrikler! Artık dünyanın neresinde olursanız olun, internete bağlı olduğunuz sürece bu web sayfasına girerek ESP32'nizin bulunduğu ortamın durumunu takip edebilirsiniz. Siz artık resmi olarak bir IoT geliştiricisisiniz!

Bir sonraki ve son bölümümüzde, pille çalışan ve günlerce ormanda/tarlada beklemesi gereken projeler için ESP32'nin "Deep Sleep" (Derin Uyku) modunu nasıl kullanacağımızı öğreneceğiz.

Ertan Dağdelen

Yazan

Ertan Dağdelen

Brain & Youth Information Worker, Author, .Net, Flutter, AJAX, Arduino & Esp32, Pcb, 3D, Galatasaray, Gemini

Bu yazıyı paylaş

Yorumlar (0)

Bu yazı için yorumlar kapalı.

Diğer Yazılar