Indholdsfortegnelse:

RaspberryPi Islamic Prayers Watch & Alarm: 15 trin (med billeder)
RaspberryPi Islamic Prayers Watch & Alarm: 15 trin (med billeder)

Video: RaspberryPi Islamic Prayers Watch & Alarm: 15 trin (med billeder)

Video: RaspberryPi Islamic Prayers Watch & Alarm: 15 trin (med billeder)
Video: Melodious Recitation of Ayatul Kursi | Islam Sobhi | القارىء إسلام صبحي 2024, Juni
Anonim
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm

Muslimer rundt om i verden har fem bønner hver dag, og hver bøn skal være på et bestemt tidspunkt på dagen. på grund af den elliptiske måde, hvorpå vores planet bevæger sig rundt om solen, hvilket gør, at solen stiger og falder, varierer timerne i løbet af året, hvilket også gør bedetiden inkonstant, hvorfor vi har brug for et islamisk ur for at minde os muslimer om vores bedetider hver dag.

Hver muslim har en måde at få adgang til de daglige bedetider vejr via Internettet islamiske websteder, lokale islamiske kalendere eller endda via tv, og de fleste af os har islamiske urenheder, der har funktionerne til at give os bønnetiderne samt bønalarmer. Men hvad nu hvis vi lavede vores eget Prayers Watch og Alarm -apparat!

Inden du begynder at arbejde med projektet, er der få overvejelser, som du kan være nyttig for dig, mens du læser denne Instructable. Jeg bor i Saudi -Arabien, så nogle af mine trin og værdier vil afvige fra dine, og jeg vil eksplicit pege dem under arbejdet. Der er trin og billeder, der kan omfatte arabiske ord, siden jeg lavede grænsefladen på arabisk, men jeg vil også påpege, hvordan man laver det på engelsk, så lad ikke de arabiske ord på billederne bekymre dig overhovedet, dette projekt kan være gjort på ethvert sprog (hvilket er fantastisk!: D) Undskyld også venligst mine stavefejl, da engelsk ikke er mit første sprog.

Videre til vores projekt! Dette projekt vil blive opdelt i X Major -trin, som vi ved slutningen af Xth -trin skal have vores projekt pænt og klart! Trinene vil være som følger:

1-Konfiguration og forberedelse af RaspberryPi

2-Installation af RTC-modulet

3-Lav Azan Alarm-programmet

4-Implementering af urskiverne

5-Lav brugergrænsefladen og

Som ethvert projekt skal vi først forberede de dele, vi har brug for. de dele, vi har brug for til dette projekt, er:

1-RaspberryPi Computersæt Amazon USA || Amazon KSA

Du kan bruge enhver Rpi -version, bare sørg for, at den har Wifi. Jeg brugte Rpi3B+

2-RTC Real-time ur modul Amazon USA || Amazon KSA

Du kan bruge enhver RTC -modulmodel, bare sørg for, at den har I2C

3-LCD-skærm

Enhver LCD vil gøre

4-mus og tastatur

og det er det!! Det er alt hvad du behøver for at lave dit eget Azan -ur og alarm

Trin 1: Kapitel 1: Opsætning og konfiguration af RaspberryPI

Kapitel 1: Opsætning og konfiguration af RaspberryPI
Kapitel 1: Opsætning og konfiguration af RaspberryPI

Første ting først! Vi skal forberede Raspberry pi for at arbejde med det.

Hindbær pi er intet andet end en computer, den har RAM og ROM, den har en CPU, GPU, I/O ……. En computer! ligesom den vi spiller spil på og surfer på nettet med, kun vigtigt at den er meget lille! hvilket gør hindbær til et meget godt valg til at lave og gennemføre projekter på. fordi hindbær pi er lille, har den meget begrænsede specifikationer for, at den ikke kan betjene et stort krævende OS som windows eller macOS, i stedet vil vi bruge Linux som et operativsystem for at bruge enheden. der er tusinder, hvis ikke titusinder af Linux distros, som vi kunne bruge, men en perfekt distro er perfekt optimeret specifikt til de raspberrypi, som vi skal bruge, kaldet Raspbian.

Trin 2: 1-1: Download de nødvendige filer

1-1: Download de nødvendige filer
1-1: Download de nødvendige filer
1-1: Download de nødvendige filer
1-1: Download de nødvendige filer
1-1: Download de nødvendige filer
1-1: Download de nødvendige filer

-Gå til den officielle Rasbian Download-side på https://www.raspberrypi.org/software/operating-sy … og download Raspberry Pi OS med desktopfil

-Mens det downloades, skal du gå til https://win32diskimager.org/ og downloade og installere win32DiskImager, kan du bruge enhver billedbrændingssoftware, du kan lide

Når overførslen er udført, har du en.img -fil, der indeholder RaspberryPi OS. Slut derefter dit SD -hukommelseskort til computeren (normalt med en USB -kortlæser) og start win32diskimager -software. trinene til at brænde billedet ind i SD-hukommelsen er meget enkle, du skal bare 1- Vælg dit hukommelsesbogstav 2-vælg dine OS-filer, du har downloadet, og skriv 3-klik! Sørg for, at du har valgt det rigtige enhedsbogstav fra listen, og din hukommelse er tom, da du ved at trykke på skrive bliver promoveret med en advarsel, der fortæller dig, at alt på enheden vil blive slettet! Tryk på ja for at bekræfte skrivningen, og vent på, at den er færdig. dette kan tage op til 20 minutter.

Når det er gjort, har du det fulde Rapbian OS på hukommelsen, du kan fortsætte og lægge det i Rapberry Pi, slutte Raspberry Pi til skærmen via HDMI, tilslutte musen og tastaturet via USB og til sidst tilslutte strøm.

Trin 3: 1-2: Konfiguration af Raspbian-systemet

Efter tilslutning af kablerne og strømmen ser du, at operativsystemet er tændt, det genstarter automatisk, og derefter viser det Raspbian -brugergrænsefladen (som ligner windows). det første, du vil se, er et velkomstvindue, som tager dig igennem trinene med at konfigurere din RaspberryPi for første gang. vinduer og trin vil være som følger:

1-Tryk på næste i det første "Velkommen" -vindue

2-Næste vindue er at konfigurere din placering. vælg dit land, sprog og tidszone. derefter anbefales det stærkt at kontrollere "Brug engelsk sprog", da dette vil være operativsystemets grænsefladesprog. DU SKAL KONTROLLERE "US ENGLISH TASTATURLAYOUT BOX" VI BEHØVER ENGELSK TASTATUR TIL AT ARBEJDE!

3-Dernæst bliver du bedt om at indtaste en adgangskode til din hindbær, dette er vigtigt for sikkerheden, men vi vil efterlade det uændret for dette projekt. Bemærk, at standardbrugernavn og adgangskode er:

brugernavn: pi

adgangskode: hindbær

4-Næste vindue forbinder raspberryPi til dit WiFi-netværk. vælg dit wifi -navn og indtast dit wifi -kodeord

5-næste, bliver du bedt om at opdatere hindbær pi biblioteker og systemfiler. dette trin vil tage en enorm mængde tid (måske om timer), men det er et meget vigtigt skridt til hver gang en ny hindbærpi bliver sat op.

6-når opdateringen er udført, bliver du bedt om at genstarte systemet. gør det nu.

Flot arbejde! Nu har vi et opdateret system, vi mangler stadig at gøre nogle flere ting for at konfigurere systemet til at fungere, men nu begynder vi at bruge LinuxCommand Line.

Trin 4: 1-3: Brug kommandolinjen til at konfigurere Rpi-indstillinger

1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger
1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger
1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger
1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger
1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger
1-3: Brug af kommandolinjen til at konfigurere Rpi-indstillinger

Når du er færdig med at genstarte fra systemopdateringen, viser systemet brugerens skrivebord, når det er startet. nu hvis du ser øverst til venstre på skærmen, finder du nogle knapper, En knap med raspberryPi Logo, som er Rpi-menuknappen, en globusform, som er internetbrowseren, en mappeknap, der er …..mapper og endelig en knap med et sort skærmvindue, som er den vigtigste knap i ethvert linux -system, kommandolinjen. Fortsæt og tryk på den knap, du vil se et sort vindue dukke op.

Kommandolinjen er, hvordan alle interagerer og bruger linux -systemet, ligesom windows kun har sin egen kommandolinje i enker, vi ikke behøver at bruge det særlig ofte. i linux er det det grundlæggende, hver linux -bruger skal lære og mestre. kommandolinjen kan bruges af ….. KOMMANDOER! hvad du ser i det sorte vindue er kommandoprompten, der venter på, at kommandoen skal skrives af brugeren og udføres. i denne vejledning giver vi al den kommando, du har brug for for at udføre dette projekt, så bare rolig.

den allerførste Linux -kommando, vi skal bruge, er en anden konfigurationskommando. Bemærk, at alle kommandoer fra nu af vil blive placeret i en kodeboks, så du kan differentiere den fra almindelige trin. Tag dit tastatur med, og skriv følgende, og tryk på enter:

sudo raspi-config

Hvis du gør det korrekt, vil du se, at skærmen blev blå, med grå lille boks i midten (se billede). vi vil bruge det til at lave vores endelige konfiguration, før vi begynder at kode.

nu skal du bruge dine tastaturpiletaster til at navigere i denne menu.

1-Gå til grænsefladeindstillinger >> I2C >> JA >> tryk enter. dette aktiverer I2c kommunikationsprotokollen, så vi kan bruge RTC

2-Gå til Avancerede indstillinger >> Udvid filsystemet.

og det er al den konfiguration, du har brug for fra dette vindue. på hovedsiden, skal du gå ned og trykke enter på "afslut" og "JA" for at genstarte systemet.

Når systemet er færdig med at genstarte, er vi alle færdige med at konfigurere! enheden er klar til de store trin! Det næste trin vil være at installere RTC -modulet og bruge det med systemet.

Trin 5: Kapitel 2: Montering, konfiguration og brug af RTC -modulet

Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet
Kapitel 2: Montering, konfiguration og brug af RTC -modulet

RTC (eller Real-Time Clock) modul er en lille enhed, der har et lille batteri på, den gør hvad navnet antyder, Clocking! så når du frakobler det til strøm, fortsætter uret og stopper ikke. hvorfor har vi brug for dette? Nå, hindbær pi har virkelig ingen metode til at gemme urdata, når den er slukket, den er afhængig af at oprette forbindelse til internettet ved opstart for at opdatere dato og klokkeslæt, men problemet er, at vi ikke altid har internetadgang, og dette derfor har vi brug for RTC -modulet. RTC vil fungere som et ur for hindbær pi, så når Rpi er startet vil det tage dato og klokkeslæt fra RTC, der vil holde RaspberryPi -tiden opdateret hele tiden.

der er flere modeller og ser efter RTC, der er DS1307 og DS3231. du kan bruge ethvert RTC -modul, du finder, så længe det har I2C -protokolkommunikation (du kan angive, at dette er, at du kan finde SDA- og SCL -ben på modulstifterne.

ligesom alt i denne vejledning, brugte jeg andre guider til at nå mit mål i projektet, denne instruktive vil guide dig og fortælle dig præcis, hvad du skal gøre for at lave dette projekt, men hvis du har brug for at ændre eller du har brug for mere dybde i nogen af de trin, vil jeg linke den mere frugtbare guide i slutningen af hvert trin.

Når du har fået dit RTC -modul klar (lod lodderapperne og sæt batteriet på), kan du slutte det til RapberryPi -benene som følger:

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

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

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

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

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

eller afhængigt af hvilket RTC -modul du har, kan du montere det direkte på RaspberryPi (Sørg for at benene er korrekte !!! da du kan beskadige Rpi/RTC hvis ikke)

Når du har tilsluttet RTC, lad os konfigurere hindbæret.

Trin 6: 2-1: Opsætning af modul

2-1: Modulopsætning
2-1: Modulopsætning
2-1: Modulopsætning
2-1: Modulopsætning

Inden du starter, skal du gå til kommandolinjen og skrive:

dato

Dette vil give den aktuelle dato og klokkeslæt tilbage på Raspberry, notere den meget nyttige kommando og notere den aktuelle dato og klokkeslæt, så vi kan kontrollere, hvornår modulet fungerer eller ej.

lad os nu begynde opsætningen, skriv følgende for at opdatere Rpi -bibliotekerne, en linje ad gangen:

sudo apt-get opdatering

sudo apt -get -y opgradering

Når det er gjort, skal vi ændre systemfiler for at aktivere i2c -modul og tilføje RTC, for at ændre et filsystem skal vi bruge en software kaldet Nano. nano er en let indbygget software, der grundlæggende er en tekstredigerer, ligesom den i enker. så enhver kommando, der starter med nano efterfulgt af filnavnet, åbner filen i nano -teksteditor. du har bemærket, at vi også brugte noget, der hedder Sudo, kort sagt, sudo fungerer som en sikkerhed for linux -systemet, der fortæller systemet, at brugeren, der lavede denne kommando, er enhedsejeren, ikke en anden, og giver privilegier som redigering/ slette til brugeren. for eksempel, hvis vi åbnede en nano -fil uden sudo, ville vi kunne se den fil, men vi kan ikke redigere den eller slette den.

nu skal vi ændre modulfilen, vi kan gøre dette ved at skrive:

sudo nano /etc /modules

Når du gør det, finder du indholdet i den fil (se billede). Brug piletasterne til at sætte markøren i slutningen af teksten, og tilføj følgende:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

tryk på CTRL+S for at gemme, og CTRL+X for at afslutte

Trin 7: 2-2: I2C-grænseflade

2-2: I2C-grænseflade
2-2: I2C-grænseflade

Nu har vi tilsluttet RTC og aktiveret i2c, lad os forbinde alt sammen.

skriv følgende i kommandoprompten:

i2cdetect -y 1

du får en række blanke emner, men du vil bemærke, at der er et tal et eller andet sted, dette nummer er din RTC -moduladresse. i mit tilfælde er det 68. notér det nummer. hvis du ikke kan se det tocifrede nummer, betyder det, at du sandsynligvis har forbundet RTC forkert.

nu skal vi ændre rc.local -filen, så vi kan aktivere RTC -modulet ved opstart og lade det gemme dato og klokkeslæt i systemet. Åbn først filen rc.local:

sudo nano /etc/rc.local

Før exit0 -linjen tilføjes følgende:

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

hwclock -s

hvor 0x68 er din enheds i2c -adresse. når du er færdig, skal du trykke på CTRL+S CTRL+X, derefter genstarte dit system ved at:

sudo genstart

Trin 8: 2-3: Test af RTC

2-3: Test af RTC
2-3: Test af RTC

Når systemet er genstartet, kan vi kontrollere vejret, RTC fungerer eller ej. Kør først:

sudo hwclock -r

du får dato og klokkeslæt tilbage på RTC -modulet. Hvis du får noget andet, skal du sørge for at have udført trinene korrekt.

nu, for at ændre klokkeslæt og dato på RTC, skal vi først ændre dato og klokkeslæt på systemet, og derefter skrive ændringerne til RTC. for at gøre det, kør:

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

og selvfølgelig ændre dato og klokkeslæt i henhold til din lokale tid og dato, inden du trykker på enter. Når du får tiden på Rpi til højre, skal du køre følgende for at gemme dato og klokkeslæt på RTC:

sudo hwclock -w

aaaaand det er det! du kan kontrollere, om det fungerer ved hwclock -r og se, om datoen på RTC er korrekt eller ej, derefter afbryde rpi fra internettet og derefter slukke det i et stykke tid og derefter tænde det igen og se, om det har det korrekte tid og dato. du er færdig!

Fuld vejledning til opsætning af RTC -modul kan findes her

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

Trin 9: Kapitel 3: Oprettelse af Azan Alarm Program

Kapitel 3: Lav Azan Alarm Program
Kapitel 3: Lav Azan Alarm Program

at lave et ur er en ting, helt sikkert, vi kan se på uret og bedetiderne og se, hvornår tiden kommer, men ville ikke være endnu MEGET bedre, hvis vi kunne tilføje en lydalarm for at underrette os om bønnetiderne? SELV BEDRE laver vi den alarm som lyden af AZAN! lad os se, hvordan vi kan opnå dette.

til vores programmering kommer vi til at bruge python som vores foretrukne programmeringssprog, da python passer perfekt til RaspberryPi. For at lave en kodefil i python gør vi det samme som at åbne en tekstfil, men nu gemmer vi den som.py. for at køre programmet, har vi brug for installeret python -miljø af raspbery, heldigvis kommer Raspbian med python og python3 forudinstalleret! så alt hvad vi skal gøre er at programmere. i denne guide vil vi ikke tale om sproget og lære, hvordan det fungerer og funktionerne, men jeg vil give dig de nødvendige koder, så du kan lave projektet.

For at starte har vi brug for en lydfil med vores foretrukne azan-lyd (i. WAV), vi har brug for to filer, en til al-fajr azan og en anden til almindelig azan. når du får det, skal du lægge det på et stick -drev og kopiere det på skrivebordet på raspberrypi.

nu har vi filerne, jeg ledte efter en måde at afspille lydbånd på raspberryPi og til min overraskelse var der ikke mange måder vi kunne gøre dette på, men jeg fandt dette svar på stackoverflow, der gav mig det, jeg havde brug for

stackoverflow.com/questions/20021457/playi…

Jeg testede den metode, og det virkede! så lad os se, hvordan vi kan implementere denne metode i vores projekt …

Trin 10: 3-1: Lad os afspille en lyd

3-1: Lad os afspille en lyd!
3-1: Lad os afspille en lyd!

Først skal du navigere til skrivebordet efter:

cd Desktop

lav derefter en ny python -kodefil ved at:

sudo nano AzanPlay.py

dette vil lave en ny fil kaldet AzanPlay med udvidelsen på en python -fil.py, vi har en tom sort skærm, så vi kan skrive vores kode. skriv blot disse linjer ned (pas på ikke at ændre indrykk eller mellemrum, da dette er ekstremt vigtigt i python):

fra pygame import mixer

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt

Hvor / Desktop / er hvor du lægger dine lydfiler i, og 'Adhan-Makkah.wav' er min lydfil, som er Azan-lydoptagelsen i makkah.

nu for at teste vores kode, kører vi den med python ved at skrive:

python AzanPlay.py

og du får lyden til at visne fra din HDMI LCD eller din AUX -port, der er på Raspberrypi. hvis du ikke hører det fra LCD -højttalerne, skal du sætte en hovedtelefon i AUX'en og kontrollere.

Trin 11: 3-2: Få bønnetider

3-2: Få bønnetider
3-2: Få bønnetider

Som vi ved, er bønnetider forskellige fra et sted på jorden til et andet, og selv for et bestemt sted adskiller det sig gennem årene, det betyder, at vi skal finde en måde at holde vores bønnetider i systemet opdateret hele tiden, og til det har vi brug for specifikke og meget komplekse funktioner og beregninger for at få det rigtigt. Heldigvis har vores bror Hamid Zarrabi-Zadeh gjort alle de funktioner, vi har brug for, til en funktion, som vi let kan bruge til at få tiden afhængigt af vores placering og nuværende tid, FANTASTISK! du kan finde biblioteket og kildefiler på

praytimes.org/

Så vi kommer til at bruge disse fantastiske filer til at få vores bønnetider og implementere det i systemet. Først skal du downloade koderne fra webstedet og lægge det i en / adhan / mappe (vi har brug for både JS- og Python -koderne).

nu, lad os gå til den mappe og teste biblioteket, og hvad det kan gøre:

cd adhan

der skal vi lave en ny testfil i python, så vi kan teste funktionen:

sudo nano testAd.py

indeni, skriv denne kode ned:

importer bedetider

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

Inden du gemmer filen, skal du ændre LATITUDE med din placering Latitude, samme med LONGTITUDE og ændre GMT til din tidszone. i mit tilfælde vil det være:

tmm = bidtider. PrayTider (). getTimes (dato. i dag (), [21.3236, 39.1022], 3)

tryk (tmm)

Endelig CTRL-S og CTRL-X og derefter køre koden:

python testAd.py

endelig får du dine bønnetider tilbage for i dag, for din placering.

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

Store! nu hvor vi har vores bønnetid, og vi nu ved, hvordan vi spiller lyde, lad os flette disse to koder sammen til en hovedkode.

Trin 12: 3-3: Lav den sidste Azan-alarmkode

ved at afslutte de to foregående koder lærte vi, hvordan vi får de nøjagtige bønnetider i henhold til vores placering, og hvordan man spiller Azan -lyden. nu vil vi flette disse to koder til en kode, som vi skal bruge som vores sidste projekt, og denne kode vil arbejde på baggrunden, som når Azan -tiden kommer, vil den afspille Azan -lyden.

Jeg har skrevet hele koden, du kan kopiere den og indsætte den og foretage dine egne ændringer, som du finder passende. Koden er:

importtid

fra pygame importmixer import streng import bedetider fra datetime import dato mens (1): tmm = praytimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3) FAJR = tmm ['fajr'] DHUHR = tmm ['dhuhr'] ASR = tmm ['asr'] MAGHRIB = tmm ['maghrib'] ISHA = tmm ['isha'] tempT = time.strftime (str ('%H')) currTime = tempT tempT = time.strftime (str ('%M')) currTime = currTime + ':' + tempT if currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt hvis currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt hvis currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt hvis currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt hvis currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mens mixer.music.get_busy () == True: fortsæt

Hvis du ser på koden og sammenligner den med det, vi tidligere lavede, vil du se, at vi ikke gjorde meget nyt, først inkluderede vi vores nødvendige biblioteker, og derefter åbnede vi en uendelig loop. i sløjfen beregner vi konstant bønnetiden med vores placering og tidszone og lagrer hele resultatet i variabel tmm. derefter gemmer vi hver bønnetid fra tmm til en uafhængig variabel. det giver os mulighed for at sammenligne tider. derefter tager vi systemtiden og gemmer den i en uafhængig variabel. endelig fortsætter vi med at sammenligne systemtiden med bønnetiderne, hvis systemtiden matcher nogen af bønnetiderne, afspiller den Azan -lyden.

Trin 13: Kapitel 4: Implementering af urskiverne

Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne
Kapitel 4: Implementering af urskiverne

For at få projektet til at se bedre ud, havde jeg ideen om at tilføje urskiver til LCD'en, så det ser godt ud til brugeren (ja, bedre end kommandolinjen i hvert fald), så jeg har hyret en designer til at designe flere ansigter til uret, det skal være tomt uden data, da dataene skal tilføjes via HTML, hvilket gør urets design som baggrund, og de andre data, f.eks. bønnetider, kan tilføjes som HTML -elementer oven på baggrunden.

Desværre er min viden og erfaring i HTML, da jeg skrev denne instruktion i stand, meget begrænset, så jeg vil ikke diskutere mange detaljer, fordi jeg ved, at jeg vil gøre tingene på en forkert måde, og det gør jeg ikke vil forvirre folk. men hvis du selv har en lille erfaring med JS og HTML, bør du vide, hvordan du fortsætter fra dette punkt. hidtil har jeg lavet et enkelt ansigt (det blå). planen er at lave 14 urskiver! 7 ansigter til hverdag i ugen og yderligere 7 som et andet tema. som det første tema skulle være med Azkar rullende, og det andet tema skulle have islamiske GIFS i stedet for Azkar. Uanset hvad vil jeg inkludere alle designs i denne instruktive, så du kan downloade det.

Trin 14: Kapitel5: Implementering af en brugergrænseflade

Kapitel5: Implementering af en brugergrænseflade
Kapitel5: Implementering af en brugergrænseflade

I det sidste kapitel af vores rejse vil vi foretage nogle valgfrie ændringer for at gøre projektet endnu brugervenligt, hvis vi ønsker at gennemføre projektet i en moské eller et offentligt sted. som vi sagde før, hver by har sin egen timing for bønner, og for at gøre dette projekt tilgængeligt for en bredere gruppe mennesker, laver vi en brugergrænseflade, så vi kan vælge vores ønskede by og tema, når vi får gang i projektet.

For at gøre dette skal vi bruge et python GUI -bibliotek kaldet "TKinter".

Dette er den kode, jeg har implementeret for at give mig valget mellem fem byer i Saudi -Arabien, herunder Makkah:

importer tkinter som tk

fra tkinter import * fra 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 = Knap (selv, tekst = "Jeddah", højde = 5, bredde = 80, kommando = self.open_jeddah1) self.button2 = Knap (selv, tekst = "Makkah", højde = 5, bredde = 80, kommando = self.open_makkah1) self.button3 = Knap (self, tekst = "Riyadh", højde = 5, bredde = 80, kommando = self.open_riyadh1) self.button4 = Knap (self, tekst = "Madina", højde = 5, bredde = 80, kommando = self.open_madina1) self.button5 = knap (selv, tekst = "Qasim", højde = 5, bredde = 80, kommando = self.open_qasaim1) self.button1.grid (række = 0, kolonne = 1, søjlepanel = 2, klæbrig = W+E+N+S) self.button2.grid (række = 1, kolonne = 1, søjlepanel = 2, klæbrig = W+E+N+S) self.button3.grid (række = 2, kolonne = 1, søjlepanel = 2, klæbrig = W+E+N+S) self.button4.grid (række = 3, kolonne = 1, søjlepanel = 2, klæbrig = W+E+N+S) self.button5.grid (række = 4, kolonne = 1, spalteområde = 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 (rækkefølge) 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 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (ordre) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (ordre) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (ordre) def main (): karl (). mainloop () hvis _name_ == '_main_': main ()

Koden ser måske stor ud, men det er meget let at redigere den. vi lavede stort set et nyt vindue, satte fem navne knapper og definerede fem funktioner, der skal kaldes på ved hvert tryk på knappen. når du trykker på knappen, åbner programmet den tilsvarende HTML -fil i Cities -mappen, som hver by -HTML har bykoordinaterne, når det får tiden fra bedetider (). Når du trykker på knappen, vil python -koden udskifte en linux -kode, hvor den åbner HTML -filen ved hjælp af chrombrowseren, og du har urskiven klar til visning, med fuldskærmsmulighed slået til.

Trin 15: (Valgfrit): Tilføjelse af en højttalerkontakt

(Valgfrit): Tilføjelse af en højttalerkontakt
(Valgfrit): Tilføjelse af en højttalerkontakt
(Valgfrit): Tilføjelse af en højttalerkontakt
(Valgfrit): Tilføjelse af en højttalerkontakt

Som vi så, når bønnetiden kommer, afspilles Azan -lyden, og lyden kommer ud af standardlydudgangen (HDMI- eller AV -udgang), og da vi sætter den på HDMI -udgang, kommer lyden fra LCD'et. men hvad nu hvis vores LCD -lyd ikke er nok? for eksempel, hvad hvis vi vil implementere dette inde i en rigtig moske? med brede udvendige højttalere? så kan vi tilføje endnu et MEGET nemt trin for at opnå det. for et allerede bygget højttalersystem, behøver vi kun at tænde og slukke det, og tage den allerede eksisterende mikrofon og sætte den ved siden af LCD -højttalerne.

Det er let at gøre det. vi vil bruge den eksisterende moskémikrofon, der er tilsluttet højttaleren, vi skal bare bruge raspberryPi til at styre strømmen, der tænder og slukker hele lydsystemet. For at gøre det skal vi bruge et SSR: SOLID STATE RELAY. disse typer relæer kan fungere som en switch, ligesom det gennemsnitlige blå relæ, forskellen er, at SSR'er kunne modstå en stor mængde AC -strøm gennem det, hvilket ikke er relevant i de blå (normalt maks. 10A), og SSR'erne har brug for kun to ledninger i stedet for 3: DC+ og DC- og det er det! i den anden ende af SSR kan vi tilslutte højttalersystemets strømkabel, på den måde, når vi giver spænding til SSR, vil det lukke AC -kredsløbet i højttalersystemet, eller vi lukker spændingen for at lave et åbent kredsløb, slukke for højttalerne.

der er en fangst, RaspberryPi -stifterne leverer 3.3v, ikke 5v, som vi har brug for for at styre SSR. så vi har brug for en transistor for at tage signalet fra RPi -stiften og 5V fra RPi 5v -stiften. for at gøre det har vi brug for:

1-solid state relæ (alt over 25A er godt)

2-2n2222 npn transistor

3-220ohm modstand

følg fritz -kredsløbet for tilslutning.

nu i koden tilføjer vi nogle ting, der får dette til at fungere. Først vil vi tilføje nogle linjer før while -sløjfen for at initialisere GPIO -benene:

I importafsnittet skal du tilføje:

importer RPi. GPIO som GPIO

Inden while -løkken tilføjes:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Falsk) relæ = 40 GPIO.setup (ledPin, GPIO. OUT)

Nu, imens loop, for hver afspilning Azan -kommando, skal vi tænde relæet, vente i 10 sekunder, afslutte afspilningen af Azan og derefter slukke for relæet. vi behøver kun at tilføje to linjer, den første er:

GPIO.output (ledPin, GPIO. HIGH)

tid. sover (10)

denne skal tilføjes efter hver if -sætning (IDENTATION ER VIGTIG!), den anden linje er:

GPIO.output (ledPin, GPIO. LOW)

Denne skal tilføjes efter linjen "fortsæt". det skal se sådan ud for hver Azan -tid:

hvis currTime == FAJR:

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

Anbefalede: