Sommario:

Orologio e sveglia per preghiere islamiche RaspberryPi: 15 passaggi (con immagini)
Orologio e sveglia per preghiere islamiche RaspberryPi: 15 passaggi (con immagini)

Video: Orologio e sveglia per preghiere islamiche RaspberryPi: 15 passaggi (con immagini)

Video: Orologio e sveglia per preghiere islamiche RaspberryPi: 15 passaggi (con immagini)
Video: l'Azan ( la chiamata islamica alla preghiera) voce meravigliosa. (Attivate i sottotitoli italiani) 2024, Giugno
Anonim
Orologio e sveglia per le preghiere islamiche RaspberryPi
Orologio e sveglia per le preghiere islamiche RaspberryPi
Orologio e sveglia per le preghiere islamiche RaspberryPi
Orologio e sveglia per le preghiere islamiche RaspberryPi

I musulmani di tutto il mondo hanno cinque preghiere ogni giorno e ogni preghiera deve essere fatta in una certa ora del giorno. a causa del modo ellittico in cui il nostro pianeta si muove intorno al sole, che fa sì che i tempi del sorgere e del calare del sole differiscano durante l'anno, che rende anche il tempo di preghiera incostante, motivo per cui abbiamo bisogno di un orologio islamico per ricordare a noi musulmani i nostri tempi di preghiera ogni giorno.

Ogni musulmano ha un modo per accedere al tempo quotidiano dei tempi di preghiera attraverso i siti Web islamici di Internet, i calendari islamici locali o anche dalla TV, e la maggior parte di noi ha dispositivi di orologio islamici che hanno le caratteristiche di darci i tempi di preghiera, così come gli allarmi di preghiera. Ma cosa accadrebbe se creassimo il nostro dispositivo Orologio e Sveglia per le Preghiere!

Prima di iniziare a lavorare sul progetto, ci sono alcune considerazioni che potrebbero esserti utili durante la lettura di questo Instructable. Vivo in Arabia Saudita, quindi alcuni dei miei passi e valori saranno diversi dai tuoi e li indicherò esplicitamente durante il lavoro. Ci sono passaggi e immagini che potrebbero includere parole arabe da quando ho realizzato l'interfaccia in arabo, ma indicherò anche come farlo in inglese, quindi non lasciare che le parole arabe nelle immagini ti preoccupino affatto, questo progetto può essere fatto in qualsiasi lingua (che è fantastico!:D) Inoltre, scusa i miei errori di battitura perché l'inglese non è la mia prima lingua.

Al nostro progetto! Questo progetto sarà diviso in X passaggi principali, che entro la fine del passaggio X avremo il nostro progetto bello e pronto! I passaggi saranno i seguenti:

1-Configurazione e preparazione del RaspberryPi

2-Installazione del modulo RTC

3-Creare il programma Azan Alarm

4-Implementazione dei quadranti

5-Rendere l'interfaccia utente e

Come ogni progetto, dobbiamo prima preparare le parti di cui abbiamo bisogno. le parti di cui abbiamo bisogno per questo progetto sono:

Kit computer 1-RaspberryPi Amazon USA || Amazon KSA

Puoi utilizzare qualsiasi versione Rpi, assicurati solo che abbia il Wifi. Ho usato Rpi3B+

2-RTC Modulo orologio in tempo reale Amazon US || Amazon KSA

Puoi usare qualsiasi modello di modulo RTC, assicurati solo che abbia I2C

Monitor 3-LCD

Qualsiasi LCD andrà bene

4-Mouse e tastiera

e questo è….. IT!! Questo è tutto ciò di cui hai bisogno per creare il tuo orologio e sveglia Azan

Passaggio 1: Capitolo 1: Impostazione e configurazione di RaspberryPI

Capitolo 1: Impostazione e configurazione di RaspberryPI
Capitolo 1: Impostazione e configurazione di RaspberryPI

Cominciando dall'inizio! Dobbiamo preparare il Raspberry pi per poterci lavorare.

Raspberry pi non è altro che un computer, ha RAM e ROM, ha CPU, GPU, I/O……. Un computer! proprio come quello su cui giochiamo e navighiamo sul web, l'unica cosa importante è che è molto piccolo! il che rende il lampone un'ottima scelta per realizzare e implementare progetti. poiché il raspberry pi è piccolo, ha specifiche molto limitate che non possono far funzionare un sistema operativo di grandi dimensioni come Windows o macOS, invece, useremo Linux come sistema operativo per utilizzare il dispositivo. ci sono migliaia se non decine di migliaia di distro Linux che potremmo usare, ma una distro perfetta è perfettamente ottimizzata specificamente per il raspberrypi che useremo, chiamata Raspbian.

Passaggio 2: 1-1: scarica i file necessari

1-1: Scarica i file necessari
1-1: Scarica i file necessari
1-1: Scarica i file necessari
1-1: Scarica i file necessari
1-1: Scarica i file necessari
1-1: Scarica i file necessari

-Vai alla pagina di download ufficiale di Rasbian su https://www.raspberrypi.org/software/operating-sy… e scarica il sistema operativo Raspberry Pi con il file desktop

-Durante il download, vai su https://win32diskimager.org/ e scarica e installa win32DiskImager, puoi utilizzare qualsiasi software di masterizzazione di immagini che ti piace

una volta terminato il download, avrai un file.img contenente il sistema operativo RaspberryPi. quindi, collega la tua scheda di memoria SD al computer (di solito con un lettore di schede USB) e avvia il software win32diskimager. i passaggi per masterizzare l'immagine nella memoria SD sono molto semplici, devi solo 1- Selezionare la lettera della memoria 2-selezionare i file del sistema operativo che hai scaricato e 3-Click scrivere! Assicurati di aver selezionato la lettera del dispositivo corretta dall'elenco e che la tua memoria sia vuota, poiché premendo scrivi verrai promosso con un avviso che ti dice che qualsiasi cosa sul dispositivo verrà cancellata! Premi sì per confermare la scrittura e attendi che finisca. questo potrebbe richiedere fino a 20 minuti.

Una volta fatto, avrai il sistema operativo Rapbian completo sulla memoria, puoi andare avanti e inserirlo nel Rapberry Pi, collegare il Raspberry Pi al monitor tramite HDMI, collegare il mouse e la tastiera tramite USB e infine collegare il potenza.

Passaggio 3: 1-2: configurazione del sistema Raspbian

Dopo aver collegato i cavi e l'alimentazione, vedrai che il sistema operativo si è acceso, si riavvierà automaticamente e quindi visualizzerà l'interfaccia utente Raspbian (che assomiglia a Windows). la prima cosa che vedrai è una finestra di benvenuto, che ti guiderà attraverso i passaggi della configurazione del tuo RaspberryPi per la prima volta. le finestre e i passaggi saranno i seguenti:

1-Premi Avanti nella prima finestra "Benvenuto"

2-La finestra successiva sarà quella di configurare la tua posizione. seleziona il tuo Paese, la lingua e il fuso orario. dopodiché, si consiglia vivamente di selezionare "Usa lingua inglese" poiché questa sarà la lingua dell'interfaccia del sistema operativo. DEVI VERIFICARE LA "SCATOLA LAYOUT TASTIERA INGLESE USA" ABBIAMO BISOGNO DELLA TASTIERA INGLESE PER FUNZIONARE!

3-Successivamente, ti verrà chiesto di inserire una password per il tuo raspberry, questo è importante per la sicurezza ma lo lasceremo invariato per questo progetto. si noti che il nome utente e la password predefiniti sono:

nome utente: pi

password: lampone

4-La finestra successiva collegherà raspberryPi alla tua rete WiFi. seleziona il tuo nome wifi e inserisci la tua password wifi

5-successivo, ti verrà chiesto di aggiornare le librerie raspberry pi e i file di sistema. questo passaggio richiederà una quantità enorme di tempo (forse in ore) ma è un passaggio molto importante ogni volta che viene configurato un nuovo Raspberry Pi.

6-Una volta completato l'aggiornamento, ti verrà chiesto di riavviare il sistema. fallo adesso.

Ottimo lavoro! Ora abbiamo un sistema aggiornato, abbiamo ancora bisogno di fare alcune cose in più per configurare il sistema in modo che funzioni, ma ora inizieremo a utilizzare la riga di comando di Linux.

Passaggio 4: 1-3: utilizzo della riga di comando per configurare le impostazioni Rpi

1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi
1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi
1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi
1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi
1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi
1-3: Utilizzo della riga di comando per configurare le impostazioni Rpi

Una volta terminato il riavvio dall'aggiornamento del sistema, il sistema mostrerà il desktop dell'utente una volta terminato l'avvio. ora se guardi in alto a sinistra dello schermo, troverai alcuni pulsanti, un pulsante con il logo raspberryPi che è il pulsante del menu Rpi, un pulsante a forma di globo che è il browser Internet, un pulsante delle cartelle che è…..cartelle e infine, un pulsante con una finestra a schermo nero, che è il pulsante più importante in qualsiasi sistema Linux, la riga di comando. vai avanti e premi quel pulsante, vedrai apparire una finestra nera.

La riga di comando è il modo in cui tutti interagiscono e utilizzano il sistema Linux, proprio come Windows ha la propria riga di comando solo nelle vedove, non è necessario utilizzarla molto spesso. in Linux, è la cosa fondamentale che ogni utente Linux deve imparare e padroneggiare. la riga di comando può essere utilizzata da…. COMANDI! quello che vedi nella finestra nera è il prompt dei comandi in attesa che il comando venga scritto dall'utente ed eseguito. in questa guida daremo tutti i comandi necessari per eseguire questo progetto, quindi non preoccuparti.

il primissimo comando Linux che useremo è un altro comando di configurazione, nota che tutti i comandi d'ora in poi verranno inseriti in una casella di codice, quindi puoi differenziarlo dai passaggi normali. Porta la tua tastiera e digita quanto segue e premi invio:

sudo raspi-config

Se lo fai correttamente, vedrai che lo schermo è diventato blu, con una piccola scatola grigia al centro (vedi immagine). lo useremo per fare la nostra configurazione finale prima di iniziare a codificare.

ora, dovrai usare i tasti freccia della tastiera per navigare in questo menu.

1-Vai a Opzioni interfaccia >> I2C >> S >> premi invio. questo è abilitare il protocollo di comunicazione I2c in modo che possiamo usare l'RTC

2-Vai a Opzioni avanzate >> Espandi filesystem.

e questa è tutta la configurazione di cui hai bisogno da questa finestra. nella pagina principale, scendi e premi invio su "fine" e "SI" per riavviare il sistema.

Una volta che il sistema ha terminato il riavvio, abbiamo finito di configurare! il dispositivo è pronto per i grandi passi! Il prossimo passo sarà installare il modulo RTC e usarlo con il sistema.

Passaggio 5: Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC

Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC
Capitolo 2: Montaggio, configurazione e utilizzo del modulo RTC

Il modulo RTC (o Real-Time Clock) è un piccolo dispositivo che ha una piccola batteria, fa ciò che suggerisce il nome, Clocking! quindi quando lo scolleghi per alimentare l'orologio continua a funzionare e non si ferma. perché ne abbiamo bisogno? bene, il raspberry pi non ha davvero alcun metodo per memorizzare i dati dell'orologio una volta spento, si basa sulla connessione a Internet all'avvio per aggiornare la data e l'ora, ma il problema è che non abbiamo sempre accesso a Internet, e questo ecco perché abbiamo bisogno del modulo RTC. l'RTC fungerà da orologio per il raspberry pi, quindi una volta avviato l'Rpi prenderà la data e l'ora dall'RTC, che manterrà l'ora del RaspberryPi sempre aggiornata.

ci sono più modelli e cerca l'RTC, ci sono il DS1307 e il DS3231. puoi usare qualsiasi modulo RTC che trovi purché abbia il protocollo di comunicazione I2C (puoi indicare che puoi trovare i pin SDA e SCL sui pin del modulo.

come qualsiasi cosa in questa guida, ho usato altre guide per raggiungere il mio obiettivo nel progetto, questo istruibile ti guiderà e ti dirà esattamente cosa fare per realizzare questo progetto, ma se hai bisogno di modificare o hai bisogno di più profondità in uno qualsiasi dei passaggi, collegherò la guida più fruttuosa alla fine di ogni passaggio.

Una volta pronto il modulo RTC (saldare i pin dell'intestazione e inserire la batteria), è possibile collegarlo ai pin RapberryPi come segue:

RTC PIN ---------------- Rpi Pin

GND===========> PIN 6 (GND)

Vcc============> PIN 1 (3.3V)

SDA===========> PIN 3(SDA)

SCL===========> PIN 5(SCL)

o a seconda del modulo RTC che hai, puoi montarlo direttamente sul RaspberryPi (assicurati che i pin siano corretti !!! poiché potresti danneggiare Rpi / RTC in caso contrario)

Una volta connesso l'RTC, configuriamo il Raspberry.

Passaggio 6: 2-1: Configurazione del modulo

2-1: Configurazione del modulo
2-1: Configurazione del modulo
2-1: Configurazione del modulo
2-1: Configurazione del modulo

Prima di iniziare, vai alla riga di comando e digita:

Data

Questo restituirà la data e l'ora correnti sul Raspberry, prenderà nota di quel comando molto utile e annoterà la data e l'ora correnti in modo da poter verificare se il modulo funziona o meno.

ora, iniziamo la configurazione, digita quanto segue per aggiornare le librerie Rpi, una riga alla volta:

sudo apt-get update

sudo apt-get -y upgrade

una volta fatto, dobbiamo modificare i file di sistema per abilitare il modulo i2c e aggiungere RTC, per modificare un file system utilizzeremo un software chiamato Nano. nano è un software integrato leggero che è fondamentalmente un editor di testo, proprio come quello di vedove. quindi qualsiasi comando che inizia con nano seguito dal nome del file, aprirà quel file nell'editor di testo nano. hai notato che abbiamo anche usato qualcosa chiamato Sudo, in breve, sudo agisce come una garanzia per il sistema Linux che dice al sistema che l'utente che ha fatto quel comando è il proprietario del dispositivo, non qualcun altro, e dà privilegi come la modifica/ cancellazione per l'utente. ad esempio, se aprissimo un file nano senza sudo, potremmo visualizzare quel file, ma non possiamo modificarlo o eliminarlo.

ora, dobbiamo modificare il file dei moduli, possiamo farlo digitando:

sudo nano /etc/modules

una volta fatto, troverai il contenuto di quel file (vedi foto). utilizzare i tasti freccia per posizionare il cursore alla fine del testo e aggiungere quanto segue:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

premi CTRL+S per salvare e CTRL+X per uscire

Passaggio 7: 2-2: Interfaccia I2C

2-2: Interfaccia I2C
2-2: Interfaccia I2C

Ora che abbiamo collegato l'RTC e abilitato i2c, colleghiamo tutto insieme.

digitare quanto segue nel prompt dei comandi:

i2cdetect -y 1

ti verrà data una serie di spazi, ma noterai che c'è un numero da qualche parte, quel numero è l'indirizzo del tuo modulo RTC. nel mio caso è 68. prendi nota di quel numero. se non vedi quel numero a due cifre, significa che probabilmente sei collegato male all'RTC.

ora, dobbiamo modificare il file rc.local in modo da poter abilitare il modulo RTC all'avvio e lasciare che salvi la data e l'ora nel sistema. per prima cosa, apri il file rc.local:

sudo nano /etc/rc.local

Prima della riga exit0, aggiungi quanto segue:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

hwclock -s

dove 0x68 è l'indirizzo i2c del tuo dispositivo. una volta terminato, premi CTRL+S CTRL+X, quindi riavvia il sistema:

sudo reboot

Passaggio 8: 2-3: test dell'RTC

2-3: Test dell'RTC
2-3: Test dell'RTC

Una volta riavviato il sistema, possiamo verificare se l'RTC funziona o meno. prima corsa:

sudo hwclock -r

ti verranno restituite la data e l'ora sul modulo RTC. se ti viene dato qualcos'altro, assicurati di aver eseguito correttamente i passaggi.

ora, per modificare l'ora e la data sull'RTC, dobbiamo prima modificare la Data e l'ora sul sistema, POI scrivere le modifiche sull'RTC. per farlo, esegui:

sudo date -s "29 AUG 1997 13:00:00"

e, naturalmente, cambia la data e l'ora in base all'ora e alla data locali, prima di premere invio. una volta ottenuta l'ora sull'Rpi corretto, eseguire quanto segue per salvare la data e l'ora sull'RTC:

sudo hwclock -w

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah puoi controllare se funziona con hwclock -r e vedere se la data sull'RTC è corretta o meno, quindi scollegare l'rpi da Internet e poi spegnerlo per un po' di tempo e poi riaccenderlo e vedere se ha il corretto ora e data. hai finito!

La guida completa su come configurare il modulo RTC può essere trovata qui

www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/

Passaggio 9: Capitolo 3: Realizzazione del programma di allarme Azan

Capitolo 3: Realizzazione del programma di allarme Azan
Capitolo 3: Realizzazione del programma di allarme Azan

fare un orologio è una cosa, certo, possiamo guardare l'orologio e i tempi di preghiera e vedere quando arriva il momento, ma non sarebbe ancora MOLTO meglio se potessimo aggiungere un allarme sonoro per informarci sui tempi di preghiera? ANCORA MEGLIO, facciamo quell'allarme come il suono di AZAN! vediamo come possiamo realizzare questo.

per la nostra programmazione, useremo python come nostro linguaggio di programmazione preferito poiché python si integra perfettamente con RaspberryPi. per creare un file di codice in python, facciamo lo stesso dell'apertura di un file di testo, ma ora lo salviamo come.py. per eseguire il programma, abbiamo bisogno dell'ambiente python installato del raspbery, fortunatamente Raspbian viene fornito con python e python3 preinstallati! quindi tutto ciò che dobbiamo fare è programmare. in questa guida non parleremo della lingua e insegneremo come funziona e le funzioni, ma ti darò i codici necessari per poter realizzare il progetto.

per iniziare, abbiamo bisogno di un file audio del nostro suono azan preferito (in. WAV) abbiamo bisogno di due file, uno per al-fajr azan e un altro per l'azan normale. una volta ottenuto, mettilo su una chiavetta e copialo sul desktop del raspberrypi.

ora abbiamo i file, stavo cercando un modo per riprodurre audio audio su raspberryPi e, con mia grande sorpresa, non c'erano molti modi in cui potevo farlo, ma ho trovato questa risposta su StackOverflow che mi ha dato ciò di cui avevo bisogno

stackoverflow.com/questions/20021457/playi…

ho provato quel metodo e ha funzionato! quindi vediamo come possiamo implementare questo metodo nel nostro progetto…

Passaggio 10: 3-1: Suoniamo un suono

3-1: Suoniamo un suono!
3-1: Suoniamo un suono!

prima, vai al desktop da:

cd Desktop

quindi crea un nuovo file di codice Python:

sudo nano AzanPlay.py

questo creerà un nuovo file chiamato AzanPlay con l'estensione su un file python.py, avremo uno schermo nero vuoto per permetterci di scrivere il nostro codice. scrivi semplicemente queste righe (fai attenzione a non modificare alcun rientro o spazio, poiché questo è ESTREMAMENTE importante in python):

dal mixer di importazione di pygame

mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() mentre mixer.music.get_busy() == True: continua

Dove /Desktop/ è dove inserisci i tuoi file audio, e 'Adhan-Makkah.wav' è il mio file audio, che è la registrazione del suono Azan alla Mecca.

ora per testare il nostro codice, lo eseguiamo con python digitando:

pitone AzanPlay.py

e il suono verrà riprodotto appassire dal tuo LCD HDMI o dalla porta AUX che si trova sul Raspberrypi. se non lo senti dagli altoparlanti LCD, collega una cuffia all'AUX e controlla.

Passaggio 11: 3-2: Ottieni i tempi di preghiera

3-2: Ottieni orari di preghiera
3-2: Ottieni orari di preghiera

Come sappiamo, i tempi di preghiera differiscono da un luogo all'altro della terra, e anche per un luogo specifico, differisce nel corso degli anni, il che significa che dobbiamo trovare un modo per mantenere i nostri tempi di preghiera nel sistema sempre aggiornati, e per questo abbiamo bisogno di funzioni e calcoli specifici e molto complessi per farlo bene. Fortunatamente, nostro fratello Hamid Zarrabi-Zadeh ha trasformato tutte le funzioni di cui abbiamo bisogno in un'unica funzione che possiamo usare facilmente per ottenere l'ora a seconda della nostra posizione e dell'ora corrente, INCREDIBILE! puoi trovare la libreria e i file sorgente su

praytimes.org/

Quindi, useremo questi fantastici file per ottenere i nostri tempi di preghiera e implementarli nel sistema. per prima cosa, scarica i codici dal sito Web e inseriscilo in una cartella /adhan/ (abbiamo bisogno sia del codice JS che di quello Python).

ora, andiamo a quella cartella e testiamo la libreria e cosa può fare:

cd adhan

lì, dobbiamo creare un nuovo file di test in python in modo da poter testare la funzione:

sudo nano testAd.py

all'interno, scrivi questo codice:

importare i tempi di preghiera

from datetime import date tmm = praytimes. PrayTimes().getTimes(date.today(), [LONGTITUDE, LATITUDE], GMT) print(tmm)

Prima di salvare il file, devi cambiare LATITUDE con la tua posizione Latitude, lo stesso con LONGTITUDE e cambiare GMT con il tuo fuso orario. nel mio caso sarà:

tmm = praytimes. PrayTimes().getTimes(date.today(), [21.3236, 39.1022], 3)

stampa (tmm)

Infine, CTRL-S e CTRL-X e quindi esegui il codice:

python testAd.py

infine, ti verranno restituiti i tuoi tempi di preghiera per oggi, per la tua posizione.

{'isha': '18:58', 'asr': '15:22', 'tramonto': '17:43', 'dhuhr': '12:17', 'maghrib': '17:43', 'imsak': '05:23', 'mezzanotte': '00:17', 'alba': '06:52', 'fajr': '05:33'}

Grande! ora che abbiamo il nostro tempo di preghiera e ora sappiamo come riprodurre i suoni, uniamo questi due codici insieme in un codice principale.

Passaggio 12: 3-3: creazione del codice di allarme Azan finale

terminando i due codici precedenti, abbiamo imparato come ottenere i tempi di preghiera accurati in base alla nostra posizione e come riprodurre il suono Azan. ora, uniremo questi due codici in un unico codice che useremo come progetto finale, e questo codice funzionerà in sottofondo, poiché quando verrà il tempo di Azan, suonerà il suono Azan.

Ho scritto l'intero codice, puoi copiarlo e incollarlo e apportare le tue modifiche come meglio credi. Il codice è:

tempo di importazione

from pygame import mixer import string import praytimes from datetime import date while (1): tmm = praytimes. PrayTimes().getTimes(date.today(), [21.3236, 39.1022], 3) FAJR=tmm['fajr'] DHUHR =tmm['dhuhr'] ASR=tmm['asr'] MAGHRIB=tmm['maghrib'] ISHA=tmm['isha'] tempT= time.strftime(str('%H')) currTime= tempT tempT= time.strftime(str('%M')) currTime= currTime +':'+ tempT if currTime == FAJR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-fajr. wav') mixer.music.play() while mixer.music.get_busy() == True: continua se currTime == DHUHR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan- Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: continua se currTime == ASR: mixer.init() mixer.music.load('/home/pi/Desktop/ Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: continua se currTime == MAGHRIB: mixer.init() mixer.music.load('/home/pi/ Desktop/Adhan-Makkah.wav') mixer.music.play() mentre mixer.music.get_busy() == True: continua se currTime == ISHA: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() mentre mixer.music.get_busy() == True: continua

Se guardi il codice e lo confronti con quello che abbiamo fatto in precedenza, vedrai che non abbiamo fatto nulla di nuovo, all'inizio abbiamo incluso le nostre librerie necessarie e poi abbiamo aperto un ciclo infinito. nel ciclo, calcoliamo costantemente l'ora delle preghiere con la nostra posizione e il fuso orario e memorizziamo l'intero risultato nella variabile tmm. quindi, memorizziamo ogni tempo di preghiera da tmm a una variabile indipendente. che ci permetterà di confrontare i tempi. successivamente, prendiamo il tempo di sistema e lo memorizziamo in una variabile indipendente. infine, continuiamo a confrontare l'ora del sistema con i tempi di preghiera, se l'ora del sistema corrisponde a uno dei tempi di preghiera, suonerà il suono Azan.

Passaggio 13: Capitolo 4: Implementazione dei quadranti dell'orologio

Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio
Capitolo 4: Implementazione dei quadranti dell'orologio

Per migliorare l'aspetto del progetto, ho avuto l'idea di aggiungere quadranti all'LCD, in modo che l'utente sembri carino (beh, almeno meglio della riga di comando), quindi ho assunto un designer per progettare più volti per l'orologio, dovrebbe essere vuoto senza dati, poiché i dati dovrebbero essere aggiunti tramite HTML, rendendo i disegni dell'orologio come sfondo, e gli altri dati come i tempi di preghiera potrebbero essere aggiunti come elementi HTML sopra lo sfondo.

Sfortunatamente, al momento della stesura di questa istruzione, la mia conoscenza ed esperienza in HTML è molto limitata, quindi non discuterò molti dettagli perché so per certo che farò le cose in modo sbagliato, e non vogliono confondere le persone. ma se hai anche una minima esperienza in JS e HTML dovresti sapere come continuare da questo punto. finora ho realizzato una sola faccia (quella blu). il piano è creare 14 quadranti! 7 volti per tutti i giorni della settimana, e altri 7 come un altro tema. poiché il primo tema dovrebbe essere con Azkar che rotola, e l'altro tema dovrebbe avere-g.webp

Passaggio 14: Capitolo 5: Implementazione di un'interfaccia utente

Capitolo 5: Implementazione di un'interfaccia utente
Capitolo 5: Implementazione di un'interfaccia utente

Nell'ultimo capitolo del nostro viaggio, apporteremo alcune modifiche facoltative per rendere il progetto anche user friendly, nel caso in cui desideriamo implementare il progetto in una moschea o in qualsiasi luogo pubblico. come abbiamo detto prima, ogni città ha i suoi tempi per le preghiere, e per fare in modo che questo progetto possa accedere a una più ampia varietà di persone, creeremo un'interfaccia utente in modo da poter selezionare la città e il tema desiderati una volta avviato il progetto.

Per fare ciò, utilizzeremo una libreria GUI Python chiamata "TKinter".

Questo è il codice che ho implementato per darmi la possibilità di scegliere tra cinque città dell'Arabia Saudita, inclusa Mecca:

importa tkinter come tk

from tkinter import * from tkinter import ttk import codecs import os class karl(Frame): def _init_(self): tk. Frame._init_(self) self.pack() self.master.title("Azan Time") self. button1 = Button(self, text = "Jeddah", width = 80, command = self.open_jeddah1) self.button2 = Button(self, text = "Makkah", width = 80, command = self.open_makkah1) self.button3 = Pulsante(self, testo = "Riyadh", altezza=5, larghezza = 80, comando = self.open_riyadh1) self.button4 = Pulsante(self, testo = "Madina", altezza=5, width = 80, command = self.open_madina1) self.button5 = Button(self, text = "Qasim", width = 80, command = self.open_qasaim1) self.button1.grid(row = 0, column = 1, columnspan = 2, sticky = W+E+N+S) self.button2.grid(row = 1, column = 1, columnspan = 2, sticky = W+E+N+S) self.button3.grid(riga = 2, colonna = 1, ampiezza colonna = 2, permanente = W+E+N+S) self.button4.grid(riga = 3, colonna = 1, ampiezza colonna = 2, permanente = L+E+N+S) self.button5.grid(riga = 4, colonna = 1, ampiezza colonna = 2, sticky = W+E+N+S) def open_jeddah1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox " os.system(order) def open_makkah1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system (order) def open_riyadh1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system(order) def open_madina1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system(order) def open_qasaim1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system(order) def main(): karl().mainloop() if _name_ == '_main_': main()

Il codice potrebbe sembrare grande, ma modificarlo è molto semplice. fondamentalmente abbiamo creato una nuova finestra, messo cinque pulsanti con i nomi e definito cinque funzioni da richiamare ad ogni pressione di un pulsante. una volta premuto il pulsante, il programma aprirà il file HTML corrispondente nella cartella Cities, che ogni città HTML ha le coordinate della città quando riceve l'ora da praytimes(). una volta premuto il pulsante, il codice python eseguirà un codice linux in cui aprirà il file HTML utilizzando il browser chromium e avrai il quadrante pronto per la visualizzazione, con l'opzione a schermo intero attiva.

Passaggio 15: (Facoltativo): aggiunta di un interruttore dell'altoparlante

(Facoltativo): aggiunta di un interruttore dell'altoparlante
(Facoltativo): aggiunta di un interruttore dell'altoparlante
(Facoltativo): aggiunta di un interruttore dell'altoparlante
(Facoltativo): aggiunta di un interruttore dell'altoparlante

Come abbiamo visto, quando arriva il momento della preghiera, il suono Azan viene riprodotto e il suono esce dall'uscita audio predefinita (uscita HDMI o AV) e poiché lo stiamo mettendo sull'uscita HDMI, il suono proverrà dall'LCD. ma, cosa succede se il nostro suono LCD non è abbastanza? per esempio, cosa succede se volessimo implementarlo all'interno di una vera moschea? con diffusori esterni larghi? quindi possiamo aggiungere un altro passaggio MOLTO semplice per farlo. per un sistema audio con altoparlanti già costruito, dobbiamo solo accenderlo e spegnerlo, prendere il microfono già esistente e metterlo accanto agli altoparlanti LCD.

Farlo è facile. useremo il microfono della moschea preesistente che è collegato all'altoparlante, avremo solo bisogno del raspberryPi per controllare l'alimentazione che accende e spegne l'intero sistema audio. per fare ciò, avremo bisogno di usare un SSR: SOLID STATE RELAY. questi tipi di relè possono fungere da interruttore, proprio come il relè blu medio, la differenza è che gli SSR potrebbero sopportare una grande quantità di amperaggio CA attraverso di esso, che non è applicabile a quelli blu (di solito max 10 A) e gli SSR hanno bisogno solo due fili invece di 3: DC+ e DC- e il gioco è fatto! all'altra estremità dell'SSR possiamo collegare il cavo di alimentazione del sistema di altoparlanti, in questo modo, quando diamo tensione all'SSR, chiuderà il circuito CA del sistema di altoparlanti, o togliamo la tensione per creare un circuito aperto, spegnendo gli altoparlanti.

c'è un problema però, i pin RaspberryPi emettono 3.3v, non 5v di cui abbiamo bisogno per controllare l'SSR. quindi abbiamo bisogno di un transistor per prendere il segnale dal pin RPi e 5V dal pin RPi 5v. per farlo abbiamo bisogno di:

1-Relè a stato solido (qualsiasi cosa sopra 25A va bene)

Transistor npn 2-2n2222

Resistenza da 3-220 ohm

seguire il circuito fritzing per il collegamento.

ora nel codice, aggiungeremo alcune cose che lo fanno funzionare. prima, prima del ciclo while, aggiungeremo alcune righe per inizializzare i pin GPIO:

Nella sezione di importazione, aggiungi:

importa RPi. GPIO come GPIO

Prima del ciclo while, aggiungi:

GPIO.setmode(GPIO. BOARD)GPIO.setwarnings(False) relè = 40 GPIO.setup(ledPin, GPIO. OUT)

Ora, nel ciclo while, per ogni comando di riproduzione Azan, dobbiamo attivare il relè, attendere 10 secondi, terminare la riproduzione dell'Azan e quindi disattivare il relè. dobbiamo solo aggiungere due righe, la prima è:

GPIO.output (ledPin, GPIO. HIGH)

tempo.sonno(10)

questo dovrebbe essere aggiunto dopo ogni istruzione if (L'IDENTAZIONE È IMPORTANTE!), l'altra riga è:

GPIO.output (ledPin, GPIO. LOW)

Questo dovrebbe essere aggiunto dopo la riga "continua". dovrebbe apparire così per ogni volta Azan:

se currTime == FAJR:

GPIO.output(ledPin, GPIO. HIGH) time.sleep(10) mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play() while mixer.music.get_busy() == True: continua GPIO.output(ledPin, GPIO. LOW)

Consigliato: