Inhaltsverzeichnis:

RaspberryPi islamische Gebetsuhr & Alarm - Gunook
RaspberryPi islamische Gebetsuhr & Alarm - Gunook

Video: RaspberryPi islamische Gebetsuhr & Alarm - Gunook

Video: RaspberryPi islamische Gebetsuhr & Alarm - Gunook
Video: Amazing athan azan on gosalah.com 2024, Juni
Anonim
RaspberryPi Islamische Gebetsuhr & Wecker
RaspberryPi Islamische Gebetsuhr & Wecker
RaspberryPi Islamische Gebetsuhr & Wecker
RaspberryPi Islamische Gebetsuhr & Wecker

Muslime auf der ganzen Welt beten jeden Tag fünfmal, und jedes Gebet muss zu einer bestimmten Tageszeit stattfinden. Wegen der elliptischen Art und Weise, wie sich unser Planet um die Sonne bewegt, was dazu führt, dass sich die Sonnenauf- und -untergangszeiten im Laufe des Jahres unterscheiden, macht dies auch die Gebetszeit inkonstant, weshalb wir eine islamische Uhr brauchen, die uns Muslime jeweils an unsere Gebetszeiten erinnert Tag.

Jeder Muslim hat eine Möglichkeit, über das Internet, islamische Websites, lokale islamische Kalender oder sogar über das Fernsehen auf die täglichen Gebetszeiten zuzugreifen. Aber was wäre, wenn wir unser eigenes Gebets- und Alarmgerät herstellen würden!

Bevor Sie mit der Arbeit an dem Projekt beginnen, gibt es einige Überlegungen, die Sie beim Lesen dieses Instructable möglicherweise nützlich machen. Ich lebe in Saudi-Arabien, daher werden einige meiner Schritte und Werte von Ihren abweichen, und ich werde während der Arbeit ausdrücklich darauf hinweisen. Es gibt Schritte und Bilder, die arabische Wörter enthalten könnten, da ich die Schnittstelle auf Arabisch erstellt habe, aber ich werde auch darauf hinweisen, wie man es auf Englisch macht, also lassen Sie sich nicht von den arabischen Wörtern in den Bildern beunruhigen, dieses Projekt kann sein in jeder Sprache gemacht (was super ist!:D) Bitte entschuldigen Sie auch meine Tippfehler, da Englisch nicht meine Muttersprache ist.

Auf zu unserem Projekt! Dieses Projekt wird in X Hauptschritte unterteilt, die am Ende des X. Schritts unser Projekt schön und fertig haben werden! Die Schritte werden wie folgt sein:

1-Konfigurieren und Vorbereiten des RaspberryPi

2-Installieren des RTC-Moduls

3-Erstellen des Azan-Alarmprogramms

4-Implementieren der Zifferblätter

5-Erstellen der Benutzeroberfläche und

Wie bei jedem Projekt müssen wir zuerst die benötigten Teile vorbereiten. Die Teile, die wir für dieses Projekt benötigen, sind:

1-RaspberryPi Computer-Kit Amazon US || Amazon KSA

Sie können jede Rpi-Version verwenden, stellen Sie nur sicher, dass sie über Wifi verfügt. Ich habe Rpi3B+ verwendet

2-RTC Echtzeituhrmodul Amazon US || Amazon KSA

Sie können jedes RTC-Modulmodell verwenden, stellen Sie nur sicher, dass es über I2C verfügt

3-LCD-Monitor

Jedes LCD wird tun

4-Maus und Tastatur

und das ist es!! Das ist alles, was Sie brauchen, um Ihre eigene Azan-Uhr und Ihren eigenen Wecker zu bauen

Schritt 1: Kapitel 1: Einrichten und Konfigurieren des RaspberryPI

Kapitel 1: Einrichten und Konfigurieren des RaspberryPI
Kapitel 1: Einrichten und Konfigurieren des RaspberryPI

Das wichtigste zuerst! Wir müssen den Raspberry Pi vorbereiten, um damit zu arbeiten.

Raspberry Pi ist nichts anderes als ein Computer, er hat RAM und ROM, er hat eine CPU, GPU, I/O……. Ein Computer! genau wie das, auf dem wir Spiele spielen und mit dem wir im Internet surfen, nur das Wichtigste ist, dass es sehr klein ist! was die Himbeere zu einer sehr guten Wahl für die Erstellung und Umsetzung von Projekten macht. Da der Raspberry Pi klein ist, hat er sehr begrenzte Spezifikationen, dass er kein großes, anspruchsvolles Betriebssystem wie Windows oder macOS betreiben kann. Stattdessen werden wir Linux als Betriebssystem verwenden, um das Gerät zu verwenden. Es gibt Tausende, wenn nicht sogar Zehntausende von Linux-Distributionen, die wir verwenden könnten, aber eine perfekte Distribution ist perfekt speziell für das Raspberrypi optimiert, das wir verwenden werden, genannt Raspbian.

Schritt 2: 1-1: Laden Sie die erforderlichen Dateien herunter

1-1: Laden Sie die erforderlichen Dateien herunter
1-1: Laden Sie die erforderlichen Dateien herunter
1-1: Laden Sie die erforderlichen Dateien herunter
1-1: Laden Sie die erforderlichen Dateien herunter
1-1: Laden Sie die erforderlichen Dateien herunter
1-1: Laden Sie die erforderlichen Dateien herunter

-Gehen Sie auf die offizielle Rasbian-Download-Seite unter https://www.raspberrypi.org/software/operating-sy… und laden Sie das Raspberry Pi OS mit Desktop-Datei herunter

- Gehen Sie während des Downloads zu https://win32diskimager.org/ und laden Sie win32DiskImager herunter und installieren Sie es. Sie können jede beliebige Software zum Brennen von Bildern verwenden

Sobald der Download abgeschlossen ist, haben Sie eine.img-Datei mit dem RaspberryPi-Betriebssystem. Als nächstes stecken Sie Ihre SD-Speicherkarte in den Computer (normalerweise mit einem USB-Kartenleser) und starten Sie die Software win32diskimager. Die Schritte zum Brennen des Bildes in den SD-Speicher sind sehr einfach, Sie müssen nur 1- Ihren Speicherbuchstaben auswählen 2- Ihre heruntergeladenen Betriebssystemdateien auswählen und 3-Klicken auf Schreiben! Stellen Sie sicher, dass Sie den richtigen Gerätebuchstaben aus der Liste ausgewählt haben und Ihr Speicher leer ist, da Sie durch Drücken von Schreiben mit einer Warnung befördert werden, die Ihnen mitteilt, dass alles auf dem Gerät gelöscht wird! Drücken Sie Ja, um den Schreibvorgang zu bestätigen und warten Sie, bis er abgeschlossen ist. Dies kann bis zu 20 Minuten dauern.

Sobald dies erledigt ist, haben Sie das vollständige Rapbian-Betriebssystem auf dem Speicher, Sie können es in den Rapberry Pi stecken, den Raspberry Pi über HDMI an den Monitor anschließen, Maus und Tastatur über USB anschließen und schließlich die Energie.

Schritt 3: 1-2: Konfiguration des Raspbian-Systems

Nach dem Anschließen der Kabel und des Stroms sehen Sie, dass das Betriebssystem eingeschaltet ist, es wird automatisch neu gestartet und zeigt dann die Raspbian-Benutzeroberfläche an (die ähnlich wie Windows aussieht). Als erstes sehen Sie ein Willkommensfenster, das Sie durch die Schritte zur erstmaligen Konfiguration Ihres RaspberryPi führt. die Fenster und Schritte sind wie folgt:

1-Drücken Sie im ersten "Willkommen"-Fenster auf Weiter

2-Nächstes Fenster wird Ihren Standort konfigurieren. Wählen Sie Ihr Land, Ihre Sprache und Ihre Zeitzone aus. Danach wird dringend empfohlen, "Englische Sprache verwenden" zu überprüfen, da dies die Sprache der Betriebssystemoberfläche ist. SIE MÜSSEN DIE "US ENGLISH KEYBOARD LAYOUT BOX" ANZEIGEN. WIR BRAUCHEN DIE ENGLISCHE TASTATUR, UM ZU FUNKTIONIEREN!

3-Als nächstes werden Sie aufgefordert, ein Passwort für Ihre Himbeere einzugeben. Dies ist wichtig für die Sicherheit, aber wir werden es für dieses Projekt unverändert lassen. Beachten Sie, dass der Standardbenutzername und das Kennwort wie folgt lauten:

Benutzername:pi

Passwort: Himbeere

4-Nächstes Fenster verbindet den RaspberryPi mit Ihrem WiFi-Netzwerk. Wählen Sie Ihren WLAN-Namen und geben Sie Ihr WLAN-Passwort ein

5-als nächstes werden Sie aufgefordert, die Raspberry Pi-Bibliotheken und Systemdateien zu aktualisieren. Dieser Schritt wird sehr viel Zeit in Anspruch nehmen (vielleicht in Stunden), aber es ist ein sehr wichtiger Schritt für jedes Mal, wenn ein neuer Himbeer-Pi eingerichtet wird.

6 - Sobald das Update abgeschlossen ist, werden Sie aufgefordert, das System neu zu starten. mach das jetzt.

Gute Arbeit! Jetzt haben wir ein aktualisiertes System, wir müssen noch einige Dinge tun, um das System zu konfigurieren, damit es funktioniert, aber jetzt beginnen wir, die Linux-Befehlszeile zu verwenden.

Schritt 4: 1-3: Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen

1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen
1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen
1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen
1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen
1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen
1-3:Verwenden der Befehlszeile zum Einrichten der Rpi-Einstellungen

Sobald Sie den Neustart über das Systemupdate abgeschlossen haben, zeigt das System den Benutzerdesktop an, sobald der Bootvorgang abgeschlossen ist. Wenn Sie jetzt oben links auf dem Bildschirm nachsehen, finden Sie einige Schaltflächen, eine Schaltfläche mit RaspberryPi-Logo, die die Rpi-Menüschaltfläche ist, eine Kugelform, die der Internetbrowser ist, eine Ordnerschaltfläche, die … Ordner ist und schließlich eine Schaltfläche mit einem schwarzen Bildschirmfenster, die die wichtigste Schaltfläche in jedem Linux-System ist, die Befehlszeile. Gehen Sie weiter und drücken Sie diese Taste, Sie sehen ein schwarzes Fenster, das auftaucht.

Die Befehlszeile ist die Art und Weise, wie jeder mit dem Linux-System interagiert und verwendet, genau wie Windows seine eigene Befehlszeile nur in Witwen hat, müssen wir sie nicht sehr oft verwenden. unter linux ist es die grundlegende sache, die jeder linux-benutzer lernen und beherrschen muss. die Befehlszeile kann verwendet werden von…. COMMANDS! Was Sie im schwarzen Fenster sehen, ist die Eingabeaufforderung, die darauf wartet, dass der Befehl vom Benutzer geschrieben und ausgeführt wird. In diesem Handbuch geben wir alle Befehle, die Sie zum Ausführen dieses Projekts benötigen, also machen Sie sich keine Sorgen.

Der allererste Linux-Befehl, den wir verwenden werden, ist ein weiterer Konfigurationsbefehl. Beachten Sie, dass alle Befehle von nun an in eine Codebox eingefügt werden, damit Sie sie von normalen Schritten unterscheiden können. Bringen Sie Ihre Tastatur mit, geben Sie Folgendes ein und drücken Sie die Eingabetaste:

sudo raspi-config

Wenn Sie das richtig machen, sehen Sie, dass der Bildschirm blau geworden ist, mit einem grauen kleinen Kästchen in der Mitte (siehe Bild). Wir werden dies verwenden, um unsere endgültige Konfiguration vorzunehmen, bevor wir mit der Codierung beginnen.

Jetzt müssen Sie die Pfeiltasten der Tastatur verwenden, um in diesem Menü zu navigieren.

1-Gehen Sie zu Schnittstellenoptionen >> I2C >> JA >> drücken Sie die Eingabetaste. Dies ist die Aktivierung des I2c-Kommunikationsprotokolls, damit wir die RTC verwenden können

2-Gehen Sie zu Erweiterte Optionen >> Dateisystem erweitern.

und das ist die gesamte Konfiguration, die Sie in diesem Fenster benötigen. Gehen Sie auf der Hauptseite nach unten und drücken Sie die Eingabetaste auf "Fertig stellen" und "JA", um das System neu zu starten.

Sobald der Neustart des Systems abgeschlossen ist, sind wir alle mit der Konfiguration fertig! das Gerät ist bereit für die großen Schritte! Der nächste Schritt besteht darin, das RTC-Modul zu installieren und mit dem System zu verwenden.

Schritt 5: Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls

Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls
Kapitel 2: Montage, Konfiguration und Verwendung des RTC-Moduls

Das RTC-Modul (oder Real-Time Clock) ist ein kleines Gerät mit einer kleinen Batterie, das das tut, was der Name impliziert, Clocking! Wenn Sie es also von der Stromversorgung trennen, funktioniert die Uhr weiter und bleibt nicht stehen. warum brauchen wir das? Nun, der Himbeer-Pi hat wirklich keine Methode zum Speichern von Uhrzeitdaten, sobald er ausgeschaltet ist Deshalb brauchen wir das RTC-Modul. Die RTC fungiert als Uhr für den Raspberry Pi. Sobald der Rpi gestartet ist, übernimmt er das Datum und die Uhrzeit von der RTC, wodurch die RaspberryPi-Zeit ständig aktualisiert wird.

Es gibt mehrere Modelle und Looks für die RTC, es gibt die DS1307 und DS3231. Sie können jedes RTC-Modul verwenden, das Sie finden, solange es über eine I2C-Protokollkommunikation verfügt (Sie können angeben, dass Sie SDA- und SCL-Pins an den Modulpins finden.

Wie alles in diesem Handbuch habe ich andere Anleitungen verwendet, um mein Ziel im Projekt zu erreichen Schritte, ich werde die fruchtbarere Anleitung am Ende jedes Schritts verlinken.

Sobald Sie Ihr RTC-Modul fertig haben (die Header-Pins anlöten und den Akku auflegen), können Sie es wie folgt an die RapberryPi-Pins anschließen:

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

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

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

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

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

oder je nachdem, welches RTC-Modul Sie haben, können Sie es direkt auf dem RaspberryPi montieren (Achten Sie darauf, dass die Pins korrekt sind !!! da Sie sonst das Rpi / RTC beschädigen könnten)

Nachdem Sie die RTC angeschlossen haben, konfigurieren wir den Raspberry.

Schritt 6: 2-1: Modul-Setup

2-1: Modul-Setup
2-1: Modul-Setup
2-1: Modul-Setup
2-1: Modul-Setup

Gehen Sie vor dem Start zur Befehlszeile und geben Sie Folgendes ein:

Datum

Dies gibt das aktuelle Datum und die aktuelle Uhrzeit auf dem Raspberry zurück, notiert diesen sehr nützlichen Befehl und notiert das aktuelle Datum und die aktuelle Uhrzeit, damit wir überprüfen können, ob das Modul funktioniert oder nicht.

Beginnen wir nun mit dem Setup, geben Sie Folgendes ein, um die Rpi-Bibliotheken Zeile für Zeile zu aktualisieren:

sudo apt-get update

sudo apt-get -y upgrade

Sobald dies erledigt ist, müssen wir die Systemdateien ändern, um das i2c-Modul zu aktivieren und RTC hinzuzufügen. Um ein Dateisystem zu ändern, verwenden wir eine Software namens Nano. nano ist eine leichte integrierte Software, die im Grunde ein Texteditor ist, genau wie der in Witwen. Jeder Befehl, der mit Nano gefolgt vom Dateinamen beginnt, öffnet diese Datei im Nano-Texteditor. Sie haben bemerkt, dass wir auch etwas namens Sudo verwendet haben. dem Benutzer löschen. Wenn wir beispielsweise eine Nano-Datei ohne sudo öffnen, können wir diese Datei zwar anzeigen, aber nicht bearbeiten oder löschen.

Jetzt müssen wir die Modules-Datei ändern, wir können dies tun, indem wir Folgendes eingeben:

sudo nano /etc/modules

Sobald Sie dies tun, finden Sie den Inhalt dieser Datei (siehe Bild). Setzen Sie den Cursor mit den Pfeiltasten an das Ende des Textes und fügen Sie Folgendes hinzu:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

drücke STRG+S zum Speichern und STRG+X zum Beenden

Schritt 7: 2-2: I2C-Schnittstelle

2-2: I2C-Schnittstelle
2-2: I2C-Schnittstelle

Nachdem wir nun die RTC angeschlossen und i2c aktiviert haben, verbinden wir alles miteinander.

Geben Sie Folgendes in die Eingabeaufforderung ein:

i2cdetect -y 1

Sie erhalten eine Reihe von Leerzeichen, aber Sie werden feststellen, dass es irgendwo eine Zahl gibt, die Ihre RTC-Moduladresse ist. in meinem Fall ist es 68. Notieren Sie sich diese Zahl. Wenn Sie diese zweistellige Zahl nicht sehen, bedeutet dies, dass Sie wahrscheinlich die RTC falsch angeschlossen haben.

Jetzt müssen wir die Datei rc.local ändern, damit wir das RTC-Modul beim Booten aktivieren und Datum und Uhrzeit im System speichern können. Öffnen Sie zunächst die Datei rc.local:

sudo nano /etc/rc.local

Fügen Sie vor der Zeile exit0 Folgendes hinzu:

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

hwclock -s

wobei 0x68 die i2c-Adresse Ihres Geräts ist. Sobald Sie fertig sind, drücken Sie STRG+S STRG+X und starten Sie Ihr System neu, indem Sie:

sudo neu starten

Schritt 8: 2-3: Testen der RTC

2-3: Testen der RTC
2-3: Testen der RTC

Sobald das System neu gestartet wurde, können wir überprüfen, ob die RTC funktioniert oder nicht. erster Lauf:

sudo hwclock -r

Sie erhalten Datum und Uhrzeit auf dem RTC-Modul zurück. Wenn Sie etwas anderes erhalten, vergewissern Sie sich, dass Sie die Schritte richtig ausgeführt haben.

Um die Uhrzeit und das Datum auf der RTC zu ändern, müssen wir zuerst Datum und Uhrzeit auf dem System ändern und DANN die Änderungen in die RTC schreiben. Führen Sie dazu Folgendes aus:

sudo date -s "29. August 1997 13:00:00"

und ändern Sie natürlich Datum und Uhrzeit entsprechend Ihrer Ortszeit und Ihres lokalen Datums, bevor Sie die Eingabetaste drücken. Sobald Sie die Uhrzeit auf dem Rpi richtig eingestellt haben, führen Sie Folgendes aus, um Datum und Uhrzeit auf dem RTC zu speichern:

sudo hwclock -w

aaaaund das war's! Sie können überprüfen, ob es mit hwclock -r funktioniert und sehen, ob das Datum auf der RTC korrekt ist oder nicht, dann das rpi vom Internet trennen und dann für einige Zeit ausschalten und dann wieder einschalten und sehen, ob es das richtige hat Zeit und Datum. Sie sind fertig!

Eine vollständige Anleitung zum Einrichten des RTC-Moduls finden Sie hier

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

Schritt 9: Kapitel 3: Erstellen des Azan-Alarmprogramms

Kapitel 3: Erstellen des Azan-Alarmprogramms
Kapitel 3: Erstellen des Azan-Alarmprogramms

Eine Uhr zu machen ist eine Sache, sicher, wir können auf die Uhr und die Gebetszeiten schauen und sehen, wann die Zeit kommt, aber wäre es nicht noch viel besser, wenn wir einen akustischen Alarm hinzufügen könnten, der uns über die Gebetszeiten informiert? NOCH BESSER, wir machen diesen Alarm als den Klang von AZAN! mal sehen, wie wir das erreichen können.

Für unsere Programmierung werden wir Python als unsere bevorzugte Programmiersprache verwenden, da Python perfekt mit RaspberryPi funktioniert. Um eine Codedatei in Python zu erstellen, machen wir dasselbe wie das Öffnen einer Textdatei, aber jetzt speichern wir sie als.py. Um das Programm auszuführen, benötigen wir eine installierte Python-Umgebung von Raspberry, zum Glück kommt Raspbian mit Python und Python3 vorinstalliert! Also müssen wir nur noch programmieren. In diesem Handbuch werden wir nicht über die Sprache sprechen und ihnen zeigen, wie sie funktioniert und die Funktionen, aber ich gebe Ihnen die notwendigen Codes, damit Sie das Projekt machen können.

Um zu beginnen, benötigen wir eine Sounddatei unseres bevorzugten Azan-Sounds (in. WAV). Wir benötigen zwei Dateien, eine für al-fajr azan und eine andere für normales azan. Sobald Sie das erhalten haben, legen Sie es auf einen Stick und kopieren Sie es auf den Desktop des Himbeerpi.

Jetzt haben wir die Dateien, ich suchte nach einer Möglichkeit, Sound-Audios auf dem RaspberryPi abzuspielen, und zu meiner Überraschung gab es nicht viele Möglichkeiten, dies zu tun, aber ich fand diese Antwort auf Stackoverflow, die mir das gab, was ich brauchte

stackoverflow.com/questions/20021457/playi…

Ich habe diese Methode getestet und sie hat funktioniert! Mal sehen, wie wir diese Methode in unserem Projekt implementieren können…

Schritt 10: 3-1: Lassen Sie uns einen Sound spielen

3-1: Lass uns einen Sound spielen!
3-1: Lass uns einen Sound spielen!

Navigieren Sie zuerst zum Desktop, indem Sie:

CD-Desktop

Erstellen Sie dann eine neue Python-Codedatei, indem Sie:

sudo nano AzanPlay.py

Dadurch wird eine neue Datei namens AzanPlay mit der Erweiterung einer Python-Datei.py erstellt. Wir haben einen leeren schwarzen Bildschirm, damit wir unseren Code schreiben können. Schreiben Sie einfach diese Zeilen auf (achten Sie darauf, dass Sie keine Einrückungen oder Leerzeichen ändern, da dies in Python EXTREM wichtig ist):

vom Pygame-Import-Mixer

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

Wo /Desktop/ ist, wo Sie Ihre Sounddateien ablegen, und 'Adhan-Makkah.wav' ist meine Audiodatei, die die Azan-Tonaufnahme in Makkah ist.

Um unseren Code zu testen, führen wir ihn mit Python aus, indem wir Folgendes eingeben:

Python AzanPlay.py

und Sie haben den Ton, der von Ihrem HDMI-LCD oder Ihrem AUX-Anschluss am Raspberrypi abgespielt wird. Wenn Sie es nicht über die LCD-Lautsprecher hören, schließen Sie einen Kopfhörer an den AUX an und überprüfen Sie.

Schritt 11: 3-2: Gebetszeiten erhalten

3-2: Gebetszeiten erhalten
3-2: Gebetszeiten erhalten

Wie wir wissen, unterscheiden sich die Gebetszeiten von einem Ort auf der Erde zum anderen, und sogar für einen bestimmten Ort unterscheiden sie sich im Laufe der Jahre, das bedeutet, dass wir einen Weg finden müssen, unsere Gebetszeiten im System ständig auf dem neuesten Stand zu halten, und dafür brauchen wir spezifische und sehr komplexe Funktionen und Berechnungen, um es richtig zu machen. Glücklicherweise hat unser Bruder Hamid Zarrabi-Zadeh alle Funktionen, die wir brauchen, zu einer Funktion zusammengefasst, mit der wir die Zeit je nach Standort und aktueller Uhrzeit leicht abrufen können, ERSTAUNLICH! Sie finden die Bibliothek und die Quelldateien unter

praytimes.org/

Also werden wir diese großartigen Dateien verwenden, um unsere Gebetszeiten zu erhalten und sie in das System zu implementieren. Laden Sie zuerst die Codes von der Website herunter und legen Sie sie in einen /adhan/-Ordner (wir benötigen sowohl den JS- als auch den Python-Code).

Gehen wir nun zu diesem Ordner und testen Sie die Bibliothek und was sie tun kann:

CD-Adhan

Dort müssen wir in Python eine neue Testdatei erstellen, damit wir die Funktion testen können:

sudo nano testAd.py

Schreiben Sie sich diesen Code auf:

Gebetszeiten importieren

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

Bevor Sie die Datei speichern, müssen Sie LATITUDE mit Ihrem Standort Breitengrad ändern, genauso wie LONGTITUDE, und GMT in Ihre Zeitzone ändern. In meinem Fall wird es sein:

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

drucken (tmm)

Schließlich STRG-S und STRG-X und führen Sie dann den Code aus:

python testAd.py

Schließlich werden Ihnen Ihre Gebetszeiten für heute für Ihren Standort zurückgegeben.

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

Groß! Jetzt, da wir unsere Gebetszeit haben und wissen, wie man Klänge spielt, lassen Sie uns diese beiden Codes zu einem Hauptcode zusammenführen.

Schritt 12: 3-3: Erstellen des endgültigen Azan-Alarmcodes

Indem wir die vorherigen beiden Codes abgeschlossen haben, haben wir gelernt, wie wir die genauen Gebetszeiten für unseren Standort ermitteln und den Azan-Sound spielen. Jetzt werden wir diese beiden Codes zu einem Code zusammenführen, den wir als unser letztes Projekt verwenden werden, und dieser Code wird im Hintergrund arbeiten, da er, wenn die Azan-Zeit kommt, den Azan-Sound abspielen wird.

Ich habe den gesamten Code geschrieben, Sie können ihn kopieren und einfügen und Ihre eigenen Änderungen vornehmen, wie Sie es für richtig halten. Der Code lautet:

Importzeit

from pygame import mixer import string import bettimes from datetime import date while (1): tmm = bettimes. 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: fortfahren if currTime == DHUHR: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan- Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: fortfahren wenn currTime == ASR: mixer.init() mixer.music.load('/home/pi/Desktop/ Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: fortfahren if currTime == MAGHRIB: mixer.init() mixer.music.load('/home/pi/ Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: fortfahren wenn currTime == ISHA: mixer.init() mixer.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == True: weiter

Wenn Sie sich den Code ansehen und mit dem vergleichen, was wir zuvor erstellt haben, werden Sie feststellen, dass wir nicht viel Neues gemacht haben. Zuerst haben wir unsere benötigten Bibliotheken eingefügt und dann eine Endlosschleife geöffnet. In der Schleife berechnen wir ständig die Gebetszeit mit unserem Standort und unserer Zeitzone und speichern das gesamte Ergebnis in der Variablen tmm. dann speichern wir jede Gebetszeit von tmm in einer unabhängigen Variablen. so können wir die Zeiten vergleichen. Als nächstes nehmen wir die Systemzeit und speichern sie in einer unabhängigen Variablen. Schließlich vergleichen wir die Systemzeit mit den Gebetszeiten. Wenn die Systemzeit mit einer der Gebetszeiten übereinstimmt, wird der Azan-Sound abgespielt.

Schritt 13: Kapitel 4: Implementieren der Zifferblätter

Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter
Kapitel 4: Implementieren der Zifferblätter

Um das Projekt besser aussehen zu lassen, hatte ich die Idee, dem LCD Zifferblätter hinzuzufügen, damit es für den Benutzer gut aussieht (naja, zumindest besser als die Befehlszeile). die Uhr sollte leer sein und keine Daten enthalten, da die Daten über HTML hinzugefügt werden sollten, wodurch die Uhr als Hintergrund gestaltet wird, und die anderen Daten wie Gebetszeiten als HTML-Elemente über dem Hintergrund hinzugefügt werden könnten.

Leider sind mein Wissen und meine Erfahrung in HTML zum Zeitpunkt des Schreibens dieser Anleitung sehr begrenzt, so dass ich nicht viele Details besprechen werde, weil ich weiß, dass ich die Dinge falsch mache, und ich tue es nicht wollen die Leute verwirren. aber wenn Sie auch nur ein wenig Erfahrung mit JS und HTML haben, sollten Sie wissen, wie Sie von diesem Punkt aus fortfahren. Bisher habe ich ein einziges Gesicht gemacht (das blaue). der Plan ist, 14 Zifferblätter zu machen! 7 Gesichter für den Wochentag und weitere 7 als weiteres Thema. da das erste Thema mit Azkar-Rollen sein soll, und das andere Thema soll islamische GIFS anstelle des Azkar haben. Unabhängig davon werde ich alle Designs in diesem anweisbaren einschließen, damit Sie es herunterladen können.

Schritt 14: Kapitel 5: Implementieren einer Benutzeroberfläche

Kapitel 5: Implementieren einer Benutzeroberfläche
Kapitel 5: Implementieren einer Benutzeroberfläche

Im letzten Kapitel unserer Reise werden wir einige optionale Änderungen vornehmen, um das Projekt noch benutzerfreundlicher zu machen, falls wir das Projekt in einer Moschee oder an einem öffentlichen Ort implementieren möchten. Wie bereits erwähnt, hat jede Stadt ihren eigenen Zeitplan für die Gebete.

Dazu verwenden wir eine Python-GUI-Bibliothek namens "TKinter".

Dies ist der Code, den ich implementiert habe, um mir die Wahl zwischen fünf Städten in Saudi-Arabien zu geben, einschließlich Mekka:

tkinter als tk importieren

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 = 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, columnspan = 2, sticky = W+E+N+S) self.button2.grid(row = 1, column = 1, columnspan = 2, sticky = W+E+N+S) self.button3.grid(row = 2, column = 1, columnspan = 2, sticky = W+E+N+S) self.button4.grid(row = 3, column = 1, columnspan = 2, sticky = W+E+N+S) self.button5.grid(Zeile = 4, Spalte = 1, Spaltenspanne = 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()

Der Code sieht vielleicht groß aus, aber die Bearbeitung ist sehr einfach. Wir haben im Grunde ein neues Fenster erstellt, fünf Namenstasten eingefügt und fünf Funktionen definiert, die bei jedem Tastendruck aufgerufen werden. Sobald Sie die Schaltfläche drücken, öffnet das Programm die entsprechende HTML-Datei im Cities-Ordner, in der jeder Stadt-HTML die Stadtkoordinaten hat, wenn es die Zeit von bettimes() erhält. Sobald Sie die Taste drücken, führt der Python-Code einen Linux-Code aus, in dem die HTML-Datei mit dem Chromium-Browser geöffnet wird, und Sie haben das Zifferblatt mit aktivierter Vollbildoption zur Anzeige bereit.

Schritt 15: (Optional): Hinzufügen eines Lautsprecherschalters

(Optional): Hinzufügen eines Lautsprecherschalters
(Optional): Hinzufügen eines Lautsprecherschalters
(Optional): Hinzufügen eines Lautsprecherschalters
(Optional): Hinzufügen eines Lautsprecherschalters

Wie wir gesehen haben, kommt zur Gebetszeit der Azan-Sound, und der Ton kommt aus dem Standard-Tonausgang (HDMI- oder AV-Ausgang) und da wir ihn auf den HDMI-Ausgang legen, kommt der Ton vom LCD. aber was ist, wenn unser LCD-Sound nicht ausreicht? Was ist zum Beispiel, wenn wir dies in einer echten Moschee umsetzen wollen? mit breiten Außenlautsprechern? dann können wir noch einen SEHR einfachen Schritt hinzufügen, um dies zu erreichen. Für ein bereits gebautes Lautsprecher-Soundsystem müssen wir es nur ein- und ausschalten und das bereits vorhandene Mikrofon neben die LCD-Lautsprecher stellen.

Dies ist einfach. Wir werden das bereits vorhandene Moschee-Mikrofon verwenden, das an den Lautsprecher angeschlossen ist. Wir benötigen nur den RaspberryPi, um die Stromversorgung zu steuern, die das gesamte Soundsystem ein- und ausschaltet. Dazu benötigen wir ein SSR: SOLID STATE RELAY. Diese Arten von Relais können als Schalter fungieren, ähnlich wie das durchschnittliche blaue Relais, der Unterschied besteht darin, dass SSRs einer großen Menge an Wechselstrom standhalten können, was bei den blauen nicht anwendbar ist (normalerweise max 10A), und die SSRs benötigen nur zwei Adern statt 3: DC+ und DC- und das war's! Am anderen Ende des SSR können wir das Netzkabel des Lautsprechersystems anschließen. Wenn wir dem SSR also Spannung geben, schließt es den Wechselstromkreis des Lautsprechersystems oder wir schalten die Spannung ab, um einen offenen Stromkreis herzustellen. Ausschalten der Lautsprecher.

Es gibt einen Haken, die RaspberryPi-Pins geben 3,3 V aus, nicht 5 V, die wir zur Steuerung des SSR benötigen. Wir brauchen also einen Transistor, um das Signal vom RPi-Pin und 5V vom RPi-5V-Pin zu nehmen. dazu brauchen wir:

1-Solid-State-Relais (alles über 25A ist gut)

2-2n2222 npn-Transistor

3-220 Ohm Widerstand

Folgen Sie der Fritzing-Schaltung für den Anschluss.

Jetzt werden wir im Code einige Dinge hinzufügen, die dies ermöglichen. Zuerst fügen wir vor der while-Schleife einige Zeilen hinzu, um die GPIO-Pins zu initialisieren:

Fügen Sie im Importabschnitt Folgendes hinzu:

RPi. GPIO als GPIO importieren

Fügen Sie vor der while-Schleife hinzu:

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

Jetzt müssen wir in der while-Schleife für jeden Azan-Abspielbefehl das Relais einschalten, 10 Sekunden warten, das Abspielen des Azan beenden und dann das Relais ausschalten. Wir müssen nur zwei Zeilen hinzufügen, die erste lautet:

GPIO.output (ledPin, GPIO. HIGH)

Zeit. Schlaf(10)

diese sollte nach jeder if-Anweisung hinzugefügt werden (IDENTATION IS WICHTIG!), die andere Zeile lautet:

GPIO.output (ledPin, GPIO. LOW)

Dieser sollte nach der Zeile "Weiter" hinzugefügt werden. es sollte für jede Azan-Zeit so aussehen:

if 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: weiter GPIO.output(ledPin, GPIO. LOW)

Empfohlen: