ESP32 Kullanarak Namaz Vaktini LCD'ye Yazdırma Kodu Var mı?

Çavuş

GadgetEfsanesi
ESP32 modülünü kullanarak günlük namaz vakitlerini bir LCD ekrana yazdırmak istiyorum. Bunun için gerekli kodları ve devre bağlantılarını paylaşabilir misiniz? Ayrıca, namaz vakitlerini nasıl hesaplayacağım veya bir API ile nasıl çekeceğim konusunda da yardım alabilir miyim?
 
Namaz vakitlerini çekmek için ücretsiz bir API olan 'Aladhan' kullanabilirsiniz. ESP32 ile HTTP istek gönderip verileri çekebilir, daha sonra LCD'ye yazdırabilirsiniz. Örnek kod paylaşacağım.
 
LCD'yi bağlamak için I2C protokolünü kullanmanızı öneririm. Bu, daha az pin kullanmanızı sağlar. LCD için LiquidCrystal_I2C kütüphanesi oldukça iyi çalışıyor.
 
ESP32 üzerinde WiFi bağlantısı kurarak bir API'den namaz vakitlerini çekmek oldukça kolay. LCD bağlantısı ve kod için örnek bir proje paylaşıyorum.
 
Namaz vakitlerini API'den çekip LCD'ye yazdırmak için ESP32 ile yapılan bir projeyi sizinle paylaşıyorum. Kodlar ve devre şeması aşağıda. Umarım işinize yarar.
 
Çözüm
TechGuru'nun önerisi çok iyi. API entegrasyonunda JSON verilerini işlemek için ArduinoJson kütüphanesini kullanabilirsiniz. Bu, vakitleri kolayca ayıklamanızı sağlar.
 
API kullanmak yerine lokal bir hesaplama yapmayı da düşünebilirsiniz. Bunun için gökyüzü hareketleri algoritmalarını araştırabilirsiniz.
 
LCD'ye yazdırmadan önce namaz vakitlerini Serial Monitor üzerinden test edin. Böylece herhangi bir hata olup olmadığını kolayca görebilirsiniz.
 
LCD'nin boyutuna göre formatlama yapmayı unutmayın. 16x2 LCD için her bir satırda en fazla 16 karakter yazdırabilirsiniz.
 
Bağlantıların ardından LCD'nin düzgün çalıştığını kontrol etmek için basit bir 'Hello, World!' yazdırma testi yapın. Bu, devrede sorun olup olmadığını anlamanızı sağlar.
 
Kodlamada bir hata yapmamak için ESP32'nin WiFi bağlantısını ayrı bir test ile kontrol edin. LCD ve API entegrasyonu daha sonra yapılabilir.
 
@netweb hangi parçalar var elinizde yazarsanız yardımcı olayım.
 
ESP32 Pin - I2C LCD Pin - SD Kart Modül
3.3V - VCC - VCC
GND GND GND
GPIO 21 SDA
GPIO 22 SCL
GPIO 5 CS
GPIO 18 SCK
GPIO 19 MISO
GPIO 23 MOSI

C++:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <SD.h>

// LCD ekran ayarları (I2C adresini kontrol edin)
LiquidCrystal_I2C lcd(0x27, 16, 2);

// SD kart pin ayarları
#define SD_CS 5

void setup() {
  // Seri portu başlat
  Serial.begin(115200);

  // LCD başlatma
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("SD ve LCD Test");

  // SD kart başlatma
  if (!SD.begin(SD_CS)) {
    Serial.println("SD Kart Basarisiz!");
    lcd.setCursor(0, 1);
    lcd.print("SD Hata!");
    while (1);
  }
  Serial.println("SD Kart Basarili!");
  lcd.setCursor(0, 1);
  lcd.print("SD Baglandi!");
  delay(2000);
  lcd.clear();

  // Namaz vakitlerini oku ve göster
  displayNamazVakitleri();
}

void loop() {
  // Bir süre bekle ve dosyayı tekrar oku
  delay(60000); // Her dakika bir güncelleme
  displayNamazVakitleri();
}

void displayNamazVakitleri() {
  File file = SD.open("/namaz_vakitleri.txt");
  if (!file) {
    Serial.println("Dosya acilamadi!");
    lcd.setCursor(0, 0);
    lcd.print("Dosya Hata!");
    return;
  }

  lcd.clear();
  int line = 0;
  while (file.available()) {
    String vakit = file.readStringUntil('\n');
    vakit.trim(); // Gereksiz boşlukları sil
    lcd.setCursor(0, line);
    lcd.print(vakit);

    line++;
    if (line >= 2) break; // Sadece iki satır göster
  }
  file.close();
}

SD karta aşağıdaki formatta bir dosya oluşturun ve adını namaz_vakitleri.txt koyun:

Kod:
Sabah: 06:30
Ogle: 12:45
Ikindi: 15:30
Aksam: 18:00
Yatsi: 20:15
 
ESP32'nin WiFi modülünü kullanıyor musunuz veya internet erişimi mümkün mü?
 
Geri
Üst