Obsah:

Hodinky a alarm pre islamské modlitby RaspberryPi: 15 krokov (s obrázkami)
Hodinky a alarm pre islamské modlitby RaspberryPi: 15 krokov (s obrázkami)

Video: Hodinky a alarm pre islamské modlitby RaspberryPi: 15 krokov (s obrázkami)

Video: Hodinky a alarm pre islamské modlitby RaspberryPi: 15 krokov (s obrázkami)
Video: SKMEI Hot Selling Muslim Prayer Watch 1667 2024, Jún
Anonim
Watch & Alarm Islamské modlitby RaspberryPi
Watch & Alarm Islamské modlitby RaspberryPi
Watch & Alarm Islamské modlitby RaspberryPi
Watch & Alarm Islamské modlitby RaspberryPi

Moslimovia na celom svete majú každý deň päť modlitieb a každá modlitba sa musí konať v určitý čas dňa. kvôli eliptickému spôsobu, akým sa naša planéta pohybuje okolo Slnka, čo spôsobuje, že sa čas východu a západu slnka líši v priebehu celého roka, čo tiež spôsobuje, že čas na modlitbu je nekonštantný, a preto potrebujeme islamské hodinky, ktoré by nám moslimom pripomenuli každý čas modlitby deň.

Každý moslim má spôsob, ako získať prístup k dennému počasiu modlitieb prostredníctvom internetových islamských webových stránok, miestnych islamských kalendárov alebo dokonca prostredníctvom televízie, a väčšina z nás má islamské hodinkové zariadenia, ktoré nám umožňujú modliť sa a modlitebné alarmy.. Ale čo keby sme si vyrobili vlastné zariadenie Watch and Alarm Prayers!

Predtým, ako začnete pracovať na projekte, existuje niekoľko úvah, ktoré by vám mohli byť užitočné pri čítaní tohto návodu. Žijem v Saudskej Arábii, takže niektoré moje kroky a hodnoty sa budú líšiť od vašich a tie počas práce výslovne uvediem. Existujú kroky a obrázky, ktoré môžu obsahovať arabské slová, pretože som urobil rozhranie v arabčine, ale tiež poukážem na to, ako to urobiť v angličtine, aby vám arabské slová na obrázkoch vôbec nerobili starosti, tento projekt môže byť vykonané v akomkoľvek jazyku (čo je úžasné!: D) Ospravedlňte prosím moje preklepy, pretože angličtina nie je môj prvý jazyk.

Do nášho projektu! Tento projekt bude rozdelený do X hlavných krokov, v ktorých do konca X. kroku budeme mať náš projekt pekný a pripravený! Kroky budú nasledovné:

1-Konfigurácia a príprava RaspberryPi

2-Inštalácia modulu RTC

3-Vytvorenie programu Azan Alarm

4-Implementácia ciferníkov

5-Vytvorenie používateľského rozhrania a …

Ako každý projekt, musíme si najskôr pripraviť potrebné diely. časti, ktoré potrebujeme pre tento projekt, sú:

1-RaspberryPi Počítačová súprava Amazon US || Amazon KSA

Môžete použiť akúkoľvek verziu Rpi, len sa uistite, že má Wifi. Použil som Rpi3B+

2-RTC modul hodín v reálnom čase Amazon US || Amazon KSA

Môžete použiť akýkoľvek model modulu RTC, len sa uistite, že má I2C

3-LCD monitor

Postačí akýkoľvek LCD

4-myš a klávesnica

a to je ….. IT !! To je všetko, čo potrebujete na výrobu vlastných azanských hodín a budíka

Krok 1: Kapitola 1: Nastavenie a konfigurácia RaspberryPI

Kapitola 1: Nastavenie a konfigurácia RaspberryPI
Kapitola 1: Nastavenie a konfigurácia RaspberryPI

Prvé veci ako prvé! Aby sme s ním mohli pracovať, musíme si pripraviť malinové pi.

Raspberry pi nie je nič iné ako počítač, má RAM a ROM, má procesor, GPU, I/O … počítač. rovnako ako ten, na ktorom hráme hry a prezeráme web, jediná zásadná vec, že je veľmi malý! čo robí malinu veľmi dobrou voľbou na vytváranie a implementáciu projektov na. pretože malinový pi je malý, má veľmi obmedzené špecifikácie, že nemôže prevádzkovať veľký náročný operačný systém, ako sú Windows alebo MacOS, namiesto toho použijeme ako operačný systém Linux, aby sme mohli zariadenie používať. existujú tisíce, ak nie desaťtisíce distribúcií Linuxu, ktoré by sme mohli použiť, ale jedno perfektné distro je dokonale optimalizované špeciálne pre raspberrypi, ktoré budeme používať, nazývané Raspbian.

Krok 2: 1-1: Stiahnite si potrebné súbory

1-1: Stiahnite si potrebné súbory
1-1: Stiahnite si potrebné súbory
1-1: Stiahnite si potrebné súbory
1-1: Stiahnite si potrebné súbory
1-1: Stiahnite si potrebné súbory
1-1: Stiahnite si potrebné súbory

-Prejdite na oficiálnu stránku sťahovania Rasbianu na adrese https://www.raspberrypi.org/software/operating-sy… a stiahnite si súbor Raspberry Pi OS s počítačom

-Kým sa sťahuje, navštívte stránku https://win32diskimager.org/ a stiahnite si a nainštalujte win32DiskImager, môžete použiť ľubovoľný softvér na napaľovanie obrázkov, ktorý sa vám páči.

Po dokončení sťahovania budete mať súbor.img obsahujúci operačný systém RaspberryPi. potom zapojte pamäťovú kartu SD do počítača (zvyčajne s čítačkou kariet USB) a spustite softvér win32diskimager. kroky na napálenie obrázku do pamäte SD sú veľmi jednoduché, stačí 1-vybrať písmeno pamäte 2-vybrať súbory operačného systému, ktoré ste stiahli, a 3-kliknúť na zápis! Uistite sa, že ste zo zoznamu vybrali správne písmeno zariadenia a pamäť je prázdna, pretože stlačením klávesu Write budete povýšený varovaním, ktoré vám oznámi, že všetko na zariadení bude vymazané! Stlačením Áno potvrďte zápis a počkajte, kým sa dokončí. môže to trvať až 20 minút.

Akonáhle to budete mať hotové, budete mať v pamäti celý operačný systém Rapbian, môžete pokračovať a vložiť ho do Rapberry Pi, pripojiť Raspberry Pi k monitoru cez HDMI, pripojiť myš a klávesnicu cez USB a nakoniec pripojiť moc.

Krok 3: 1-2: Konfigurácia systému Raspbian

Po pripojení káblov a napájania uvidíte, že sa OS zapol, automaticky sa reštartuje a potom sa zobrazí používateľské rozhranie Raspbian (ktoré vyzerá podobne ako okná). Prvá vec, ktorú uvidíte, je uvítacie okno, ktoré vás prvýkrát prevedie krokmi konfigurácie vášho RaspberryPi. okná a kroky budú nasledujúce:

1-V prvom okne „Vitajte“stlačte tlačidlo Ďalej

2-Nasledujúce okno bude konfigurovať vašu polohu. vyberte svoju krajinu, jazyk a časové pásmo. potom dôrazne odporúčame skontrolovať „Použiť anglický jazyk“, pretože to bude jazyk rozhrania operačného systému. MUSÍTE SI SKONTROLOVAŤ „US ENGLISH KEYBOARD LAYOUT BOX“POTREBUJEME FUNGOVAŤ ANGLICKÚ KLÁVESNICU!

3-Ďalej budete vyzvaní, aby ste zadali heslo pre svoju malinu, je to dôležité pre bezpečnosť, ale pre tento projekt to necháme nezmenené. Upozorňujeme, že predvolené používateľské meno a heslo sú:

užívateľské meno: pi

heslo: malina

4-Nasledujúce okno bude pripojenie RaspberryPi k vašej sieti WiFi. vyberte svoje wifi meno a zadajte svoje wifi heslo

5-ďalej budete požiadaní o aktualizáciu knižníc a systémových súborov Raspberry Pi. tento krok bude trvať veľa času (možno niekoľko hodín), ale je to veľmi dôležitý krok pri každom nastavovaní nového malinového pi.

6-Po dokončení aktualizácie budete požiadaní o reštart systému. urob to teraz.

Skvelá práca! Teraz máme aktualizovaný systém, musíme ešte urobiť niekoľko ďalších vecí, aby sme nakonfigurovali systém tak, aby fungoval, ale teraz začneme používať LinuxCommand Line.

Krok 4: 1-3: Použitie príkazového riadka na nastavenie nastavení Rpi

1-3: Použitie príkazového riadka na nastavenie nastavení Rpi
1-3: Použitie príkazového riadka na nastavenie nastavení Rpi
1-3: Použitie príkazového riadka na nastavenie nastavení Rpi
1-3: Použitie príkazového riadka na nastavenie nastavení Rpi
1-3: Použitie príkazového riadka na nastavenie nastavení Rpi
1-3: Použitie príkazového riadka na nastavenie nastavení Rpi

Akonáhle dokončíte reštartovanie z aktualizácie systému, systém po dokončení zavádzania zobrazí plochu používateľa. teraz, keď sa pozriete do ľavej hornej časti obrazovky, nájdete niekoľko tlačidiel, tlačidlo s logom raspberryPi, ktoré je tlačidlom ponuky Rpi, tvar zemegule, ktorý je internetovým prehliadačom, tlačidlo priečinkov, ktoré je ….. priečinky a nakoniec tlačidlo s oknom s čiernou obrazovkou, ktoré je najdôležitejším tlačidlom v každom systéme Linux, príkazový riadok. pokračujte a stlačte toto tlačidlo, uvidíte vyskakujúce čierne okno.

Príkazový riadok je o tom, ako každý interaguje a používa linuxový systém, rovnako ako okná majú svoj vlastný príkazový riadok iba u vdov, nepotrebujeme ho používať príliš často. v linuxe je to základná vec, ktorú sa musí každý užívateľ linuxu naučiť a ovládať. príkazový riadok môže používať …. COMMANDS! to, čo vidíte v čiernom okne, je príkazový riadok, ktorý čaká na príkaz, ktorý užívateľ napíše a vykoná. v tejto príručke dáme všetok príkaz, ktorý potrebujete na vykonanie tohto projektu, takže sa nemusíte báť.

úplne prvý príkaz Linux, ktorý použijeme, je ďalší konfiguračný príkaz. Všimnite si, že všetky príkazy budú odteraz vložené do poľa s kódom, takže ho môžete odlíšiť od bežných krokov. Prineste si klávesnicu, zadajte nasledujúci text a stlačte kláves Enter:

sudo raspi-config

Ak to urobíte správne, uvidíte, že obrazovka zmenila farbu na modrú a v strede je sivé pole (pozri obrázok). použijeme to na konečnú konfiguráciu predtým, ako začneme kódovať.

Teraz sa v tejto ponuke budete musieť pohybovať pomocou klávesov so šípkami na klávesnici.

1-Prejdite na Možnosti rozhrania >> I2C >> ÁNO >> stlačte Enter. toto je povolený komunikačný protokol I2c, aby sme mohli používať RTC

2-Prejdite na položku Rozšírené možnosti >> Rozbaľte súborový systém.

a to je všetka konfigurácia, ktorú v tomto okne potrebujete. na hlavnej stránke prejdite nadol a stlačením klávesov Enter na „dokončiť“a „ÁNO“reštartujte systém.

Akonáhle sa systém reštartuje, konfigurácia je dokončená! zariadenie je pripravené na veľké kroky! Ďalším krokom bude inštalácia modulu RTC a jeho použitie so systémom.

Krok 5: Kapitola 2: Montáž, konfigurácia a používanie modulu RTC

Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC
Kapitola 2: Montáž, konfigurácia a používanie modulu RTC

Modul RTC (alebo hodiny v reálnom čase) je malé zariadenie, na ktorom je malá batéria, robí to, čo naznačuje názov, Hodiny! takže keď ho odpojíte, hodiny budú fungovať a nezastavia sa. prečo to potrebujeme? Raspberry Pi skutočne nemá žiadny spôsob ukladania údajov o hodinách, akonáhle je vypnuté, spolieha sa na pripojenie k internetu pri štarte, aby aktualizovalo dátum a čas, ale problém je v tom, že nie vždy máme prístup na internet, a toto preto potrebujeme modul RTC. RTC bude fungovať ako hodiny pre Raspberry Pi, takže akonáhle bude Rpi zavedený, bude z RTC trvať dátum a čas, čím bude čas RaspberryPi neustále aktualizovaný.

existuje niekoľko modelov a hľadá RTC, existujú DS1307 a DS3231. môžete použiť akýkoľvek modul RTC, ktorý nájdete, pokiaľ má komunikáciu v protokole I2C (môžete naznačiť, že na kolíkoch modulov nájdete piny SDA a SCL.

ako všetko v tejto príručke, aj ja som použil iné príručky na dosiahnutie svojho cieľa v projekte, aj tento návod vás prevedie a povie vám, čo presne musíte urobiť, aby ste urobili tento projekt, ale ak potrebujete upraviť alebo potrebujete väčšiu hĺbku v ktoromkoľvek z krokov, na konci každého kroku prepojím plodnejšieho sprievodcu.

Akonáhle budete mať svoj modul RTC pripravený (spájkujte kolíky záhlavia a vložte batériu), môžete ho pripojiť k pinom RapberryPi nasledovne:

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

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

Vcc ============> PIN 1 (3,3 V)

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

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

alebo podľa toho, aký modul RTC máte, ho môžete namontovať priamo na RaspberryPi (uistite sa, že kolíky sú správne !!! pretože ak nie, môžete poškodiť Rpi/RTC)

Keď ste pripojili RTC, nakonfigurujte Raspberry.

Krok 6: 2-1: Nastavenie modulu

2-1: Nastavenie modulu
2-1: Nastavenie modulu
2-1: Nastavenie modulu
2-1: Nastavenie modulu

Pred spustením prejdite na príkazový riadok a zadajte:

dátum

Tým sa vráti aktuálny dátum a čas na Raspberry, vezmite na vedomie tento veľmi užitočný príkaz a poznačte si aktuálny dátum a čas, aby sme mohli skontrolovať, či modul funguje alebo nie.

teraz začnime s inštaláciou, zadajte nasledujúci príkaz na aktualizáciu knižníc Rpi, jeden po druhom:

sudo apt-get aktualizácia

aktualizácia sudo apt -get -y

Akonáhle je to hotové, musíme upraviť systémové súbory, aby bol povolený modul i2c a pridať RTC. Na úpravu súborového systému použijeme softvér s názvom Nano. nano je ľahký vstavaný softvér, ktorý je v podstate textovým editorom, rovnako ako ten, ktorý je vdova. takže každý príkaz, ktorý začína nano, za ktorým nasleduje názov súboru, tento súbor otvorí v nano textovom editore. všimli ste si, že sme použili aj niečo, čo sa nazýva Sudo. Stručne povedané, sudo funguje ako uistenie pre systém linux, ktoré systému hovorí, že používateľ, ktorý vykonal tento príkaz, je vlastník zariadenia, nie niekto iný, a udeľuje oprávnenia, ako je úprava/ vymazanie používateľovi. napríklad keby sme otvorili nano súbor bez sudo, mohli by sme si tento súbor zobraziť, ale nemôžeme ho upraviť ani odstrániť.

teraz musíme upraviť súbor modulov, môžeme to urobiť zadaním:

sudo nano /etc /modules

Akonáhle to urobíte, nájdete obsah tohto súboru (pozri obrázok). pomocou klávesov so šípkami umiestnite kurzor na koniec textu a pridajte nasledujúce:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

stlačením CTRL+S uložíte a CTRL+X ukončíte

Krok 7: 2-2: Rozhranie I2C

2-2: Rozhranie I2C
2-2: Rozhranie I2C

Teraz sme pripojili RTC a povolili i2c, spojme všetko dohromady.

do príkazového riadka napíšte nasledujúce:

i2cdetect -y 1

dostanete pole prázdnych miest, ale všimnete si, že niekde je číslo, toto číslo je adresa vášho modulu RTC. v mojom prípade je to 68. všimnite si to číslo. Ak nevidíte toto dvojciferné číslo, znamená to, že ste pravdepodobne nesprávne pripojili RTC.

teraz musíme upraviť súbor rc.local, aby sme mohli povoliť modul RTC pri štarte a nechať ho uložiť dátum a čas do systému. Najprv otvorte súbor rc.local:

sudo nano /etc/rc.local

Pred riadok exit0 pridajte nasledujúce:

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

hwclock -s

kde 0x68 je adresa i2c vášho zariadenia. Akonáhle skončíte, stlačte kombináciu klávesov CTRL+S CTRL+X a reštartujte systém takto:

sudo reštart

Krok 8: 2-3: Testovanie RTC

2-3: Testovanie RTC
2-3: Testovanie RTC

Akonáhle je systém reštartovaný, môžeme skontrolovať, či RTC funguje alebo nie. Najprv spustite:

sudo hwclock -r

dostanete späť dátum a čas v module RTC. ak dostanete niečo iné, uistite sa, že ste kroky urobili správne.

teraz, aby sme mohli zmeniť čas a dátum na RTC, musíme najskôr zmeniť dátum a čas v systéme, potom POTOM zmeny RTC. Ak to chcete urobiť, spustite:

dátumy sudo "29. AUG 1997 13:00:00"

a samozrejme, predtým, ako stlačíte Enter, zmeňte dátum a čas podľa miestneho času a dátumu. akonáhle získate čas na Rpi vpravo, spustite nasledujúce, aby ste uložili dátum a čas na RTC:

sudo hwclock -w

aaaaa to je ono! môžete skontrolovať, či to funguje, hwclock -r a zistiť, či je dátum na RTC správny alebo nie, potom odpojte rpi od internetu a potom ho na nejaký čas vypnite a potom znova zapnite a zistite, či má správny čas a dátum. hotovo!

Úplný sprievodca nastavením modulu RTC nájdete tu

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

Krok 9: Kapitola 3: Vytvorenie programu Azan Alarm

Kapitola 3: Vytvorenie programu Azan Alarm
Kapitola 3: Vytvorenie programu Azan Alarm

výroba hodiniek je jedna vec, iste, môžeme sa pozrieť na hodiny a modlitebné časy a zistiť, kedy príde čas, ale nebolo by to ešte oveľa lepšie, keby sme mohli pridať zvukový alarm, ktorý by nás upozornil na modlitebné časy? EŠTE LEPŠÍ, robíme ten poplach ako zvuk AZAN! Pozrime sa, ako to môžeme dosiahnuť.

pre naše programovanie použijeme python ako náš preferovaný programovací jazyk, pretože python sa perfektne hodí k RaspberryPi. aby sme vytvorili súbor kódu v pythone, urobíme to isté ako otvorenie textového súboru, ale teraz ho uložíme ako.py. Na spustenie programu potrebujeme nainštalované prostredie python raspbery, našťastie je Raspbian dodávaný s vopred nainštalovaným pythonom a python3! všetko, čo musíme urobiť, je programovať. v tejto príručke nebudeme hovoriť o jazyku a naučíme vás, ako funguje a o funkciách, ale poskytnem vám potrebné kódy, aby ste mohli vytvoriť projekt.

Na začiatok potrebujeme zvukový súbor nami preferovaného zvuku azánu (vo formáte. WAV), potrebujeme dva súbory, jeden pre al-fajr azan a druhý pre pravidelný azan. Akonáhle to získate, vložte ho na disk Stick a skopírujte ho na plochu Raspberrypi.

Teraz máme súbory, hľadal som spôsob, ako prehrávať zvukové záznamy na RaspberryPi a na moje prekvapenie nebolo veľa spôsobov, ako by som to mohol urobiť, ale túto odpoveď som našiel na stackoverflow, ktorý mi poskytol to, čo som potreboval.

stackoverflow.com/questions/20021457/playi…

Túto metódu som vyskúšal a fungovala! Pozrime sa teda, ako môžeme túto metódu implementovať do nášho projektu …

Krok 10: 3-1: Poďme hrať zvuk

3-1: Poďme hrať zvuk!
3-1: Poďme hrať zvuk!

najskôr prejdite na pracovnú plochu:

cd pracovná plocha

potom vytvorte nový súbor kódu pythonu podľa:

sudo nano AzanPlay.py

tým sa vytvorí nový súbor s názvom AzanPlay s príponou v súbore python.py, budeme mať prázdnu čiernu obrazovku, ktorá nám umožní napísať náš kód. jednoducho napíšte tieto riadky (dávajte pozor, aby ste nezmenili žiadne odsadenie alebo medzery, pretože to je v pythone EXTRÉMNE dôležité):

z mixéra importu pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == Pravda: pokračovať

Kde / desktop / je miesto, kam vkladáte zvukové súbory, a „Adhan-Makkah.wav“je môj zvukový súbor, čo je azánsky zvukový záznam v makke.

teraz, aby sme otestovali náš kód, spustíme ho s pythonom zadaním:

python AzanPlay.py

a budete prehrávať zvuk z vášho HDMI LCD alebo z vášho AUX portu, ktorý je na Raspberrypi. ak to nepočujete z reproduktorov LCD, zapojte slúchadlá do AUX a skontrolujte.

Krok 11: 3-2: Získajte modlitbové časy

3-2: Získajte časy modlitieb
3-2: Získajte časy modlitieb

Ako vieme, modlitebné časy sa medzi jednotlivými miestami na Zemi líšia a dokonca aj pre konkrétne miesto sa líši v priebehu rokov, to znamená, že musíme nájsť spôsob, ako udržať naše modlitebné časy v systéme neustále aktualizované a Na to potrebujeme správne a veľmi komplexné funkcie a výpočty. Našťastie náš brat Hamid Zarrabi-Zadeh spojil všetky funkcie, ktoré potrebujeme, do jednej funkcie, pomocou ktorej môžeme ľahko získať čas v závislosti od našej polohy a aktuálneho času, ÚŽASNÉ! knižnicu a zdrojové súbory nájdete na

praytimes.org/

Tieto úžasné súbory teda použijeme na zistenie času modlitby a jeho implementáciu do systému. Najprv si stiahnite kódy z webových stránok a vložte ich do priečinka / adhan / (Potrebujeme kódy JS aj Python).

Teraz prejdeme do tohto priečinka a otestujeme knižnicu a čo dokáže:

cd adhan

tam musíme vytvoriť nový testovací súbor v pythone, aby sme mohli otestovať funkciu:

sudo nano testAd.py

dovnútra si zapíšte tento kód:

dovozné modlitebné časy

z dátumu importu dátumu tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Pred uložením súboru musíte zmeniť LATITUDE so svojou polohou Latitude, rovnako ako LONGTITUDE a zmeniť GMT na časové pásmo. v mojom prípade to bude:

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

tlač (tmm)

Nakoniec CTRL-S a CTRL-X a potom spustite kód:

python testAd.py

Nakoniec vám bude vrátený čas vašich modlitieb za dnešok, za vaše miesto.

{'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'}

Skvelé! teraz, keď máme čas na modlitbu a teraz vieme, ako hrať zvuky, spojme tieto dva kódy dohromady do jedného hlavného kódu.

Krok 12: 3-3: Vytvorenie konečného azánskeho poplachového kódu

Dokončením predchádzajúcich dvoch kódov sme sa naučili, ako získať presné časy modlitieb podľa našej polohy a ako hrať azánsky zvuk. Teraz spojíme tieto dva kódy do jedného kódu, ktorý použijeme ako konečný projekt, a tento kód bude fungovať na pozadí, pretože keď príde azánsky čas, bude hrať azánsky zvuk.

Napísal som celý kód, môžete ho skopírovať a prilepiť a vykonať vlastné zmeny, ako uznáte za vhodné. Kód je:

čas importu

z mixéra importu pygame import reťazca importu modlitieb z dátumu importu dátumu a času, kým (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')) proudTime = tempT tempT = time.strftime (str ('%M')) proudTime = wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if streamTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if streamTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if streamTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if streamTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == Pravda: pokračovať

Ak sa pozriete na kód a porovnáte ho s tým, čo sme vytvorili predtým, uvidíte, že sme neurobili nič nové, najskôr sme zahrnuli potrebné knižnice a potom sme otvorili nekonečnú slučku. v slučke neustále vypočítavame čas modlitieb s naším umiestnením a časovým pásmom a celý výsledok ukladáme do premennej tmm. potom uložíme každý čas modlitby od tmm do nezávislej premennej. čo nám umožní porovnať časy. ďalej zoberieme systémový čas a uložíme ho do nezávislej premennej. nakoniec stále porovnávame systémový čas s modlitebnými časmi, ak sa systémový čas zhoduje s niektorým z modlitebných časov, bude hrať azánsky zvuk.

Krok 13: Kapitola 4: Implementácia ciferníkov

Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov
Kapitola 4: Implementácia ciferníkov

Aby projekt vyzeral lepšie, napadlo ma pridať na ciferník ciferníky, aby to vyzeralo pre používateľa príjemne (prinajmenšom lepšie ako príkazový riadok), a preto som najal dizajnéra, aby navrhol viacero tvárí na hodinky by mali byť prázdne bez údajov, pretože údaje by sa mali pridávať prostredníctvom HTML, čím by sa hodinky navrhli ako pozadie, a ostatné údaje, ako napríklad časy modlitieb, by bolo možné pridať ako prvky HTML na vrch pozadia.

Bohužiaľ, v čase, keď píšem tento návod, sú moje znalosti a skúsenosti v HTML veľmi obmedzené, takže nebudem diskutovať o mnohých podrobnostiach, pretože viem, že veci budem robiť zlým spôsobom a nie chcú ľudí zmiasť. ale ak máte aspoň malé skúsenosti s JS a HTML, mali by ste vedieť, ako od tohto bodu pokračovať. zatiaľ som urobil jednu tvár (tú modrú). plán je vytvoriť 14 ciferníkov! 7 tvárí na každý deň v týždni a ďalších 7 ako ďalšia téma. keďže prvá téma má byť s valením Azkara a druhá téma má mať namiesto Azkaru islamské GIFY. bez ohľadu na to uvediem všetky návrhy v tomto návode, aby ste si ho mohli stiahnuť.

Krok 14: Kapitola 5: Implementácia používateľského rozhrania

Kapitola 5: Implementácia používateľského rozhrania
Kapitola 5: Implementácia používateľského rozhrania

V poslednej kapitole našej cesty urobíme niekoľko voliteľných úprav, aby bol projekt dokonca užívateľsky prívetivý, v prípade, že chceme projekt realizovať v mešite alebo na akomkoľvek verejnom mieste. ako sme už povedali, každé mesto má svoje vlastné načasovanie modlitieb, a aby bol tento projekt prístupnejší pre širšiu skupinu ľudí, vytvoríme používateľské rozhranie, aby sme si mohli vybrať požadované mesto a tému, akonáhle sa zapojíme do projektu.

Na tento účel použijeme knižnicu Python GUI s názvom „TKinter“.

Toto je kód, ktorý som implementoval, aby som si mohol vybrať z piatich miest v Saudskej Arábii vrátane Mekky:

importovať tkinter ako tk

z importu z tkinter * z importu z tkinter importovať kodeky ttk import os triedy karl (rámček): 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", výška = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (riadok = 0, stĺpec = 1, stĺpec span = 2, lepkavý = W+E+N+S) self.button2.grid (riadok = 1, stĺpec = 1, columnspan = 2, lepivý = W+E+N+S) self.button3.grid (riadok = 2, stĺpec = 1, stĺpec span = 2, lepkavý = W+E+N+S) self.button4.grid (riadok = 3, stĺpec = 1, stĺpček = 2, lepkavý = W+E+N+S) self.button5.grid (riadok = 4, stĺpec = 1, stĺpecspan = 2, lepkavé = 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 (poradie) 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 () if _name_ == '_main_': main ()

Kód môže vyzerať veľký, ale jeho úprava je veľmi jednoduchá. V zásade sme vytvorili nové okno, vložili sme päť tlačidiel s názvami a definovali sme päť funkcií, ktoré sa majú vyvolať pri každom stlačení tlačidla. akonáhle stlačíte tlačidlo, program otvorí zodpovedajúci súbor HTML v priečinku Cities, v ktorom má každé mesto HTML súradnice mesta, keď dostane čas na modlitby (). akonáhle stlačíte tlačidlo, kód pythonu vylúči kód linuxu, v ktorom otvorí súbor HTML pomocou prehliadača chróm, a budete mať ciferník pripravený na zobrazenie so zapnutou možnosťou celej obrazovky.

Krok 15: (Voliteľné): Pridanie prepínača reproduktora

(Voliteľné): Pridanie prepínača reproduktora
(Voliteľné): Pridanie prepínača reproduktora
(Voliteľné): Pridanie prepínača reproduktora
(Voliteľné): Pridanie prepínača reproduktora

Ako sme videli, keď príde čas modlitby, Azanská zvuková hra a zvuk vychádza z predvoleného zvukového výstupu (výstup HDMI alebo AV), a keďže ho prepíname na výstup HDMI, zvuk bude vychádzať z obrazovky LCD. ale čo keď náš zvuk LCD nestačí? napríklad, čo keď to chceme implementovať do skutočnej mešity? so širokými vonkajšími reproduktormi? potom môžeme pridať ešte jeden VEĽMI ľahký krok, ako to dosiahnuť. v prípade už vybudovaného zvukového systému reproduktorov ho musíme iba zapnúť a vypnúť a vziať už existujúci mikrofón a položiť ho vedľa reproduktorov LCD.

Je ľahké to urobiť. použijeme už existujúci mešitový mikrofón, ktorý je pripojený k hlasnému reproduktoru, budeme potrebovať iba RaspberryPi na ovládanie napájania, ktoré zapína a vypína celý zvukový systém. aby sme to urobili, budeme musieť použiť SSR: SOLID STATE RELAY. tieto typy relé môžu fungovať ako prepínač, podobne ako priemerné modré relé, rozdiel je v tom, že SSR cez to vydržia veľké množstvo striedavého prúdu, ktorý nie je použiteľný v modrých (zvyčajne max. 10A), a SSR potrebuje iba dva vodiče namiesto 3: DC+ a DC- a je to! na druhom konci SSR môžeme pripojiť napájací kábel systému reproduktorov, takže keď dáme napätie do SSR, zatvorí to striedavý obvod systému reproduktorov alebo vypneme napätie a vytvoríme otvorený obvod, vypnutie reproduktorov.

Je tu jeden háčik, piny RaspberryPi majú výstup 3,3 V, nie 5 V, ktoré potrebujeme na ovládanie SSR. takže potrebujeme tranzistor na zachytenie signálu z kolíka RPi a 5V z kolíka RPi 5v. na to potrebujeme:

1-polovodičové relé (všetko nad 25 A je dobré)

2-2n2222 npn tranzistor

Rezistor 3-220 ohmov

na pripojenie sa riaďte fritzovacím obvodom.

teraz v kóde pridáme nejaké veci, vďaka ktorým to funguje. pred cyklom while najskôr pridáme niekoľko riadkov na inicializáciu pinov GPIO:

V sekcii importu pridajte:

importujte RPi. GPIO ako GPIO

Pred slučku while pridajte:

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

Teraz, v cykle while, na každý príkaz Azan na hranie musíme zapnúť relé, počkať 10 sekúnd, dohrať azan a potom relé vypnúť. stačí pridať dva riadky, prvý z nich je:

GPIO.output (ledPin, GPIO. HIGH)

time.sleep (10)

tento by mal byť pridaný za každým príkazom if (IDENTÁCIA JE DÔLEŽITÉ!), druhý riadok je:

GPIO.output (ledPin, GPIO. LOW)

Ten by mal byť pridaný za riadok „pokračovať“. malo by to vyzerať takto pre každý azanský čas:

if proudTime == 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 () == Pravda: pokračovať v GPIO.output (ledPin, GPIO. LOW)

Odporúča: