Innehållsförteckning:

RaspberryPi Islamic Prayers Watch & Alarm: 15 steg (med bilder)
RaspberryPi Islamic Prayers Watch & Alarm: 15 steg (med bilder)

Video: RaspberryPi Islamic Prayers Watch & Alarm: 15 steg (med bilder)

Video: RaspberryPi Islamic Prayers Watch & Alarm: 15 steg (med bilder)
Video: Prayer Times Display Alarm Using RaspberryPi with 50 Inch LED Display 2024, Juni
Anonim
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm

Muslimer runt om i världen har fem böner varje dag, och varje bön måste vara under en viss tid på dagen. på grund av det elliptiska sättet som vår planet rör sig runt solen, vilket gör att solen stiger och faller tider varierar under året, det gör också att bönstiden är inkonstant, varför vi behöver en islamisk klocka för att påminna oss muslimer om våra bettider varje dag.

Varje muslim har ett sätt att få tillgång till de dagliga bettiderna via islamiska internetwebbplatser, lokala islamiska kalendrar eller till och med via TV, och de flesta av oss har islamiska klockanordningar som har funktionerna att ge oss bönetiderna, liksom bönelarm. Men tänk om vi gjorde vår egen Prayers Watch and Alarm -enhet!

Innan du börjar arbeta med projektet finns det få överväganden som du kan ha nytta av när du läser denna instruktionsbok. Jag bor i Saudiarabien så några av mina steg och värderingar kommer att skilja sig från dina, och jag kommer att uttryckligen peka på dem under arbetet. Det finns steg och bilder som kan innehålla arabiska ord sedan jag gjorde gränssnittet på arabiska, men jag kommer också att påpeka hur man gör det på engelska så låt inte de arabiska orden i bilderna oroa dig alls, det här projektet kan vara gjort på alla språk (vilket är fantastiskt!: D) Ursäkta också mina skrivfel eftersom engelska inte är mitt första språk.

Till vårt projekt! Detta projekt kommer att delas in i X Major -steg, som i slutet av Xth -steget kommer att ha vårt projekt snyggt och klart! Stegen kommer att vara följande:

1-Konfigurera och förbereda RaspberryPi

2-Installera RTC-modulen

3-Gör Azan Alarm-programmet

4-Implementera urtavlorna

5-Gör användargränssnittet och.

Som alla projekt måste vi förbereda de delar vi behöver först. delarna som vi behöver för detta projekt är:

1-RaspberryPi-datorsats Amazon USA || Amazon KSA

Du kan använda vilken Rpi -version som helst, se bara till att den har Wifi. Jag använde Rpi3B+

2-RTC klockmodul i realtid Amazon USA || Amazon KSA

Du kan använda vilken RTC -modulmodell som helst, se bara till att den har I2C

3-LCD-skärm

Vilken LCD -skärm som helst

4-mus och tangentbord

och det är allt!! Det är allt du behöver för att skapa din egen Azan -klocka och larm

Steg 1: Kapitel 1: Konfigurera och konfigurera RaspberryPI

Kapitel 1: Konfigurera och konfigurera RaspberryPI
Kapitel 1: Konfigurera och konfigurera RaspberryPI

Första sakerna först! Vi måste förbereda hallon pi för att kunna arbeta med det.

Hallon pi är inget annat än en dator, den har RAM och ROM, den har en CPU, GPU, I/O ……. En dator! precis som det vi spelar spel på och surfar på nätet med, bara det viktigaste att det är väldigt litet! vilket gör hallon till ett mycket bra val för att göra och genomföra projekt på. eftersom hallon pi är liten, har det mycket begränsade specifikationer att det inte kan hantera ett stort krävande operativsystem som Windows eller macOS, istället kommer vi att använda Linux som ett operativsystem för att kunna använda enheten. det finns tusentals om inte tiotusentals Linux -distros som vi kan använda, men en perfekt distro är perfekt optimerad specifikt för de hallonpiper som vi ska använda, kallad Raspbian.

Steg 2: 1-1: Ladda ner de nödvändiga filerna

1-1: Ladda ner de nödvändiga filerna
1-1: Ladda ner de nödvändiga filerna
1-1: Ladda ner de nödvändiga filerna
1-1: Ladda ner de nödvändiga filerna
1-1: Ladda ner de nödvändiga filerna
1-1: Ladda ner de nödvändiga filerna

-Gå till den officiella Rasbian-nedladdningssidan på https://www.raspberrypi.org/software/operating-sy … och ladda ner Raspberry Pi OS med skrivbordsfil

-Medan det laddas ner, gå till https://win32diskimager.org/ och ladda ner och installera win32DiskImager, du kan använda vilken bildbränningsprogramvara som helst

när nedladdningen är klar har du en.img -fil som innehåller RaspberryPi OS. Anslut sedan ditt SD -minneskort till datorn (vanligtvis med en USB -kortläsare) och starta win32diskimager -programvaran. stegen för att bränna bilden i SD-minnet är mycket enkla, du behöver bara 1- Välj minnesbokstav 2-välj dina OS-filer som du laddade ner och skriv 3-klick! Se till att du har valt rätt enhetsbokstav från listan och att ditt minne är tomt, eftersom genom att trycka på skrivare kommer du att marknadsföras med en varning som säger att allt på enheten kommer att raderas! Tryck på ja för att bekräfta skrivningen och vänta tills den är klar. detta kan ta upp till 20 minuter.

När det är klart har du hela Rapbian OS i minnet, du kan fortsätta lägga det i Rapberry Pi, ansluta Raspberry Pi till bildskärmen via HDMI, anslut musen och tangentbordet via USB och slutligen ansluta kraft.

Steg 3: 1-2: Konfigurera Raspbian-systemet

När du har anslutit kablarna och strömmen ser du att operativsystemet har slagit på, det startas om automatiskt och sedan visas Raspbian användargränssnitt (som liknar Windows). det första du ser är ett välkomstfönster som tar dig igenom stegen för att konfigurera din RaspberryPi för första gången. fönstren och stegen kommer att vara följande:

1-Tryck på nästa i det första "Välkommen" -fönstret

2-Nästa fönster blir att konfigurera din plats. välj ditt land, språk och tidszon. efter det rekommenderas det starkt att kontrollera "Använd engelska" eftersom detta kommer att vara operativsystemets gränssnittsspråk. DU MÅSTE KONTROLLERA "US ENGLISH KEYBOARD LAYOUT BOX" VI BEHÖVER ENGLISH KEYBOARD TO WORK!

3-Därefter blir du ombedd att ange ett lösenord för ditt hallon, detta är viktigt för säkerheten men vi kommer att lämna det oförändrat för detta projekt. Observera att standard användarnamn och lösenord är:

användarnamn: pi

lösenord: hallon

4-Nästa fönster kommer att ansluta raspberryPi till ditt WiFi-nätverk. välj ditt wifi -namn och ange ditt wifi -lösenord

5-nästa blir du ombedd att uppdatera Raspberry Pi-biblioteken och systemfilerna. detta steg kommer att ta mycket tid (kanske i timmar) men det är ett mycket viktigt steg för varje gång en ny hallon pi installeras.

6-när uppdateringen är klar kommer du att bli ombedd att starta om systemet. gör det nu.

Bra jobbat! Nu har vi ett uppdaterat system, vi behöver fortfarande göra några fler saker för att konfigurera systemet att fungera, men nu kommer vi att börja använda LinuxCommand Line.

Steg 4: 1-3: Använd kommandoraden för att ställa in Rpi-inställningar

1-3: Använd kommandoraden för att ställa in Rpi-inställningar
1-3: Använd kommandoraden för att ställa in Rpi-inställningar
1-3: Använd kommandoraden för att ställa in Rpi-inställningar
1-3: Använd kommandoraden för att ställa in Rpi-inställningar
1-3: Använd kommandoraden för att ställa in Rpi-inställningar
1-3: Använd kommandoraden för att ställa in Rpi-inställningar

När du har startat om från systemuppdateringen visar systemet skrivbordet när det är klart. nu om du tittar högst upp till vänster på skärmen hittar du några knappar, En knapp med raspberryPi-logotyp som är Rpi-menyknappen, en globform som är webbläsaren, en mappknapp som är …..mappar och slutligen en knapp med ett svart skärmfönster, som är den viktigaste knappen i alla Linux -system, kommandoraden. Fortsätt och tryck på den knappen, du ser ett svart fönster som dyker upp.

Kommandoraden är hur alla interagerar och använder Linux -systemet, precis som Windows har sin egen kommandorad bara i änkor behöver vi inte använda det särskilt ofta. i linux är det det grundläggande som varje linuxanvändare måste lära sig och behärska. kommandoraden kan användas av …. KOMMANDER! det du ser i det svarta fönstret är kommandotolken som väntar på att kommandot ska skrivas av användaren och köras. i den här guiden kommer vi att ge allt kommando du behöver för att utföra detta projekt, så oroa dig inte.

det allra första Linux -kommandot vi ska använda är ett annat konfigurationskommando, observera att alla kommandon från och med nu kommer att läggas in i en kodruta, så att du kan skilja det från vanliga steg. Ta med ditt tangentbord och skriv följande och tryck på enter:

sudo raspi-config

Om du gör det korrekt ser du att skärmen blev blå, med en liten grå ruta i mitten (se bild). vi kommer att använda det för att göra vår slutliga konfiguration innan vi börjar koda.

nu måste du använda dina tangentbordspiltangenter för att navigera i den här menyn.

1-Gå till gränssnittsalternativ >> I2C >> JA >> tryck enter. detta aktiverar I2c -kommunikationsprotokollet så att vi kan använda RTC

2-Gå till Avancerade alternativ >> Expandera filsystemet.

och det är all konfiguration du behöver från det här fönstret. på huvudsidan, gå ner och tryck enter på "avsluta" och "JA" för att starta om systemet.

När systemet har startat om är vi alla färdiga med att konfigurera! enheten är redo för de stora stegen! Nästa steg är att installera RTC -modulen och använda den med systemet.

Steg 5: Kapitel 2: Montering, konfigurering och användning av RTC -modulen

Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen
Kapitel 2: Montering, konfigurering och användning av RTC -modulen

RTC (eller Real-Time Clock) modul är en liten enhet som har lite batteri på den, den gör vad namnet antyder, Klocka! så när du kopplar bort den till strömmen fortsätter klockan att fungera och stannar inte. Varför behöver vi detta? Raspberry pi har verkligen ingen metod för att lagra klockdata när den är avstängd, den förlitar sig på att ansluta till internet vid uppstart för att uppdatera datum och tid, men problemet är att vi inte alltid har tillgång till internet, och detta det är därför vi behöver RTC -modulen. RTC kommer att fungera som en klocka för hallon pi så när Rpi startas tar det datum och tid från RTC, vilket kommer att hålla RaspberryPi -tiden uppdaterad hela tiden.

det finns flera modeller och letar efter RTC, det finns DS1307 och DS3231. du kan använda vilken RTC -modul som helst så länge den har I2C -protokollkommunikation (du kan ange att du kan hitta SDA- och SCL -stift på modulstiften.

precis som vad som helst i den här guiden använde jag andra guider för att uppnå mitt mål i projektet, den här instruerbara kommer att vägleda dig och berätta exakt vad du ska göra för att göra detta projekt, men om du behöver ändra eller behöver mer djup i någon av steg, jag länkar den mer fruktbara guiden i slutet av varje steg.

När du har din RTC -modul klar (löd huvudstiften och sätt på batteriet) kan du ansluta den till RapberryPi -stiften enligt följande:

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

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

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

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

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

eller beroende på vilken RTC -modul du har kan du montera den direkt på RaspberryPi (se till att stiften stämmer !!! eftersom du kan skada Rpi/RTC om inte)

När du har anslutit RTC, låt oss konfigurera hallon.

Steg 6: 2-1: Modulinställning

2-1: Modulinställning
2-1: Modulinställning
2-1: Modulinställning
2-1: Modulinställning

Innan du börjar, gå till kommandoraden och skriv:

datum

Detta kommer att ge tillbaka aktuellt datum och tid på hallon, notera det mycket användbara kommandot och notera aktuellt datum och tid så att vi kan kontrollera när modulen fungerar eller inte.

nu, låt oss börja installationen, skriv följande för att uppdatera Rpi -biblioteken, en rad i taget:

sudo apt-get uppdatering

sudo apt -get -y uppgradering

när det är klart måste vi ändra systemfiler för att aktivera i2c -modulen och lägga till RTC, för att ändra ett filsystem ska vi använda en programvara som heter Nano. nano är en lätt inbyggd programvara som i grunden är en textredigerare, precis som den i änkor. så alla kommandon som börjar med nano följt av filnamnet öppnar filen i textredigeraren i nano. du har märkt att vi också använde något som heter Sudo, kort sagt, sudo fungerar som en försäkran för Linux -systemet som säger till systemet att användaren som gjorde det kommandot är enhetsägaren, inte någon annan, och ger privilegier som redigering/ radera till användaren. till exempel, om vi öppnade en nanofil utan sudo, skulle vi kunna se den filen, men vi kan inte redigera den eller ta bort den.

nu måste vi ändra modulfilen, vi kan göra detta genom att skriva:

sudo nano /etc /modules

när du gör det hittar du innehållet i den filen (se bild). Använd piltangenterna för att placera markören i slutet av texten och lägg till följande:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

tryck CTRL+S för att spara och CTRL+X för att avsluta

Steg 7: 2-2: I2C-gränssnitt

2-2: I2C-gränssnitt
2-2: I2C-gränssnitt

Nu har vi anslutit RTC och aktiverat i2c, låt oss ansluta allt tillsammans.

skriv följande i kommandotolken:

i2cdetect -y 1

du får en rad ämnen, men du kommer att märka att det finns ett nummer någonstans, det numret är din RTC -moduladress. i mitt fall är det 68. notera det numret. om du inte ser det tvåsiffriga numret betyder det att du förmodligen har anslutit RTC fel.

nu måste vi ändra rc.local -filen så att vi kan aktivera RTC -modulen vid start och låta den spara datum och tid i systemet. öppna först rc.local -filen:

sudo nano /etc/rc.local

Lägg till följande före raden exit0:

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

hwclock -s

där 0x68 är din enhets i2c -adress. när du är klar trycker du på CTRL+S CTRL+X och startar sedan om systemet genom att:

sudo starta om

Steg 8: 2-3: Testa RTC

2-3: Testning av RTC
2-3: Testning av RTC

När systemet har startats om kan vi kontrollera om RTC fungerar eller inte. första omgången:

sudo hwclock -r

du kommer att få tillbaka datum och tid på RTC -modulen. om du får något annat, se till att du har gjort stegen korrekt.

nu, för att ändra tid och datum på RTC, måste vi ändra datum och tid på systemet först, sedan skriver vi ändringarna till RTC. för att göra det, kör:

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

och naturligtvis, ändra datum och tid enligt din lokala tid och datum innan du trycker på enter. när du har fått tiden på Rpi -höger, kör följande för att spara datum och tid på RTC:

sudo hwclock -w

aaaaand det är det! du kan kontrollera om det fungerar med hwclock -r och se om datumet på RTC är korrekt eller inte, koppla sedan bort rpi från internet och stäng sedan av det en stund och slå sedan på det igen och se om det har rätt tid och datum. du är klar!

Fullständig guide till hur du ställer in RTC -modulen hittar du här

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

Steg 9: Kapitel 3: Gör Azan -larmprogrammet

Kapitel 3: Skapa Azan Alarm Program
Kapitel 3: Skapa Azan Alarm Program

att göra en klocka är en sak, visst, vi kan titta på klockan och bönetiderna och se när tiden kommer, men skulle inte vara ännu bättre om vi kunde lägga till ett ljudlarm för att meddela oss om bettiderna? ÄNNU BÄTTRE gör vi det larmet som ljudet av AZAN! låt oss se hur vi kan åstadkomma detta.

för vår programmering kommer vi att använda python som vårt föredragna programmeringsspråk eftersom python passar perfekt med RaspberryPi. för att skapa en kodfil i python gör vi samma sak som att öppna en textfil, men nu sparar vi den som.py. för att köra programmet behöver vi pythonmiljö installerad av raspbery, som tur är kommer Raspbian med python och python3 förinstallerat! så allt vi behöver göra är att programmera. i den här guiden kommer vi inte att prata om språket och lära oss hur det fungerar och funktionerna, men jag ger dig de nödvändiga koderna så att du kan göra projektet.

För att börja behöver vi en ljudfil av vårt föredragna azanljud (i. WAV) vi behöver två filer, en för al-fajr azan och en annan för vanligt azan. när du väl fått det lägger du det på en stick -enhet och kopierar det på skrivbordet på raspberrypi.

nu har vi filerna, jag letade efter ett sätt att spela ljud -ljud på raspberryPi och till min förvåning var det inte så många sätt vi kunde göra detta, men jag hittade det här svaret på stackoverflow som gav mig vad jag behövde

stackoverflow.com/questions/20021457/playi…

Jag testade den metoden och det fungerade! så låt oss se hur vi kan implementera denna metod i vårt projekt …

Steg 10: 3-1: Låt oss spela ett ljud

3-1: Låt oss spela ett ljud!
3-1: Låt oss spela ett ljud!

navigera först till skrivbordet med:

cd Skrivbord

gör sedan en ny pythonkodfil med:

sudo nano AzanPlay.py

detta kommer att skapa en ny fil som heter AzanPlay med tillägget på en pythonfil.py, vi kommer att ha en tom svart skärm så att vi kan skriva vår kod. helt enkelt skriva ner dessa rader (var försiktig så att du inte ändrar några indragningar eller mellanslag, eftersom detta är extremt viktigt i python):

från pygame -importmixer

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () medan mixer.music.get_busy () == True: fortsätt

Var / Desktop / är där du lägger in dina ljudfiler, och 'Adhan-Makkah.wav' är min ljudfil, som är Azan-ljudinspelningen i makkah.

nu för att testa vår kod kör vi den med python genom att skriva:

python AzanPlay.py

och du kommer att få ljudet att spela visna från din HDMI LCD eller din AUX -port som finns på Raspberrypi. om du inte hör det från LCD -högtalarna, koppla in en hörlur i AUX och kontrollera.

Steg 11: 3-2: Få bönetider

3-2: Få bönetider
3-2: Få bönetider

Som vi vet skiljer sig bönestider från en plats på jorden till en annan, och även för en specifik plats skiljer det sig genom åren, det betyder att vi måste hitta ett sätt att hålla våra bönetider i systemet uppdaterade hela tiden, och för det behöver vi specifika och mycket komplexa funktioner och beräkningar för att få det rätt. Lyckligtvis har vår bror Hamid Zarrabi-Zadeh gjort alla funktioner vi behöver till en funktion som vi enkelt kan använda för att få tiden beroende på vår plats och nuvarande tid, AMAZING! du hittar biblioteket och källfilerna på

praytimes.org/

Så vi kommer att använda dessa fantastiska filer för att få våra bönetider och implementera dem i systemet. först ladda ner koder från webbplatsen och lägg den i en / adhan / mapp, (Vi behöver både JS och Python koder).

nu, låt oss gå till den mappen och testa biblioteket och vad det kan göra:

cd adhan

där måste vi skapa en ny testfil i python så att vi kan testa funktionen:

sudo nano testAd.py

inuti, skriv ner den här koden:

importera böner

från datetime importdatum tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Innan du sparar filen måste du ändra LATITUDE med din plats Latitude, samma med LONGTITUDE och ändra GMT till din tidszon. i mitt fall blir det:

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

tryck (tmm)

Slutligen, CTRL-S och CTRL-X och kör sedan koden:

python testAd.py

äntligen får du tillbaka dina bönetider för idag, för din plats.

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

Bra! nu när vi har vår bönstid och vi nu vet hur vi spelar ljud, låt oss slå samman dessa två koder till en huvudkod.

Steg 12: 3-3: Gör den slutliga Azan-larmkoden

genom att avsluta de två föregående koder, lärde vi oss att få de exakta bönetiderna enligt vår plats och hur man spelar Azan -ljudet. nu ska vi slå samman dessa två koder till en kod som vi ska använda som vårt sista projekt, och den här koden kommer att fungera i bakgrunden, som när Azan -tiden kommer kommer den att spela Azan -ljudet.

Jag har skrivit hela koden, du kan kopiera den och klistra in den och göra dina egna ändringar som du tycker passar. Koden är:

importtid

från pygame importmixer importera sträng importera böttider från datetime importdatum medan (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 () medan mixer.music.get_busy () == True: fortsätt om currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () medan mixer.music.get_busy () == True: fortsätt om currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () medan mixer.music.get_busy () == True: fortsätt om currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () medan mixer.music.get_busy () == Sant: fortsätt om currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () medan mixer.music.get_busy () == Sant: fortsätt

Om du tittar på koden och jämför den med vad vi gjorde tidigare, ser du att vi inte gjorde mycket nytt, till en början inkluderade vi våra nödvändiga bibliotek och sedan öppnade vi en oändlig loop. i öglan beräknar vi ständigt bönetiden med vår plats och tidszon och lagrar hela resultatet i variabel tmm. sedan lagrar vi varje bönstid från tmm till en oberoende variabel. som gör att vi kan jämföra tider. därefter tar vi systemtiden och lagrar den i en oberoende variabel. slutligen, vi fortsätter att jämföra systemtiden med bönetiderna, om systemtiden matchar någon av bönetiderna kommer den att spela Azan -ljudet.

Steg 13: Kapitel 4: Implementering av urtavlorna

Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna
Kapitel 4: Implementering av urtavlorna

För att få projektet att se bättre ut hade jag idén att lägga till urtavlor på LCD -skärmen, så det ser trevligt ut för användaren (ja, bättre än kommandoraden åtminstone) så jag har anlitat en designer för att designa flera ansikten för att klockan, den ska vara tom utan data, eftersom data ska läggas till via HTML, vilket gör klockans design som bakgrund, och andra data som bönetider kan läggas till som HTML -element ovanpå bakgrunden.

Tyvärr, när jag skrev den här instruktionen, är min kunskap och erfarenhet av HTML mycket begränsad, så jag kommer inte att diskutera mycket detaljer eftersom jag vet att jag kommer att göra saker på ett felaktigt sätt, och det gör jag inte vill förvirra människor. men om du har en liten erfarenhet av JS och HTML bör du veta hur du ska fortsätta från denna punkt. hittills har jag gjort ett enda ansikte (det blå). planen är att göra 14 urtavlor! 7 ansikten för varje dag i veckan, och ytterligare 7 som ett annat tema. som det första temat ska vara med Azkar rullande, och det andra temat ska ha islamiska GIFS istället för Azkar. oavsett, jag kommer att inkludera alla mönster i denna instruerbara så att du kan ladda ner den.

Steg 14: Kapitel 5: Implementering av ett användargränssnitt

Kapitel 5: Implementering av ett användargränssnitt
Kapitel 5: Implementering av ett användargränssnitt

I det sista kapitlet av vår resa kommer vi att göra några valfria modifieringar för att göra projektet ännu användarvänligt, om vi vill genomföra projektet i en moské eller på någon offentlig plats. som vi sa tidigare har varje stad sin egen tidpunkt för bönerna, och för att göra det här projektet tillgängligt för en bredare grupp människor kommer vi att skapa ett användargränssnitt så att vi kan välja vår önskade stad och tema när vi sätter igång projektet.

För att göra detta kommer vi att använda ett python GUI -bibliotek som heter "TKinter".

Detta är koden som jag har implementerat för att ge mig valet att välja mellan fem städer i Saudiarabien, inklusive Makkah:

importera tkinter som tk

från tkinter import * från tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (self, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Button (self, text = "Riyadh", height = 5, width = 80, command = self.open_riyadh1) self.button4 = Button (self, text = "Madina", height = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (row = 0, column = 1, kolumnpanel = 2, klibbig = W+E+N+S) self.button2.grid (rad = 1, kolumn = 1, kolumnpanel = 2, klibbig = W+E+N+S) self.button3.grid (rad = 2, kolumn = 1, kolumnpanel = 2, klibbig = W+E+N+S) self.button4.grid (rad = 3, kolumn = 1, kolumnpanel = 2, klibbig = W+E+N+S) self.button5.grid (rad = 4, kolumn = 1, kolumnpanel = 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 () om _name_ == '_main_': main ()

Koden kan se stor ut, men det är väldigt enkelt att redigera den. vi skapade i princip ett nytt fönster, satte fem namnknappar och definierade fem funktioner som skulle användas vid varje knapptryckning. när du trycker på knappen öppnar programmet motsvarande HTML -fil i Cities -mappen, som varje stad HTML har stadskoordinaterna när det får tid från böner (). när du har tryckt på knappen kommer pythonkoden att utesluta en linux -kod där den öppnar HTML -filen med kromwebbläsaren, och du har urtavlan redo att visas, med fullskärmsalternativ på.

Steg 15: (Valfritt): Lägga till en högtalaromkopplare

(Valfritt): Lägga till en högtalaromkopplare
(Valfritt): Lägga till en högtalaromkopplare
(Valfritt): Lägga till en högtalaromkopplare
(Valfritt): Lägga till en högtalaromkopplare

Som vi såg, när bönstunden kommer Azan -ljuduppspelningen och ljudet kommer ut från standardljudutgången (HDMI- eller AV -utgång) och eftersom vi lägger det på HDMI -utgång kommer ljudet från LCD -skärmen. men vad händer om vårt LCD -ljud inte räcker? till exempel, vad händer om vi vill implementera detta inne i en riktig moské? med breda yttre högtalare? då kan vi lägga till ytterligare ett MYCKET enkelt steg för att åstadkomma det. för ett redan byggt högtalarljudsystem behöver vi bara slå på och stänga av det, ta den redan befintliga mikrofonen och sätt den bredvid LCD -högtalarna.

Det är enkelt att göra det. vi kommer att använda den befintliga moskémikrofonen som är ansluten till högtalaren, vi behöver bara raspberryPi för att styra strömmen som slår på och stänger av hela ljudsystemet. för att göra det måste vi använda ett SSR: SOLID STATE RELAY. dessa typer av reläer kan fungera som en omkopplare, ungefär som det genomsnittliga blåa reläet, skillnaden är att SSR: er tål en stor mängd AC -ström genom den, vilket inte är tillämpligt i de blå (vanligtvis max 10A), och SSR: s behov bara två ledningar istället för 3: DC+ och DC- och det är det! i andra änden av SSR kan vi ansluta högtalarsystemets strömkabel, på det sättet, när vi ger spänning till SSR, kommer det att stänga högtalarsystemets växelströmskrets, eller så stänger vi av spänningen för att skapa en öppen krets, stänga av högtalarna.

det finns en fångst, RaspberryPi -stiften matar ut 3.3v, inte 5v som vi behöver för att styra SSR. så vi behöver en transistor för att ta signalen från RPi -stiftet och 5V från RPi 5v -stiftet. för att göra det behöver vi:

1-halvledarrelä (allt över 25A är bra)

2-2n2222 npn transistor

3-220ohm motstånd

följ fritz -kretsen för anslutning.

nu i koden kommer vi att lägga till några saker som får det här att fungera. först, innan while -slingan, lägger vi till några rader för att initialisera GPIO -stiften:

Lägg till i importavsnittet:

importera RPi. GPIO som GPIO

Lägg till:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (falskt) relä = 40 GPIO.setup (ledPin, GPIO. OUT)

Nu, medan loop, för varje spel Azan -kommando, måste vi slå på reläet, vänta i 10 sekunder, avsluta spelet Azan och sedan stänga av reläet. vi behöver bara lägga till två rader, den första är:

GPIO.output (ledPin, GPIO. HIGH)

tid. sover (10)

den här bör läggas till efter varje if -uttalande (IDENTATION ÄR VIKTIGT!), den andra raden är:

GPIO.output (ledPin, GPIO. LOW)

Denna bör läggas till efter raden "fortsätt". det ska se ut så här för varje Azan -tid:

om currTime == FAJR:

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

Rekommenderad: