Sadržaj:
- Korak 1: Poglavlje 1: Postavljanje i konfiguriranje RaspberryPI -ja
- Korak 2: 1-1: Preuzmite potrebne datoteke
- Korak 3: 1-2: Konfiguriranje Raspbian sustava
- Korak 4: 1-3: Korištenje naredbenog retka za postavljanje postavki Rpi
- Korak 5: Poglavlje 2: Montiranje, konfiguriranje i korištenje RTC modula
- Korak 6: 2-1: Postavljanje modula
- Korak 7: 2-2: I2C sučelje
- Korak 8: 2-3: Testiranje RTC-a
- Korak 9: Poglavlje 3: Izrada programa alarma Azan
- Korak 10: 3-1: Pustimo zvuk
- Korak 11: 3-2: Dobijte vrijeme molitve
- Korak 12: 3-3: Izrada konačnog koda alarma Azan
- Korak 13: Poglavlje 4: Provedba stražnjih lica
- Korak 14: Poglavlje 5: Implementacija korisničkog sučelja
- Korak 15: (Izborno): Dodavanje prekidača za zvučnike
Video: RaspberryPi islamske molitvene satovi i alarm: 15 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:31
Muslimani diljem svijeta imaju pet namaza svaki dan, a svaki namaz mora biti u određeno doba dana. zbog eliptičnog načina na koji se naš planet kreće oko sunca, zbog čega se vrijeme izlaska i zalaska sunca razlikuje tijekom godine, što također čini vrijeme molitve nepromjenjivim, zbog čega nam je potreban islamski sat koji će nas podsjećati muslimane na vrijeme molitve svaki dan.
Svaki musliman ima način pristupa dnevnom vremenu molitve vremenu putem internetskih islamskih web stranica, lokalnih islamskih kalendara ili čak putem televizije, a većina nas ima islamske ure za gledanje koje 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 početka rada 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 tijekom rada. Postoje koraci i slike koji mogu uključivati arapske riječi budući da sam spoj na arapskom jeziku, ali također ću vam pokazati kako to učiniti na engleskom, tako da vas arapske riječi na slikama uopće ne brinu, ovaj projekt može biti učinjeno na bilo kojem jeziku (što je sjajno!: D) Također, oprostite zbog pogrešaka u pisanju jer engleski nije moj prvi jezik.
Idemo dalje prema našem projektu! Ovaj će projekt biti podijeljen na 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-Ugradnja RTC modula
3-Izrada programa Azan Alarm
4-Implementiranje lica sata
5-Izrada korisničkog sučelja i
Kao i svaki projekt, prvo moramo pripremiti dijelove koji su nam potrebni. dijelovi koji su nam potrebni za ovaj projekt su:
1-RaspberryPi Računalni 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 tipkovnica
i to je to!! To je sve što vam je potrebno da napravite vlastiti sat i alarm Azan
Korak 1: Poglavlje 1: Postavljanje i konfiguriranje RaspberryPI -ja
Prvo prvo! Moramo pripremiti Raspberry pi da bismo mogli raditi s njim.
Raspberry pi nije ništa drugo nego računalo, ima RAM i ROM, ima CPU, GPU, I/O … Računalo! 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 provedbu projekata na. Budući da je malina pi mala, ima vrlo ograničene specifikacije da ne može upravljati velikim zahtjevnim OS -om poput prozora ili macOS -a, umjesto toga ćemo koristiti Linux kao operativni sustav kako bismo mogli koristiti uređaj. postoje tisuće, ako ne i deseci 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
-Idite na službenu stranicu za preuzimanje Rasbian na https://www.raspberrypi.org/software/operating-sy… i preuzmite Raspberry Pi OS s datotekom za stolno računalo
-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čunalo (obično s čitačem USB kartica) i pokrenite softver win32diskimager. koraci za snimanje slike u SD memoriju vrlo su jednostavni, samo trebate 1- Odabrati svoje memorijsko slovo 2-Odaberite datoteke OS-a koje ste preuzeli i 3-Click write! Provjerite jeste li odabrali pravo slovo uređaja s popisa i je li vam memorija prazna jer pritiskom na tipku za pisanje bit ćete promaknuti upozorenjem koje vam govori da će se sve na uređaju izbrisati! Pritisnite da za potvrdu pisanja i pričekajte da završi. to može potrajati i do 20 minuta.
Nakon što to učinite, imat ćete cijeli Rapbian OS u memoriji, možete ga staviti u Rapberry Pi, povezati Raspberry Pi s monitorom putem HDMI -a, povezati miš i tipkovnicu putem USB -a i na kraju, spojiti vlast.
Korak 3: 1-2: Konfiguriranje Raspbian sustava
Nakon spajanja kabela i napajanja, vidjet ćete da se OS uključio, automatski će se ponovno pokrenuti, a zatim će se 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, toplo se preporučuje da označite "Koristi engleski jezik" jer će to biti jezik sučelja operacijskog sustava. MORATE PROVJERITI "US ENGLISH TYYBOARD LOWOUT BOXO". TREBAMO ENGLESKU TASTATURU ZA RAD!
3-Zatim ćete od vas tražiti da unesete lozinku za svoju malinu, to 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 knjižnice maline pi i sistemske datoteke. ovaj korak će oduzeti mnogo vremena (možda u satima), ali to je vrlo važan korak pri svakom postavljanju novog piva od maline.
6-nakon ažuriranja, od vas će se tražiti da ponovno pokrenete sustav. učini to sada.
Dobar posao! Sada imamo ažurirani sustav, moramo još učiniti neke stvari kako bismo sustav konfigurirali za rad, ali sada ćemo početi koristiti LinuxCommand Line.
Korak 4: 1-3: Korištenje naredbenog retka za postavljanje postavki Rpi
Nakon što dovršite ponovno pokretanje s ažuriranja sustava, sustav će prikazati korisničku radnu površinu nakon što se pokrene. sada ako pogledate gornji lijevi dio zaslona, pronaći ćete neke gumbe, gumb s logotipom raspberryPi koji je gumb izbornika Rpi, oblik globusa koji je internetski preglednik, gumb za mape koji je …..mape i na kraju, gumb s crnim prozorom, koji je najvažniji gumb u bilo kojem Linux sustavu, naredbeni redak. samo naprijed i pritisnite taj gumb, vidjet ćete da se pojavio crni prozor.
Naredbeni redak je način na koji svi stupaju u interakciju i koriste linux sustav, baš kao što Windows ima vlastiti naredbeni redak samo u udovicama koje ne moramo koristiti često. u linuxu to je osnovna stvar koju svaki korisnik linuxa mora naučiti i savladati. naredbeni redak mogu koristiti …. ZAPOVIJEDI! ono što vidite u crnom prozoru je naredbeni redak koji čeka da korisnik napiše naredbu i izvrši je. u ovom ćemo vodiču 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 unutar okvira koda, tako da je možete razlikovati od uobičajenih koraka. Donesite tipkovnicu i upišite sljedeće i pritisnite enter:
sudo raspi-config
Ako to učinite ispravno, vidjet ćete da je zaslon postao plav, sa sivim malim okvirom u sredini (vidi sliku). to ćemo upotrijebiti za konačnu konfiguraciju prije nego počnemo kodirati.
sada ćete za navigaciju po ovom izborniku morati koristiti tipke sa strelicama na tipkovnici.
1-Idite na Opcije sučelja >> I2C >> DA >> pritisnite enter. ovo omogućuje komunikacijski protokol I2c kako bismo mogli koristiti RTC
2-Idite na Napredne opcije >> Proširi datotečni sustav.
i to je sva konfiguracija koja vam je potrebna iz ovog prozora. na glavnoj stranici idite dolje i pritisnite enter na "završiti" i "DA" da biste ponovno pokrenuli sustav.
Kad sustav dovrši ponovno pokretanje, svi smo završili s konfiguracijom! uređaj je spreman za velike korake! Sljedeći korak bit će instaliranje RTC modula i njegovo korištenje sa sustavom.
Korak 5: 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? dobro, malina pi doista nema način pohranjivanja 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 malinovo pi, pa će jednom kad se Rpi pokrene uzeti datum i vrijeme iz RTC -a, što će održavati RaspberryPi vrijeme ažuriranim cijelo vrijeme.
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 igle SDA i SCL na pinovima modula.
Kao i sve u ovom vodiču, i ja sam koristio druge vodiče za postizanje svog cilja u projektu, ovo uputstvo će vas voditi i reći vam točno što učiniti za izradu ovog projekta, 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 iglice 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,3 V)
SDA ===========> PIN 3 (SDA)
SCL ===========> PIN 5 (SCL)
ili ovisno o tome koji RTC modul imate, možete ga montirati izravno na RaspberryPi (Provjerite jesu li pinovi ispravni !!! jer biste mogli oštetiti Rpi/RTC ako ne)
Nakon što spojite RTC, konfigurirajmo Raspberry.
Korak 6: 2-1: Postavljanje modula
Prije početka idite na naredbeni redak i upišite:
datum
To ć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 knjižnica, jedan po jedan redak:
sudo apt-get ažuriranje
sudo apt -get -y nadogradnja
nakon što to učinimo, moramo izmijeniti sistemske datoteke kako bismo omogućili i2c modul i dodati RTC, kako bismo izmijenili datotečni sustav koji ćemo koristiti softver nazvan Nano. nano je lagani ugrađeni softver koji je u osnovi uređivač teksta, baš poput onog u udovicama. pa će svaka naredba koja počinje s nano praćena imenom datoteke otvoriti tu datoteku u nano tekstualnom uređivaču. primijetili ste da smo također koristili nešto što se zove Sudo, ukratko, sudo djeluje kao jamstvo za linux sustav koji govori sustavu da je korisnik koji je napravio tu naredbu vlasnik uređaja, a ne netko 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 promijeniti datoteku modula, to možemo učiniti upisivanjem:
sudo nano /etc /moduli
nakon što to učinite, pronaći ćete sadržaj te datoteke (vidi sliku). pomoću tipki sa strelicama postavite kursor na kraj teksta i dodajte 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
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. uzmite u obzir taj broj. ako ne vidite taj dvoznamenkasti broj, to znači da ste vjerojatno pogrešno spojeni RTC.
sada, moramo izmijeniti datoteku rc.local kako bismo mogli omogućiti RTC modul pri pokretanju i omogućiti mu spremanje datuma i vremena u sustav. 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 ponovno pokrenite sustav na sljedeći način:
sudo ponovno podizanje sustava
Korak 8: 2-3: Testiranje RTC-a
Nakon ponovnog pokretanja sustava možemo provjeriti radi li RTC ili ne. prvo, pokrenite:
sudo hwclock -r
vratit će vam se 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 promijeniti datum i vrijeme u sustavu, ONDA potvrditi izmjene na RTC -u. da biste to učinili, pokrenite:
sudo date -s "29. KOLOVOZA 1997 13:00:00"
i naravno, promijenite datum i vrijeme u skladu s vašim lokalnim vremenom i datumom, prije nego pritisnete enter. nakon što dobijete vrijeme na Rpi desno, pokrenite sljedeće za spremanje datuma i vremena na RTC:
sudo hwclock -w
aaaaa i 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 na neko vrijeme pa ga ponovo uključite i provjerite ima li ispravnu vrijeme i datum. gotov si!
Cijeli 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 alarma Azan
izrada sata jedna je stvar, naravno, možemo pogledati sat i vrijeme molitve i vidjeti kada za to 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! pa sve što moramo učiniti je programiranje. u ovom vodiču nećemo govoriti o jeziku i poučavati ga kako radi i funkcijama, ali dat ću vam potrebne kodove kako biste mogli izraditi projekt.
za početak, potrebna nam je zvučna datoteka našeg preferiranog zvuka ezana (u. WAV-u), trebaju nam dvije datoteke, jedna za al-fajr azan i druga za običan ezan. 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 zvučnih zapisa na raspberryPi 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
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 datoteku.py, imat ćemo prazan crni zaslon 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 uvozne miješalice
mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Mekkah.wav') mixer.music.play () while mixer.music.get_busy () == Istina: 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 za testiranje našeg koda, pokrećemo ga s pythonom upisivanjem:
python AzanPlay.py
zvuk će se sušiti s HDMI LCD -a ili AUX priključka koji se nalazi na Raspberrypiju. ako ga ne čujete iz LCD zvučnika, priključite slušalice u AUX i provjerite.
Korak 11: 3-2: Dobijte vrijeme molitve
Kao što znamo, vrijeme molitve razlikuje se od mjesta do mjesta na zemlji, pa čak i za određeno mjesto, s godinama se razlikuje, što znači da moramo pronaći način da stalno održavamo vrijeme molitve u sustavu ažurirano, i za to su nam potrebne posebne i vrlo složene funkcije i izračuni kako bismo to ispravno izvršili. Srećom, naš brat Hamid Zarrabi-Zadeh učinio je sve funkcije koje su nam potrebne 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, upotrijebit ćemo ove sjajne datoteke kako bismo dobili vrijeme molitve i implementirali ga u sustav. prvo preuzmite kodove s web stranice i stavite ih u / adhan / mapu (potrebni su nam i JS i Python kodovi).
sada, idemo u tu mapu i isprobajmo biblioteku i što 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 -vrijeme tmm = vrijeme molitve. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) ispis (tmm)
Prije spremanja datoteke morate promijeniti LATITUDE sa zemljopisnom širinom lokacije, isto kao i LONGTITUDE i promijeniti GMT u svoju vremensku zonu. u mom slučaju to će biti:
tmm = vrijeme molitve. 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 vrijeme molitve za danas, za vašu lokaciju.
{'isha': '18: 58 ',' asr ': '15: 22', 'sunset': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' ponoć ': '00: 17', 'izlazak sunca': '06: 52 ',' fajr ': '05: 33'}
Sjajno! 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 koda alarma Azan
dovršavanjem prethodna dva koda, naučili smo kako dobiti točna vremena molitve u skladu s našim mjestom 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:
vrijeme uvoza
iz pygame miksera za uvoz uvozni niz uvozi vrijeme moljenja od datuma uvoza datum i vrijeme 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 () == True: nastavi ako je currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: nastavi ako je currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Mekkah.wav ') mixer.music.play () while mixer.music.get_busy () == Istina: nastavi ako je currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Mekkah.wav ') mixer.music.play () while mixer.music.get_busy () == Istina: nastavi ako je currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Mekkah.wav') mixer.music.play () while mixer.music.get_busy () == Istina: nastavi
Ako pogledate kôd i usporedite ga s 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 petlji neprestano računamo vrijeme molitve s našim mjestom i vremenskom zonom te cijeli rezultat spremamo u varijablu tmm. tada svako vrijeme molitve pohranjujemo od tmm do neovisne varijable. to će nam omogućiti usporedbu vremena. zatim uzmemo sistemsko vrijeme i pohranimo ga u neovisnu varijablu. na kraju, nastavljamo uspoređivati sistemsko vrijeme s vremenom molitve, ako se sistemsko vrijeme podudara s bilo kojim od vremena molitve, reproducirat će zvuk Azana.
Korak 13: Poglavlje 4: Provedba stražnjih lica
Kako bi projekt izgledao bolje, došao sam na ideju dodavanja brojčanika na LCD, tako da korisniku izgleda lijepo (barem bolje od naredbenog retka) pa sam angažirao dizajnera da dizajnira više lica sat, trebao bi biti prazan bez podataka, jer se podaci trebaju dodavati putem HTML -a, čineći dizajn sata pozadinom, a ostali podaci, poput vremena molitve, mogu 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 želite zbuniti ljude. ali ako imate makar malo iskustva u JS -u i HTML -u, trebali biste znati kako nastaviti od ove točke. do sada sam napravio jedno lice (ono plavo). plan je napraviti 14 brojčanika! 7 lica za svaki dan u tjednu, a još 7 kao još jedna tema. jer bi prva tema trebala biti s valjanjem Azkara, a druga tema trebala bi imati islamske-g.webp
Korak 14: Poglavlje 5: Implementacija korisničkog sučelja
U posljednjem poglavlju našeg putovanja napravit ćemo neke dodatne izmjene kako bi projekt bio čak i prilagođen korisnicima, 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 = Button (self, text = "Rijad", visina = 5, širina = 80, naredba = self.open_riyadh1) self.button4 = Button (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 (redak = 0, stupac = 1, raspon stupaca = 2, ljepljiv = W+E+N+S) self.button2.grid (redak = 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 (redak = 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 (poredak) 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 (red)): 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 gumba s imenima i definirali pet funkcija koje će se pozivati pri svakom pritisku gumba. nakon što pritisnete gumb, program će otvoriti odgovarajuću HTML datoteku u mapi 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: (Izborno): Dodavanje prekidača za zvučnike
Kao što smo vidjeli, kada dođe vrijeme molitve, zvuk Azan se reproducira, 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, što ako naš LCD zvuk nije dovoljan? na primjer, što 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 sustav zvučnika, potrebno ga je samo uključiti i isključiti, te 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 sustav. 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 nju, š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 sustava zvučnika, na taj način će, kada damo napon SSR -u, zatvoriti izmjenični krug zvučničkog sustava ili isključiti napon kako bismo stvorili otvoreni krug, isključivanje zvučnika.
postoji jedna kvaka, igle RaspberryPi izlaze 3.3v, a ne 5v koje su nam potrebne za kontrolu SSR -a. pa nam je potreban tranzistor za uzimanje signala s RPi pina, a 5V s RPi 5v pina. za to nam je potrebno:
1-kruti relej (sve iznad 25A je dobro)
2-2n2222 npn tranzistor
Otpornik 3-220 ohma
slijedite krug fritzinga za povezivanje.
sada ćemo u kôd dodati neke stvari zbog kojih ovo funkcionira. prvo, prije while petlje, dodat ćemo nekoliko redaka 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 i zatim isključiti relej. moramo dodati samo dva retka, prvi je:
GPIO.izlaz (ledPin, GPIO. HIGH)
vrijeme.spavanje (10)
ovu treba dodati nakon svake if naredbe (IDENTACIJA JE VAŽNA!), drugi redak je:
GPIO.izlaz (ledPin, GPIO. LOW)
Ovo treba dodati nakon retka "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 () == Istina: nastavi GPIO.output (ledPin, GPIO. LOW)
Preporučeni:
RaspberryPi 3/4 produžna ploča za dodavanje dodatnih značajki Raspberry Pi: 15 koraka (sa slikama)
RaspberryPi 3/4 ploča za proširenje za dodavanje dodatnih značajki Raspberry Pi: znamo da malina pi 3/4 ne dolazi s ugrađenim ADC -om (analogno -digitalni pretvarač) i RTC -om (sat u stvarnom vremenu) pa sam dizajnirao PCB koji sadrži 16 kanalni 12 -bitni ADC, RTC, SIM7600 4G modul, tipke, releji, USB napajanje, izlaz 5 V, napajanje 12 V
Satovi - Kako izgraditi sat od satova!: 14 koraka (sa slikama)
Clockception - Kako izgraditi sat izrađen od satova!: Bok svima! Ovo je moja prijava za prvi put autorski natječaj 2020! Ako vam se sviđa ovaj projekt, bio bih jako zahvalan na vašem glasu :) Hvala! Ova instrukcija će vas voditi kroz proces izgradnje sata od satova! Pametno sam nazvao
Fotoaparat RaspberryPI - MagicBox: 13 koraka (sa slikama)
RaspberryPI foto kamera - MagicBox: Maloprije sam imao ludu ideju stvoriti fotografski stroj od Raspberry PI -ja. U mom gradu bila je mala predstava u kojoj su ljudi odlazili i pokazivali što rade ili su napravili koristeći elektroniku, računala itd … Bio sam poput siromaha
Redstone satovi (Minecraft): 3 koraka
Redstone satovi (Minecraft): Ova instrukcija će vam pokazati kako se izrađuju različiti satovi od redstona. Svakako pogledajte moje druge Minecraft upute za Bugatti Chiron tutorial
Alarm za razbijanje stakla / alarm za provalu: 17 koraka
Alarm za razbijanje stakla / alarm za provalu: Ovaj se krug može koristiti za oglašavanje alarma radi otkrivanja razbijanja staklenog prozora od uljeza, čak i ako uljez osigurava da nema zvuka razbijenog stakla