Obsah:

Islámské modlitby RaspberryPi Watch & Alarm: 15 kroků (s obrázky)
Islámské modlitby RaspberryPi Watch & Alarm: 15 kroků (s obrázky)

Video: Islámské modlitby RaspberryPi Watch & Alarm: 15 kroků (s obrázky)

Video: Islámské modlitby RaspberryPi Watch & Alarm: 15 kroků (s obrázky)
Video: #foru #ramadan #alarm #Ya Muhhamad s.a 2024, Červen
Anonim
Islámské modlitby RaspberryPi Watch & Alarm
Islámské modlitby RaspberryPi Watch & Alarm
Islámské modlitby RaspberryPi Watch & Alarm
Islámské modlitby RaspberryPi Watch & Alarm

Muslimové na celém světě mají každý den pět modliteb a každá modlitba se musí konat v určitou denní dobu. vzhledem k eliptickému způsobu, jakým se naše planeta pohybuje kolem Slunce, což způsobuje, že se čas východu a západu Slunce v průběhu roku liší, což také činí čas modlitby nestálým, a proto potřebujeme islámské hodinky, které by nám muslimům připomněly každou dobu modlení den.

Každý muslim má způsob, jak přistupovat k počasí počasí každý den prostřednictvím internetu, islámských webových stránek, místních islámských kalendářů nebo dokonce prostřednictvím televize, a většina z nás má islámské hodinky, které mají vlastnosti, které nám dávají časy modliteb, stejně jako modlitební alarmy. Ale co kdybychom vytvořili vlastní zařízení Prayers Watch and Alarm!

Než začnete pracovat na projektu, existuje několik úvah, které by vám mohly být užitečné při čtení tohoto Instructable. Žiji v Saúdské Arábii, takže některé mé kroky a hodnoty se budou lišit od vašich a ty během práce výslovně uvedu. Existují kroky a obrázky, které mohou obsahovat arabská slova, protože jsem vytvořil rozhraní v arabštině, ale také poukážu na to, jak to udělat v angličtině, takže si nenechte arabská slova na obrázcích vůbec dělat starosti, tento projekt může být provedeno v jakémkoli jazyce (což je úžasné!: D) Také prosím omluvte mé překlepy, protože angličtina není můj první jazyk.

Přejít na náš projekt! Tento projekt bude rozdělen do X hlavních kroků, které do konce X. kroku budeme mít náš projekt pěkný a připravený! Kroky budou následující:

1-Konfigurace a příprava RaspberryPi

2-Instalace modulu RTC

3-Vytvoření programu Azan Alarm

4-Implementace ciferníků

5-Vytvoření uživatelského rozhraní a …

Jako každý projekt musíme nejprve připravit potřebné díly. součásti, které pro tento projekt potřebujeme, jsou:

1-RaspberryPi Počítačová sada Amazon US || Amazon KSA

Můžete použít jakoukoli verzi Rpi, jen se ujistěte, že má Wifi. Použil jsem Rpi3B+

2-RTC modul hodin reálného času Amazon US || Amazon KSA

Můžete použít jakýkoli model modulu RTC, jen se ujistěte, že má I2C

3-LCD monitor

Jakýkoli LCD bude stačit

4-myš a klávesnice

a to je vše!! To je vše, co potřebujete k výrobě vlastních azanských hodin a budíku

Krok 1: Kapitola 1: Nastavení a konfigurace RaspberryPI

Kapitola 1: Nastavení a konfigurace RaspberryPI
Kapitola 1: Nastavení a konfigurace RaspberryPI

Pěkně popořádku! Abychom s ním mohli pracovat, musíme si připravit Raspberry pi.

Raspberry pi není nic jiného než počítač, má RAM a ROM, má CPU, GPU, I/O … počítač. stejně jako ten, na kterém hrajeme hry a procházíme web, hlavní věc je, že je velmi malý! díky čemuž je malina velmi dobrou volbou pro vytváření a implementaci projektů. protože malinový pi je malý, má velmi omezené specifikace, že nemůže provozovat velký náročný operační systém, jako jsou Windows nebo macOS, místo toho použijeme Linux jako operační systém, abychom mohli zařízení používat. existují tisíce, ne -li desítky tisíc distribucí Linuxu, které bychom mohli použít, ale jedno dokonalé distro je perfektně optimalizováno speciálně pro raspberrypi, které budeme používat, nazývané Raspbian.

Krok 2: 1-1: Stáhněte si potřebné soubory

1-1: Stáhněte si potřebné soubory
1-1: Stáhněte si potřebné soubory
1-1: Stáhněte si potřebné soubory
1-1: Stáhněte si potřebné soubory
1-1: Stáhněte si potřebné soubory
1-1: Stáhněte si potřebné soubory

-Přejděte na oficiální stránku pro stahování Rasbian na adrese https://www.raspberrypi.org/software/operating-sy… a stáhněte si soubor Raspberry Pi OS s desktopem

-Během stahování přejděte na https://win32diskimager.org/ a stáhněte a nainstalujte win32DiskImager, můžete použít libovolný software pro vypalování obrázků, který se vám líbí

Jakmile je stahování dokončeno, budete mít soubor.img obsahující operační systém RaspberryPi. dále připojte paměťovou kartu SD k počítači (obvykle pomocí čtečky karet USB) a spusťte software win32diskimager. kroky pro vypálení obrázku do paměti SD jsou velmi jednoduché, stačí: 1-vybrat písmeno paměti 2-vybrat soubory OS, které jste stáhli, a 3-kliknout na zápis! Ujistěte se, že jste vybrali správné písmeno zařízení ze seznamu a že je vaše paměť prázdná, protože stisknutím klávesy Write budete povýšeni varováním, které vám řekne, že cokoli na zařízení bude vymazáno! Stisknutím Yes potvrďte zápis a počkejte, až se dokončí. může to trvat až 20 minut.

Jakmile budete hotovi, budete mít v paměti celý operační systém Rapbian, můžete pokračovat a vložit jej do Rapberry Pi, připojit Raspberry Pi k monitoru přes HDMI, připojit myš a klávesnici přes USB a nakonec připojit Napájení.

Krok 3: 1-2: Konfigurace systému Raspbian

Po připojení kabelů a napájení uvidíte, že se OS zapnul, automaticky se restartuje a poté zobrazí uživatelské rozhraní Raspbian (které vypadá podobně jako Windows). první věc, kterou uvidíte, je uvítací okno, které vás poprvé provede kroky konfigurace vašeho RaspberryPi. okna a kroky budou následující:

1-Stiskněte další v prvním okně „Vítejte“

2-Další okno bude konfigurovat vaši polohu. vyberte svou zemi, jazyk a časové pásmo. poté důrazně doporučujeme zaškrtnout políčko „Použít anglický jazyk“, protože toto bude jazyk rozhraní operačního systému. MUSÍTE ZKONTROLOVAT „US ENGLISH KEYBOARD LAYOUT BOX“POTŘEBUJEME K PRÁCI ENGLISH KEYBOARD!

3-Dále budete požádáni o zadání hesla pro vaši malinu, to je důležité pro bezpečnost, ale pro tento projekt to necháme beze změny. Všimněte si toho, že výchozí uživatelské jméno a heslo jsou:

uživatelské jméno: pí

heslo: malina

4-Další okno bude připojení raspberryPi k vaší WiFi síti. vyberte své wifi jméno a zadejte své wifi heslo

5-next, you will be asked to update the raspberry pi libraries and system files. tento krok zabere obrovské množství času (možná hodin), ale je to velmi důležitý krok pokaždé, když se nastavuje nové malinové pi.

6-Po dokončení aktualizace budete vyzváni k restartování systému. udělej to hned.

Skvělá práce! Nyní máme aktualizovaný systém, ještě musíme udělat nějaké další věci, abychom nakonfigurovali systém tak, aby fungoval, ale nyní začneme používat LinuxCommand Line.

Krok 4: 1-3: Použití příkazového řádku k nastavení nastavení Rpi

1-3: Použití příkazového řádku k nastavení nastavení Rpi
1-3: Použití příkazového řádku k nastavení nastavení Rpi
1-3: Použití příkazového řádku k nastavení nastavení Rpi
1-3: Použití příkazového řádku k nastavení nastavení Rpi
1-3: Použití příkazového řádku k nastavení nastavení Rpi
1-3: Použití příkazového řádku k nastavení nastavení Rpi

Jakmile dokončíte restart z aktualizace systému, systém po dokončení bootování zobrazí plochu uživatele. nyní, když se podíváte do levého horního rohu obrazovky, najdete některá tlačítka, tlačítko s logem raspberryPi, což je tlačítko nabídky Rpi, tvar zeměkoule, což je internetový prohlížeč, tlačítko složek, které je…..složky a nakonec tlačítko s oknem černé obrazovky, což je nejdůležitější tlačítko v každém linuxovém systému, Příkazový řádek. pokračujte a stiskněte toto tlačítko, uvidíte vyskakující černé okno.

Příkazový řádek je o tom, jak každý interaguje a používá linuxový systém, stejně jako windows má svůj vlastní příkazový řádek pouze u vdov, které nepotřebujeme používat příliš často. v linuxu je to základní věc, kterou se každý uživatel linuxu musí naučit a zvládnout. příkazový řádek může používat…. COMMANDS! to, co vidíte v černém okně, je příkazový řádek, který čeká na příkaz, který uživatel napíše a provede. v této příručce dáme veškerý příkaz, který potřebujete k provedení tohoto projektu, takže si nedělejte starosti.

úplně první příkaz Linuxu, který použijeme, je další konfigurační příkaz. Všimněte si, že všechny příkazy odteď budou vloženy do pole s kódem, takže ho můžete odlišit od běžných kroků. Přineste si klávesnici, zadejte následující a stiskněte Enter:

sudo raspi-config

Pokud to uděláte správně, uvidíte, že obrazovka změnila barvu na modrou a šedé malé pole uprostřed (viz obrázek). použijeme to k naší konečné konfiguraci, než začneme kódovat.

nyní se v této nabídce budete muset pohybovat pomocí kláves se šipkami na klávesnici.

1-Přejděte na Možnosti rozhraní >> I2C >> ANO >> stiskněte Enter. toto je povolit komunikační protokol I2c, abychom mohli používat RTC

2-Přejděte na Pokročilé možnosti >> Rozbalte souborový systém.

a to je veškerá konfigurace, kterou v tomto okně potřebujete. na hlavní stránce přejděte dolů a stisknutím klávesy Enter na „dokončení“a „ANO“restartujte systém.

Jakmile systém dokončí restart, dokončíme konfiguraci! zařízení je připraveno na velké kroky! Dalším krokem bude instalace modulu RTC a jeho použití se systémem.

Krok 5: Kapitola 2: Montáž, konfigurace a používání modulu RTC

Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC
Kapitola 2: Montáž, konfigurace a používání modulu RTC

Modul RTC (nebo hodiny v reálném čase) je malé zařízení, které má malou baterii, dělá to, co naznačuje název, Hodiny! takže když jej odpojíte, aby hodiny pracovaly, stále fungují a nezastaví se. Proč tohle potřebujeme? Raspberry Pi opravdu nemá žádný způsob ukládání dat hodin, jakmile je vypnuto, spoléhá se na připojení k internetu při spuštění, aby aktualizovalo datum a čas, ale problém je v tom, že nemáme vždy přístup k internetu, a toto proto potřebujeme modul RTC. RTC bude fungovat jako hodiny pro Raspberry Pi, takže jakmile bude Rpi spuštěno, bude trvat datum a čas z RTC, což bude udržovat čas RaspberryPi neustále aktualizovaný.

existuje několik modelů a hledá RTC, existují DS1307 a DS3231. můžete použít jakýkoli modul RTC, který najdete, pokud má komunikaci protokolem I2C (můžete uvést, že na pinech modulu najdete piny SDA a SCL.

jako cokoli v této příručce, použil jsem k dosažení svého cíle v projektu jiné příručky, tato instruktáž vás provede a řekne vám přesně, co dělat, abyste tento projekt vytvořili, ale pokud potřebujete upravit nebo potřebujete větší hloubku do kteréhokoli z kroků, propojím plodnější průvodce na konci každého kroku.

Jakmile budete mít svůj modul RTC připravený (připájejte kolíky záhlaví a vložte baterii), můžete jej připojit k pinům RapberryPi následujícím způsobem:

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

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

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

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

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

nebo v závislosti na tom, jaký modul RTC máte, jej můžete namontovat přímo na RaspberryPi (ujistěte se, že kolíky jsou správné !!! protože pokud ne, můžete poškodit Rpi/RTC)

Jakmile připojíte RTC, pojďme nakonfigurovat Raspberry.

Krok 6: 2-1: Nastavení modulu

2-1: Nastavení modulu
2-1: Nastavení modulu
2-1: Nastavení modulu
2-1: Nastavení modulu

Než začnete, přejděte na příkazový řádek a zadejte:

datum

Tím se vrátí aktuální datum a čas na Raspberry, vezměte na vědomí tento velmi užitečný příkaz a poznamenejte si aktuální datum a čas, abychom mohli zkontrolovat, zda modul funguje nebo ne.

Nyní začněme s nastavením, zadejte následující příkaz k aktualizaci knihoven Rpi, jeden řádek po druhém:

sudo apt-get update

sudo apt -get -y upgrade

jakmile to bude hotové, musíme upravit systémové soubory, abychom povolili modul i2c a přidali RTC, abychom mohli upravit souborový systém, použijeme software s názvem Nano. nano je lehký vestavěný software, který je v podstatě textovým editorem, stejně jako ten u vdov. takže jakýkoli příkaz, který začíná nano následovaný názvem souboru, otevře tento soubor v nano textovém editoru. všimli jste si, že jsme také použili něco, co se jmenuje Sudo, zkrátka sudo funguje jako ujištění pro linuxový systém, který systému říká, že uživatel, který provedl tento příkaz, je vlastník zařízení, nikoli někdo jiný, a dává oprávnění jako úpravy/ smazání uživateli. pokud bychom například otevřeli nano soubor bez sudo, mohli bychom tento soubor zobrazit, ale nemůžeme jej upravit ani odstranit.

nyní potřebujeme upravit soubor modulů, můžeme to udělat zadáním:

sudo nano /etc /modules

jakmile to uděláte, najdete obsah tohoto souboru (viz obrázek). pomocí kláves se šipkami umístěte kurzor na konec textu a přidejte následující:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

stiskněte CTRL+S pro uložení a CTRL+X pro ukončení

Krok 7: 2-2: Rozhraní I2C

2-2: Rozhraní I2C
2-2: Rozhraní I2C

Nyní jsme připojili RTC a povolili i2c, pojďme vše spojit dohromady.

do příkazového řádku zadejte následující:

i2cdetect -y 1

dostanete řadu prázdných míst, ale všimnete si, že někde je číslo, toto číslo je adresa vašeho modulu RTC. v mém případě je to 68. poznamenejte si to číslo. pokud toto dvouciferné číslo nevidíte, znamená to, že jste pravděpodobně špatně připojili RTC.

nyní musíme upravit soubor rc.local, abychom mohli při spuštění povolit modul RTC a nechat jej uložit do systému datum a čas. nejprve otevřete soubor rc.local:

sudo nano /etc/rc.local

Před řádek exit0 přidejte následující:

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

hwclock -s

kde 0x68 je adresa vašeho zařízení i2c. Jakmile budete hotovi, stiskněte CTRL+S CTRL+X a restartujte systém takto:

sudo restart

Krok 8: 2-3: Testování RTC

2-3: Testování RTC
2-3: Testování RTC

Jakmile je systém restartován, můžeme zkontrolovat, zda RTC funguje nebo ne. první běh:

sudo hwclock -r

dostanete zpět datum a čas v modulu RTC. pokud dostanete něco jiného, ujistěte se, že jste kroky provedli správně.

nyní, abychom mohli upravit čas a datum na RTC, musíme nejprve upravit Datum a Čas v systému, PAK POTOM proveďte úpravy RTC. Chcete -li to provést, spusťte:

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

a samozřejmě změňte datum a čas podle místního času a data, než stisknete Enter. jakmile získáte čas na Rpi vpravo, spusťte následující a uložte datum a čas do RTC:

sudo hwclock -w

aaaa to je ono! můžete zkontrolovat, zda to funguje, hwclock -r a zjistit, zda je datum na RTC správné nebo ne, pak odpojte rpi od internetu a poté jej na nějakou dobu vypněte a poté znovu zapněte a zjistěte, zda má správné čas a datum. jsi hotový!

Úplný průvodce nastavením modulu RTC naleznete zde

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

Krok 9: Kapitola 3: Vytvoření programu Azan Alarm

Kapitola 3: Vytvoření programu Azan Alarm
Kapitola 3: Vytvoření programu Azan Alarm

Výroba hodinek je jedna věc, můžeme se podívat na hodiny a časy modliteb a zjistit, kdy přijde čas, ale nebylo by to ještě mnohem lepší, kdybychom mohli přidat zvukový alarm, který by nás upozornil na modlitební časy? ALE LEPŠÍ, děláme ten poplach jako zvuk AZAN! uvidíme, jak toho můžeme dosáhnout.

pro naše programování použijeme python jako náš preferovaný programovací jazyk, protože python se perfektně hodí k RaspberryPi. Chcete -li vytvořit soubor kódu v pythonu, děláme to samé jako otevření textového souboru, ale nyní jej uložíme jako.py. ke spuštění programu potřebujeme prostředí python nainstalované na Raspbery, naštěstí Raspbian přichází s předinstalovaným pythonem a python3! Nezbývá tedy než programovat. v této příručce nebudeme hovořit o jazyce a učit, jak funguje a funkce, ale poskytnu vám potřebné kódy, abyste mohli projekt vytvořit.

pro začátek potřebujeme zvukový soubor námi preferovaného azanského zvuku (v. WAV) potřebujeme dva soubory, jeden pro al-fajr azan a druhý pro pravidelný azan. jakmile to dostanete, dejte to na disk a zkopírujte jej na plochu Raspberrypi.

teď máme soubory, hledal jsem způsob, jak přehrávat zvukové zvuky na RaspberryPi a k mému překvapení nebylo mnoho způsobů, jak bych to mohl udělat, ale našel jsem tuto odpověď na StackOverflow, která mi dala to, co jsem potřeboval

stackoverflow.com/questions/20021457/playi…

testoval jsem tuto metodu a fungovalo to! pojďme se tedy podívat, jak můžeme tuto metodu implementovat do našeho projektu …

Krok 10: 3-1: Pojďme si pustit zvuk

3-1: Pojďme hrát zvuk!
3-1: Pojďme hrát zvuk!

nejprve přejděte na plochu pomocí:

cd Desktop

pak vytvořte nový soubor kódu pythonu podle:

sudo nano AzanPlay.py

tím se vytvoří nový soubor s názvem AzanPlay s příponou v souboru python.py, budeme mít prázdnou černou obrazovku, která nám umožní napsat náš kód. jednoduše zapište tyto řádky (dávejte pozor, abyste neměnili žádné odsazení nebo mezery, protože to je v pythonu MNOHEM důležité):

z mixéru importu pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () zatímco mixer.music.get_busy () == Pravda: pokračovat

Kde / Desktop / je místo, kam vkládáte zvukové soubory, a 'Adhan-Makkah.wav' je můj zvukový soubor, což je azanský zvukový záznam v makce.

nyní, abychom otestovali náš kód, spustíme jej s pythonem zadáním:

python AzanPlay.py

a budete mít zvuk přehrávající se z vašeho HDMI LCD nebo vašeho AUX portu, který je na Raspberrypi. pokud to z reproduktorů LCD neslyšíte, připojte sluchátka k AUX a zkontrolujte.

Krok 11: 3-2: Získejte časy modliteb

3-2: Získejte časy modliteb
3-2: Získejte časy modliteb

Jak víme, modlitební časy se liší od jednoho místa na druhém k druhému a dokonce i pro konkrétní místo se liší v průběhu let, to znamená, že musíme najít způsob, jak udržovat modlitební časy v systému neustále aktualizované a k tomu potřebujeme konkrétní a velmi složité funkce a výpočty, abychom to správně uvedli. Naštěstí náš bratr Hamid Zarrabi-Zadeh vytvořil všechny funkce, které potřebujeme, do jedné funkce, kterou můžeme snadno použít k získání času v závislosti na naší poloze a aktuálním čase, ÚŽASNÉ! knihovnu a zdrojové soubory najdete na

praytimes.org/

Tyto úžasné soubory tedy použijeme k získání modliteb a jejich implementaci do systému. nejprve si stáhněte kódy z webových stránek a vložte je do složky / adhan / (Potřebujeme kódy JS i Python).

Pojďme nyní do této složky a otestujte knihovnu a co dokáže:

cd adhan

tam musíme vytvořit nový testovací soubor v pythonu, abychom mohli funkci otestovat:

sudo nano testAd.py

uvnitř si zapište tento kód:

importovat modlitební časy

z datetime import date tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) tisk (tmm)

Před uložením souboru musíte změnit LATITUDE s vaší polohou Latitude, stejně jako LONGTITUDE, a změnit GMT na vaše časové pásmo. v mém případě to bude:

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

tisk (tmm)

Nakonec CTRL-S a CTRL-X a poté spusťte kód:

python testAd.py

konečně vám budou vráceny modlitební časy pro dnešek, za vaši polohu.

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

Skvělý! teď, když máme čas na modlitbu a teď víme, jak hrát zvuky, spojme tyto dva kódy dohromady do jednoho hlavního kódu.

Krok 12: 3-3: Vytvoření konečného azanského poplachového kódu

dokončením předchozích dvou kódů jsme se naučili, jak získat přesné časy modliteb podle naší polohy a jak přehrát azanský zvuk. Nyní spojíme dva kódy do jednoho kódu, který použijeme jako náš konečný projekt, a tento kód bude fungovat na pozadí, protože až přijde čas Azan, bude hrát zvuk Azan.

Napsal jsem celý kód, můžete jej zkopírovat a vložit a provádět vlastní změny, jak uznáte za vhodné. Kód je:

čas importu

z mixéru importu pygame import řetězce importu modliteb z data data data importu 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 = 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 () zatímco mixer.music.get_busy () == True: pokračovat

Když se podíváte na kód a porovnáte ho s tím, co jsme vytvořili dříve, uvidíte, že jsme neudělali nic moc nového, nejprve jsme zahrnuli potřebné knihovny a poté jsme otevřeli nekonečnou smyčku. ve smyčce neustále vypočítáváme čas modliteb s naší polohou a časovým pásmem a celý výsledek ukládáme do proměnné tmm. poté uložíme každou dobu modlitby od tmm do nezávislé proměnné. to nám umožní porovnat časy. dále vezmeme systémový čas a uložíme jej do nezávislé proměnné. nakonec stále porovnáváme systémový čas s modlitebními časy, pokud se systémový čas shoduje s některým z modlitebních časů, přehraje azanský zvuk.

Krok 13: Kapitola 4: Implementace ciferníků

Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků
Kapitola 4: Implementace ciferníků

Aby projekt vypadal lépe, napadlo mě přidat ciferníky na LCD, takže to vypadá hezky pro uživatele (alespoň lépe než pro příkazový řádek), takže jsem najal designéra, který navrhl více obličejů hodinky, měly by být prázdné bez dat, protože data by měla být přidána prostřednictvím HTML, takže design hodinek bude jako pozadí, a další data, jako jsou časy modliteb, by mohla být přidána jako prvky HTML na pozadí.

Bohužel, v době psaní tohoto instruktu schopného, moje znalosti a zkušenosti v HTML jsou velmi omezené, takže nebudu diskutovat o mnoha podrobnostech, protože vím, že budu věci dělat špatným způsobem, a ne chtít lidi zmást. ale pokud máte alespoň malé zkušenosti s JS a HTML, měli byste vědět, jak od tohoto bodu pokračovat. zatím jsem udělal jedinou tvář (tu modrou). plán je vytvořit 14 ciferníků! 7 tváří pro každý den v týdnu a dalších 7 jako další téma. protože první téma má být s válením Azkarů a druhé téma má mít místo Azkaru islámské GIFY. bez ohledu na to zahrnu všechny návrhy do tohoto návodu, abyste si jej mohli stáhnout.

Krok 14: Kapitola 5: Implementace uživatelského rozhraní

Kapitola 5: Implementace uživatelského rozhraní
Kapitola 5: Implementace uživatelského rozhraní

V poslední kapitole naší cesty provedeme několik volitelných úprav, aby byl projekt uživatelsky přívětivý, v případě, že chceme projekt realizovat v mešitě nebo na jakémkoli veřejném místě. jak jsme řekli dříve, každé město má své vlastní načasování modliteb, a aby byl tento projekt přístupný pro širší veřejnost, vytvoříme uživatelské rozhraní, abychom si mohli vybrat hledané město a téma, jakmile se zapojíme do projektu.

K tomu použijeme knihovnu python GUI s názvem „TKinter“.

Toto je kód, který jsem implementoval, aby mi dal na výběr mezi pěti městy v Saúdské Arábii, včetně Mekky:

importovat tkinter jako tk

z tkinter import * z tkinter import ttk import kodeků import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (self, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Tlačítko (self, text = "Rijád", výška = 5, šířka = 80, příkaz = self.open_riyadh1) self.button4 = Tlačítko (self, text = "Madina", výška = 5, width = 80, command = self.open_madina1) self.button5 = Tlačítko (self, text = "Qasim", výška = 5, šířka = 80, příkaz = self.open_qasaim1) self.button1.grid (řádek = 0, sloupec = 1, columnspan = 2, lepkavý = W+E+N+S) self.button2.grid (řádek = 1, sloupec = 1, columnspan = 2, lepivý = W+E+N+S) self.button3.grid (řádek = 2, sloupec = 1, sloupec span = 2, lepkavý = W+E+N+S) self.button4.grid (řádek = 3, sloupec = 1, sloupec span = 2, lepivý = W+E+N+S) self.button5.grid (řádek = 4, sloupec = 1, sloupec span = 2, sticky = W+E+N+S) def open_jeddah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox" os.system (order) def open_makkah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def main (): karl (). mainloop () if _name_ == '_main_': main ()

Kód může vypadat velký, ale jeho úprava je velmi snadná. v podstatě jsme vytvořili nové okno, vložili pět tlačítek s názvy a definovali pět funkcí, které se budou volat po každém stisknutí tlačítka. jakmile stisknete tlačítko, program otevře příslušný soubor HTML ve složce Města, kde každé město HTML má souřadnice města, když získá čas z modliteb (). jakmile stisknete tlačítko, kód pythonu vyloučí linuxový kód, ve kterém otevře soubor HTML pomocí prohlížeče chromium, a budete mít ciferník připraven k zobrazení se zapnutou možností celé obrazovky.

Krok 15: (Volitelné): Přidání přepínače reproduktorů

(Volitelné): Přidání přepínače reproduktorů
(Volitelné): Přidání přepínače reproduktorů
(Volitelné): Přidání přepínače reproduktorů
(Volitelné): Přidání přepínače reproduktorů

Jak jsme viděli, když přijde čas modlitby, hraje azanská zvuková hra a zvuk vychází z výchozího zvukového výstupu (výstup HDMI nebo AV), a protože jej dáváme na výstup HDMI, zvuk bude vycházet z displeje LCD. ale co když náš zvuk LCD nestačí? například, co když to chceme implementovat uvnitř skutečné mešity? s širokými vnějšími reproduktory? pak můžeme přidat ještě jeden VELMI snadný krok, jak toho dosáhnout. u již vybudovaného zvukového systému reproduktorů jej musíme pouze zapnout a vypnout a vzít již existující mikrofon a umístit jej vedle reproduktorů LCD.

Je to snadné. použijeme již existující mešitový mikrofon, který je připojen k hlasitému reproduktoru, budeme potřebovat pouze RaspberryPi k ovládání napájení, které zapíná a vypíná celý zvukový systém. k tomu budeme muset použít SSR: SOLID STATE RELAY. tyto typy relé mohou fungovat jako spínač, podobně jako průměrné modré relé, rozdíl je v tom, že SSR by mohly odolat velkému množství střídavého proudu, což u modrých (obvykle max. 10A) není použitelné a SSR potřebuje pouze dva vodiče místo 3: DC+ a DC- a je to! na druhém konci SSR můžeme připojit napájecí kabel systému reproduktorů, takže když dáme napětí do SSR, zavře střídavý obvod systému reproduktorů nebo vypneme napětí, abychom vytvořili otevřený obvod, vypnutí reproduktorů.

Je tu jeden háček, piny RaspberryPi mají výstupy 3,3 V, nikoli 5 V, které potřebujeme k ovládání SSR. potřebujeme tedy tranzistor k odebírání signálu z pinu RPi a 5V z pinu RPi 5v. k tomu potřebujeme:

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

2-2n2222 npn tranzistor

Odpor 3-220 ohmů

pro připojení postupujte podle obvodu fritzování.

nyní v kódu přidáme nějaké věci, díky kterým to funguje. nejprve před smyčkou while přidáme několik řádků pro inicializaci GPIO pinů:

V sekci importu přidejte:

importujte RPi. GPIO jako GPIO

Před smyčku while přidejte:

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

Nyní, ve smyčce while, pro každý příkaz Azan pro přehrávání musíme zapnout relé, počkat 10 sekund, dohrát Azan a poté relé vypnout. stačí přidat dva řádky, první je:

GPIO.output (ledPin, GPIO. HIGH)

time.sleep (10)

toto by mělo být přidáno po každém příkazu if (IDENTACE JE DŮLEŽITÉ!), druhý řádek je:

GPIO.output (ledPin, GPIO. LOW)

Tenhle by měl být přidán za řádek „pokračovat“. mělo by to vypadat takto pro každou azanskou dobu:

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 () zatímco mixer.music.get_busy () == True: continue GPIO.output (ledPin, GPIO. LOW)

Doporučuje: