import requests
import time
from PIL import Image, ImageDraw, ImageFont
import os
from gpiozero import LED
# Konfigurasi API Waktu Solat (Anda perlu mendaftar dan dapatkan API key)
API_KEY = 'API_KEY_ANDA'
CITY = 'Alor Setar'
STATE = 'Kedah'
COUNTRY = 'Malaysia'
# Konfigurasi layar digital
SCREEN_WIDTH = 128
SCREEN_HEIGHT = 64
FONT_SIZE = 20
FONT = ImageFont.truetype("path_to_font.ttf", FONT_SIZE)
# Konfigurasi LED untuk pengumuman digital
LED_PIN = 17
led = LED(LED_PIN)
# Fungsi untuk mendapatkan waktu solat dari API
def get_prayer_times():
url = f'https://api.aladhan.com/v1/timingsByCity?city={CITY}&state={STATE}&country={COUNTRY}&method=2'
response = requests.get(url)
data = response.json()
return data['data']['timings']
# Fungsi untuk menampilkan waktu solat pada layar
def display_prayer_times(prayer_times):
image = Image.new('1', (SCREEN_WIDTH, SCREEN_HEIGHT), 255)
draw = ImageDraw.Draw(image)
y = 10
for prayer, time in prayer_times.items():
draw.text((10, y), f"{prayer}: {time}", font=FONT, fill=0)
y += 25
return image
# Fungsi untuk mengumumkan pesan pada LED
def announce_message(message):
led.on()
time.sleep(2)
led.off()
# Loop utama
while True:
prayer_times = get_prayer_times()
display_image = display_prayer_times(prayer_times)
display_image.show()
# Anda dapat menambahkan kondisi untuk pengumuman khusus waktu solat tertentu
# if "Isha" in prayer_times and prayer_times["Isha"] == "20:00":
# announce_message("Waktu solat Isha telah tiba.")
time.sleep(60) # Perbarui setiap 1 menit