Taula de continguts:

RaspberryPi Islamic Prayers Watch and Alarm: 15 passos (amb imatges)
RaspberryPi Islamic Prayers Watch and Alarm: 15 passos (amb imatges)

Vídeo: RaspberryPi Islamic Prayers Watch and Alarm: 15 passos (amb imatges)

Vídeo: RaspberryPi Islamic Prayers Watch and Alarm: 15 passos (amb imatges)
Vídeo: Birthday Cake Recipe | سالگرہ کیک گھر بنائیں | Without Oven Cake Recipe by Village Handi Roti 2024, De novembre
Anonim
Rellotge i alarma de les oracions islàmiques de RaspberryPi
Rellotge i alarma de les oracions islàmiques de RaspberryPi
Rellotge i alarma de les oracions islàmiques de RaspberryPi
Rellotge i alarma de les oracions islàmiques de RaspberryPi

Els musulmans de tot el món tenen cinc oracions cada dia i cada oració ha de ser en una hora determinada del dia. a causa de la forma el·líptica que el nostre planeta es mou al voltant del sol, cosa que fa que el temps de sortida i baixada del sol sigui diferent al llarg de l'any, cosa que fa que el temps de pregària sigui constant, per això necessitem un rellotge islàmic que ens recordi als musulmans els nostres temps de pregària dia.

Tots els musulmans tenen la possibilitat d’accedir a la meteorologia diària dels horaris de pregària a través d’Internet llocs web islàmics, calendaris islàmics locals o fins i tot per televisió, i la majoria de nosaltres tenim dispositius de rellotge islàmic que tenen les característiques de proporcionar-nos els horaris de pregària, així com alarmes de pregària.. Però, i si féssim el nostre propi dispositiu de vigilància i alarma Prayers!

Abans de començar a treballar en el projecte, hi ha poques consideracions que us puguin ser útils en llegir aquest manual. Visc a l’Aràbia Saudita, de manera que alguns dels meus passos i valors seran diferents dels vostres i els indicaré explícitament durant el treball. Hi ha passos i imatges que poden incloure paraules àrabs des que he creat la interfície en àrab, però també us indicaré com fer-ho en anglès, així que no deixeu que les paraules àrabs de les imatges us preocupin, aquest projecte pot ser fet en qualsevol idioma (que és increïble!: D) També excuseu els meus errors tipogràfics, ja que l'anglès no és el meu primer idioma.

Continuem amb el nostre projecte! Aquest projecte es dividirà en X passos principals, que al final del Xè pas tindrem el nostre projecte bo i llest. Els passos seran els següents:

1-Configuració i preparació del RaspberryPi

2-Instal·lació del mòdul RTC

3-Realització del programa Azan Alarm

4-Implementació de les cares del rellotge

5-Creació de la interfície d'usuari i

Com cada projecte, primer hem de preparar les parts que necessitem. les parts que necessitem per a aquest projecte són:

1-RaspberryPi Kit informàtic Amazon EUA || Amazon KSA

Podeu utilitzar qualsevol versió de Rpi, només cal que us assegureu que té Wi-Fi. He utilitzat Rpi3B +

2-RTC Mòdul de rellotge en temps real Amazon EUA || Amazon KSA

Podeu utilitzar qualsevol model de mòdul RTC, només assegureu-vos que tingui I2C

Monitor de 3 LCD

Qualsevol pantalla LCD ho farà

4-Ratolí i teclat

i ja està!! Això és tot el que necessiteu per crear el vostre propi rellotge i alarma Azan

Pas 1: Capítol 1: Configuració i configuració de RaspberryPI

Capítol 1: Configuració i configuració de RaspberryPI
Capítol 1: Configuració i configuració de RaspberryPI

El primer és el primer! Hem de preparar el Raspberry pi per treballar-hi.

Raspberry pi no és res més que un ordinador, té memòria RAM i ROM, té CPU, GPU, E / S … Un ordinador! igual que aquell en què jugem a jocs i naveguem per la web, només és important que sigui molt petit. cosa que fa que el gerd sigui una molt bona opció per fer i implementar projectes. Com que el raspberry pi és petit, té especificacions molt limitades que no poden operar amb un sistema operatiu exigent, com Windows o MacOS, en canvi, utilitzarem Linux com a sistema operatiu per poder utilitzar el dispositiu. hi ha milers si no desenes de milers de distribucions de Linux que podríem utilitzar, però una distribució perfecta està perfectament optimitzada específicament per al raspberrypi que utilitzarem, anomenat Raspbian.

Pas 2: 1-1: descarregueu els fitxers Neccessary

1-1: descarregueu els fitxers Neccessary
1-1: descarregueu els fitxers Neccessary
1-1: descarregueu els fitxers Neccessary
1-1: descarregueu els fitxers Neccessary
1-1: descarregueu els fitxers Neccessary
1-1: descarregueu els fitxers Neccessary

-Ves a la pàgina oficial de descàrrega de Rasbian a https://www.raspberrypi.org/software/operating-sy… i descarrega't el sistema operatiu Raspberry Pi amb el fitxer d'escriptori.

-Mentre es descarrega, aneu a https://win32diskimager.org/ i descarregueu i instal·leu win32DiskImager, podeu utilitzar qualsevol programari de gravació d'imatges que vulgueu

un cop feta la baixada, tindreu un fitxer.img que conté el sistema operatiu RaspberryPi. a continuació, connecteu la targeta de memòria SD a l'ordinador (normalment amb un lector de targetes USB) i inicieu el programari win32diskimager. els passos per gravar la imatge a la memòria SD són molt senzills, només cal que 1- Seleccioneu la lletra de memòria 2-Seleccioneu els fitxers del sistema operatiu que heu descarregat i 3-Feu clic a Escriu! Assegureu-vos que heu seleccionat la lletra correcta del dispositiu de la llista i que la vostra memòria està buida, ja que prement Escriu se us promocionarà amb una advertència que us indicarà que qualsevol cosa del dispositiu s’esborrarà. Premeu Sí per confirmar l'escriptura i espereu que acabi. això pot trigar fins a 20 minuts.

Un cop fet això, tindreu el sistema operatiu Rapbian complet a la memòria, podeu avançar-lo i posar-lo al Rapberry Pi, connectar el Raspberry Pi al monitor mitjançant HDMI, connectar el ratolí i el teclat mitjançant USB i, finalment, connectar el poder.

Pas 3: 1-2: Configuració del sistema Raspbian

Després de connectar els cables i l’alimentació, veureu que el sistema operatiu s’ha engegat, es reiniciarà automàticament i mostrarà la interfície d’usuari Raspbian (que té un aspecte similar a Windows). el primer que veureu és una finestra de benvinguda, que us guiarà pels passos de configuració del RaspberryPi per primera vegada. les finestres i els passos seran els següents:

1-Premeu següent a la primera finestra de "Benvinguda"

2-La següent finestra serà per configurar la vostra ubicació. seleccioneu el vostre país, idioma i zona horària. després d'això, es recomana comprovar "Utilitza l'idioma anglès", ja que aquest serà l'idioma de la interfície del sistema operatiu. HEM DE COMPROVAR LA "CAIXA DE DISPOSICIÓ DEL TECLAT ANGLÈS DELS EUA" NECESSITEM EL TECLAT D'ANGLÈS PER FUNCIONAR!

3-A continuació, se us demanarà que introduïu una contrasenya per al vostre gerd, això és important per a la seguretat, però el deixarem sense canvis per a aquest projecte. Tingueu en compte que el nom d'usuari i la contrasenya per defecte són:

nom d'usuari: pi

contrasenya: gerd

4-La finestra següent connectarà el raspberryPi a la vostra xarxa WiFi. seleccioneu el vostre nom de wifi i introduïu la vostra contrasenya de wifi

5-següent, se us demanarà que actualitzeu les biblioteques i els fitxers del sistema de raspberry pi. aquest pas trigarà una gran quantitat de temps (potser en hores), però és un pas molt important per a cada vegada que s'està configurant un nou raspberry pi.

6: un cop feta l'actualització, se us demanarà que reinicieu el sistema. fes-ho ara.

Gran obra! Ara tenim un sistema actualitzat, encara hem de fer algunes coses més per configurar el sistema perquè funcioni, però ara començarem a utilitzar la línia LinuxCommand.

Pas 4: 1-3: utilitzar la línia d'ordres per configurar els paràmetres Rpi

1-3: Utilització de la línia d’ordres per configurar la configuració de Rpi
1-3: Utilització de la línia d’ordres per configurar la configuració de Rpi
1-3: Utilització de la línia d’ordres per configurar la configuració de Rpi
1-3: Utilització de la línia d’ordres per configurar la configuració de Rpi
1-3: fer servir la línia d’ordres per configurar els paràmetres de Rpi
1-3: fer servir la línia d’ordres per configurar els paràmetres de Rpi

Un cop hàgiu acabat de reiniciar des de l'actualització del sistema, el sistema mostrarà l'escriptori de l'usuari un cop hagi acabat d'arrencar. ara si mireu la part superior esquerra de la pantalla, trobareu alguns botons, un botó amb el logotip de raspberryPi que és el botó del menú Rpi, una forma de globus que és el navegador d’Internet, un botó de carpetes que és …..carpetes i, finalment, un botó amb una finestra de pantalla negra, que és el botó més important de qualsevol sistema Linux, la línia d’ordres. seguiu endavant i premeu aquest botó, apareixerà una finestra negra.

La línia d’ordres és com tothom interactua i utilitza el sistema Linux, de la mateixa manera que Windows té la seva pròpia línia d’ordres només a les vídues, no cal que l’utilitzem molt sovint. a Linux, és el bàsic que tots els usuaris de Linux han d'aprendre i dominar. la línia d'ordres es pot utilitzar per …. COMANDOS! el que veieu a la finestra negra és el símbol del sistema que espera que l'usuari escrigui i executi l'ordre. en aquesta guia donarem tot l'ordre que necessiteu per realitzar aquest projecte, així que no us preocupeu.

la primera ordre de Linux que utilitzarem és una altra ordre de configuració. Tingueu en compte que totes les ordres a partir d’ara es col·loquen dins d’una caixa de codi, de manera que podeu diferenciar-la dels passos habituals. Porteu el teclat i escriviu el següent i premeu Intro:

sudo raspi-config

Si ho feu correctament, veureu que la pantalla es va convertir en blava, amb una casella grisa al mig (vegeu la imatge). ho utilitzarem per fer la nostra configuració final abans de començar a codificar.

ara haureu d’utilitzar les tecles de fletxa del teclat per navegar per aquest menú.

1-Aneu a Opcions d'interfície >> I2C >> SÍ >> premeu Intro. això permet habilitar el protocol de comunicació I2c perquè puguem utilitzar el RTC

2-Aneu a Opcions avançades >> Amplia el sistema de fitxers.

i aquesta és tota la configuració que necessiteu des d'aquesta finestra. a la pàgina principal, baixeu i premeu Enter a "acabar" i "SÍ" per reiniciar el sistema.

Un cop acabat el reinici del sistema, ja hem acabat de configurar-los. el dispositiu està preparat per als grans passos. El següent pas serà instal·lar el mòdul RTC i utilitzar-lo amb el sistema.

Pas 5: Capítol 2: Muntatge, configuració i ús del mòdul RTC

Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC
Capítol 2: Muntatge, configuració i ús del mòdul RTC

El mòdul RTC (o rellotge en temps real) és un dispositiu petit que té una mica de bateria, que fa el que el nom implica, Clocking! de manera que, quan el desconnecteu per alimentar-lo, el rellotge continua funcionant i no s’atura. per què ho necessitem? bé, el raspberry pi realment no té cap mètode per emmagatzemar les dades del rellotge un cop apagat, depèn de connectar-se a Internet en arrencar per actualitzar la data i l’hora, però el problema és que no sempre tenim accés a Internet, i això per això necessitem el mòdul RTC. el RTC actuarà com un rellotge per al raspberry pi, de manera que un cop arrencat el Rpi, prendrà la data i l'hora del RTC, que mantindrà actualitzada l'hora del RaspberryPi tot el temps.

hi ha diversos models i busca el RTC, hi ha el DS1307 i el DS3231. podeu utilitzar qualsevol mòdul RTC que trobeu sempre que tingui comunicació de protocol I2C (podeu indicar que podeu trobar pins SDA i SCL als pins del mòdul.

com qualsevol altra cosa d’aquesta guia, he utilitzat altres guies per assolir el meu objectiu en el projecte, aquest instructiu us guiarà i us dirà exactament què heu de fer per fer aquest projecte, però si heu de modificar-lo o necessiteu aprofundir en qualsevol de les passos, enllaçaré la guia més fructífera al final de cada pas.

Un cop tingueu a punt el mòdul RTC (soldeu els pins de capçalera i poseu la bateria), podeu connectar-lo als pins RapberryPi de la següent manera:

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

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

Vcc ============> PIN 1 (3,3 V)

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

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

o en funció del mòdul RTC que tingueu, podeu muntar-lo directament al RaspberryPi (Assegureu-vos que els pins siguin correctes !!! ja que podríeu danyar el Rpi / RTC si no)

Un cop hàgiu connectat el RTC, configurem el gerd.

Pas 6: 2-1: Configuració del mòdul

2-1: Configuració del mòdul
2-1: Configuració del mòdul
2-1: Configuració del mòdul
2-1: Configuració del mòdul

Abans de començar, aneu a la línia d'ordres i escriviu:

data

D’aquesta manera es retornarà la data i l’hora actuals al Raspberry, es prendrà nota d’aquesta ordre molt útil i es notarà la data i l’hora actuals per poder comprovar quan el mòdul funciona o no.

ara comencem la configuració, escriviu el següent per actualitzar les biblioteques Rpi, una línia a la vegada:

sudo apt-get update

sudo apt-get -y upgrade

Un cop fet això, hem de modificar fitxers del sistema per habilitar el mòdul i2c i afegir RTC, per modificar un sistema de fitxers utilitzarem un programari anomenat Nano. nano és un programari incorporat lleuger que és bàsicament un editor de text, igual que el de les vídues. de manera que qualsevol ordre que comenci amb nano seguit del nom del fitxer obrirà aquest fitxer a l’editor de text nano. us heu adonat que també hem utilitzat alguna cosa anomenat Sudo, en definitiva, sudo actua com una garantia per al sistema Linux que indica al sistema que l'usuari que ha fet aquesta ordre és el propietari del dispositiu, no algú, i que atorga privilegis com l'edició / eliminant a l'usuari. per exemple, si obrim un fitxer nano sense sudo, seríem capaços de veure aquest fitxer, però no el podem editar ni suprimir.

ara, hem de modificar el fitxer de mòduls, ho podem fer escrivint:

sudo nano / etc / modules

un cop ho feu, trobareu el contingut d’aquest fitxer (vegeu la imatge). utilitzeu les tecles de fletxa per situar el cursor al final del text i afegiu el següent:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

premeu CTRL + S per desar i CTRL + X per sortir

Pas 7: 2-2: interfície I2C

2-2: interfície I2C
2-2: interfície I2C

Ara hem connectat el RTC i hem activat l'i2c, connectem-ho tot junts.

escriviu el següent a l'indicador d'ordres:

i2cdetect -y 1

se us proporcionaran una sèrie de blancs, però notareu que hi ha un número en algun lloc, aquest número és l'adreça del mòdul RTC. en el meu cas és el 68. preneu nota d’aquest número. si no veieu aquest número de dos dígits, vol dir que probablement esteu connectat al RTC malament.

ara, hem de modificar el fitxer rc.local per poder habilitar el mòdul RTC en arrencar i deixar que guardi la data i l'hora al sistema. primer, obriu el fitxer rc.local:

sudo nano /etc/rc.local

Abans de la línia exit0, afegiu el següent:

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

hwclock -s

on 0x68 és l'adreça i2c del dispositiu. un cop hàgiu acabat, premeu CTRL + S CTRL + X i reinicieu el sistema mitjançant:

sudo reiniciar

Pas 8: 2-3: provar el RTC

2-3: Prova del RTC
2-3: Prova del RTC

Un cop reiniciat el sistema, podem comprovar si el RTC funciona o no. primer, executeu:

sudo hwclock -r

se us retornarà la data i hora al mòdul RTC. si se us dóna una altra cosa, assegureu-vos que heu fet els passos correctament.

ara, per modificar l'hora i la data al RTC, primer hem de modificar la data i l'hora del sistema, DESPRÉS anoteu les modificacions al RTC. per fer-ho, executeu:

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

i, per descomptat, canvieu la data i l'hora segons la vostra hora i data locals, abans de prémer Retorn. un cop obtingueu l'hora a la dreta de Rpi, executeu el següent per desar la data i l'hora a l'RTC:

sudo hwclock -w

aaaa i ja està! Podeu comprovar si funciona amb hwclock -r i veure si la data del RTC és correcta o no, desconnecteu el rpi d’Internet i apagueu-lo durant un temps i torneu-lo a engegar i veure si té el valor correcte hora i data. estàs acabat!

Podeu trobar la guia completa sobre com configurar el mòdul RTC aquí

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

Pas 9: Capítol 3: Realització del programa d'alarma Azan

Capítol 3: Realització del programa d'alarma Azan
Capítol 3: Realització del programa d'alarma Azan

fer un rellotge és una cosa, és clar, podem mirar el rellotge i les hores de pregària i veure quan arriba el moment, però no seria ni molt millor si poguéssim afegir una alarma sonora per avisar-nos de les hores de pregària? ENCARA MILLOR, fem l’alarma com el so d’AZAN. vegem com podem aconseguir-ho.

per a la nostra programació, utilitzarem Python com a llenguatge de programació preferit, ja que Python és perfecte amb RaspberryPi. per crear un fitxer de codi en python, fem el mateix que obrir un fitxer de text, però ara el guardem com a.py. per executar el programa, necessitem un entorn python instal·lat de raspbery, per sort, Raspbian ve amb python i python3 preinstal·lats. així que tot el que hem de fer és programar. en aquesta guia, no parlarem del llenguatge ni ensenyarem el seu funcionament i les seves funcions, però us donaré els codis necessaris perquè pugueu fer el projecte.

per començar, necessitem un fitxer de so del nostre so azan preferit (en. WAV) necessitem dos fitxers, un per al-fajr azan i un altre per al azan normal. un cop ho obtingueu, poseu-lo en un disc i copieu-lo a l'escriptori del raspberrypi.

ara tenim els fitxers, buscava una manera de reproduir àudios de so al raspberryPi i, per sorpresa meva, no hi havia moltes maneres de fer-ho, però vaig trobar aquesta resposta a stackoverflow que em donava el que necessitava

stackoverflow.com/questions/20021457/playi…

He provat aquest mètode i ha funcionat. doncs, vegem com podem implementar aquest mètode al nostre projecte …

Pas 10: 3-1: Juguem un so

3-1: Juguem un so!
3-1: Juguem un so!

primer, aneu a l’escriptori mitjançant:

cd Desktop

a continuació, feu un fitxer de codi Python nou mitjançant:

sudo nano AzanPlay.py

això farà un nou fitxer anomenat AzanPlay amb l'extensió en un fitxer python.py, tindrem una pantalla negre buida que ens permetrà escriure el nostre codi. simplement escriviu aquestes línies (tingueu cura de no canviar cap sagnat ni espais, ja que això és EXTREMAMENT important a Python):

del mesclador d'importació de pygame

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

On / Desktop / és on col·loqueu els vostres fitxers de so i "Adhan-Makkah.wav" és el meu fitxer d'àudio, que és la gravació de so d'Azan a la makkah.

ara per provar el nostre codi, l'executem amb python escrivint:

python AzanPlay.py

i tindreu el so que es reprodueix des de la pantalla LCD HDMI o el port AUX que hi ha al Raspberrypi. si no ho sentiu pels altaveus LCD, connecteu uns auriculars a l'AUX i comproveu-ho.

Pas 11: 3-2: Obteniu els temps de pregària

3-2: Obteniu temps de pregària
3-2: Obteniu temps de pregària

Com sabem, els temps d’oració difereixen d’un lloc a la terra i, fins i tot, per a una ubicació específica, difereixen al llarg dels anys, cosa que significa que hem de trobar una manera de mantenir actualitzats els nostres temps d’oració al sistema i per a això necessitem funcions i càlculs específics i molt complexos per fer-ho bé. Afortunadament, el nostre germà Hamid Zarrabi-Zadeh ha convertit totes les funcions que necessitem en una funció que podem utilitzar fàcilment per obtenir el temps en funció de la nostra ubicació i l’hora actual, INCREINGBLE. podeu trobar la biblioteca i els fitxers font a

praytimes.org/

Per tant, utilitzarem aquests increïbles fitxers per obtenir els nostres temps de pregària i implementar-los al sistema. primer, descarregueu els codis del lloc web i poseu-los dins d’una carpeta / adhan / (necessitem tant els codis JS com Python).

ara, anem a aquesta carpeta i provem la biblioteca i què pot fer:

cd adhan

allà, hem de fer un fitxer de prova nou a Python per poder provar la funció:

sudo nano testAd.py

a dins, escriviu aquest codi:

importar hores de pregària

a partir de la data d’importació de la data i hora tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Abans de desar el fitxer, heu de canviar LATITUDE amb Latitude de la vostra ubicació, igual amb LONGTITUDE, i canviar GMT a la vostra zona horària. en el meu cas, serà:

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

imprimir (tmm)

Finalment, CTRL-S i CTRL-X i, a continuació, executeu el codi:

python testAd.py

finalment, se us retornaran els temps de pregària per avui, per la vostra ubicació.

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

Genial! ara que tenim el temps de pregària i sabem reproduir sons, combinem aquests dos codis en un codi principal.

Pas 12: 3-3: Creació del codi final d'alarma Azan

en acabar els dos codis anteriors, vam aprendre a obtenir els horaris d’oració exactes segons la nostra ubicació i a reproduir el so Azan. ara, fusionarem aquests dos codis en un codi que utilitzarem com a projecte final, i aquest codi funcionarà en segon pla, ja que quan arribi el moment d’Azan, reproduirà el so d’Azan.

He escrit tot el codi, el podeu copiar i enganxar i fer els vostres propis canvis segons convingueu. El codi és:

temps d'importació

des del mesclador d'importació de pygame importació de cadenes d'importació de pregàries a partir de la data d'importació de la data i mentre que (1): tmm = prega. 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 () mentre mixer.music.get_busy () == True: continua si currTime == DHUHR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan- Makkah.wav ') mixer.music.play () mentre mixer.music.get_busy () == True: continua si currTime == ASR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () mentre mixer.music.get_busy () == True: continua si currTime == MAGHRIB: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () mentre mixer.music.get_busy () == True: continua si currTime == ISHA: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () mentre mixer.music.get_busy () == True: continua

Si mireu el codi i el compareu amb el que vam fer anteriorment, veureu que no vam fer res de nou, al principi, vam incloure les nostres biblioteques necessàries i després vam obrir un bucle infinit. al bucle, calculem constantment el temps de les oracions amb la nostra ubicació i zona horària, i emmagatzemem tot el resultat en tmm variable. després, emmagatzemem cada temps de pregària des de tmm fins a una variable independent. això ens permetrà comparar els temps. a continuació, prenem el temps del sistema i l’emmagatzemem en una variable independent. per últim, seguim comparant l'hora del sistema amb els horaris de pregària, si el temps del sistema coincideix amb algun dels horaris de pregària, reproduirà el so Azan.

Pas 13: Capítol 4: Implementació de les cares de visualització

Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge
Capítol 4: Implementació de les cares del rellotge

Per fer que el projecte tingui millor aspecte, vaig tenir la idea d’afegir cares de rellotge a la pantalla LCD, de manera que sembla agradable per a l’usuari (bé, millor que la línia d’ordres com a mínim), així que he contractat un dissenyador per dissenyar diverses cares a el rellotge, hauria d’estar buit sense dades, ja que les dades s’han d’afegir mitjançant HTML, fent que el rellotge es dissenyi com a fons i la resta de dades, com ara les hores de pregària, es puguin afegir com a elements HTML al fons.

Malauradament, a partir de l’hora d’escriure aquesta instrucció, el meu coneixement i experiència en HTML és molt limitat, de manera que no discutiré molts detalls perquè sé que faré les coses de manera equivocada i no vull confondre la gent. però si teniu una petita experiència en JS i HTML, haureu de saber continuar des d'aquest punt. fins ara he fet una sola cara (la blava). el pla és fer 14 cares de rellotge! 7 cares per a tots els dies de la setmana i 7 altres com a tema més. ja que se suposa que el primer tema és amb el rodatge d'Azkar i que l'altre tema té GIFS islàmics en lloc de l'Azkar. independentment, inclouré tots els dissenys en aquest instructiu perquè el pugueu descarregar.

Pas 14: Capítol 5: Implementació d'una interfície d'usuari

Capítol 5: Implementació d'una interfície d'usuari
Capítol 5: Implementació d'una interfície d'usuari

En l’últim capítol del nostre viatge, farem algunes modificacions opcionals perquè el projecte sigui fàcil d’utilitzar, per si volem implementar el projecte en una mesquita o en qualsevol lloc públic. com hem dit abans, cada ciutat té el seu propi moment per a les oracions i, per fer que aquest projecte tingui accés a una veritat més àmplia de persones, crearem una interfície d'usuari perquè puguem seleccionar la ciutat i el tema desitjats un cop encengem el projecte.

Per fer-ho, utilitzarem una biblioteca GUI de python anomenada "TKinter".

Aquest és el codi que he implementat per donar-me la possibilitat de triar entre cinc ciutats de l'Aràbia Saudita, inclosa la Makkah:

importar tkinter com a 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", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Botó (self, text = "Riyadh", altura = 5, amplada = 80, ordre = self.open_riyadh1) self.button4 = Botó (self, text = "Madina", altura = 5, ample = 80, ordre = self.open_madina1) self.button5 = Botó (self, text = "Qasim", altura = 5, ample = 80, ordre = self.open_qasaim1) self.button1.grid (fila = 0, columna = 1, columnspan = 2, sticky = W + E + N + S) self.button2.grid (fila = 1, column = 1, columnspan = 2, sticky = W + E + N + S) self.button3.grid (fila = 2, columna = 1, columna = 2, enganxosa = W + E + N + S) self.button4.grid (fila = 3, columna = 1, columna = 2, enganxós = W + E + N + S) self.button5.grid (fila = 4, columna = 1, columnspan = 2, enganxós = W + E + N + S) def open_jeddah1 (auto): 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 (ordre) def open_riyadh1 (auto): 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 (auto): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def main (): karl (). mainloop () si _name_ == '_main_': main ()

El codi pot semblar gran, però editar-lo és molt fàcil. bàsicament vam crear una finestra nova, vam posar cinc botons de noms i vam definir cinc funcions que es van convocar en prémer cada botó. un cop premeu el botó, el programa obrirà el fitxer HTML corresponent a la carpeta Ciutats, que cada ciutat HTML té les coordenades de la ciutat quan obté el temps de les hores de pregària (). un cop premeu el botó, el codi python excutarà un codi Linux en què obrirà el fitxer HTML mitjançant el navegador Chrome i tindreu el rellotge llest per mostrar, amb l'opció de pantalla completa activada.

Pas 15: (Opcional): afegir un commutador d’altaveu

(Opcional): afegir un commutador d’altaveu
(Opcional): afegir un commutador d’altaveu
(Opcional): afegir un commutador d’altaveu
(Opcional): afegir un commutador d’altaveu

Com vam veure, quan arriba l’hora de pregària, es reprodueix el so Azan i el so surt de la sortida de so per defecte (sortida HDMI o AV) i, ja que el posem a la sortida HDMI, el so provindrà de la pantalla LCD. però, i si el nostre so LCD no és suficient? per exemple, i si volem implementar-ho dins d'una mesquita real? amb amplis altaveus exteriors? llavors podem afegir un pas MOLT més fàcil per aconseguir-ho. per a un sistema de so dels altaveus ja construït, només cal activar-lo i apagar-lo, agafar el micròfon ja existent i posar-lo al costat dels altaveus LCD.

Fer-ho és fàcil. utilitzarem el micròfon de mesquita preexistent connectat a l’altaveu, només necessitarem el raspberryPi per controlar l’alimentació que activa i apaga tot el sistema de so. per fer-ho, haurem d’utilitzar un SSR: SOLID STATE RELAY. aquest tipus de relés poden actuar com a commutador, de la mateixa manera que el relé blau mitjà, la diferència és que els SSR poden suportar una gran quantitat d’amperatge de CA, cosa que no s’aplica als blau (normalment 10A màx.), i les SSR necessiten només dos cables en lloc de 3: DC + i DC- i ja està! a l’altre extrem de l’SSR podem connectar el cable d’alimentació del sistema d’altaveus, d’aquesta manera, quan donem tensió a l’SSR, es tancarà el circuit de corrent altern del sistema d’altaveus o tanquem el voltatge per crear un circuit obert, apagant els altaveus.

hi ha un problema, els pins RaspberryPi produeixen 3.3v, no 5v que necessitem per controlar el SSR. per tant, necessitem un transistor per agafar el senyal del pin RPi i 5V del pin RPi 5v. per fer-ho necessitem:

1-relé d'estat sòlid (qualsevol cosa superior a 25A és bona)

2-2n2222 transistor npn

Resistència de 3-220ohm

seguiu el circuit fritzing per a la connexió.

ara al codi, afegirem algunes coses que fan que això funcioni. primer, abans del bucle while, afegirem algunes línies per inicialitzar els pins GPIO:

A la secció d’importació, afegiu:

importar RPi. GPIO com a GPIO

Abans del bucle while, afegiu:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (fals) relé = 40 GPIO.setup (ledPin, GPIO. OUT)

Ara, al bucle while, per a cada ordre Azan de reproducció, hem d’encendre el relé, esperar 10 segons, acabar la reproducció de l’Azan i després apagar el relé. només cal afegir dues línies, la primera és:

Sortida GPIO (ledPin, GPIO. HIGH)

time.sleep (10)

aquesta s'ha d'afegir després de cada sentència if (LA IDENTACIÓ ÉS IMPORTANT!), l'altra línia és:

Sortida GPIO (ledPin, GPIO. LOW)

Aquest s'ha d'afegir després de la línia "continuar". hauria de ser així per cada moment d'Azan:

si currTime == FAJR:

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

Recomanat: