Përmbajtje:

Watch & Alarm i Lutjeve Islame RaspberryPi: 15 hapa (me fotografi)
Watch & Alarm i Lutjeve Islame RaspberryPi: 15 hapa (me fotografi)

Video: Watch & Alarm i Lutjeve Islame RaspberryPi: 15 hapa (me fotografi)

Video: Watch & Alarm i Lutjeve Islame RaspberryPi: 15 hapa (me fotografi)
Video: 2S Time - CASIO SGW 100 1V Digital Compass Temperature Twin Sensor Watch 2024, Qershor
Anonim
Watch & Alarm i Lutjeve Islame RaspberryPi
Watch & Alarm i Lutjeve Islame RaspberryPi
Watch & Alarm i Lutjeve Islame RaspberryPi
Watch & Alarm i Lutjeve Islame RaspberryPi

Muslimanët në mbarë botën kanë pesë lutje çdo ditë, dhe secila lutje duhet të jetë në një kohë të caktuar të ditës. për shkak të mënyrës eliptike që planeti ynë lëviz rreth diellit, gjë që bën që dielli të lindë dhe të bjerë të ndryshojë gjatë gjithë vitit, kjo gjithashtu e bën kohën e lutjes të paqëndrueshme, kjo është arsyeja pse ne kemi nevojë për një orë islame për të na kujtuar ne muslimanëve për orët tona të lutjes secila dita.

Çdo mysliman ka një mënyrë për të hyrë në motin e ditëve të lutjeve përmes internetit, faqet e internetit islame, kalendarët lokalë islamikë apo edhe përmes televizorit, dhe shumica prej nesh kanë pajisje të shikimit islamik që kanë veçoritë e dhënies së kohës së lutjes, si dhe alarme lutjesh Me Por, çka nëse ne do të krijonim pajisjen tonë të Praktikave të Pushimit dhe Alarmit!

Para se të filloni të punoni në projekt, ka disa konsiderata që mund të jeni të dobishëm për ju gjatë leximit të këtij Udhëzuesi. Unë jetoj në Arabinë Saudite kështu që disa nga hapat dhe vlerat e mia do të ndryshojnë nga tuajat, dhe unë do t'i tregoj në mënyrë eksplicite ato gjatë punës. Ka hapa dhe fotografi që mund të përfshijnë fjalë arabe që kur kam bërë ndërfaqen në arabisht, por gjithashtu do të vë në dukje se si ta bëni atë në anglisht, kështu që mos lejoni që fjalët arabe në fotografi t'ju shqetësojnë aspak, ky projekt mund të jetë bërë në çdo gjuhë (e cila është e mrekullueshme!: D) Gjithashtu ju lutem më falni gabimet e mia të gabuara pasi anglishtja nuk është gjuha ime e parë.

Për projektin tonë! Ky projekt do të ndahet në Hapa të mëdhenj, të cilët deri në fund të hapit të X -të do ta kemi projektin tonë të bukur dhe gati! Hapat do të jenë si më poshtë:

1-Konfigurimi dhe përgatitja e RaspberryPi

2-Instalimi i modulit RTC

3-Bërja e programit Azan Alarm

4-Zbatimi i faqeve të orës

5-Krijimi i Ndërfaqes së Përdoruesit dhe.

Si çdo projekt, ne duhet të përgatisim pjesët që na duhen së pari. pjesët që na duhen për këtë projekt janë:

1-RaspberryPi Kompjuter kompjuteri Amazon US || Amazon KSA

Mund të përdorni çdo version Rpi, vetëm sigurohuni që të ketë Wifi. Kam përdorur Rpi3B+

2-RTC Moduli i orës në kohë reale Amazon US || Amazon KSA

Ju mund të përdorni çdo model moduli RTC, vetëm sigurohuni që të ketë I2C

3-LCD monitor

Çdo LCD do të bëjë

4-Miu dhe tastiera

dhe kjo eshte!! Kjo është gjithçka që ju nevojitet për të bërë orën dhe alarmin tuaj Azan

Hapi 1: Kapitulli 1: Konfigurimi dhe Konfigurimi i RaspberryPI

Kapitulli 1: Konfigurimi dhe Konfigurimi i RaspberryPI
Kapitulli 1: Konfigurimi dhe Konfigurimi i RaspberryPI

Gjërat e para në fillim! Ne duhet të përgatisim Raspberry pi në mënyrë që të punojmë me të.

Raspberry pi nuk është gjë tjetër veçse një kompjuter, ka RAM dhe ROM, ka një CPU, GPU, I/O ……. Një kompjuter! ashtu si ai me të cilin luajmë lojëra dhe shfletojmë uebin, gjëja kryesore është se është shumë e vogël! gjë që e bën mjedrën një zgjedhje shumë të mirë për të bërë dhe zbatuar projekte në të. për shkak se mjedra pi është e vogël, ka specifikime shumë të kufizuara që nuk mund të operojë me një OS të madh si Windows ose macOS, në vend të kësaj, ne do të përdorim Linux si një sistem operativ për të përdorur pajisjen. ka mijëra nëse jo dhjetëra mijëra shpërndarje Linux që ne mund të përdorim, por një shpërndarje e përsosur është optimizuar në mënyrë të përkryer posaçërisht për mjedrën që ne do të përdorim, të quajtur Raspbian.

Hapi 2: 1-1: Shkarkoni skedarët e nevojshëm

1-1: Shkarkoni skedarët e nevojshëm
1-1: Shkarkoni skedarët e nevojshëm
1-1: Shkarkoni skedarët e nevojshëm
1-1: Shkarkoni skedarët e nevojshëm
1-1: Shkarkoni skedarët e nevojshëm
1-1: Shkarkoni skedarët e nevojshëm

-Shko te faqja zyrtare e Shkarkimit Rasbian në https://www.raspberrypi.org/software/operating-sy… dhe shkarkoni Raspberry Pi OS me skedar Desktop

-Ndërsa shkarkohet, shkoni te https://win32diskimager.org/ dhe shkarkoni dhe instaloni win32DiskImager, mund të përdorni çdo softuer për djegien e imazhit që ju pëlqen

pasi të përfundojë shkarkimi, do të keni një skedar.img që përmban RaspberryPi OS. më pas, lidhni kartën tuaj të kujtesës SD në kompjuter (zakonisht me një lexues kartash USB) dhe filloni programin win32diskimager. hapat për djegien e imazhit në kujtesën SD janë shumë të thjeshta, ju vetëm duhet të 1- Zgjidhni shkronjën tuaj të kujtesës 2-zgjidhni skedarët tuaj OS që keni shkarkuar dhe 3-Klikoni shkruani! Sigurohuni që keni zgjedhur shkronjën e duhur të pajisjes nga lista dhe kujtesa juaj është e zbrazët, pasi duke shtypur shkruaj do të promovoheni me një paralajmërim që ju thotë se çdo gjë në pajisje do të fshihet! Shtypni po për të konfirmuar shkrimin dhe prisni që të përfundojë. kjo mund të zgjasë deri në 20 minuta.

Pasi të ketë mbaruar, do të keni të gjithë sistemin operativ Rapbian në kujtesë, mund të shkoni përpara dhe ta vendosni në Rapberry Pi, lidhni Raspberry Pi me monitorin përmes HDMI, lidhni miun dhe tastierën përmes USB dhe së fundi, lidhni fuqia.

Hapi 3: 1-2: Konfigurimi i Sistemit Raspbian

Pas lidhjes së kabllove dhe energjisë, do të shihni që OS është ndezur, do të rindizet automatikisht dhe më pas do të shfaqë Ndërfaqen e Përdoruesit Raspbian (e cila duket e ngjashme me dritaret). gjëja e parë që do të shihni është një dritare e mirëpritur, e cila do t'ju çojë nëpër hapat e konfigurimit të RaspberryPi tuaj për herë të parë. dritaret dhe hapat do të jenë si më poshtë:

1-Shtypni tjetër në dritaren e parë "Mirësevini"

2-Dritarja tjetër do të jetë konfigurimi i vendndodhjes tuaj. zgjidhni vendin tuaj, gjuhën dhe zonën kohore. pas kësaj, rekomandohet shumë të kontrolloni "Përdorni gjuhën angleze" pasi kjo do të jetë gjuha e ndërfaqes së sistemit operativ. DUHET T CH KONTROLLONI "KUTINAY E TABELAVE T EN ANGLISHT T US SHQIPRIS W" NE KEMI P KR PUN P KR TABEL T EN ANGLISHT!

3-Tjetra, do t'ju kërkohet të vendosni një fjalëkalim për mjedrën tuaj, kjo është e rëndësishme për sigurinë, por ne do ta lëmë atë të pandryshuar për këtë projekt. vini re se Emri i përdoruesit dhe fjalëkalimi i paracaktuar janë:

emri i përdoruesit: pi

fjalëkalim: mjedër

4-Dritarja tjetër do të jetë lidhja e raspberryPi me rrjetin tuaj WiFi. zgjidhni emrin tuaj wifi dhe futni fjalëkalimin tuaj wifi

5-Tjetra, do t'ju kërkohet të azhurnoni bibliotekat dhe skedarët e sistemit të mjedrës pi. ky hap do të marrë një sasi të madhe kohe (ndoshta në orë), por është një hap shumë i rëndësishëm për çdo herë që të krijohet një pi mjedër e re.

6-pasi të ketë përfunduar përditësimi, do t'ju kërkohet të rindizni sistemin. bëje atë tani

Pune e shkelqyer! Tani ne kemi një sistem të azhurnuar, ne ende duhet të bëjmë disa gjëra të tjera për të konfiguruar funksionimin e sistemit, por tani, do të fillojmë të përdorim LinuxCommand Line.

Hapi 4: 1-3: Përdorimi i Linjës së Komandës për të vendosur cilësimet e Rpi

1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi
1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi
1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi
1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi
1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi
1-3: Përdorimi i vijës së komandës për të konfiguruar cilësimet e Rpi

Sapo të përfundoni rindezjen nga azhurnimi i sistemit, sistemi do të tregojë desktopin e përdoruesit pasi të ketë përfunduar nisjen. tani nëse shikoni në pjesën e sipërme të majtë të ekranit, do të gjeni disa butona, Një buton me mjedërPi Logo që është butoni i menysë Rpi, një formë globale që është shfletuesi i internetit, një buton i dosjeve i cili është …..dosje dhe së fundi, një buton me një dritare të ekranit të zi, i cili është butoni më i rëndësishëm në çdo sistem linux, rreshti i komandës. vazhdoni dhe shtypni atë buton, do të shihni një dritare të zezë që shfaqet.

Linja e komandës është mënyra se si të gjithë ndërveprojnë dhe përdorin sistemin linux, ashtu si Windows ka vijën e vet të komandës vetëm në vejushat, ne nuk kemi nevojë ta përdorim atë shumë shpesh. në linux, është gjëja themelore që çdo përdorues i linux duhet të mësojë dhe zotërojë. rreshti i komandës mund të përdoret nga…. KOMANDON! ajo që shihni në dritaren e zezë është linja e komandës duke pritur që komanda të shkruhet nga përdoruesi dhe të ekzekutohet. në këtë udhëzues ne do të japim të gjithë komandën që ju nevojitet për të kryer këtë projekt, kështu që mos u shqetësoni.

komanda e parë Linux që do të përdorim është një komandë tjetër konfigurimi, vini re se të gjitha komandat tani e tutje do të vendosen brenda një kuti kodesh, kështu që ju mund ta dalloni atë nga hapat e rregullt. Sillni tastierën tuaj dhe shtypni sa vijon dhe shtypni enter:

sudo raspi-config

Nëse e bëni atë në mënyrë korrekte, do të shihni që ekrani u kthye në blu, me kuti të vogël gri në mes (shiko figurën). ne do ta përdorim atë për të bërë konfigurimin tonë përfundimtar para se të fillojmë kodimin.

tani, do t'ju duhet të përdorni tastet e shigjetave të tastierës tuaj për të lundruar në këtë meny.

1-Shkoni te opsionet e ndërfaqes >> I2C >> PO >> shtypni enter. kjo mundëson protokollin e komunikimit I2c kështu që ne mund të përdorim RTC

2-Shkoni te Opsionet e Avancuara >> Zgjero sistemin e skedarëve.

dhe kjo është e gjithë konfigurimi që ju nevojitet nga kjo dritare. në faqen kryesore, zbritni poshtë dhe shtypni enter në "finish" dhe "YES" për të rindezur sistemin.

Pasi të përfundojë rindezja e sistemit, ne të gjithë kemi përfunduar konfigurimin! pajisja është gati për hapat e mëdhenj! Hapi tjetër do të jetë instalimi i modulit RTC dhe përdorimi i tij me sistemin.

Hapi 5: Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC

Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC
Kapitulli 2: Montimi, Konfigurimi dhe Përdorimi i Modulit RTC

Moduli RTC (ose Ora në kohë reale) është një pajisje e vogël e cila ka pak bateri mbi të, bën atë që nënkupton emri, Clocking! kështu që kur e shkëputni atë nga energjia, ora vazhdon të punojë dhe nuk ndalet. pse na duhet kjo? mirë, mjedra pi me të vërtetë nuk ka asnjë metodë për të ruajtur të dhënat e orës pasi të jetë fikur, ajo mbështetet në lidhjen me internetin pas nisjes për të përditësuar datën dhe orën, por problemi është se ne nuk kemi gjithmonë qasje në internet, dhe kjo është arsyeja pse ne kemi nevojë për modulin RTC. RTC do të veprojë si një orë për pi mjedër kështu që pasi të fillojë Rpi ajo do të marrë Data & Time nga RTC, që do ta mbajë kohën e RaspberryPi të përditësuar gjatë gjithë kohës.

ka modele të shumta dhe duket për RTC, ka DS1307 dhe DS3231. mund të përdorni çdo modul RTC që gjeni për sa kohë që ka komunikim protokoll I2C (mund të tregoni se kjo është se mund të gjeni kunjat SDA dhe SCL në kunjat e modulit.

si çdo gjë në këtë udhëzues, unë përdorja udhëzues të tjerë për të arritur qëllimin tim në projekt, ky udhëzues do t'ju udhëheqë dhe do t'ju tregojë saktësisht se çfarë të bëni për ta bërë këtë projekt, por nëse keni nevojë të modifikoni ose keni nevojë për më shumë thellësi në ndonjë nga hapa, unë do të lidh udhëzuesin më frytdhënës në fund të secilit hap.

Pasi të keni bërë gati modulin tuaj RTC (lidhni kunjat e kokës dhe vendosni baterinë), mund ta lidhni me kunjat e RapberryPi si më poshtë:

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

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

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

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

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

ose në varësi të modulit RTC që keni, mund ta montoni direkt në RaspberryPi (Sigurohuni që kunjat të jenë të sakta !!! pasi mund të dëmtoni Rpi/RTC nëse jo)

Pasi të keni lidhur RTC, le të konfigurojmë Raspberry.

Hapi 6: 2-1: Konfigurimi i modulit

2-1: Konfigurimi i modulit
2-1: Konfigurimi i modulit
2-1: Konfigurimi i modulit
2-1: Konfigurimi i modulit

Para fillimit, shkoni në vijën e komandës dhe shkruani:

data

Kjo do të kthejë datën dhe kohën aktuale në Raspberry, do të marrë parasysh atë komandë shumë të dobishme dhe do të shënojë datën dhe kohën aktuale në mënyrë që të mund të kontrollojmë kur moduli po punon apo jo.

tani, le të fillojmë konfigurimin, shtypni sa vijon për të azhurnuar bibliotekat Rpi, një rresht në të njëjtën kohë:

përditësim sudo apt-get

sudo apt -get -y upgrade

pasi të jetë bërë, ne duhet të modifikojmë skedarët e sistemit për të aktivizuar modulin i2c dhe të shtojmë RTC, për të modifikuar një sistem skedarësh ne do të përdorim një softuer të quajtur Nano. nano është një softuer i integruar i lehtë që është në thelb një redaktues teksti, ashtu si ai në vejusha. kështu që çdo komandë që fillon me nano e ndjekur nga emri i skedarit, do ta hapë atë skedar në redaktuesin e tekstit nano. keni vënë re se ne kemi përdorur edhe diçka të quajtur Sudo, me pak fjalë, sudo vepron si një siguri për sistemin linux që i thotë sistemit që përdoruesi që ka bërë atë komandë është pronari i Pajisjes, jo dikush tjetër, dhe jep privilegje si redaktimi/ duke i fshirë përdoruesit. për shembull, nëse hapim një skedar nano pa sudo, ne do të jemi në gjendje ta shikojmë atë skedar, por nuk mund ta modifikojmë ose fshijmë.

tani, ne duhet të modifikojmë skedarin e moduleve, mund ta bëjmë këtë duke shtypur:

sudo nano /etc /module

pasi ta bëni këtë, do të gjeni përmbajtjen e atij skedari (shiko figurën). përdorni shigjetat për të vendosur kursorin në fund të tekstit dhe shtoni sa vijon:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

shtypni CTRL+S për të ruajtur dhe CTRL+X për të dalë

Hapi 7: 2-2: Ndërfaqja I2C

2-2: Ndërfaqja I2C
2-2: Ndërfaqja I2C

Tani ne kemi lidhur RTC dhe aktivizuar i2c, le të lidhim gjithçka së bashku.

shkruani sa vijon në komandën e shpejtë:

i2cdetect -y 1

do t'ju jepet një grup bosh, por do të vini re se ka një numër diku, ai numër është adresa juaj e modulit RTC. në rastin tim është 68. mbani shënim atë numër. nëse nuk e shihni atë numër dyshifror, kjo do të thotë që ndoshta jeni lidhur gabimisht me RTC.

tani, ne duhet të modifikojmë skedarin rc.local në mënyrë që të mund të aktivizojmë modulin RTC në nisje dhe ta lëmë të ruajë datën dhe kohën në sistem. së pari, hapni skedarin rc.local:

sudo nano /etj/rc.local

Para vijës exit0, shtoni sa vijon:

echo ds1307 0x68>/sys/class/i2c-përshtatës/i2c-1/pajisje të re

ora -orë

ku 0x68 është adresa e pajisjes tuaj i2c. pasi të keni mbaruar, shtypni CTRL+S CTRL+X, pastaj rindizni sistemin tuaj duke:

rindez sudo

Hapi 8: 2-3: Testimi i RTC

2-3: Testimi i RTC
2-3: Testimi i RTC

Pasi sistemi të rindizet, ne mund të kontrollojmë motin që RTC po punon apo jo. së pari, drejto:

sudo hwclock -r

do t'ju kthehet data dhe ora në modulin RTC. nëse ju është dhënë diçka tjetër, sigurohuni që i keni bërë hapat në mënyrë korrekte.

tani, për të modifikuar kohën dhe datën në RTC, ne duhet së pari të modifikojmë datën dhe orën në sistem, PASTAJ të ndryshojmë modifikimet në RTC. për ta bërë këtë, vraponi:

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

dhe natyrisht, ndryshoni datën dhe orën sipas kohës dhe datës tuaj lokale, para se të godisni enter. pasi të keni gjetur kohën në Rpi djathtas, ekzekutoni sa vijon për të ruajtur datën dhe kohën në RTC:

sudo hwclock -w

aaaa dhe kaq! mund të kontrolloni nëse funksionon me hwclock -r dhe të shihni nëse data në RTC është e saktë apo jo, pastaj shkëputni rpi nga interneti dhe më pas fikeni për ca kohë dhe pastaj ndizeni përsëri dhe shikoni nëse ka të saktë koha dhe data. mbarove!

Udhëzuesi i plotë se si të konfiguroni modulin RTC mund të gjendet këtu

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

Hapi 9: Kapitulli 3: Bërja e Programit të Alarmit Azan

Kapitulli 3: Bërja e Programit të Alarmit Azan
Kapitulli 3: Bërja e Programit të Alarmit Azan

bërja e një ore është një gjë, sigurisht, ne mund të shikojmë orën dhe orët e lutjes dhe të shohim kur të vijë koha, por nuk do të ishte as më mirë nëse do të shtonim një alarm të shëndoshë për të na njoftuar për orët e lutjes? EDHE M B MIR, ne e bëjmë atë alarm si tingulli i AZAN -it! le të shohim se si mund ta arrijmë këtë.

për programimin tonë, ne do të përdorim python si gjuhën tonë të preferuar të programimit pasi python shkon perfekt me RaspberryPi. për të bërë një skedar kodi në python, ne bëjmë të njëjtën gjë si hapja e një skedari teksti, por tani e ruajmë atë si.py. për të drejtuar programin, ne kemi nevojë për mjedis python të instaluar nga raspbery, për fat të mirë, Raspbian vjen me python dhe python3 të instaluar paraprakisht! kështu që gjithçka që duhet të bëjmë është programimi. në këtë udhëzues, ne nuk do të flasim për gjuhën dhe nuk do të mësojmë se si funksionon dhe funksionet, por unë do t'ju jap kodet e nevojshme në mënyrë që të bëni projektin.

për të filluar, ne kemi nevojë për një skedar të shëndoshë të tingullit tonë të preferuar të azanit (në. WAV) ne kemi nevojë për dy skedarë, një për ezanin e sabahut dhe një tjetër për ezanin e rregullt. pasi ta merrni atë, vendoseni në një makinë shkopi dhe kopjojeni në desktopin e mjedrës.

tani i kemi skedarët, po kërkoja një mënyrë për të luajtur audio zanore në mjedër Pi dhe për habinë time, nuk kishte shumë mënyra se si mund ta bëja këtë, por e gjeta këtë përgjigje në stackoverflow që më dha atë që më duhej

stackoverflow.com/questions/20021457/playi…

e testova atë metodë dhe funksionoi! kështu që le të shohim se si mund ta zbatojmë këtë metodë në projektin tonë…

Hapi 10: 3-1: Le të luajmë një tingull

3-1: Le të luajmë një tingull!
3-1: Le të luajmë një tingull!

së pari, lundroni në desktop duke:

cd Desktop

pastaj bëni një skedar të ri të kodit python duke:

sudo nano AzanPlay.py

kjo do të krijojë një skedar të ri të quajtur AzanPlay me shtrirjen në një skedar python.py, ne do të kemi një ekran të zi të zbrazët për të na lejuar të shkruajmë kodin tonë. thjesht shkruani këto rreshta (kini kujdes që të mos ndryshoni asnjë vrimë ose hapësirë, pasi kjo është JASHTRAK e rëndësishme në python):

nga mikser importi pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdo

Ku / Desktop / është vendi ku vendosni skedarët tuaj të zërit, dhe 'Adhan-Makkah.wav' është skedari im Audio, i cili është regjistrimi i zërit Azan në Mekë.

tani për të testuar kodin tonë, e drejtojmë me python duke shtypur:

python AzanPlay.py

dhe do të keni tingullin të luajë duke u tharë nga HDMI LCD ose porta juaj AUX që është në Raspberrypi. nëse nuk e dëgjoni nga altoparlantët LCD, futni kufjet në AUX dhe kontrolloni.

Hapi 11: 3-2: Merrni Kohët e Lutjes

3-2: Merrni Kohët e Lutjes
3-2: Merrni Kohët e Lutjes

Siç e dimë, kohët e lutjes ndryshojnë nga një vend në tokë në tjetrin, madje edhe për një vend të caktuar, ai ndryshon me kalimin e viteve, që do të thotë se ne duhet të gjejmë një mënyrë për t'i mbajtur kohët tona të lutjes në sistem të përditësuar gjatë gjithë kohës, dhe për këtë ne kemi nevojë për funksione dhe llogaritje specifike dhe shumë komplekse në mënyrë që ta marrim atë si duhet. Për fat të mirë, vëllai ynë Hamid Zarrabi-Zadeh i ka bërë të gjitha funksionet që na duhen në një funksion që mund t'i përdorim lehtë për të marrë kohën në varësi të vendndodhjes sonë dhe kohës aktuale, AMAZING! ju mund të gjeni bibliotekën dhe skedarët burim në

praytimes.org/

Pra, ne do t'i përdorim këto skedarë të mrekullueshëm për të marrë kohën tonë të lutjes dhe për ta zbatuar atë në sistem. së pari, shkarkoni kodet nga faqja e internetit dhe vendosini brenda një dosjeje / adhan, (Ne kemi nevojë për kodet JS dhe Python).

tani, le të shkojmë në atë dosje dhe të testojmë bibliotekën dhe çfarë mund të bëjë:

cd ezan

atje, ne duhet të bëjmë një skedar të ri testimi në python, në mënyrë që të testojmë funksionin:

sudo nano testAd.py

brenda, shkruani këtë kod:

importoni kohën e duhur

nga data e importimit data tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Para se të ruani skedarin, duhet të ndryshoni LATITUDE me vendndodhjen tuaj Latitude, njëjtë me LONGTITUDE, dhe të ndryshoni GMT në zonën tuaj kohore. në rastin tim, do të jetë:

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

print (tmm)

Së fundi, CTRL-S dhe CTRL-X dhe më pas drejtoni kodin:

testi i pythonAd.py

më në fund, do t'ju kthehen kohët e lutjes për sot, për vendndodhjen tuaj.

{'isha': '18: 58 ',' asr ': '15: 22', 'perëndimi i diellit': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' mesnatë ': '00: 17', 'lindje dielli': '06: 52 ',' fajr ': '05: 33'}

Shkëlqyeshëm! tani që kemi kohën e lutjes dhe tani dimë të luajmë tinguj, le t'i bashkojmë këto dy kode së bashku në një kod kryesor.

Hapi 12: 3-3: Bërja e Kodit Final të Alarmit Azan

duke përfunduar dy kodet e mëparshëm, mësuam se si të marrim kohën e saktë të lutjes sipas vendndodhjes sonë dhe si të luajmë tingullin Azan. tani, ne do t'i bashkojmë këto dy kode në një kod që do t'i përdorim si projekti ynë përfundimtar, dhe ky kod do të funksionojë në sfond, pasi kur të vijë koha e Azanit, do të luajë tingullin Azan.

Unë kam shkruar të gjithë kodin, ju mund ta kopjoni dhe ngjisni, dhe të bëni ndryshimet tuaja sipas gjykimit tuaj. Kodi është:

koha e importit

nga pygame import mixer import string string import praytimes from dateetime import data while (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 = koha.strftime (str ('%H')) currTime = tempT tempT = time.strftime (str ('%M')) currTime = currTime + ':' + tempT nëse currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdoni nëse currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdoni nëse currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdoni nëse currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdoni nëse currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdo

Nëse shikoni kodin dhe e krahasoni me atë që kemi bërë më parë, do të shihni se nuk kemi bërë asgjë të re, në fillim, kemi përfshirë bibliotekat tona të nevojshme dhe më pas kemi hapur një lak të pafund. në lak, ne vazhdimisht llogarisim kohën e lutjeve me vendndodhjen dhe zonën tonë kohore, dhe ruajmë të gjithë rezultatin në tmm të ndryshueshme. pastaj, ne ruajmë çdo kohë lutjeje nga tmm në një ndryshore të pavarur. që do të na lejojë të krahasojmë kohët. më pas, marrim kohën e sistemit dhe e ruajmë në një ndryshore të pavarur. së fundmi, ne vazhdojmë të krahasojmë kohën e sistemit me kohët e lutjes, nëse koha e sistemit përputhet me ndonjë nga kohët e lutjes, ajo do të luajë tingullin Azan.

Hapi 13: Kapitulli 4: Zbatimi i Fytyrave të Shikimit

Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit
Kapitulli 4: Zbatimi i Fytyrave të Shikimit

Për ta bërë projektin të duket më mirë, unë kisha idenë e shtimit të faqeve të orës në LCD, kështu që duket bukur për përdoruesin (mirë, më mirë se të paktën në linjën e komandës) kështu, unë kam punësuar një projektues për të hartuar fytyra të shumta në ora, duhet të jetë e zbrazët pa të dhëna, pasi të dhënat duhet të shtohen përmes HTML, duke i bërë modelet e orës si sfond, dhe të dhënat e tjera si kohët e lutjes mund të shtohen si elementë HTML në krye të sfondit.

Fatkeqësisht, që nga koha e shkrimit të këtij udhëzimi, njohuritë dhe përvoja ime në HTML janë shumë të kufizuara, kështu që nuk do të diskutoj shumë detaje, sepse e di me siguri se do t'i bëj gjërat në mënyrë të gabuar, dhe nuk duan të ngatërrojnë njerëzit. por nëse keni edhe një përvojë të vogël në JS dhe HTML duhet të dini si të vazhdoni nga kjo pikë. deri tani kam bërë një fytyrë të vetme (atë blu). plani është që të bëhen 14 faqe shikimi! 7 fytyra për të përditshmet e javës, dhe 7 të tjera si një temë tjetër. pasi tema e parë supozohet të jetë me Azkar, dhe tema tjetër supozohet të ketë GIFS Islame në vend të Azkar. pavarësisht, unë do të përfshijë të gjitha modelet në këtë udhëzues kështu që ju mund ta shkarkoni atë.

Hapi 14: Kapitulli 5: Zbatimi i një ndërfaqe të përdoruesit

Kapitulli 5: Zbatimi i një ndërfaqe përdoruesi
Kapitulli 5: Zbatimi i një ndërfaqe përdoruesi

Në kapitullin e fundit të udhëtimit tonë, ne do të bëjmë disa modifikime opsionale për ta bërë projektin edhe miqësor për përdoruesit, në rast se duam ta zbatojmë projektin në një xhami ose ndonjë vend publik. siç thamë më parë, secili qytet ka kohën e vet për lutjet, dhe për ta bërë këtë projekt qasje për një vërtetësi më të gjerë njerëzish, ne do të krijojmë një ndërfaqe përdoruesi në mënyrë që të zgjedhim qytetin dhe temën tonë të kërkuar sapo të ndezim projektin.

Për ta bërë këtë, ne do të përdorim një bibliotekë python GUI të quajtur "TKinter".

Ky është kodi që kam zbatuar për të më dhënë zgjedhjen për të zgjedhur midis pesë qyteteve në Arabinë Saudite, përfshirë Mekën:

importoni tkinter si tk

nga tkinter import * nga tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Koha e Azanit") vetë. butoni 1 = Butoni (vetja, teksti = "Xheda", lartësia = 5, gjerësia = 80, komanda = vetja.hapur_jeddah1) vetja.butoni2 = Butoni (vetja, teksti = "Mekkah", lartësia = 5, gjerësia = 80, komanda = self.open_makkah1) self.button3 = Butoni (vetja, teksti = "Riad", lartësia = 5, gjerësia = 80, komanda = vetja.hapur_riyadh1) self.button4 = Butoni (vetja, teksti = "Medina", lartësia = 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, kolona = 2, ngjitëse = W+E+N+S) vetë.button2.grid (rreshti = 1, kolona = 1, kolona = 2, ngjitëse = W+E+N+S) vetë.button3.grid (rresht = 2, kolona = 1, kolona = 2, ngjitëse = W+E+N+S) vetë.button4.grid (rreshti = 3, kolona = 1, kolona = 2, ngjitëse = W+E+N+S) self.button5.grid (rreshti = 4, kolona = 1, kolona = 2, ngjitëse = W+E+N+S) def open_jeddah1 (vetë): porosit = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --fillo në ekran të plotë-jo-sandbox" os sistem (porosi) def open_riyadh1 (vetë): porosia = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --filloni me ekran të plotë-jo-sandbox -test-type" os.system (rend) def open_madina1 (vetë): porosia = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html-fillo-me ekran të plotë-jo-sandbox -test-type" os.system (urdhër) def open_qasaim1 (vetë): porosia = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --fillo në ekran të plotë-jo-sandbox -test-type" os.system (rendi) def main (): karl (). mainloop () nëse _name_ == '_main_': kryesore ()

Kodi mund të duket i madh, por redaktimi i tij është shumë i lehtë. ne në thelb kemi bërë një dritare të re, kemi vënë pesë emra butona dhe kemi përcaktuar pesë funksione që do të thirren në çdo shtypje të butonit. pasi të shtypni butonin, programi do të hapë skedarin përkatës HTML në dosjen Qytetet, të cilin secili qytet i HTML i ka koordinatat e qytetit kur merr kohën nga koha e faljes (). pasi të shtypni butonin, kodi python do të nxjerrë një kod linux në të cilin do të hapë skedarin HTML duke përdorur shfletuesin e kromit dhe do të keni fytyrën e orës gati për tu shfaqur, me opsionin e ekranit të plotë të ndezur.

Hapi 15: (Opsionale): Shtimi i një ndërprerës të altoparlantëve

(Opsionale): Shtimi i një ndërprerës të altoparlantëve
(Opsionale): Shtimi i një ndërprerës të altoparlantëve
(Opsionale): Shtimi i një ndërprerës të altoparlantëve
(Opsionale): Shtimi i një ndërprerës të altoparlantëve

Siç e pamë, kur të vijë koha e lutjes luajtja e tingullit Azan, dhe tingulli del nga dalja e paracaktuar e zërit (dalja HDMI ose AV) dhe meqenëse po e vendosim në dalje HDMI, zëri do të vijë nga LCD. por, çka nëse tingulli ynë LCD nuk është i mjaftueshëm? për shembull, çka nëse duam ta zbatojmë këtë brenda një xhamie të vërtetë? me folës të jashtëm të gjerë? atëherë mund të shtojmë edhe një hap shumë të lehtë për ta arritur atë. për një sistem të shëndoshë të altoparlantit të ndërtuar tashmë, ne vetëm duhet ta ndezim dhe fikim, dhe të marrim mikrofonin tashmë ekzistues dhe ta vendosim pranë altoparlantëve LCD.

Të bësh kështu është e lehtë. ne do të përdorim mikrofonin para-ekzistues të xhamisë që është i lidhur me altoparlantin me zë të lartë, thjesht do të na duhet raspberryPi për të kontrolluar fuqinë që aktivizon dhe çaktivizon të gjithë sistemin e zërit. për ta bërë këtë, do të na duhet të përdorim një SSR: RELAY SHTETROR I NGURT. këto lloje të stafetëve mund të veprojnë si ndërprerës, ashtu si stafeta mesatare blu, ndryshimi është se SSR -të mund të përballojnë një sasi të madhe të Amperazhit AC përmes tij, i cili nuk është i zbatueshëm në ato blu (zakonisht maksimumi 10A), dhe nevojat e SSR -ve vetëm dy tela në vend të 3: DC+ dhe DC- dhe kaq! në anën tjetër të SSR mund të lidhim kabllon e energjisë të sistemit të altoparlantëve, në atë mënyrë, kur i japim tension SSR -së, ai do të mbyllë qarkun AC të sistemit të altoparlantëve, ose do të mbyllim tensionin për të bërë një qark të hapur, fikjen e altoparlantëve.

ka një gjë të tillë, kunjat e RaspberryPi dalin 3.3v, jo 5v që ne kemi nevojë për të kontrolluar SSR. kështu që ne kemi nevojë për një tranzistor për të marrë sinjalin nga kunja RPi, dhe 5V nga kunja RPi 5v. për ta bërë këtë na duhet:

Stafetë 1-gjendje e ngurtë (gjithçka mbi 25A është e mirë)

2-2n2222 npn tranzistor

Rezistencë 3-220ohm

ndiqni qarkun e ngrirjes për lidhje.

tani në kod, ne do të shtojmë disa gjëra që e bëjnë këtë punë. së pari, para lakut while, do të shtojmë disa rreshta për të inicializuar kunjat e GPIO:

Në pjesën e importit, shtoni:

importoni RPi. GPIO si GPIO

Para lakut while, shtoni:

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

Tani, në lakin while, për çdo komandë të luajtjes Azan, ne duhet të ndezim stafetën, të presim për 10 sekonda, të përfundojmë lojën Azan dhe pastaj të fikim stafetën. na duhet të shtojmë vetëm dy rreshta, e para është:

GPIO.putput (ledPin, GPIO. HIGHT)

koha. gjumi (10)

kjo duhet të shtohet pas çdo deklarate if (IDENTACIONI ISSHT I RORTNDSISHM!), rreshti tjetër është:

GPIO.putput (ledPin, GPIO. LOW)

Ky duhet të shtohet pas vijës "vazhdo". duhet të duket kështu për çdo herë në Azan:

nëse currTime == FAJR:

GPIO.putput (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () ndërsa mixer.music.get_busy () == E vërtetë: vazhdoni GPIO.output (ledPin, GPIO. LOW)

Recommended: