Untitled

 avatar
unknown
plain_text
a year ago
1.7 kB
3
Indexable
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