Table des matières:

Montre et alarme de prières islamiques RaspberryPi : 15 étapes (avec photos)
Montre et alarme de prières islamiques RaspberryPi : 15 étapes (avec photos)

Vidéo: Montre et alarme de prières islamiques RaspberryPi : 15 étapes (avec photos)

Vidéo: Montre et alarme de prières islamiques RaspberryPi : 15 étapes (avec photos)
Vidéo: Réglage horloge al Harameen HA 4008 adhan horaires précises 2024, Novembre
Anonim
Montre et alarme de prières islamiques RaspberryPi
Montre et alarme de prières islamiques RaspberryPi
Montre et alarme de prières islamiques RaspberryPi
Montre et alarme de prières islamiques RaspberryPi

Les musulmans du monde entier ont cinq prières par jour, et chaque prière doit avoir lieu à un certain moment de la journée. en raison de la façon elliptique de notre planète de se déplacer autour du soleil, ce qui fait que les heures de lever et de chute du soleil diffèrent tout au long de l'année, ce qui rend également l'heure de la prière inconstante, c'est pourquoi nous avons besoin d'une montre islamique pour nous rappeler aux musulmans nos heures de prière chaque journée.

Chaque musulman a un moyen d'accéder à la météo des heures de prière quotidiennes via Internet des sites Web islamiques, des calendriers islamiques locaux ou même par la télévision, et la plupart d'entre nous ont des dispositifs de surveillance islamiques qui ont pour caractéristiques de nous donner les heures de prière, ainsi que des alarmes de prière.. Mais que se passerait-il si nous fabriquions notre propre dispositif de montre et d'alarme de prières !

Avant de commencer à travailler sur le projet, il y a quelques considérations qui pourraient vous être utiles lors de la lecture de ce Instructable. Je vis en Arabie saoudite, donc certaines de mes étapes et valeurs seront différentes des vôtres, et je les signalerai explicitement pendant le travail. Il y a des étapes et des images qui peuvent inclure des mots arabes depuis que j'ai fait l'interfaçage en arabe, mais je vais aussi vous expliquer comment le faire en anglais alors ne laissez pas les mots arabes dans les images vous inquiéter du tout, ce projet peut être fait dans n'importe quelle langue (ce qui est génial!:D) Veuillez également excuser mes fautes de frappe car l'anglais n'est pas ma langue maternelle.

Place à notre projet ! Ce projet sera divisé en X étapes majeures, qui à la fin de la Xème étape, nous aurons notre projet bien préparé ! Les étapes seront les suivantes:

1-Configurer et préparer le RaspberryPi

2-Installation du module RTC

3-Faire le programme Azan Alarm

4-Implémentation des cadrans de montre

5-Créer l'interface utilisateur et

Comme pour tout projet, nous devons d'abord préparer les pièces dont nous avons besoin. les pièces dont nous avons besoin pour ce projet sont:

Kit informatique 1-RaspberryPi Amazon US || Amazon KSA

Vous pouvez utiliser n'importe quelle version Rpi, assurez-vous simplement qu'elle dispose du Wifi. J'ai utilisé Rpi3B+

Module d'horloge temps réel 2-RTC Amazon US || Amazon KSA

Vous pouvez utiliser n'importe quel modèle de module RTC, assurez-vous simplement qu'il a I2C

Moniteur 3-LCD

N'importe quel écran LCD fera l'affaire

4-Souris et clavier

et c'est tout!! C'est tout ce dont vous avez besoin pour créer votre propre horloge et réveil Azan

Étape 1: Chapitre 1: Installation et configuration du RaspberryPI

Chapitre 1: Installation et configuration du RaspberryPI
Chapitre 1: Installation et configuration du RaspberryPI

Tout d'abord! Nous devons préparer le Raspberry pi pour pouvoir travailler avec.

Raspberry pi n'est rien d'autre qu'un ordinateur, il a de la RAM et de la ROM, il a un CPU, un GPU, des E/S……. Un ordinateur ! tout comme celui avec lequel nous jouons à des jeux et naviguons sur le Web, la seule chose importante est qu'il est très petit ! ce qui fait de la framboise un très bon choix pour la réalisation et la mise en œuvre de projets. parce que le raspberry pi est petit, il a des spécifications très limitées selon lesquelles il ne peut pas faire fonctionner un grand système d'exploitation exigeant comme Windows ou macOS, à la place, nous allons utiliser Linux comme système d'exploitation afin d'utiliser l'appareil. il existe des milliers, voire des dizaines de milliers de distributions Linux que nous pourrions utiliser, mais une distribution parfaite est parfaitement optimisée spécifiquement pour le raspberrypi que nous allons utiliser, appelé Raspbian.

Étape 2: 1-1: Téléchargez les fichiers nécessaires

1-1: Téléchargez les fichiers nécessaires
1-1: Téléchargez les fichiers nécessaires
1-1: Téléchargez les fichiers nécessaires
1-1: Téléchargez les fichiers nécessaires
1-1: Téléchargez les fichiers nécessaires
1-1: Téléchargez les fichiers nécessaires

-Allez sur la page officielle de téléchargement Rasbian à l'adresse https://www.raspberrypi.org/software/operating-sy… et téléchargez le système d'exploitation Raspberry Pi avec le fichier Desktop

-Pendant le téléchargement, accédez à https://win32diskimager.org/ et téléchargez et installez win32DiskImager, vous pouvez utiliser n'importe quel logiciel de gravure d'image que vous aimez

une fois le téléchargement terminé, vous aurez un fichier.img contenant le système d'exploitation RaspberryPi. Ensuite, branchez votre carte mémoire SD dans l'ordinateur (généralement avec un lecteur de carte USB) et lancez le logiciel win32diskimager. les étapes pour graver l'image dans la mémoire SD sont très simples, il vous suffit de 1- Sélectionnez votre lettre de mémoire 2-sélectionnez les fichiers de votre système d'exploitation que vous avez téléchargés et 3-Cliquez sur écrire ! Assurez-vous que vous avez sélectionné la bonne lettre d'appareil dans la liste et que votre mémoire est vide, car en appuyant sur écrire, vous serez promu avec un avertissement vous indiquant que tout ce qui se trouve sur l'appareil sera effacé ! Appuyez sur oui pour confirmer l'écriture et attendez qu'elle se termine. cela peut prendre jusqu'à 20 minutes.

Une fois que c'est fait, vous aurez le système d'exploitation Rapbian complet sur la mémoire, vous pouvez le mettre dans le Rapberry Pi, connecter le Raspberry Pi au moniteur via HDMI, connecter la souris et le clavier via USB et enfin, connecter le Puissance.

Étape 3: 1-2: Configuration du système Raspbian

Après avoir connecté les câbles et l'alimentation, vous verrez que le système d'exploitation s'est allumé, il redémarrera automatiquement, puis affichera l'interface utilisateur Raspbian (qui ressemble à Windows). la première chose que vous verrez est une fenêtre de bienvenue, qui vous guidera à travers les étapes de configuration de votre RaspberryPi pour la première fois. les fenêtres et les étapes seront les suivantes:

1-Appuyez sur suivant sur la première fenêtre "Bienvenue"

2-La fenêtre suivante sera de configurer votre emplacement. sélectionnez votre pays, votre langue et votre fuseau horaire. après cela, il est fortement recommandé de cocher la case "Utiliser la langue anglaise" car ce sera la langue de l'interface du système d'exploitation. VOUS DEVEZ COCHER LA "BOÎTE DE DISPOSITION DU CLAVIER ANGLAIS AMÉRICAIN" NOUS AVONS BESOIN DU CLAVIER ANGLAIS POUR FONCTIONNER !

3-Ensuite, il vous sera demandé de saisir un mot de passe pour votre framboise, c'est important pour la sécurité mais nous le laisserons inchangé pour ce projet. notez que le nom d'utilisateur et le mot de passe par défaut sont:

nom d'utilisateur: pi

mot de passe: framboise

4-La fenêtre suivante connectera le raspberryPi à votre réseau WiFi. sélectionnez votre nom wifi et entrez votre mot de passe wifi

5-ensuite, il vous sera demandé de mettre à jour les bibliothèques raspberry pi et les fichiers système. cette étape prendra énormément de temps (peut-être en heures) mais c'est une étape très importante à chaque fois qu'un nouveau Raspberry Pi est configuré.

6-une fois la mise à jour terminée, il vous sera demandé de redémarrer le système. fais ça maintenant.

Bon travail! Maintenant que nous avons un système mis à jour, nous devons encore faire quelques choses pour configurer le système pour qu'il fonctionne, mais maintenant, nous allons commencer à utiliser la ligne de commande Linux.

Étape 4: 1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi

1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi
1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi
1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi
1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi
1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi
1-3: Utilisation de la ligne de commande pour configurer les paramètres Rpi

Une fois que vous avez terminé de redémarrer à partir de la mise à jour du système, le système affichera le bureau de l'utilisateur une fois le démarrage terminé. maintenant si vous regardez en haut à gauche de l'écran, vous trouverez quelques boutons, un bouton avec le logo raspberryPi qui est le bouton de menu Rpi, une forme de globe qui est le navigateur internet, un bouton de dossiers qui est…..dossiers et enfin, un bouton avec une fenêtre d'écran noir, qui est le bouton le plus important de tout système Linux, la ligne de commande. allez-y et appuyez sur ce bouton, vous verrez une fenêtre noire apparaître.

La ligne de commande est la façon dont tout le monde interagit et utilise le système Linux, tout comme Windows a sa propre ligne de commande uniquement dans les veuves, nous n'avons pas besoin de l'utiliser très souvent. sous Linux, c'est la chose de base que tout utilisateur Linux doit apprendre et maîtriser. la ligne de commande peut être utilisée par…. COMMANDES! ce que vous voyez dans la fenêtre noire est l'invite de commande qui attend que la commande soit écrite par l'utilisateur et exécutée. dans ce guide, nous donnerons toutes les commandes dont vous avez besoin pour réaliser ce projet, alors ne vous inquiétez pas.

la toute première commande Linux que nous allons utiliser est une autre commande de configuration, notez que toutes les commandes seront désormais placées dans une boîte de code, vous pouvez donc la différencier des étapes régulières. Apportez votre clavier et tapez ce qui suit et appuyez sur Entrée:

sudo raspi-config

Si vous faites cela correctement, vous verrez que l'écran est devenu bleu, avec une petite boîte grise au milieu (voir photo). nous l'utiliserons pour faire notre configuration finale avant de commencer à coder.

maintenant, vous devrez utiliser les touches fléchées de votre clavier pour naviguer dans ce menu.

1-Allez dans Options d'interface >> I2C >> OUI >> appuyez sur Entrée. c'est activer le protocole de communication I2c afin que nous puissions utiliser le RTC

2-Allez dans Options avancées >> Développez le système de fichiers.

et c'est toute la configuration dont vous avez besoin à partir de cette fenêtre. sur la page principale, descendez et appuyez sur Entrée sur "Terminer" et "OUI" pour redémarrer le système.

Une fois le redémarrage du système terminé, la configuration est terminée ! l'appareil est prêt pour les grands pas ! La prochaine étape consistera à installer le module RTC et à l'utiliser avec le système.

Étape 5: Chapitre 2: Montage, configuration et utilisation du module RTC

Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC
Chapitre 2: Montage, configuration et utilisation du module RTC

Le module RTC (ou Real-Time Clock) est un petit appareil qui a une petite batterie dessus, il fait ce que son nom l'indique, Clocking! Ainsi, lorsque vous le débranchez pour l'alimenter, l'horloge continue de fonctionner et ne s'arrête pas. Pourquoi avons nous besoin de ça? eh bien, le raspberry pi n'a vraiment aucune méthode pour stocker les données d'horloge une fois qu'il est éteint, il repose sur la connexion à Internet au démarrage pour mettre à jour sa date et son heure, mais le problème est que nous n'avons pas toujours accès à Internet, et ce C'est pourquoi nous avons besoin du module RTC. le RTC agira comme une horloge pour le raspberry pi, donc une fois le Rpi démarré, il prendra la date et l'heure du RTC, ce qui maintiendra l'heure du RaspberryPi à jour tout le temps.

il existe plusieurs modèles et recherche le RTC, il existe le DS1307 et le DS3231. vous pouvez utiliser n'importe quel module RTC que vous trouvez tant qu'il dispose d'une communication de protocole I2C (vous pouvez indiquer que vous pouvez trouver des broches SDA et SCL sur les broches du module.

comme tout dans ce guide, j'ai utilisé d'autres guides pour atteindre mon objectif dans le projet, cette instructable vous guidera et vous dira exactement quoi faire pour réaliser ce projet, mais si vous avez besoin de modifier ou si vous avez besoin de plus de profondeur dans l'un des étapes, je vais lier le guide le plus fructueux à la fin de chaque étape.

Une fois que vous avez votre module RTC prêt (soudez les broches de l'en-tête et mettez la batterie), vous pouvez le connecter aux broches RapberryPi comme suit:

Broche RTC ---- Broche Rpi

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

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

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

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

ou selon le module RTC que vous avez, vous pouvez le monter directement sur le RaspberryPi (Assurez-vous que les broches sont correctes !!! car vous pourriez endommager le Rpi/RTC sinon)

Une fois que vous avez connecté le RTC, configurons le Raspberry.

Étape 6: 2-1: Configuration du module

2-1: Configuration des modules
2-1: Configuration des modules
2-1: Configuration des modules
2-1: Configuration des modules

Avant de commencer, accédez à la ligne de commande et tapez:

Date

Cela restituera la date et l'heure actuelles sur le Raspberry, prendra note de cette commande très utile et notera la date et l'heure actuelles afin que nous puissions vérifier si le module fonctionne ou non.

maintenant, commençons la configuration, tapez ce qui suit pour mettre à jour les bibliothèques Rpi, une ligne à la fois:

sudo apt-get mise à jour

sudo apt-get -y upgrade

une fois cela fait, nous devons modifier les fichiers système pour activer le module i2c et ajouter RTC, pour modifier un système de fichiers, nous allons utiliser un logiciel appelé Nano. nano est un logiciel intégré léger qui est essentiellement un éditeur de texte, tout comme celui de veuves. Ainsi, toute commande commençant par nano suivi du nom du fichier ouvrira ce fichier dans l'éditeur de texte nano. vous avez remarqué que nous avons également utilisé quelque chose appelé Sudo, en bref, sudo agit comme une assurance pour le système Linux qui indique au système que l'utilisateur qui a effectué cette commande est le propriétaire de l'appareil, pas quelqu'un d'autre, et donne des privilèges comme l'édition/ suppression à l'utilisateur. par exemple, si nous ouvrons un fichier nano sans sudo, nous pourrions voir ce fichier, mais nous ne pouvons pas le modifier ou le supprimer.

maintenant, nous devons modifier le fichier modules, nous pouvons le faire en tapant:

sudo nano /etc/modules

une fois que vous faites cela, vous trouverez le contenu de ce fichier (voir photo). utilisez les touches fléchées pour placer le curseur à la fin du texte et ajoutez les éléments suivants:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

appuyez sur CTRL+S pour enregistrer et CTRL+X pour quitter

Étape 7: 2-2: Interface I2C

2-2: Interface I2C
2-2: Interface I2C

Maintenant que nous avons connecté le RTC et activé i2c, connectons le tout ensemble.

tapez ce qui suit dans l'invite de commande:

i2cdetect -y 1

vous recevrez un tableau de blancs, mais vous remarquerez qu'il y a un numéro quelque part, ce numéro est l'adresse de votre module RTC. dans mon cas c'est 68. prends note de ce nombre. si vous ne voyez pas ce numéro à deux chiffres, cela signifie que vous êtes probablement mal connecté au RTC.

maintenant, nous devons modifier le fichier rc.local afin que nous puissions activer le module RTC au démarrage et le laisser enregistrer la date et l'heure dans le système. tout d'abord, ouvrez le fichier rc.local:

sudo nano /etc/rc.local

Avant la ligne exit0, ajoutez ce qui suit:

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

hwclock -s

où 0x68 est l'adresse i2c de votre appareil. une fois que vous avez terminé, appuyez sur CTRL+S CTRL+X, puis redémarrez votre système en:

redémarrage sudo

Étape 8: 2-3: Tester le RTC

2-3: Tester le RTC
2-3: Tester le RTC

Une fois le système redémarré, nous pouvons vérifier si le RTC fonctionne ou non. première exécution:

sudo hwclock -r

la date et l'heure vous seront remises sur le module RTC. si on vous donne autre chose, assurez-vous d'avoir suivi les étapes correctement.

maintenant, pour modifier l'heure et la date sur le RTC, nous devons d'abord modifier la date et l'heure sur le système, PUIS écrire les modifications sur le RTC. pour cela, lancez:

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

et bien sûr, modifiez la date et l'heure en fonction de votre heure et de votre date locales, avant d'appuyer sur Entrée. une fois que vous obtenez l'heure sur le Rpi, exécutez ce qui suit pour enregistrer la date et l'heure sur le RTC:

sudo hwclock -w

aaaa et c'est tout ! vous pouvez vérifier si cela fonctionne par hwclock -r et voir si la date sur le RTC est correcte ou non, puis déconnectez le rpi d'Internet, puis éteignez-le pendant un certain temps, puis rallumez-le et voyez s'il a le bon heure et date. vous avez terminé!

Le guide complet sur la configuration du module RTC est disponible ici

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

Étape 9: Chapitre 3: Création du programme d'alarme Azan

Chapitre 3: Création du programme d'alarme Azan
Chapitre 3: Création du programme d'alarme Azan

faire une montre est une chose, bien sûr, nous pouvons regarder l'horloge et les heures de prière et voir quand le moment vient, mais ne serait-il pas encore mieux si nous pouvions ajouter une alarme sonore pour nous informer des heures de prière? ENCORE MIEUX, nous faisons de cette alarme le son d'AZAN ! voyons comment nous pouvons y parvenir.

pour notre programmation, nous allons utiliser python comme langage de programmation préféré car python va parfaitement avec RaspberryPi. pour créer un fichier de code en python, nous faisons la même chose que d'ouvrir un fichier texte, mais maintenant nous l'enregistrons en tant que.py. pour exécuter le programme, nous avons besoin de l'environnement python installé de la framboise, heureusement, Raspbian est livré avec python et python3 pré-installés ! donc tout ce que nous avons à faire est de programmer. dans ce guide, nous ne parlerons pas du langage et n'enseignerons pas son fonctionnement et ses fonctions, mais je vous donnerai les codes nécessaires pour que vous puissiez réaliser le projet.

pour commencer, nous avons besoin d'un fichier son de notre son azan préféré (en. WAV), nous avons besoin de deux fichiers, un pour al-fajr azan et un autre pour azan régulier. une fois que vous avez obtenu cela, mettez-le sur une clé USB et copiez-le sur le bureau du raspberrypi.

maintenant nous avons les fichiers, je cherchais un moyen de lire des audios sur le raspberryPi et à ma grande surprise, il n'y avait pas beaucoup de façons de le faire, mais j'ai trouvé cette réponse sur stackoverflow qui m'a donné ce dont j'avais besoin

stackoverflow.com/questions/20021457/playi…

J'ai testé cette méthode et ça a marché ! Voyons donc comment nous pouvons implémenter cette méthode dans notre projet…

Étape 10: 3-1: Jouons un son

3-1: Jouons un son !
3-1: Jouons un son !

tout d'abord, accédez au bureau en:

cd de bureau

puis créez un nouveau fichier de code python en:

sudo nano AzanPlay.py

cela fera un nouveau fichier appelé AzanPlay avec l'extension sur un fichier python.py, nous aurons un écran noir vide pour nous permettre d'écrire notre code. écrivez simplement ces lignes (faites attention à ne pas changer d'indentation ou d'espace, car c'est EXTRÊMEMENT important en python):

du mélangeur d'importation pygame

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

Où /Desktop/ est l'endroit où vous placez vos fichiers audio, et 'Adhan-Makkah.wav' est mon fichier audio, qui est l'enregistrement sonore Azan à la Mecque.

maintenant pour tester notre code, nous l'exécutons avec python en tapant:

python AzanPlay.py

et vous aurez le son de votre écran LCD HDMI ou de votre port AUX sur le Raspberrypi. si vous ne l'entendez pas des haut-parleurs LCD, branchez un casque sur l'AUX et vérifiez.

Étape 11: 3-2: Obtenez les heures de prière

3-2: Obtenez les heures de prière
3-2: Obtenez les heures de prière

Comme nous le savons, les heures de prière diffèrent d'un endroit sur terre à un autre, et même pour un endroit spécifique, cela diffère au fil des ans, cela signifie que nous devons trouver un moyen de maintenir nos heures de prière dans le système à jour tout le temps, et pour cela, nous avons besoin de fonctions et de calculs spécifiques et très complexes afin de bien faire les choses. Heureusement, notre frère Hamid Zarrabi-Zadeh a rassemblé toutes les fonctions dont nous avons besoin en une seule fonction que nous pouvons utiliser facilement pour obtenir l'heure en fonction de notre emplacement et de l'heure actuelle, INCROYABLE ! vous pouvez trouver la bibliothèque et les fichiers source sur

praytime.org/

Donc, nous allons utiliser ces fichiers impressionnants pour obtenir nos heures de prière et les implémenter dans le système. tout d'abord, téléchargez les codes depuis le site Web et placez-les dans un dossier /adhan/ (nous avons besoin des codes JS et Python).

maintenant, dirigeons-nous vers ce dossier et testons la bibliothèque, et ce qu'elle peut faire:

cd adhan

là, nous devons créer un nouveau fichier de test en python pour pouvoir tester la fonction:

sudo nano testAd.py

à l'intérieur, écrivez ce code:

importer les heures de prière

de datetime date d'importation tmm = priez. PrayTimes().getTimes(date.today(), [LONGTITUDE, LATITUDE], GMT) print(tmm)

Avant d'enregistrer le fichier, vous devez modifier la LATITUDE avec la latitude de votre emplacement, de même que la LONGTITUDE, et modifier l'heure GMT en fonction de votre fuseau horaire. dans mon cas, ce sera:

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

imprimer (tmm)

Enfin, CTRL-S et CTRL-X puis exécutez le code:

python testAd.py

enfin, vos heures de prière d'aujourd'hui vous seront restituées, pour votre emplacement.

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

Super! maintenant que nous avons notre temps de prière et que nous savons maintenant jouer des sons, fusionnons ces deux codes en un seul code principal.

Étape 12: 3-3: Créer le code d'alarme Azan final

en terminant les deux codes précédents, nous avons appris à obtenir les heures de prière précises en fonction de notre emplacement et à jouer le son Azan. maintenant, nous allons fusionner ces deux codes en un seul code que nous utiliserons comme projet final, et ce code fonctionnera en arrière-plan, car lorsque le temps Azan viendra, il jouera le son Azan.

J'ai écrit tout le code, vous pouvez le copier et le coller, et apporter vos propres modifications comme bon vous semble. Le code est:

heure d'importation

de pygame import mixer import string importer les heures de prière à partir de la date d'importation date tandis que (1): tmm = priez. 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() tandis que mixer.music.get_busy() == True: continue si currTime == DHUHR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan- Makkah.wav') mixer.music.play() tandis que mixer.music.get_busy() == True: continue si currTime == ASR: mixer.init() mixer.music.load('/home/pi/Desktop/ Adhan-Makkah.wav') mixer.music.play() tandis que mixer.music.get_busy() == True: continuer si currTime == MAGHRIB: mixer.init() mixer.music.load('/home/pi/ Desktop/Adhan-Makkah.wav') mixer.music.play() tandis que mixer.music.get_busy() == True: continue si currTime == ISHA: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() tandis que mixer.music.get_busy() == True: continuer

Si vous regardez le code et le comparez à ce que nous avons fait précédemment, vous verrez que nous n'avons pas fait grand-chose de nouveau, au début, nous avons inclus nos bibliothèques nécessaires, puis nous avons ouvert une boucle infinie. dans la boucle, nous calculons constamment l'heure des prières avec notre emplacement et notre fuseau horaire, et stockons l'ensemble du résultat dans la variable tmm. ensuite, nous stockons chaque heure de prière de tmm à une variable indépendante. cela nous permettra de comparer les temps. ensuite, nous prenons le temps système et le stockons dans une variable indépendante. enfin, nous continuons à comparer l'heure du système avec les heures de prière, si l'heure du système correspond à l'une des heures de prière, il jouera le son Azan.

Étape 13: Chapitre 4: Implémentation des cadrans de la montre

Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre
Chapitre 4: Implémentation des cadrans de montre

Pour rendre le projet plus beau, j'ai eu l'idée d'ajouter des cadrans de montre à l'écran LCD, donc ça a l'air sympa pour l'utilisateur (enfin, mieux que la ligne de commande au moins), j'ai donc embauché un designer pour concevoir plusieurs visages pour la montre, elle doit être vide sans données, car les données doivent être ajoutées via HTML, faisant des conceptions de la montre en arrière-plan, et les autres données telles que les heures de prière pourraient être ajoutées en tant qu'éléments HTML au-dessus de l'arrière-plan.

Malheureusement, au moment de la rédaction de cette instruction, mes connaissances et mon expérience en HTML sont très limitées, je ne discuterai donc pas beaucoup de détails car je sais pertinemment que je vais mal faire les choses, et je ne vouloir confondre les gens. mais si vous avez même une légère expérience en JS et HTML, vous devez savoir comment continuer à partir de ce point. jusqu'à présent, j'ai fait un seul visage (le bleu). le plan est de faire 14 cadrans de montre ! 7 visages pour tous les jours de la semaine, et 7 autres comme autre thème. comme le premier thème est censé être avec Azkar roulant, et l'autre thème est censé avoir des-g.webp

Étape 14: Chapitre 5: Implémentation d'une interface utilisateur

Chapitre 5: Implémentation d'une interface utilisateur
Chapitre 5: Implémentation d'une interface utilisateur

Dans le dernier chapitre de notre voyage, nous apporterons quelques modifications facultatives pour rendre le projet encore plus convivial, au cas où nous voudrions mettre en œuvre le projet dans une mosquée ou tout autre lieu public. comme nous l'avons dit précédemment, chaque ville a son propre calendrier pour les prières, et pour rendre ce projet accessible à un plus grand nombre de personnes, nous créerons une interface utilisateur afin que nous puissions sélectionner la ville et le thème souhaités une fois que nous aurons démarré le projet.

Pour ce faire, nous allons utiliser une bibliothèque d'interface graphique python appelée "TKinter".

Voici le code que j'ai mis en place pour me donner le choix de choisir entre cinq villes d'Arabie Saoudite, dont La Mecque:

importer tkinter en tant que tk

de tkinter import * de 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 = Button(self, text = "Riyadh", width = 80, command = self.open_riyadh1) self.button4 = Button(self, text = "Madina", 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, columnpan = 2, sticky = W+E+N+S) self.button2.grid(row = 1, column = 1, columnpan = 2, sticky = W+E+N+S) self.button3.grid(row = 2, column = 1, columnpan = 2, sticky = W+E+N+S) self.button4.grid(row = 3, column = 1, columnpan = 2, sticky = W+E+N+S) self.button5.grid(row = 4, column = 1, columnpan = 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() si _name_ == '_main_': main()

Le code peut sembler gros, mais l'éditer est très facile. nous avons essentiellement créé une nouvelle fenêtre, mis cinq boutons de noms et défini cinq fonctions à appeler à chaque pression de bouton. une fois que vous avez appuyé sur le bouton, le programme ouvrira le fichier HTML correspondant dans le dossier Cities, dont chaque HTML de ville a les coordonnées de la ville lorsqu'il obtient l'heure de priertimes(). une fois que vous appuyez sur le bouton, le code python exécutera un code Linux dans lequel il ouvrira le fichier HTML à l'aide du navigateur Chrome, et vous aurez le cadran de la montre prêt à être affiché, avec l'option plein écran activée.

Étape 15: (Facultatif): Ajout d'un commutateur de haut-parleur

(Facultatif): Ajout d'un commutateur de haut-parleur
(Facultatif): Ajout d'un commutateur de haut-parleur
(Facultatif): Ajout d'un commutateur de haut-parleur
(Facultatif): Ajout d'un commutateur de haut-parleur

Comme nous l'avons vu, lorsque vient l'heure de la prière, le son Azan est joué et le son sort de la sortie son par défaut (sortie HDMI ou AV) et puisque nous le mettons sur la sortie HDMI, le son viendra de l'écran LCD. mais, et si notre son LCD ne suffisait pas ? par exemple, que se passe-t-il si nous voulons implémenter cela à l'intérieur d'une vraie mosquée ? avec de larges enceintes extérieures ? alors nous pouvons ajouter encore une étape TRÈS facile pour accomplir cela. pour un système audio de haut-parleurs déjà construit, il suffit de l'allumer et de l'éteindre, de prendre le microphone déjà existant et de le placer à côté des haut-parleurs LCD.

C'est facile. nous utiliserons le microphone de mosquée préexistant qui est connecté au haut-parleur, nous aurons juste besoin du raspberryPi pour contrôler l'alimentation qui allume et éteint tout le système audio. pour cela, il va falloir utiliser un SSR: SOLID STATE RELAY. ces types de relais peuvent agir comme un interrupteur, un peu comme le relais bleu moyen, la différence est que les relais statiques peuvent supporter une grande quantité d'ampérage CA, ce qui n'est pas applicable dans les relais bleus (généralement max 10A), et les relais statiques ont besoin seulement deux fils au lieu de 3: DC+ et DC- et c'est tout ! à l'autre extrémité du SSR, nous pouvons connecter le câble d'alimentation du système de haut-parleurs, de cette façon, lorsque nous donnons une tension au SSR, il fermera le circuit CA du système de haut-parleurs, ou nous couperons la tension pour faire un circuit ouvert, désactiver les haut-parleurs.

il y a un hic, les broches du RaspberryPi produisent 3,3 v, pas 5 v dont nous avons besoin pour contrôler le SSR. nous avons donc besoin d'un transistor pour prendre le signal de la broche RPi et 5V de la broche RPi 5v. pour cela il nous faut:

1-Solid State Relay (tout ce qui est au-dessus de 25A est bon)

2-2n2222 transistor npn

Résistance 3-220ohms

suivez le circuit de frittage pour la connexion.

maintenant dans le code, nous allons ajouter des éléments qui font que cela fonctionne. tout d'abord, avant la boucle while, nous allons ajouter quelques lignes pour initialiser les broches GPIO:

Dans la section d'importation, ajoutez:

importer RPi. GPIO en tant que GPIO

Avant la boucle while, ajoutez:

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

Maintenant, dans la boucle while, pour chaque commande play Azan, nous devons allumer le relais, attendre 10 secondes, terminer la lecture de l'Azan, puis éteindre le relais. il suffit d'ajouter deux lignes, la première est:

GPIO.sortie (ledPin, GPIO. HIGH)

heure.sommeil(10)

celle-ci doit être ajoutée après chaque instruction if (L'IDENTIFICATION EST IMPORTANTE !), L'autre ligne est:

GPIO.sortie (ledPin, GPIO. LOW)

Celui-ci doit être ajouté après la ligne "continuer". cela devrait ressembler à ceci pour chaque fois 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() pendant mixer.music.get_busy() == True: continue GPIO.output(ledPin, GPIO. LOW)

Conseillé: