Sadržaj:

RaspberryPi Islamske molitvene satovi i alarm: 15 koraka (sa slikama)
RaspberryPi Islamske molitvene satovi i alarm: 15 koraka (sa slikama)

Video: RaspberryPi Islamske molitvene satovi i alarm: 15 koraka (sa slikama)

Video: RaspberryPi Islamske molitvene satovi i alarm: 15 koraka (sa slikama)
Video: RPI OFFICIAL THE Real PIcture OF ISLAM 2024, Jun
Anonim
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm
RaspberryPi Islamic Prayers Watch & Alarm

Muslimani širom svijeta imaju pet namaza svaki dan, a svaki namaz mora biti u određeno doba dana. zbog eliptičnog načina kretanja naše planete oko Sunca, zbog čega se vrijeme izlaska i zalaska sunca razlikuje tokom godine, što također čini vrijeme molitve nestalnim, zbog čega nam je potreban islamski sat koji će nas podsjećati muslimane na vrijeme molitve dan.

Svaki musliman ima način da pristupi dnevnom vremenu molitve vremenu putem internetskih islamskih web stranica, lokalnih islamskih kalendara ili čak putem televizije, a većina nas ima islamske satove koji imaju mogućnosti da nam daju vrijeme za molitvu, kao i molitvene alarme. Ali što ako smo napravili vlastiti uređaj za promatranje molitve i alarm!

Prije nego počnete raditi na projektu, postoji nekoliko razloga koji bi vam mogli biti korisni dok čitate ovaj Instructable. Živim u Saudijskoj Arabiji pa će se neki moji koraci i vrijednosti razlikovati od vaših, a na njih ću izričito ukazati tokom rada. Postoje koraci i slike koji mogu uključivati arapske riječi otkad sam spoj na arapskom jeziku, ali također ću vam pokazati kako to učiniti na engleskom, tako da arapske riječi na slikama uopće ne brinu, ovaj projekt može biti urađeno na bilo kojem jeziku (što je sjajno!: D) Također, oprostite zbog pogrešaka u pisanju jer engleski nije moj prvi jezik.

Idemo na naš projekat! Ovaj će projekt biti podijeljen u X Major korake, a do kraja X. koraka naš će projekt biti lijep i spreman! Koraci će biti sljedeći:

1-Konfiguriranje i priprema RaspberryPi

2-Instaliranje RTC modula

3-Izrada programa Azan Alarm

4-Implementacija brojčanika sata

5-Izrada korisničkog sučelja i

Kao i svaki projekt, prvo moramo pripremiti dijelove koji su nam potrebni. delovi koji su nam potrebni za ovaj projekat su:

1-RaspberryPi Kompjuterski komplet Amazon US || Amazon KSA

Možete koristiti bilo koju Rpi verziju, samo provjerite ima li Wifi. Koristio sam Rpi3B+

2-RTC Modul sata u stvarnom vremenu Amazon US || Amazon KSA

Možete koristiti bilo koji model RTC modula, samo provjerite ima li I2C

3-LCD monitor

Svaki LCD će poslužiti

4-miš i tastatura

i to je….. IT !! To je sve što vam je potrebno da napravite vlastiti Azan sat i alarm

Korak 1: Poglavlje 1: Postavljanje i konfiguriranje RaspberryPI

Poglavlje 1: Postavljanje i konfiguriranje RaspberryPI
Poglavlje 1: Postavljanje i konfiguriranje RaspberryPI

Krenimo redom! Moramo pripremiti Raspberry pi da bismo mogli raditi s njim.

Raspberry pi nije ništa drugo do računar, ima RAM i ROM, ima CPU, GPU, I/O … Računar! baš poput onog na kojem igramo igre i pregledavamo web, jedino je važno da je vrlo mali! što malinu čini vrlo dobrim izborom za izradu i implementaciju projekata. Budući da je malina pi mala, ima vrlo ograničene specifikacije da ne može raditi s velikim zahtjevnim OS -om poput prozora ili macOS -a, umjesto toga ćemo koristiti Linux kao operativni sistem za korištenje uređaja. postoje tisuće, ako ne i desetine tisuća Linux distribucija koje bismo mogli koristiti, ali jedan savršeni distro savršeno je optimiziran posebno za raspberrypi koji ćemo koristiti, nazvan Raspbian.

Korak 2: 1-1: Preuzmite potrebne datoteke

1-1: Preuzmite potrebne datoteke
1-1: Preuzmite potrebne datoteke
1-1: Preuzmite potrebne datoteke
1-1: Preuzmite potrebne datoteke
1-1: Preuzmite potrebne datoteke
1-1: Preuzmite potrebne datoteke

-Idite na službenu stranicu za preuzimanje Rasbian na https://www.raspberrypi.org/software/operating-sy… i preuzmite Raspberry Pi OS sa datotekom za radnu površinu

-Dok se preuzima, idite na https://win32diskimager.org/ i preuzmite i instalirajte win32DiskImager, možete koristiti bilo koji softver za snimanje slika koji vam se sviđa

nakon preuzimanja imat ćete.img datoteku koja sadrži RaspberryPi OS. zatim priključite SD memorijsku karticu u računar (obično s čitačem USB kartica) i pokrenite softver win32diskimager. koraci za snimanje slike u SD memoriju su vrlo jednostavni, samo trebate 1- Odabrati slovo memorije 2-Odaberite OS datoteke koje ste preuzeli i 3-Click write! Uvjerite se da ste sa popisa odabrali pravo slovo uređaja i da vam je memorija prazna jer pritiskom na dugme za pisanje bit ćete promovirani upozorenjem koje vam govori da će sve na uređaju biti izbrisano! Pritisnite da za potvrdu pisanja i pričekajte da se završi. ovo može potrajati i do 20 minuta.

Kada to završi, imat ćete cijeli Rapbian OS u memoriji, možete ga staviti u Rapberry Pi, povezati Raspberry Pi s monitorom putem HDMI -a, spojiti miš i tipkovnicu putem USB -a i na kraju, moć.

Korak 3: 1-2: Konfiguriranje Raspbian sistema

Nakon što spojite kablove i napajanje, vidjet ćete da se OS uključio, automatski će se ponovo pokrenuti, a zatim će prikazati Raspbian korisničko sučelje (koje izgleda slično Windowsima). prva stvar koju ćete vidjeti je prozor dobrodošlice koji će vas provesti kroz korake konfiguracije vašeg RaspberryPi po prvi put. prozori i koraci bit će sljedeći:

1-Pritisnite Next na prvom prozoru "Welcome"

2-Next prozor će biti za konfiguriranje vaše lokacije. odaberite svoju državu, jezik i vremensku zonu. nakon toga, preporučuje se provjera "Koristi engleski jezik" jer će to biti jezik sučelja operativnog sistema. MORATE PROVJERITI "US ENGLISH TYYBOARD LOWOUT BOXO" ZA POSLOVE TREBAMO ENGLESKU TABLU!

3-Od vas će se tražiti da unesete lozinku za svoju malinu, ovo je važno za sigurnost, ali ostavit ćemo je nepromijenjenom za ovaj projekt. imajte na umu da su zadano korisničko ime i lozinka:

korisničko ime: pi

lozinka: malina

4-Next prozor će povezivati raspberryPi na vašu WiFi mrežu. odaberite svoje WiFi ime i unesite svoju WiFi lozinku

5, od vas će se tražiti da ažurirate biblioteke maline pi i sistemske datoteke. ovaj korak će potrajati ogromnu količinu vremena (možda u satima), ali to je vrlo važan korak pri svakom postavljanju novog piva od maline.

6-kad se ažuriranje završi, od vas će se tražiti da ponovo pokrenete sistem. uradi to sada.

Veliki posao! Sada imamo ažurirani sistem, moramo još učiniti neke stvari da konfiguriramo sistem za rad, ali sada ćemo početi koristiti LinuxCommand Line.

Korak 4: 1-3: Upotreba naredbenog retka za postavljanje postavki Rpi

1-3: Korišćenje komandne linije za podešavanje Rpi postavki
1-3: Korišćenje komandne linije za podešavanje Rpi postavki
1-3: Korišćenje komandne linije za podešavanje Rpi postavki
1-3: Korišćenje komandne linije za podešavanje Rpi postavki
1-3: Korišćenje komandne linije za podešavanje Rpi postavki
1-3: Korišćenje komandne linije za podešavanje Rpi postavki

Kada završite s ponovnim pokretanjem iz ažuriranja sistema, sistem će prikazati radnu površinu korisnika nakon što se pokrene. sada, ako pogledate gornji lijevi dio ekrana, pronaći ćete neke tipke, gumb s logotipom raspberryPi koji je gumb izbornika Rpi, oblik globusa koji je internetski preglednik, gumb mape koji je …..mape i na kraju, dugme sa prozorom na crnom ekranu, koje je najvažnije dugme u bilo kom Linux sistemu, komandna linija. samo naprijed i pritisnite to dugme, vidjet ćete da se pojavio crni prozor.

Komandna linija je način na koji svi stupaju u interakciju i koriste linux sistem, baš kao što Windows ima svoju komandnu liniju samo u udovicama koje ne moramo da koristimo često. u linux -u to je osnovna stvar koju svaki korisnik linux -a mora naučiti i savladati. komandnu liniju mogu koristiti …. KOMANDE! ono što vidite u crnom prozoru je naredbeni redak koji čeka da korisnik napiše naredbu i izvrši je. u ovom vodiču ćemo dati sve naredbe koje su vam potrebne za izvođenje ovog projekta, stoga ne brinite.

prva naredba Linuxa koju ćemo koristiti je druga konfiguracijska naredba, imajte na umu da će sve naredbe od sada biti stavljene u okvir za kod, tako da je možete razlikovati od uobičajenih koraka. Donesite tastaturu i upišite sljedeće i pritisnite enter:

sudo raspi-config

Ako to učinite ispravno, vidjet ćete da je ekran postao plav, sa sivim malim okvirom u sredini (vidi sliku). to ćemo upotrijebiti za konačnu konfiguraciju prije početka kodiranja.

sada ćete za kretanje po ovom izborniku morati koristiti tipke sa strelicama na tipkovnici.

1-Idite na Opcije sučelja >> I2C >> DA >> pritisnite enter. ovo omogućava komunikacijski protokol I2c kako bismo mogli koristiti RTC

2-Idite na Napredne opcije >> Proširi datotečni sistem.

i to je sva konfiguracija koja vam je potrebna iz ovog prozora. na glavnoj stranici, idite dolje i pritisnite enter na "finish" i "YES" za ponovno pokretanje sistema.

Kad sistem dovrši ponovno pokretanje, svi smo završili s konfiguracijom! uređaj je spreman za velike korake! Sljedeći korak će biti instaliranje RTC modula i njegovo korištenje sa sistemom.

Korak 5: Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula

Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula

Modul RTC (ili sat u stvarnom vremenu) je mali uređaj koji ima malo baterije, radi ono što naziv implicira, Sat! pa kad ga isključite iz napajanja, sat nastavlja raditi i ne prestaje. zašto nam ovo treba? pa, malina pi zaista nema metodu za pohranjivanje podataka o satu nakon isključivanja, oslanja se na povezivanje s internetom pri pokretanju radi ažuriranja datuma i vremena, ali problem je u tome što nemamo uvijek pristup internetu, a ovo zato nam je potreban RTC modul. RTC će djelovati kao sat za malinu pi, pa će jednom kad se Rpi pokrene uzeti datum i vrijeme iz RTC -a, što će stalno ažurirati vrijeme RaspberryPi -a.

postoji više modela i izgleda za RTC, tu su DS1307 i DS3231. možete koristiti bilo koji RTC modul koji nađete sve dok ima komunikaciju s I2C protokolom (možete naznačiti da ovo možete pronaći SDA i SCL pinove na pinovima modula.

Kao i sve u ovom vodiču, i ja sam koristio druge vodiče da postignem svoj cilj u projektu, ovo uputstvo će vas voditi i reći vam šta točno trebate učiniti da biste napravili ovaj projekt, ali ako trebate izmijeniti ili vam je potrebno više dubine u bilo koji od korake, povezat ću plodonosniji vodič na kraju svakog koraka.

Nakon što ste pripremili svoj RTC modul (zalemite igle zaglavlja i stavite bateriju), možete ga spojiti na RapberryPi pinove na sljedeći način:

RTC PIN ---------------- Rpi pin

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

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

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

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

ili ovisno o tome koji RTC modul imate, možete ga montirati direktno na RaspberryPi (Uvjerite se da su pinovi ispravni !!! jer biste mogli oštetiti Rpi/RTC ako ne)

Nakon što spojite RTC, konfigurirajmo Raspberry.

Korak 6: 2-1: Postavljanje modula

2-1: Postavljanje modula
2-1: Postavljanje modula
2-1: Postavljanje modula
2-1: Postavljanje modula

Prije početka idite na naredbenu liniju i upišite:

datum

Ovo će vratiti trenutni datum i vrijeme na malini, uzeti u obzir tu vrlo korisnu naredbu i zabilježiti trenutni datum i vrijeme kako bismo mogli provjeriti radi li modul ili ne.

sada, započnimo postavljanje, upišite sljedeće za ažuriranje Rpi biblioteka, jedan po jedan red:

sudo apt-get update

sudo apt -get -y nadogradnja

kada to učinimo, moramo izmijeniti sistemske datoteke kako bismo omogućili i2c modul i dodati RTC, kako bismo izmijenili sistem datoteka koji ćemo koristiti softver nazvan Nano. nano je lagani ugrađeni softver koji je u osnovi uređivač teksta, baš poput onog u udovicama. tako da će svaka naredba koja počinje s nano praćena imenom datoteke otvoriti tu datoteku u uređivaču nano teksta. primijetili ste da smo koristili i nešto što se zove Sudo, ukratko, sudo djeluje kao garancija za linux sistem koji govori sistemu da je korisnik koji je napravio tu naredbu vlasnik uređaja, a ne neko drugi, i daje privilegije poput uređivanja/ brisanje korisniku. na primjer, ako bismo otvorili nano datoteku bez sudo -a, mogli bismo je vidjeti, ali je ne možemo urediti niti izbrisati.

sada, moramo izmijeniti datoteku modula, to možemo učiniti upisivanjem:

sudo nano /etc /modules

kada to učinite, pronaći ćete sadržaj te datoteke (pogledajte sliku). koristite tipke sa strelicama da postavite kursor na kraj teksta i dodate sljedeće:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

pritisnite CTRL+S za spremanje i CTRL+X za izlaz

Korak 7: 2-2: I2C sučelje

2-2: I2C sučelje
2-2: I2C sučelje

Sada smo povezali RTC i omogućili i2c, spojimo sve zajedno.

u naredbeni redak upišite sljedeće:

i2cdetect -y 1

dobit ćete niz praznina, ali primijetit ćete da negdje postoji broj, taj broj je adresa vašeg RTC modula. u mom slučaju to je 68. imajte na umu taj broj. ako ne vidite taj dvocifreni broj, to znači da ste vjerojatno pogrešno povezali RTC.

sada, moramo izmijeniti datoteku rc.local tako da možemo omogućiti RTC modul pri pokretanju i omogućiti mu spremanje datuma i vremena u sistem. prvo otvorite datoteku rc.local:

sudo nano /etc/rc.local

Prije linije exit0, dodajte sljedeće:

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

hwclock -s

gdje je 0x68 i2c adresa vašeg uređaja. kada završite, pritisnite CTRL+S CTRL+X, a zatim ponovo pokrenite sistem na sljedeći način:

sudo reboot

Korak 8: 2-3: Testiranje RTC-a

2-3: Testiranje RTC-a
2-3: Testiranje RTC-a

Nakon ponovnog pokretanja sistema možemo provjeriti radi li RTC ili ne. prvo pokrenite:

sudo hwclock -r

bit će vam vraćeni datum i vrijeme na modulu RTC. ako ste dobili nešto drugo, provjerite jeste li pravilno izvršili korake.

sada, da bismo promijenili vrijeme i datum na RTC -u, prvo moramo izmijeniti datum i vrijeme na sistemu, ONDA potvrditi izmjene na RTC -u. da biste to učinili, pokrenite:

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

i naravno, promijenite datum i vrijeme u skladu s vašim lokalnim vremenom i datumom, prije nego pritisnete enter. kada dobijete vrijeme na Rpi desno, pokrenite sljedeće za spremanje datuma i vremena na RTC:

sudo hwclock -w

aaaaa to je to! možete provjeriti radi li pomoću hwclock -r i vidjeti je li datum na RTC -u točan ili ne, zatim odspojite rpi s interneta i zatim ga isključite neko vrijeme, a zatim ga ponovo uključite i provjerite ima li ispravan vrijeme i datum. gotov si!

Kompletan vodič o postavljanju RTC modula možete pronaći ovdje

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

Korak 9: Poglavlje 3: Izrada programa Azan alarma

Poglavlje 3: Izrada Azan programa za alarmiranje
Poglavlje 3: Izrada Azan programa za alarmiranje

izrada sata jedna je stvar, naravno, možemo pogledati sat i vrijeme molitve i vidjeti kada dođe vrijeme, ali ne bi bilo ni MNOGO bolje ako bismo mogli dodati zvučni alarm koji bi nas obavijestio o vremenu molitve? JOŠ BOLJE, mi pravimo taj alarm kao zvuk AZANA! da vidimo kako to možemo postići.

za naše programiranje koristit ćemo python kao naš preferirani programski jezik jer python savršeno pristaje uz RaspberryPi. da bismo napravili kodnu datoteku u pythonu, radimo isto što i otvaranje tekstualne datoteke, ali sada je spremamo kao.py. za pokretanje programa potrebno nam je python okruženje instalirano na raspbery -u, srećom, Raspbian dolazi s predinstaliranim pythonom i python3! tako da sve što trebamo učiniti je programiranje. u ovom vodiču nećemo govoriti o jeziku i poučavati ga kako funkcionira i funkcijama, ali dat ću vam potrebne kodove kako biste mogli napraviti projekt.

za početak, potrebna nam je zvučna datoteka željenog zvuka ezana (u. WAV-u), trebaju nam dvije datoteke, jedna za al-fajr azan i druga za običan azan. jednom kad to nabavite, stavite ga na stick disk i kopirajte na radnu površinu raspberrypi.

sad imamo datoteke, tražio sam način za reprodukciju zvuka na raspberryPi -u i na moje iznenađenje, nije bilo mnogo načina na koje sam to mogao učiniti, ali pronašao sam ovaj odgovor na stackoverflowu koji mi je dao ono što mi je trebalo

stackoverflow.com/questions/20021457/playi…

Testirao sam tu metodu i uspjela je! pa da vidimo kako možemo primijeniti ovu metodu u naš projekt …

Korak 10: 3-1: Pustimo zvuk

3-1: Pustimo zvuk!
3-1: Pustimo zvuk!

prvo idite na radnu površinu na sljedeći način:

cd Desktop

zatim napravite novu datoteku koda pythona:

sudo nano AzanPlay.py

ovo će napraviti novu datoteku pod nazivom AzanPlay s nastavkom na python datoteci.py, imat ćemo prazan crni ekran koji će nam omogućiti pisanje koda. jednostavno zapišite ove retke (pazite da ne promijenite uvlačenje ili razmake, jer je to izuzetno važno u pythonu):

iz pygame uvoznog miksera

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Mekkah.wav') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi

Gdje / Desktop / je mjesto gdje stavljate svoje zvučne datoteke, a 'Adhan-Mekkah.wav' je moja audio datoteka, koja je zvučni zapis Azan u meki.

sada da bismo testirali naš kôd, pokrećemo ga sa pythonom upisivanjem:

python AzanPlay.py

zvuk će se reproducirati sa HDMI LCD -a ili AUX priključka na Raspberrypiju. ako to ne čujete iz LCD zvučnika, priključite slušalice u AUX i provjerite.

Korak 11: 3-2: Dobijte vrijeme molitve

3-2: Dobijte vrijeme molitve
3-2: Dobijte vrijeme molitve

Kao što znamo, vrijeme molitve razlikuje se od mjesta do zemlje na zemlji, pa čak i za određenu lokaciju, s godinama se razlikuje, što znači da moramo pronaći način da stalno održavamo vrijeme molitve u sistemu stalno ažurirano, i za to su nam potrebne posebne i vrlo složene funkcije i proračuni kako bismo to ispravno izvršili. Srećom, naš brat Hamid Zarrabi-Zadeh je sve funkcije koje su nam potrebne pretvorio u jednu funkciju koju možemo lako koristiti kako bismo dobili vrijeme ovisno o našoj lokaciji i trenutnom vremenu, NEVEROVATNO! biblioteku i izvorne datoteke možete pronaći na

praytimes.org/

Dakle, mi ćemo koristiti ove sjajne datoteke kako bismo dobili vrijeme molitve i implementirali ga u sistem. prvo preuzmite kodove sa web stranice i stavite ih u / adhan / folder (potrebni su nam i JS i Python kodovi).

sada, idemo u tu mapu i testiramo biblioteku i šta ona može učiniti:

cd adhan

tamo, moramo napraviti novu testnu datoteku u pythonu kako bismo mogli testirati funkciju:

sudo nano testAd.py

unutra zapišite ovaj kod:

uvezi vrijeme molitve

od datuma uvoza datum -dan tmm = vrijeme molitve. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) ispis (tmm)

Prije spremanja datoteke morate promijeniti LATITUDE sa geografskom širinom vaše lokacije, isto kao i LONGTITUDE i promijeniti GMT u svoju vremensku zonu. u mom slučaju to će biti:

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

ispis (tmm)

Na kraju, CTRL-S i CTRL-X, a zatim pokrenite kôd:

python testAd.py

konačno, bit će vam vraćeno vaše današnje vrijeme molitve za vašu lokaciju.

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

Odlično! sad kad imamo vremena za molitvu i sada znamo svirati zvukove, spojimo ova dva koda zajedno u jedan glavni kod.

Korak 12: 3-3: Izrada konačnog Azan koda alarma

dovršavanjem prethodna dva koda, naučili smo kako doći do tačnog vremena molitve u skladu s našom lokacijom i kako svirati zvuk Azana. sada ćemo spojiti ova dva koda u jedan kod koji ćemo koristiti kao naš konačni projekt, a ovaj će kôd raditi u pozadini, jer kad dođe vrijeme Azana, pustit će zvuk Azana.

Napisao sam cijeli kôd, možete ga kopirati i zalijepiti te unijeti vlastite izmjene po svom nahođenju. Kod je:

vreme uvoza

iz pygame miksera za uvoz uvozni niz uvozi vrijeme moljenja od datuma uvoza datum -datum dok (1): tmm = vrijeme molitve. 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 = vrijeme.strftime (str ('%H')) currTime = tempT tempT = time.strftime (str ('%M')) currTime = currTime + ':' + tempT if currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi ako je currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi ako je currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Mekkah.wav ') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi ako je currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi ako je currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Mekkah.wav') mixer.music.play () dok mixer.music.get_busy () == Tačno: nastavi

Ako pogledate kôd i uporedite ga sa onim što smo prethodno napravili, vidjet ćete da nismo učinili ništa novo, isprva smo uključili potrebne biblioteke, a zatim smo otvorili beskonačnu petlju. u krugu, neprestano računamo vrijeme molitve s našom lokacijom i vremenskom zonom te cijeli rezultat spremamo u varijablu tmm. tada svako vrijeme molitve pohranjujemo od tmm do nezavisne varijable. to će nam omogućiti da uporedimo vremena. zatim uzimamo sistemsko vrijeme i spremamo ga u nezavisnu varijablu. na kraju, nastavljamo uspoređivati sistemsko vrijeme s vremenom molitve, ako se sistemsko vrijeme podudara s bilo kojim vremenom molitve, reproducirat će zvuk Azana.

Korak 13: Poglavlje 4: Implementacija stražarskih lica

Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica
Poglavlje 4: Implementacija stražarskih lica

Kako bi projekt izgledao bolje, došao sam na ideju da dodam brojčanike na LCD, tako da korisniku izgleda lijepo (barem bolje od komandne linije), pa sam angažirao dizajnera da dizajnira više lica za sat, trebao bi biti prazan bez podataka, jer bi podatke trebalo dodavati putem HTML -a, čineći dizajn sata kao pozadinu, a ostali podaci, poput vremena molitve, mogli bi se dodati kao HTML elementi na vrhu pozadine.

Nažalost, u vrijeme pisanja ovog uputstva, moje znanje i iskustvo u HTML -u je vrlo ograničeno pa neću raspravljati o mnogo detalja jer znam da ću stvari učiniti na pogrešan način, a ja ne žele zbuniti ljude. ali ako imate makar malo iskustva u JS -u i HTML -u, trebali biste znati kako nastaviti od ove tačke. do sada sam napravio jedno lice (plavo). plan je napraviti 14 brojčanika! 7 lica za svaki dan u sedmici, a još 7 kao još jedna tema. budući da bi prva tema trebala biti s valjanjem Azkara, a druga bi trebala imati islamske-g.webp

Korak 14: Poglavlje 5: Implementacija korisničkog interfejsa

Poglavlje 5: Implementacija korisničkog interfejsa
Poglavlje 5: Implementacija korisničkog interfejsa

U posljednjem poglavlju našeg putovanja napravit ćemo neke izborne izmjene kako bismo projekt učinili čak i prilagođenim korisniku, u slučaju da projekt želimo provesti u džamiji ili na bilo kojem drugom javnom mjestu. kao što smo već rekli, svaki grad ima svoje vrijeme za molitvu, a kako bismo ovom projektu omogućili pristup široj javnosti, napravit ćemo korisničko sučelje kako bismo mogli odabrati željeni grad i temu nakon uključivanja projekta.

Da bismo to učinili, koristit ćemo python GUI biblioteku pod nazivom "TKinter".

Ovo je kôd koji sam implementirao kako bih imao izbor između pet gradova u Saudijskoj Arabiji, uključujući Meku:

uvoziti tkinter kao tk

iz tkinter importa * iz tkinter uvoza ttk kodeka za uvoz import os klase 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 = "Mekkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Dugme (self, text = "Rijad", visina = 5, širina = 80, naredba = self.open_riyadh1) self.button4 = Dugme (samo, tekst = "Madina", visina = 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, stupac raspona = 2, ljepljiv = W+E+N+S) self.button2.grid (red = 1, stupac = 1, raspon stupaca = 2, ljepljiv = W+E+N+S) self.button3.grid (red = 2, stupac = 1, raspon stupaca = 2, ljepljiv = W+E+N+S) self.button4.grid (red = 3, stupac = 1, raspon stupaca = 2, ljepljiv = W+E+N+S) self.button5.grid (red = 4, stupac = 1, raspon stupaca = 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 (narudžba) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (red) 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 (order)): karl (). mainloop () if _name_ == '_main_': main ()

Kôd bi mogao izgledati velik, ali uređivanje je vrlo jednostavno. u osnovi smo napravili novi prozor, stavili pet naziva dugmadi i definirali pet funkcija koje se pozivaju pri svakom pritisku tipke. nakon što pritisnete dugme, program će otvoriti odgovarajuću HTML datoteku u fascikli Gradovi, za koju svaki HTML grada ima koordinate grada kada dobije vrijeme od molitve (). nakon što pritisnete gumb, python kôd će izuzeti linux kôd u kojem će otvoriti HTML datoteku pomoću preglednika chromium, a imat ćete i sat za prikaz spreman za prikaz, s uključenom opcijom za cijeli zaslon.

Korak 15: (Opcionalno): Dodavanje prekidača za zvučnike

(Opcionalno): Dodavanje prekidača zvučnika
(Opcionalno): Dodavanje prekidača zvučnika
(Opcionalno): Dodavanje prekidača zvučnika
(Opcionalno): Dodavanje prekidača zvučnika

Kao što smo vidjeli, kada dođe vrijeme molitve, Azan reproducira zvuk, a zvuk izlazi iz zadanog zvučnog izlaza (HDMI ili AV izlaz), a budući da ga stavljamo na HDMI izlaz, zvuk će dolaziti s LCD -a. ali, šta ako naš LCD zvuk nije dovoljan? na primjer, šta ako ovo želimo implementirati unutar prave džamije? sa širokim vanjskim zvučnicima? tada možemo dodati još jedan vrlo lak korak da to postignemo. za već izgrađen zvučni sistem, potrebno ga je samo uključiti i isključiti, uzeti već postojeći mikrofon i staviti ga pored LCD zvučnika.

To je lako učiniti. koristit ćemo već postojeći džamijski mikrofon koji je spojen na zvučnik, trebat će nam samo raspberryPi za kontrolu snage koja uključuje i isključuje cijeli zvučni sistem. da bismo to učinili, morat ćemo koristiti SSR: ČVRST DRŽAVNI RELEJ. ove vrste releja mogu djelovati kao prekidač, slično kao i prosječni plavi relej, razlika je u tome što SSR -ovi mogu izdržati veliku količinu izmjenične struje kroz njega, što nije primjenjivo u plavim (obično max 10A), a SSR -ovi trebaju samo dvije žice umjesto 3: DC+ i DC- i to je to! na drugom kraju SSR -a možemo spojiti kabel za napajanje sistema zvučnika, na taj način će, kada damo napon SSR -u, zatvoriti AC krug zvučnika ili isključiti napon kako bismo napravili otvoreni krug, isključivanje zvučnika.

postoji jedna kvaka, RaspberryPi pinovi izlaze 3.3v, a ne 5v koji su nam potrebni za kontrolu SSR -a. pa nam je potreban tranzistor za uzimanje signala sa RPi pina, i 5V sa RPi 5v pina. da bismo to učinili potrebno nam je:

1-čvrsti relej (sve iznad 25A je dobro)

2-2n2222 npn tranzistor

3-220ohm otpornik

slijedite krug fritzinga za povezivanje.

sada ćemo u kôd dodati neke stvari zbog kojih ovo funkcionira. prvo, pre while petlje, dodaćemo neke redove za inicijalizaciju GPIO pinova:

U odjeljak za uvoz dodajte:

uvezite RPi. GPIO kao GPIO

Prije while petlje dodajte:

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

Sada, u petlji while, za svaku igru Azan naredbe, moramo uključiti relej, pričekati 10 sekundi, završiti sviranje Azana, a zatim isključiti relej. moramo samo dodati dva retka, prvi je:

GPIO.izlaz (ledPin, GPIO. HIGH)

time.sleep (10)

ovu treba dodati nakon svake if naredbe (IDENTACIJA JE VAŽNA!), drugi red je:

GPIO.izlaz (ledPin, GPIO. LOW)

Ovo treba dodati nakon linije "nastavi". to bi trebalo izgledati ovako za svaki ezan:

ako je currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () while mixer.music.get_busy () == Tačno: nastavi GPIO.output (ledPin, GPIO. LOW)

Preporučuje se: