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.
Ş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
thingspeak.comadresine gidin ve ücretsiz bir hesap oluşturun.- Giriş yaptıktan sonra "New Channel" (Yeni Kanal) butonuna tıklayın.
- Kanalınıza bir isim verin (Örn: "Ev Hava Durumu").
- "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.
- 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.
Yazan
Ertan Dağdelen
Brain & Youth Information Worker, Author, .Net, Flutter, AJAX, Arduino & Esp32, Pcb, 3D, Galatasaray, Gemini
Yorumlar (0)
Bu yazı için yorumlar kapalı.
Diğer Yazılar
ESP32 vs Arduino: 2026’da Hangisini Seçmelisiniz?
ESP32 ve Arduino, hobiden profesyonel IoT projelerine kadar en popüler geliştirme kartlarıdır. Arduino basitliği ve eğitim odaklı yapısıyla yeni başlayanlar için idealken, ESP32 yerleşik Wi-Fi, Bluetooth, yüksek işlem gücü ve düşük maliyetiyle modern bağlı cihazlar için çok daha güçlü bir alternatiftir. Bu yazıda ikisini hız, bellek, bağlantı, güç tüketimi ve kullanım alanları açısından karşılaştırıyoruz. 2026 itibarıyla çoğu IoT ve akıllı ev projesi için ESP32 öne çıkıyor.
Bölüm 10: Kablolara Veda Edin: ESP32'yi Wi-Fi Üzerinden (OTA) Programlamak
Projenizi güzelce kutuladınız, lehimlediniz ve ulaşması zor bir yere monte ettiniz. Peki kodda ufak bir hata fark ederseniz veya yeni bir özellik eklemek isterseniz ne olacak? Cihazı yerinden sökmeye hiç gerek yok! Bu bölümde akıllı telefonların güncelleme almasına benzeyen OTA (Over-The-Air) teknolojisini öğrenecek ve ESP32'mize USB kablosu olmadan, havadan kod yükleyeceğiz.
Bölüm 9: ESP32 ile Mesajlaşın: Kendi Telegram Botunuzu Yapın!
ESP32'nizin cebinize doğrudan mesaj atmasını ister misiniz? Bu bölümde popüler mesajlaşma uygulaması Telegram'ı kullanarak kendi botumuzu oluşturacağız. Cihazımız bir hareket algıladığında, ortam fazla ısındığında veya sadece uyandığında cep telefonumuza anlık bildirim (mesaj) göndermeyi öğrenecek!