📲 Arduino’dan Telefona Bildirim Göndermek: WiFi + IFTTT + Push Notifications (ESP8266 veya ESP32)

📲 Arduino’dan Telefona Bildirim Göndermek: WiFi + IFTTT + Push Notifications (ESP8266 veya ESP32)

📲 Arduino’dan Telefona Bildirim Göndermek: WiFi + IFTTT + Push Notifications (ESP8266 veya ESP32)

Merhaba sevgili Arduino meraklıları! Bu yazımızda, Arduino projelerinizi bir üst seviyeye taşıyacak, hem de oldukça eğlenceli bir konuya değineceğiz: Arduino’dan telefonunuza bildirim gönderme! Evet, yanlış duymadınız! Artık sensörlerinizden gelen verileri, uyarıları veya aklınıza gelebilecek her türlü bilgiyi anında telefonunuzda görebilirsiniz. Hem de WiFi, IFTTT (If This Then That) ve push bildirimleri sayesinde. Hadi başlayalım!

Neden Telefona Bildirim Göndermeliyiz?

Arduino projelerimiz genellikle bir ortamı izler veya bir işlemi kontrol eder. Örneğin, bir sıcaklık sensöründen gelen veriyi okuyup, sıcaklık belirli bir eşiği aştığında uyarı almak isteyebiliriz. Ya da bir sulama sistemini kontrol ediyorsak, toprağın nem seviyesi düştüğünde bildirim almak isteyebiliriz. İşte bu gibi durumlarda telefona bildirim göndermek, projemizi çok daha kullanışlı ve interaktif hale getirir.

Gerekli Malzemeler

  • Bir adet ESP8266 veya ESP32 geliştirme kartı (NodeMCU, Wemos D1 Mini vb.)
  • Arduino IDE
  • WiFi ağı
  • IFTTT hesabı (ücretsiz)

Bağlantılar

Bu projede karmaşık bağlantılara ihtiyacımız yok. ESP8266 veya ESP32 kartımızın gücünü ve WiFi yeteneklerini kullanacağız. Eğer ekstra bir sensör kullanıyorsanız, onu da kartınıza bağlamanız gerekecektir. İşte temel bağlantı şeması (eğer sensör kullanıyorsanız sensörün bağlantısı da dahil edilecektir):

  • **ESP8266/ESP32 VCC -> Arduino VCC (3.3V veya 5V, kartınıza göre değişir)**
  • **ESP8266/ESP32 GND -> Arduino GND**
  • **Eğer Sensör Kullanıyorsanız:**
    • Sensör VCC -> Arduino VCC
    • Sensör GND -> Arduino GND
    • Sensör Data Pin -> Arduino Dijital veya Analog Pin (kullandığınız sensöre göre değişir. Örn: A0)

Adım Adım Uygulama

1. Arduino IDE Kurulumu ve ESP8266/ESP32 Desteği Ekleme

Eğer Arduino IDE'niz kurulu değilse, buradan indirebilirsiniz. ESP8266 veya ESP32 kartınızı Arduino IDE'ye tanıtmak için aşağıdaki adımları izleyin:

ESP8266 için:

  1. Arduino IDE'yi açın.
  2. Dosya -> Tercihler menüsüne gidin.
  3. Ek kart yöneticisi URL'leri kısmına aşağıdaki adresi ekleyin: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. Araçlar -> Kart -> Kart Yöneticisi'ne gidin.
  5. "esp8266" araması yapın ve "esp8266 by ESP8266 Community" paketini kurun.

ESP32 için:

  1. Arduino IDE'yi açın.
  2. Dosya -> Tercihler menüsüne gidin.
  3. Ek kart yöneticisi URL'leri kısmına aşağıdaki adresi ekleyin: https://dl.espressif.com/dl/package_esp32_index.json
  4. Araçlar -> Kart -> Kart Yöneticisi'ne gidin.
  5. "esp32" araması yapın ve "esp32 by Espressif Systems" paketini kurun.

2. IFTTT Applet Oluşturma

IFTTT, "Eğer Bu Olursa, Onu Yap" mantığıyla çalışan bir otomasyon platformudur. Biz de bu platformu kullanarak Arduino'muzdan gelen veriyi telefona bildirim olarak göndereceğiz.

  1. IFTTT adresine gidin ve bir hesap oluşturun (eğer yoksa).
  2. "Create" butonuna tıklayın.
  3. "If This" kısmına tıklayın ve "Webhooks" servisini arayın.
  4. "Receive a web request" seçeneğini seçin.
  5. Bir Event Name girin (örneğin: "arduino_uyari"). Bu ismi Arduino kodumuzda da kullanacağız.
  6. "Then That" kısmına tıklayın ve "Notifications" servisini arayın.
  7. "Send a notification from the IFTTT app" seçeneğini seçin.
  8. Bildirim metnini istediğiniz gibi düzenleyin. Örneğin: "Arduino'dan Uyarı: Sıcaklık 30 dereceyi aştı!". İçine "Value1", "Value2", "Value3" gibi değişkenler ekleyerek Arduino'dan gelen farklı verileri de bildirimde gösterebilirsiniz.
  9. Applet'inizi kaydedin.
  10. Webhooks servisinin dokümantasyon sayfasına gidin (Webhooks servisinin ayarlarından bulabilirsiniz). Burada size özel bir API Key verilecektir. Bu keyi not alın, Arduino kodumuzda kullanacağız.

3. Arduino Kodunu Yazma

Şimdi de Arduino kodumuzu yazalım. Aşağıdaki kodu Arduino IDE'nize kopyalayın ve kendi WiFi ağınızın bilgilerini ve IFTTT API Key'inizi girin:


 #include <ESP8266WiFi.h>
 #include <WiFiClientSecure.h>

 const char* ssid     = "YOUR_WIFI_SSID"; // WiFi ağınızın adı
 const char* password = "YOUR_WIFI_PASSWORD"; // WiFi ağınızın şifresi
 const char* iftttApiKey = "YOUR_IFTTT_API_KEY"; // IFTTT Webhooks API Key'iniz
 const char* iftttEventName = "arduino_uyari"; // IFTTT Event Name'iniz

 // Örnek bir sıcaklık sensörü pini
 const int sicaklikPin = A0;

 void setup() {
  Serial.begin(115200);
  delay(10);

  // WiFi'ye bağlan
  Serial.println("WiFi'ye bağlanılıyor...");
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi bağlandı");
  Serial.print("IP adresi: ");
  Serial.println(WiFi.localIP());
 }

 void loop() {
  // Sıcaklık sensöründen değer okuma (örnek)
  int sensorDegeri = analogRead(sicaklikPin);
  float voltaj = sensorDegeri * (5.0 / 1023.0); // 5V referans voltajı varsayımı
  float sicaklik = (voltaj - 0.5) * 100; // LM35 sensör için örnek hesaplama

  Serial.print("Sıcaklık: ");
  Serial.print(sicaklik);
  Serial.println(" °C");

  // Eğer sıcaklık 30 dereceyi aşarsa bildirim gönder
  if (sicaklik > 30) {
  gonderIFTTTBildirimi(String(sicaklik));
  }

  delay(5000); // 5 saniyede bir kontrol et
 }

 void gonderIFTTTBildirimi(String value1) {
  WiFiClientSecure client;
  const int httpsPort = 443;

  Serial.print("IFTTT'ye bağlanılıyor...");

  if (!client.connect("maker.ifttt.com", httpsPort)) {
  Serial.println("Bağlantı hatası");
  return;
  }

  String url = "/trigger/" + String(iftttEventName) + "/with/key/" + String(iftttApiKey);
  Serial.print("İstek gönderiliyor: ");
  Serial.println(url);

  String jsonVerisi = "{\"value1\":\"" + value1 + "\"}";

  String istek = String("POST ") + url + " HTTP/1.1\r\n" +
  "Host: maker.ifttt.com\r\n" +
  "Content-Type: application/json\r\n" +
  "Content-Length: " + String(jsonVerisi.length()) + "\r\n" +
  "Connection: close\r\n\r\n" +
  jsonVerisi + "\r\n";

  client.print(istek);

  Serial.println("İstek gönderildi");

  while (client.connected()) {
  String line = client.readStringUntil('\n');
  if (line == "\r") {
  Serial.println("Başlıklar tamamlandı");
  break;
  }
  }

  String body = client.readStringUntil('\n');
  Serial.println("Yanıt:");
  Serial.println(body);
  Serial.println("Bağlantı kapatılıyor");
 }
 

4. Kodu Yükleme ve Test Etme

Arduino IDE'de doğru kartı (ESP8266 veya ESP32) ve portu seçtiğinizden emin olun. Ardından kodu kartınıza yükleyin. Seri monitörü açarak neler olup bittiğini takip edebilirsiniz. Sıcaklık 30 dereceyi aştığında telefonunuza bir bildirim gelmesi gerekiyor!

Sonuç

Tebrikler! Artık Arduino'dan telefonunuza bildirim gönderebiliyorsunuz. Bu, projelerinize yepyeni bir boyut katacak ve onları çok daha kullanışlı hale getirecek. Farklı sensörler ve IFTTT servisleriyle deneyler yaparak, kendi ihtiyaçlarınıza uygun çözümler geliştirebilirsiniz. Unutmayın, hayal gücünüz sınır tanımıyor!

Umarım bu yazı size faydalı olmuştur. Bir sonraki yazımızda görüşmek üzere!

Etiketler: Arduino, ESP8266, ESP32, IFTTT, Bildirim, Push Notification, WiFi, IoT, Proje, Elektronik

```

0 yorum: