Mündəricat:

RaspberryPi İslami Namaz Qulluq və Siqnal: 15 addım (şəkillərlə)
RaspberryPi İslami Namaz Qulluq və Siqnal: 15 addım (şəkillərlə)

Video: RaspberryPi İslami Namaz Qulluq və Siqnal: 15 addım (şəkillərlə)

Video: RaspberryPi İslami Namaz Qulluq və Siqnal: 15 addım (şəkillərlə)
Video: Raspberry Pi clock with prayer time and azan features 2024, Iyun
Anonim
RaspberryPi İslami Namaz Qulluq və Siqnal
RaspberryPi İslami Namaz Qulluq və Siqnal
RaspberryPi İslami Namaz Qulluq və Siqnal
RaspberryPi İslami Namaz Qulluq və Siqnal

Dünyadakı müsəlmanların hər gün beş namazı var və hər namaz günün müəyyən bir vaxtında olmalıdır. Planetimizin günəş ətrafında eliptik şəkildə hərəkət etməsi səbəbindən günəşin doğma və düşmə vaxtlarını il boyu fərqləndirir, bu da namaz vaxtını qeyri -sabit edir, bu səbəbdən bizə hər namaz vaxtımızı xatırlatmaq üçün İslami bir saata ehtiyacımız var. gün.

Hər bir müsəlmanın İnternetdəki İslam saytları, yerli İslam təqvimləri və ya hətta televiziya vasitəsi ilə gündəlik namaz vaxtlarına daxil olmaq üçün bir yolu var və bir çoxumuzun bizə namaz vaxtlarını, habelə namaz siqnallarını vermək xüsusiyyətlərinə malik İslami saat cihazları var.. Bəs öz Namaz Qılınc və Siqnal cihazımızı düzəltsək nə olar!

Layihə üzərində işləməyə başlamazdan əvvəl, bu Təlimatı oxuyarkən sizin üçün faydalı ola biləcəyiniz bir neçə fikir var. Mən Səudiyyə Ərəbistanında yaşayıram, buna görə də bəzi addımlarım və dəyərlərim sizinkindən fərqli olacaq və iş zamanı bunları açıq şəkildə qeyd edəcəyəm. Ərəb dilində interfeys qurduğumdan bəri ərəb sözlərini ehtiva edə biləcək addımlar və şəkillər var, amma bunu ingilis dilində necə edəcəyimi də göstərəcəyəm, buna görə də şəkillərdəki ərəb sözlərinin sizi narahat etməsinə icazə verməyin, bu layihə ola bilər. hər hansı bir dildə hazırlanmış (zəhmli!: D) İngilis dili mənim ilk dilim olmadığı üçün səhvlərimi də bağışlayın.

Layihəmizə davam edin! Bu layihə, X mərhələnin sonunda layihəmizi gözəl və hazır vəziyyətə gətirəcəyimiz X Major addımlara bölünəcək! Adımlar aşağıdakı kimi olacaq:

1-RaspberryPi qurmaq və hazırlamaq

2-RTC Modulunun Qurulması

3-Azan Siqnal proqramının hazırlanması

4-Saat üzlərini tətbiq etmək

5-İstifadəçi İnterfeysinin yaradılması və

Hər layihədə olduğu kimi, əvvəlcə ehtiyac duyduğumuz hissələri hazırlamalıyıq. Bu layihə üçün bizə lazım olan hissələr:

1-RaspberryPi Kompüter dəsti Amazon US || Amazon KSA

İstənilən Rpi versiyasını istifadə edə bilərsiniz, sadəcə Wifi olduğundan əmin olun. Rpi3B+ istifadə etdim

2-RTC Real-time saat modulu Amazon US || Amazon KSA

İstənilən RTC modul modelindən istifadə edə bilərsiniz, sadəcə I2C olduğundan əmin olun

3-LCD monitor

İstənilən LCD edəcək

4-Siçan və klaviatura

və bu qədər!! Öz Azan saatınızı və zəngli saatınızı qurmaq üçün lazım olan budur

Addım 1: Fəsil 1: RaspberryPI qurmaq və konfiqurasiya etmək

Fəsil 1: RaspberryPI qurmaq və konfiqurasiya etmək
Fəsil 1: RaspberryPI qurmaq və konfiqurasiya etmək

İlk şeylər İlk növbədə! Raspberry pi ilə işləmək üçün onu hazırlamalıyıq.

Raspberry pi bir kompüterdən başqa bir şey deyil, RAM və ROMu var, CPU, GPU, I/O var ……. Bir kompüter! eynilə oyun oynadığımız və internetə baxdığımız kimi, çox kiçik olan tək şey! moruq, layihələr hazırlamaq və həyata keçirmək üçün çox yaxşı bir seçim halına gətirir. moruq pi kiçik olduğu üçün, Windows və ya macOS kimi böyük tələbkar bir ƏS -ni idarə edə bilməyəcəyinə dair çox məhdud xüsusiyyətlərə malikdir, bunun əvəzinə cihazı istifadə etmək üçün Linux -u əməliyyat sistemi olaraq istifadə edəcəyik. İstifadə edə biləcəyimiz minlərlə, on minlərlə Linux dağıtımları var, ancaq bir mükəmməl paylama istifadə edəcəyimiz ahududu üçün xüsusi olaraq Raspbian adlanır.

Addım 2: 1-1: Lazımsız Dosyaları Yükləyin

1-1: Lazımsız Dosyaları Yükləyin
1-1: Lazımsız Dosyaları Yükləyin
1-1: Lazımsız Dosyaları Yükləyin
1-1: Lazımsız Dosyaları Yükləyin
1-1: Lazımsız Dosyaları Yükləyin
1-1: Lazımsız Dosyaları Yükləyin

Https://www.raspberrypi.org/software/operating-sy… rəsmi Rasbian Yükləmə səhifəsinə keçin və Raspberry Pi OS-ni Masaüstü faylı ilə yükləyin.

-Yükləyərkən https://win32diskimager.org/ saytına daxil olun və win32DiskImager proqramını yükləyin və quraşdırın, bəyəndiyiniz hər hansı bir şəkil yazma proqramından istifadə edə bilərsiniz.

Yükləmə tamamlandıqda, RaspberryPi OS olan bir.img faylına sahib olacaqsınız. sonra, SD yaddaş kartınızı kompüterə qoşun (adətən USB kart oxuyucusu ilə) və win32diskimager proqramını işə salın. görüntünün SD yaddaşına yazılması üçün addımlar çox sadədir, sadəcə 1- Yaddaş məktubunuzu seçin 2-Yüklədiyiniz OS fayllarınızı seçin və 3-Yazın! Siyahıdan düzgün cihaz hərfini seçdiyinizə və yaddaşınızın boş olduğundan əmin olun, çünki yazmağa basaraq cihazdakı hər hansı bir şeyin silinəcəyini bildirən bir xəbərdarlıq alacaqsınız! Yazını təsdiqləmək üçün bəli düyməsini basın və bitməsini gözləyin. bu 20 dəqiqəyə qədər çəkə bilər.

Tamamlandıqdan sonra yaddaşda tam Rapbian OS olacaq, davam edə bilərsiniz və Rapberry Pi -yə yerləşdirə bilərsiniz, Raspberry Pi -ni HDMI vasitəsilə monitora qoşa bilərsiniz, USB vasitəsilə siçan və klaviaturanı bağlaya bilərsiniz və son olaraq güc

Addım 3: 1-2: Raspbian Sisteminin Konfiqurasiyası

Kabelləri və gücü bağladıqdan sonra, OS -nin açıldığını, avtomatik olaraq yenidən başlayacağını və sonra Raspbian İstifadəçi İnterfeysini (pəncərələrə bənzəyən) göstərəcəyini görəcəksiniz. görəcəyiniz ilk şey sizi RaspberryPi -nizi ilk dəfə konfiqurasiya etmək üçün addımlar atan xoş bir pəncərədir. pəncərələr və addımlar aşağıdakı kimi olacaq:

1-İlk "Xoş gəldiniz" pəncərəsində növbəti düyməni basın

2-Növbəti pəncərə yerinizi konfiqurasiya edəcək. Ölkənizi, dilinizi və vaxt qurşağınızı seçin. bundan sonra "İngilis dilini istifadə et" seçimini yoxlamaq çox tövsiyə olunur, çünki bu Əməliyyat sistemi interfeys dili olacaq. İŞLƏMƏK ÜÇÜN İNGİLİS Klaviatura GERƏKDİR "US İNGİLİS Klaviatura Çıxarış Qutusu" nu yoxlamalısınız!

3-Sonra, moruq üçün bir parol daxil etməyiniz istənəcək, bu təhlükəsizlik baxımından vacibdir, ancaq bu layihə üçün onu dəyişməz qoyacağıq. Varsayılan İstifadəçi adı və şifrənin olduğunu unutmayın:

istifadəçi adı: pi

parol: moruq

4-Növbəti pəncərə raspberryPi-ni WiFi şəbəkənizə bağlayacaq. wifi adınızı seçin və wifi şifrənizi daxil edin

5-sonra, sizdən moruq pi kitabxanalarını və sistem fayllarını yeniləməyiniz istənəcək. bu addım çox vaxt aparacaq (bəlkə də saatlarla), ancaq hər dəfə yeni bir moruq pi qurmaq üçün çox vacib bir addımdır.

6-yeniləmə edildikdən sonra sistemi yenidən başlatmanız tələb olunacaq. indi bunu et.

Əla iş! İndi yenilənmiş bir sistemimiz var, sistemin işləməsini konfiqurasiya etmək üçün hələ daha çox şey etməliyik, amma indi LinuxCommand Line istifadə etməyə başlayacağıq.

Addım 4: 1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə edin

1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə
1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə
1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə
1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə
1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə
1-3: Rpi Ayarlarını Qurmaq üçün Komanda Satırından istifadə

Sistem yeniləməsindən yenidən başlamağı bitirdikdən sonra, sistem açıldıqdan sonra istifadəçi masaüstünü göstərəcəkdir. İndi ekranın sol üst tərəfinə baxsanız, bəzi düymələri tapa bilərsiniz, Rpi menyu düyməsi olan raspberryPi Logosu olan bir düymə, internet tarayıcısı olan dünya şəkli, qovluq düyməsi olan qovluqlar …. və nəhayət, hər hansı bir linux sistemində ən vacib düymə olan qara ekran pəncərəsi olan bir əmr xətti. davam edin və bu düyməni basın, açılan qara bir pəncərə görəcəksiniz.

Komanda xətti, hər kəsin linux sistemindən necə istifadə etməsi və necə istifadə etməsidir, eynilə pəncərələrin öz əmr xətti yalnız dul qadınlarda olduğu üçün çox istifadə etməyimizə ehtiyac yoxdur. linuxda hər bir linux istifadəçisinin öyrənməli və mənimsəməli olduğu əsas şeydir. əmr satırından istifadə oluna bilər …. ƏMƏRLƏR! qara pəncərədə gördükləriniz, istifadəçinin yazıb icra etməsini gözləyən komanda istəyidir. bu təlimatda bu layihəni yerinə yetirmək üçün lazım olan bütün əmrləri verəcəyik, buna görə narahat olmayın.

istifadə edəcəyimiz ilk Linux əmri başqa bir konfiqurasiya əmridir, unutmayın ki, bundan sonra bütün əmrlər bir kod qutusunun içərisinə qoyulacaq, buna görə də onu adi addımlardan fərqləndirə bilərsiniz. Klaviaturanı gətirin və aşağıdakıları yazın və Enter düyməsini basın:

sudo raspi-config

Bunu düzgün etsəniz, ekranın mavi rəngə çevrildiyini, ortada boz rəngli kiçik bir qutu olduğunu görəcəksiniz (şəklə baxın). Kodlamağa başlamazdan əvvəl son konfiqurasiyamızı etmək üçün bundan istifadə edəcəyik.

İndi bu menyuda getmək üçün klaviatura ox düymələrindən istifadə etməlisiniz.

1-Arayüz seçimlərinə keçin >> I2C >> Bəli >> daxil edin. bu, RTC -dən istifadə etmək üçün I2c rabitə protokolunu işə salır

2-Qabaqcıl seçimlərə keçin >> Fayl sistemini genişləndirin.

və bu pəncərədən sizə lazım olan bütün konfiqurasiya budur. ana səhifədə aşağı enin və sistemi yenidən başlatmaq üçün "bitir" və "YES" düymələrinə basın.

Sistem yenidən başladıqdan sonra hamımız konfiqurasiya edirik! cihaz böyük addımlara hazırdır! Növbəti addım RTC modulunu quraşdırmaq və sistemlə birlikdə istifadə etməkdir.

Addım 5: Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi

Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi
Fəsil 2: RTC Modulunun Qurulması, Konfiqurasiyası və İstifadəsi

RTC (və ya Real-Time Clock) modulu, üzərində kiçik bir batareya olan kiçik bir cihazdır, adının nəzərdə tutduğu şeyi edir, Clocking! buna görə gücdən ayırdığınız zaman saat işləməyə davam edir və dayanmır. buna niyə ehtiyacımız var? Yaxşı, moruq pi həqiqətən söndürüldükdə saat məlumatlarını saxlamaq üçün heç bir üsula malik deyil, tarixini və vaxtını yeniləmək üçün açıldıqda İnternetə qoşulmağa güvənir, amma problem həmişə internetə çıxışımızın olmamasıdır və bu buna görə RTC moduluna ehtiyacımız var. RTC, moruq pi üçün bir saat rolunu oynayacaq, buna görə Rpi açıldıqdan sonra RTC -dən Tarix və Saat alacaq, bu da RaspberryPi vaxtını daim yeniləyəcək.

birdən çox model var və RTC axtarır, DS1307 və DS3231 var. I2C protokolu əlaqəsi olduğu müddətcə tapdığınız hər hansı bir RTC modulundan istifadə edə bilərsiniz (bunu göstərə bilərsiniz ki, modul pinlərində SDA və SCL pinləri tapa bilərsiniz.

Bu təlimatdakı hər hansı bir şey kimi, layihədəki məqsədimə çatmaq üçün digər təlimatlardan istifadə etdim, bu təlimat sizə rəhbərlik edəcək və bu layihəni həyata keçirmək üçün nə edəcəyinizi dəqiq söyləyəcək, ancaq dəyişdirmək lazımdırsa və ya hər hansı bir işin daha dərinliyinə ehtiyacınız varsa. addımlar, hər addımın sonunda daha məhsuldar bələdçini bağlayacağam.

RTC modulunuzu hazırladıqdan sonra (başlıq pinlərini lehimləyin və batareyanı taxın), RapberryPi pinlərinə aşağıdakı kimi bağlaya bilərsiniz:

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

GND ==========> PİN 6 (GND)

Vcc ============> PİN 1 (3.3V)

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

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

və ya əldə etdiyiniz RTC modulundan asılı olaraq onu birbaşa RaspberryPi -yə quraşdıra bilərsiniz (Sancaqların düzgün olduğundan əmin olun !!! Rpi/RTC -yə zərər verə biləcəyiniz halda)

RTC -ni bağladıqdan sonra Raspberry -ni konfiqurasiya edək.

Addım 6: 2-1: Modul Quraşdırması

2-1: Modul Quraşdırma
2-1: Modul Quraşdırma
2-1: Modul Quraşdırma
2-1: Modul Quraşdırma

Başlamadan əvvəl əmr satırına gedin və yazın:

Tarix

Bu, Moruqdakı cari tarixi və saatı geri qaytaracaq, bu çox faydalı əmri nəzərə alacaq və modulun işləyib -işləmədiyini yoxlamaq üçün cari tarixi və saatı qeyd edəcək.

İndi, qurmağa başlayaq, Rpi kitabxanalarını bir anda yeniləmək üçün aşağıdakıları yazın:

sudo apt-get yeniləməsi

sudo apt -get -y təkmilləşdirilməsi

bunu etdikdən sonra, Nano adlı bir proqramdan istifadə edəcəyimiz bir fayl sistemini dəyişdirmək üçün i2c modulunu işə salmaq və RTC əlavə etmək üçün sistem fayllarını dəyişdirməliyik. nano, dul qadınlarda olduğu kimi, əsasən mətn redaktoru olan yüngül bir daxili proqramdır. nano ilə başlayan və sonra fayl adını yazan hər hansı bir əmr o faylı nano mətn redaktorunda açacaq. Sudo adlı bir şey də istifadə etdiyimizi fərq etdiniz, bir sözlə, sudo, bu əmri verən istifadəçinin Başqasının deyil, Cihazın sahibi olduğunu bildirən linux sistemi üçün bir təminat rolunu oynayır/ və ya redaktə etmək kimi imtiyazlar verir/ istifadəçiyə silinir. Məsələn, sudo olmadan bir nano fayl açsaydıq, həmin fayla baxa bilərdik, amma redaktə edə və ya silə bilmərik.

İndi modul faylını dəyişdirməliyik, bunu yazaraq edə bilərik:

sudo nano /etc /modulları

bunu etdikdən sonra həmin faylın məzmununu tapacaqsınız (şəkilə bax). imleci mətnin sonuna qoymaq üçün ox düymələrindən istifadə edin və aşağıdakıları əlavə edin:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

saxlamaq üçün CTRL+S, çıxmaq üçün CTRL+X düymələrini basın

Addım 7: 2-2: I2C Arayüzü

2-2: I2C Arayüzü
2-2: I2C Arayüzü

İndi RTC -ni bağladıq və i2c -ni işə saldıq, hər şeyi birlikdə bağlayaq.

əmr satırına aşağıdakıları yazın:

i2cdetect -y 1

sizə bir sıra boşluqlar veriləcək, ancaq bir yerdə bir nömrə olduğunu görəcəksiniz, bu rəqəm sizin RTC modul ünvanınızdır. mənim vəziyyətimdə 68. bu nömrəyə diqqət yetirin. bu iki rəqəmli nömrəni görmürsənsə, bu, ehtimal ki, RTC -ni səhv bağladığınız deməkdir.

indi, rc.local faylını dəyişdirməliyik ki, açılışda RTC modulunu işə salsın və tarixin və saatı sistemə saxlasın. əvvəlcə rc.local faylını açın:

sudo nano /etc/rc.local

Exit0 xəttindən əvvəl aşağıdakıları əlavə edin:

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

hwclock -s

0x68 cihazınızın i2c ünvanıdır. Bitirdikdən sonra CTRL+S CTRL+X vurun, sonra sisteminizi yenidən başladın:

sudo yenidən başladın

Addım 8: 2-3: RTC testi

2-3: RTC testi
2-3: RTC testi

Sistem yenidən başladıqdan sonra hava şəraitinin RTC -nin işləyib -işləmədiyini yoxlaya bilərik. əvvəlcə qaç:

sudo hwclock -r

sizə RTC modulunda tarix və saat geri qaytarılacaq. başqa bir şey verdiyiniz təqdirdə, addımları düzgün etdiyinizə əmin olun.

indi, RTC -də vaxtı və tarixi dəyişdirmək üçün əvvəlcə sistemdəki Tarixi və Saatı dəyişdirməliyik, sonra dəyişiklikləri RTC -ə yazın. Bunu etmək üçün qaçın:

sudo tarixi -29 Avqust 1997 13:00:00

və əlbəttə, daxil etməzdən əvvəl, tarixi və saatı yerli vaxtınıza və tarixinizə uyğun olaraq dəyişdirin. Rpi -də sağa çatdığınız zaman, RTC -də tarixi və saatı saxlamaq üçün aşağıdakıları işlədin:

sudo hwclock -w

aaaa və budur! hwclock -r ilə işlədiyini yoxlaya və RTC tarixinin doğru olub olmadığını görə bilərsiniz, sonra rpi -ni internetdən ayırın və bir müddət söndürün və sonra yenidən yandırın və düzgün olub olmadığını yoxlayın vaxt və tarix. bitirdin!

RTC modulunun necə qurulacağına dair tam bələdçini burada tapa bilərsiniz

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

Addım 9: Fəsil 3: Azan Siqnal Proqramının Hazırlanması

Fəsil 3: Azan Siqnal Proqramının Hazırlanması
Fəsil 3: Azan Siqnal Proqramının Hazırlanması

Saat hazırlamaq tək bir işdir, şübhəsiz ki, saata və namaz vaxtlarına baxa bilərik və vaxtının gəldiyini görə bilərik, ancaq namaz vaxtlarını bizə bildirmək üçün səsli bir siqnal əlavə etsək daha yaxşı olmazmı? DAHA YAXŞI, o həyəcanı AZAN səsi kimi edirik! görək bunu necə həyata keçirə bilərik.

Proqramlaşdırma üçün, python RaspberryPi ilə mükəmməl bir şəkildə getdiyi üçün, python'u tercih etdiyimiz proqramlaşdırma dili olaraq istifadə edəcəyik. python -da bir kod faylı yaratmaq üçün bir mətn faylını açmaqla eyni şeyi edirik, amma indi.py olaraq saxlayırıq. Proqramı işə salmaq üçün moruq qurulmuş python mühitinə ehtiyacımız var, xoşbəxtlikdən Raspbian əvvəlcədən quraşdırılmış python və python3 ilə gəlir! buna görə etməmiz lazım olan şey proqramlaşdırmaqdır. bu təlimatda, dil haqqında danışmayacağıq və necə işlədiyini və funksiyalarını öyrətməyəcəyik, ancaq layihəni edə biləcəyiniz üçün sizə lazım olan kodları verəcəyəm.

Başlamaq üçün, seçdiyimiz azan səsi (. WAV-da) olan bir səs faylına ehtiyacımız var, biri fəcr azanı üçün, digəri isə müntəzəm azan üçün. Bunu bir dəfə bir çubuq sürücüyə qoyun və raspberrypi masaüstünə kopyalayın.

İndi sənədlərimiz var, mən raspberryPi -də səsli audiolar çalmağın bir yolunu axtarırdım və təəccübləndim ki, bunu edə biləcəyimiz çox yol yox idi, amma bu cavabı mənə lazım olanı verən stackoverflow -da tapdım.

stackoverflow.com/questions/20021457/playi…

Mən bu metodu sınadım və işlədim! bu üsulu layihəmizdə necə tətbiq edə biləcəyimizi görək …

Addım 10: 3-1: Gəlin Səs Çalaq

3-1: Gəlin Səs Çalaq!
3-1: Gəlin Səs Çalaq!

Əvvəlcə masaüstünə gedin:

cd masa üstü

sonra yeni bir python kod faylı yaradın:

sudo nano AzanPlay.py

bu, python faylında uzantısı olan AzanPlay adlı yeni bir fayl edəcək.py, kodumuzu yazmağımız üçün boş bir qara ekrana sahib olacağıq. sadəcə bu sətirləri yazın (heç bir girinti və ya boşluq dəyişdirməmək üçün diqqətli olun, çünki bu pythonda son dərəcə vacibdir):

pygame idxal mikserindən

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == Doğru: davam edin

Səs fayllarınızı qoyduğunuz yer / Masaüstü / və 'Adhan-Makkah.wav', Məkahda Azan səs yazısı olan Audio faylımdır.

İndi kodumuzu sınamaq üçün yazaraq python ilə çalıştırırıq:

python AzanPlay.py

və HDMI LCD -dən və ya Raspberrypi üzərindəki AUX portundan səs çıxacaq. LCD dinamiklərindən eşitmirsinizsə, AUX -ə qulaqlıq qoşun və yoxlayın.

Addım 11: 3-2: Namaz Vaxtını alın

3-2: Namaz Vaxtı alın
3-2: Namaz Vaxtı alın

Bildiyimiz kimi, namaz vaxtları yer üzündə bir yerdən başqa yerə dəyişir və hətta müəyyən bir yer üçün də illərlə fərqlənir, yəni sistemdəki namaz vaxtlarımızı daim yeniləmək üçün bir yol tapmalıyıq. bunun üçün spesifik və çox mürəkkəb funksiyalara və hesablamalara ehtiyacımız var. Şükürlər olsun ki, qardaşımız Həmid Zərrabi-Zadə ehtiyac duyduğumuz bütün funksiyaları bir yerə çevirdi ki, yerləşdiyimiz yerdən və indiki vaxtımızdan asılı olaraq vaxt əldə etmək üçün asanlıqla istifadə edə bilərik, AMAZING! kitabxana və mənbə fayllarını burada tapa bilərsiniz

praytimes.org/

Beləliklə, namaz vaxtlarımızı almaq və sistemdə tətbiq etmək üçün bu zəhmli sənədlərdən istifadə edəcəyik. Əvvəlcə kodları veb saytından yükləyin və / adhan / qovluğuna qoyun (Həm JS, həm də Python kodlarına ehtiyacımız var).

İndi bu qovluğa gedək və kitabxananı və nələr edə biləcəyini sınayaq:

cd azan

Orada, funksiyanı sınaya bilmək üçün pythonda yeni bir test faylı yaratmalıyıq:

sudo nano testAd.py

İçəridə bu kodu yazın:

namaz vaxtlarını idxal edin

datetime idxal tarixindən tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Dosyanı saxlamadan əvvəl LATITUDE -i LONGTITUDE ilə eyni olaraq Latitude yerinizlə dəyişdirməlisiniz və GMT -ni saat qurşağınıza dəyişdirməlisiniz. mənim vəziyyətimdə belə olacaq:

tmm = namaz vaxtı. PrayTimes (). getTimes (tarix.today (), [21.3236, 39.1022], 3)

çap (tmm)

Nəhayət, CTRL-S və CTRL-X və sonra kodu işlədin:

python testiAd.py

nəhayət, bu gün üçün, namaz vaxtlarınız, yeriniz üçün geri qaytarılacaqsınız.

{'işa': '18: 58 ',' əsr ': '15: 22', 'gün batımı': '17: 43 ',' zöhr ':' 12: 17 ',' məğrib ': '17: 43', 'imsak': '05: 23 ',' gecə yarısı ': '00: 17', 'gündoğumu': '06: 52 ',' fəcr ': '05: 33'}

Əla! İndi namaz vaxtımız var və indi səsləri necə çalacağımızı bilirik, gəlin bu iki kodu bir əsas kodda birləşdirək.

Addım 12: 3-3: Son Azan Siqnal Kodunun Hazırlanması

əvvəlki iki kodu tamamlayaraq, yerləşdiyimiz yerə uyğun olaraq namaz vaxtlarının dəqiq alınmasını və Azan səsini çalmağı öyrəndik. İndi bu iki kodu son layihəmiz olaraq istifadə edəcəyimiz bir koda birləşdirəcəyik və bu kod arxa planda işləyəcək, çünki Azan vaxtı gələndə Azan səsini çalacaq.

Kodun hamısını yazdım, kopyalayıb yapışdıra və istədiyiniz kimi öz dəyişikliklərinizi edə bilərsiniz. Kod belədir:

idxal vaxtı

pygame idxal qarışdırıcıdan idxal simli idxal namaz vaxtları datetime idxal tarixindən (1) isə: tmm = praytimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3) FAJR = tmm ['fajr'] DHUHR = tmm ['dhuhr'] ASR = tmm ['əsr'] MAGHRIB = tmm ['maghrib'] ISHA = tmm ['isha'] tempT = time.strftime (str ('%H')) CurrTime = tempT tempT = time.strftime (str ('%M'))) wav ') mixer.music.play () while mixer.music.get_busy () == Doğru: CurrTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () mixer.music.get_busy () == Doğru: CurrTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Doğru: CurrTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Masaüstü/Adhan-Makkah.wav ') mixer.music.play () mixer.music.get_busy () == Doğru: CurrTime == davam edərsə davam edin ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == Doğru: davam edin

Koda baxıb əvvəllər etdiyimizlə müqayisə etsəniz, çox yeni bir şey etmədiyimizi, əvvəlcə ehtiyac duyduğumuz kitabxanaları daxil etdiyimizi və sonra sonsuz bir döngə açdığımızı görəcəksiniz. Döngədə, namaz vaxtını yerimiz və saat qurşağımızla daim hesablayırıq və bütün nəticəni dəyişən tmm olaraq saxlayırıq. sonra, hər namaz vaxtını tmm -dən müstəqil dəyişənə qədər saxlayırıq. vaxtları müqayisə etməyə imkan verəcəkdir. Sonra, sistemin vaxtını alırıq və müstəqil bir dəyişəndə saxlayırıq. Nəhayət, sistem vaxtını namaz vaxtları ilə müqayisə etməyə davam edirik, əgər sistem vaxtı hər hansı bir namaz vaxtına uyğun gəlsə, Azan səsini çalacaq.

Addım 13: Fəsil 4: Saat Üzlərinin Tətbiqi

Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi
Fəsil 4: Saat Üzlərinin Tətbiqi

Layihənin daha yaxşı görünməsi üçün LCD -yə saat üzləri əlavə etmək fikrim var idi, buna görə istifadəçiyə baxanda gözəl görünür (heç olmasa əmr satırından daha yaxşıdır), buna görə birdən çox üz dizayn etmək üçün bir dizayner işə götürdüm. saat, heç bir məlumat olmadan boş olmalıdır, çünki məlumatlar HTML vasitəsi ilə əlavə olunaraq saat dizaynlarını arxa plana çevirir və namaz vaxtları kimi digər məlumatlar arxa planın üstünə HTML elementləri kimi əlavə edilə bilər.

Təəssüf ki, bu təlimatı yaza bildiyim vaxt HTML -də bilik və təcrübəm çox məhduddur, buna görə də çox şeyi müzakirə etməyəcəyəm, çünki hər şeyi səhv bir şəkildə edəcəyimi bilirəm və etmirəm. insanları çaşdırmaq istəyir. ancaq JS və HTML -də kiçik bir təcrübəniz varsa, bu nöqtədən necə davam edəcəyinizi bilməlisiniz. indiyə qədər tək bir üz yaratdım (mavi üz). plan 14 saat üzü etməkdir! Həftənin hər günü üçün 7 üz, başqa bir mövzu olaraq başqa 7 üz. ilk mövzunun Azkar yuvarlanması ilə, digər mövzunun isə Azkar yerinə İslam-g.webp

Addım 14: Fəsil 5: İstifadəçi İnterfeysinin Tətbiqi

Fəsil 5: İstifadəçi İnterfeysinin Tətbiqi
Fəsil 5: İstifadəçi İnterfeysinin Tətbiqi

Səyahətimizin son fəslində, layihəni məsciddə və ya hər hansı bir ictimai yerdə həyata keçirmək istədiyimiz halda, layihəni hətta istifadəçi dostu etmək üçün bəzi əlavə dəyişikliklər edəcəyik. Daha əvvəl dediyimiz kimi, hər bir şəhərin öz namaz vaxtları var və bu layihəni daha geniş bir insanlara çatdırmaq üçün bir istifadəçi interfeysi yaradacağıq ki, layihəni işə saldıqdan sonra istədiyimiz şəhəri və mövzunu seçə bilək.

Bunu etmək üçün "TKinter" adlı bir python GUI kitabxanasından istifadə edəcəyik.

Mənə Səudiyyə Ərəbistanında Məkkə də daxil olmaqla beş şəhər arasında seçim etmə seçimini vermək üçün tətbiq etdiyim kod budur:

tkteri tk olaraq idxal edin

tkinter idxalından * tkinter idxalından ttk idxal codeclərinin idarəsi os sinif karl (Çərçivə): def _init _ (öz): tk. Frame._ init _ (özünü) self.pack () self.master.title ("Azan Saatı") özünü. button1 = Düymə (özünü, mətn = "Ciddə", hündürlük = 5, eni = 80, əmr = özünü.open_jeddah1) özünü.button2 = Düymə (özünü, mətn = "Məkkə", yüksəklik = 5, eni = 80, əmr = self.open_makkah1) self.button3 = Düymə (özünü, mətn = "Ər -Riyad", hündürlük = 5, eni = 80, əmr = özünü.open_riyadh1) özünü.button4 = Düymə (özünü, mətn = "Mədinə", boy = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (satır = 0, sütun = 1, columnspan = 2, yapışqan = W+E+N+S) self.button2.grid (satır = 1, sütun = 1, columnspan = 2, yapışqan = W+E+N+S) self.button3.grid (sıra = 2, sütun = 1, sütun aralığı = 2, yapışqan = W+E+N+S) özünü.button4.grid (satır = 3, sütun = 1, sütun aralığı = 2, yapışqan = W+E+N+S) self.button5.grid (satır = 4, sütun = 1, sütun aralığı = 2, yapışqan = W+E+N+S) def open_jeddah1 (özünü): 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 (sifariş) 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 ()

Kod böyük görünə bilər, amma redaktə etmək çox asandır. biz əsasən yeni bir pəncərə hazırladıq, beş ad düyməsini qoyduq və hər düyməni basdıqda çağırılacaq beş funksiyanı təyin etdik. düyməni basdıqdan sonra, proqram, hər bir şəhərin namaz vaxtından () vaxt ayıranda şəhərin koordinatlarına malik olduğu Şəhərlər qovluğunda müvafiq HTML faylını açacaq. Düyməni basdıqdan sonra, python kodu, xrom brauzerindən istifadə edərək HTML faylını açacağı bir linux kodu çıxaracaq və tam ekran seçimi ilə saatın üzü göstərilməyə hazır olacaq.

Addım 15: (İsteğe bağlı): Dinamik açarı əlavə etmək

(İsteğe bağlı): Dinamik Anahtarı əlavə etmək
(İsteğe bağlı): Dinamik Anahtarı əlavə etmək
(İsteğe bağlı): Dinamik Anahtarı əlavə etmək
(İsteğe bağlı): Dinamik Anahtarı əlavə etmək

Gördüyümüz kimi, namaz vaxtı gəldikdə Azan səs çalınanda və səs standart səs çıxışından (HDMI və ya AV çıxışı) çıxır və HDMI çıxışına qoyduğumuz üçün səs LCD -dən gəlir. amma LCD səsimiz yetərli deyilsə nə etməli? Məsələn, bunu həqiqi bir məscidin daxilində həyata keçirmək istəyiriksə? geniş kənar dinamikləri ilə? sonra bunu etmək üçün ÇOX daha asan bir addım əlavə edə bilərik. artıq qurulmuş dinamik sistem üçün yalnız onu AÇMA və SÖKMƏK, mövcud mikrofonu götürüb LCD dinamiklərin yanına qoymaq lazımdır.

Bunu etmək asandır. Yüksək dinamikə bağlı olan əvvəlcədən mövcud olan məscid mikrofonundan istifadə edəcəyik, bütün səs sistemini AÇMA və SÖYÜLƏN gücünü idarə etmək üçün raspberryPi-yə ehtiyacımız olacaq. Bunu etmək üçün SSR: SOLID STATE RELAY istifadə etməliyik. bu tip rölelər, orta mavi röle kimi, bir keçid rolunu oynaya bilər, fərq SSR -lərin mavi rənglərdə (ümumiyyətlə maksimum 10A) tətbiq olunmayan böyük miqdarda AC Amperinə tab gətirə biləcəyidir. 3 əvəzinə yalnız iki tel: DC+ və DC- və budur! SSR -in digər ucunda dinamik sistemin elektrik kabelini qoşa bilərik, beləliklə SSR -ə gərginlik verdikdə dinamik sisteminin AC dövrəsini bağlayar və ya açıq dövrə etmək üçün gərginliyi bağlayarıq. dinamikləri söndürmək.

bir şey var, RaspberryPi pinləri SSR -i idarə etmək üçün lazım olan 5v yox, 3.3v çıxır. buna görə siqnalı RPi pinindən və 5V RPi pinindən almaq üçün bir tranzistora ehtiyacımız var. Bunun üçün bizə lazımdır:

1-Qatı Hal Rölesi (25A-dan yuxarı olan hər şey yaxşıdır)

2-2n2222 npn tranzistor

3-220ohm müqavimət

əlaqə üçün fritzing dövrə edin.

İndi koda, bu işi edən bəzi şeylər əlavə edəcəyik. birincisi, while döngəsindən əvvəl GPIO pinlərini işə salmaq üçün bəzi sətirlər əlavə edəcəyik:

İdxal bölməsində əlavə edin:

GPO olaraq RPi. GPIO idxal edin

Zaman döngəsindən əvvəl əlavə edin:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) rölesi = 40 GPIO.setup (ledPin, GPIO. OUT)

İndi, zaman döngəsində, hər bir Azan əmrini oynamaq üçün, röleyi açmalı, 10 saniyə gözləməli, Azanı çalmağı bitirməli və sonra röleyi söndürməliyik. yalnız iki sətir əlavə etməliyik, birincisi:

GPIO.çıxış (ledPin, GPIO. HIGH)

vaxt.yuxu (10)

bu hər if ifadəsindən sonra əlavə olunmalıdır (İDENTASİYA Vacibdir!), digər sətir:

GPIO.çıxış (ledPin, GPIO. LOW)

Bu "davam et" xəttindən sonra əlavə edilməlidir. hər Azan vaxtı belə görünməlidir:

if 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 () == Doğru: GPIO.output davam edin (ledPin, GPIO. LOW)

Tövsiyə: