İçindekiler:
- Adım 1: Bölüm 1: RaspberryPI'yi Ayarlama ve Yapılandırma
- Adım 2: 1-1: Gerekli Dosyaları İndirin
- Adım 3: 1-2: Raspbian Sistemini Yapılandırma
- Adım 4: 1-3: Rpi Ayarlarını Ayarlamak için Komut Satırını Kullanma
- Adım 5: Bölüm 2: RTC Modülünü Takma, Yapılandırma ve Kullanma
- Adım 6: 2-1: Modül Kurulumu
- Adım 7: 2-2: I2C Arayüzü
- Adım 8: 2-3: RTC'nin Test Edilmesi
- Adım 9: Bölüm 3: Ezan Alarm Programının Yapılması
- Adım 10: 3-1: Hadi Bir Ses Çalalım
- Adım 11: 3-2: Namaz Vakitlerini Alın
- Adım 12: 3-3: Son Ezan Alarm Kodunun Oluşturulması
- Adım 13: Bölüm 4: Saat Yüzlerini Uygulama
- Adım 14: Bölüm5: Bir Kullanıcı Arayüzünün Uygulanması
- Adım 15: (İsteğe bağlı): Hoparlör Anahtarı Ekleme
Video: RaspberryPi İslami Namaz İzle & Alarm: 15 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Dünyanın her yerindeki Müslümanların her gün beş vakit namazı vardır ve her namaz günün belirli bir saatinde olmak zorundadır. Gezegenimizin güneş etrafında elips şeklinde hareket etmesi, güneşin doğuş ve batma zamanlarının yıl boyunca farklılık göstermesine neden olur, bu da namaz vakitlerini tutarsız hale getirir, bu yüzden Müslümanlara her birimizin namaz vakitlerini hatırlatması için İslami bir saate ihtiyacımız var. gün.
Her Müslümanın İnternet İslami web siteleri, yerel İslami takvimler ve hatta TV aracılığıyla günlük namaz vakitleri hava durumuna erişmenin bir yolu vardır ve çoğumuzun bize namaz vakitlerini ve ayrıca namaz alarmlarını verme özelliklerine sahip İslami saat cihazları vardır.. Ama ya kendi Namaz İzleme ve Alarm cihazımızı yapsaydık!
Proje üzerinde çalışmaya başlamadan önce, bu Eğitilebilir Yazıyı okurken sizin için yararlı olabilecek birkaç husus vardır. Suudi Arabistan'da yaşıyorum, bu nedenle bazı adımlarım ve değerlerim sizinkinden farklı olacak ve bunları çalışma sırasında açıkça belirteceğim. Arabirimi Arapça yaptığımdan beri Arapça kelime içerebilecek adımlar ve resimler var, ancak bunun İngilizce olarak nasıl yapıldığını da göstereceğim, bu yüzden resimlerdeki Arapça kelimeler sizi hiç endişelendirmesin, bu proje olabilir. herhangi bir dilde yapıldı (ki bu harika!:D) Ayrıca İngilizce ilk dilim olmadığı için yazım hatalarımı da mazur görün.
Projemize devam! Bu proje, X ana adıma bölünecek ve X. adımın sonunda projemizi güzel ve hazır hale getireceğiz! Adımlar aşağıdaki gibi olacaktır:
1-RaspberryPi'nin yapılandırılması ve hazırlanması
2-RTC Modülünün Kurulumu
3-Ezan Alarmı Programının Yapılması
4-Saat yüzlerini uygulama
5-Kullanıcı Arayüzünün Yapılması ve.
Her projede olduğu gibi öncelikle ihtiyacımız olan parçaları hazırlamamız gerekiyor. Bu proje için ihtiyacımız olan parçalar:
1-RaspberryPi Bilgisayar kiti Amazon ABD || Amazon Suudi Arabistan
Herhangi bir Rpi sürümünü kullanabilirsiniz, sadece Wifi olduğundan emin olun. Rpi3B+ kullandım
2-RTC Gerçek zamanlı saat modülü Amazon ABD || Amazon Suudi Arabistan
Herhangi bir RTC modül modelini kullanabilirsiniz, sadece I2C'ye sahip olduğundan emin olun.
3-LCD Monitör
Herhangi bir LCD yapacak
4-Fare ve klavye
ve bu kadar!! Kendi Ezan saatinizi ve alarmınızı yapmak için ihtiyacınız olan tek şey bu
Adım 1: Bölüm 1: RaspberryPI'yi Ayarlama ve Yapılandırma
Her şey sırayla! Onunla çalışmak için Raspberry pi'yi hazırlamamız gerekiyor.
Raspberry pi bir bilgisayardan başka bir şey değildir, RAM ve ROM'u vardır, CPU'su, GPU'su, G/Ç'si vardır……. Bir bilgisayar! Tıpkı üzerinde oyun oynadığımız ve internette gezindiğimiz gibi, tek önemli yanı çok küçük olması! bu da ahududu üzerinde projeler yapmak ve uygulamak için çok iyi bir seçim yapar. ahududu pi küçük olduğundan, windows veya macOS gibi büyük ve zorlu bir işletim sistemini çalıştıramayacağı için çok sınırlı özelliklere sahiptir, bunun yerine cihazı kullanmak için bir işletim sistemi olarak Linux kullanacağız. Kullanabileceğimiz on binlerce olmasa da binlerce Linux dağıtımı var, ancak mükemmel bir dağıtım, özellikle kullanacağımız Raspbian adı verilen raspberrypi için mükemmel şekilde optimize edilmiştir.
Adım 2: 1-1: Gerekli Dosyaları İndirin
- https://www.raspberrypi.org/software/operating-sy… adresindeki resmi Rasbian İndirme sayfasına gidin ve Raspberry Pi OS with Desktop dosyasını indirin
-İndirirken https://win32diskimager.org/ adresine gidin ve win32DiskImager'ı indirip kurun, istediğiniz görüntü yazma yazılımını kullanabilirsiniz.
İndirme işlemi tamamlandıktan sonra, RaspberryPi işletim sistemini içeren bir.img dosyanız olacak. sonra, SD hafıza kartınızı bilgisayara (genellikle bir USB kart okuyucu ile) takın ve win32diskiimager yazılımını başlatın. görüntüyü SD belleğe yazma adımları çok basit, yapmanız gereken tek şey 1- Hafıza harfinizi seçin 2-İndirdiğiniz OS dosyalarını seçin ve 3-Tıkla yazın! Listeden doğru cihaz harfini seçtiğinizden ve hafızanızın boş olduğundan emin olun, çünkü yaz tuşuna bastığınızda cihazdaki her şeyin silineceğini söyleyen bir uyarı ile terfi edeceksiniz! Yazmayı onaylamak için evet'e basın ve bitmesini bekleyin. bu 20 dakika kadar sürebilir.
Tamamlandığında, bellekte tam Rapbian OS olacak, devam edip Rapberry Pi'ye koyabilir, Raspberry Pi'yi HDMI üzerinden monitöre bağlayabilir, fareyi ve klavyeyi USB üzerinden bağlayabilir ve son olarak, güç.
Adım 3: 1-2: Raspbian Sistemini Yapılandırma
Kabloları ve gücü bağladıktan sonra, işletim sisteminin açıldığını göreceksiniz, otomatik olarak yeniden başlayacak ve ardından Raspbian Kullanıcı Arayüzünü (pencerelere benzeyen) gösterecektir. Göreceğiniz ilk şey, RaspberryPi'nizi ilk kez yapılandırma adımlarında size yol gösterecek olan bir hoş geldiniz penceresidir. pencereler ve adımlar aşağıdaki gibi olacaktır:
1-İlk "Hoş Geldiniz" penceresinde İleri'ye basın
2-Bir sonraki pencere konumunuzu yapılandırmak için olacaktır. Ülkenizi, dilinizi ve saat diliminizi seçin. Bundan sonra, İşletim sistemi arayüz dili olacağından "İngilizce dilini kullan" seçeneğini işaretlemeniz önemle tavsiye edilir. ÇALIŞMAK İÇİN İNGİLİZCE KLAVYE İHTİYACIMIZ OLAN "ABD İNGİLİZCE KLAVYE DÜZEN KUTUSU"nu KONTROL ETMENİZ GEREKİR!
3-Daha sonra ahududunuz için bir şifre girmeniz istenecek, bu güvenlik için önemlidir ancak bu proje için değiştirmeden bırakacağız. varsayılan Kullanıcı adı ve parolanın şunlar olduğunu unutmayın:
kullanıcı adı:pi
şifre: ahududu
4-Bir sonraki pencere raspberryPi'yi WiFi ağınıza bağlayacak. wifi adınızı seçin ve wifi şifrenizi girin
5-Ardından ahududu pi kitaplıklarını ve sistem dosyalarını güncellemeniz istenecek. bu adım çok fazla zaman alacaktır (belki saatlerce) ancak her yeni ahududu pi kurulurken çok önemli bir adımdır.
6-Güncelleme yapıldıktan sonra sistemi yeniden başlatmanız istenecektir. bunu şimdi yap.
Harika iş! Şimdi güncellenmiş bir sistemimiz var, sistemi çalışacak şekilde yapılandırmak için hala bazı şeyler yapmamız gerekiyor, ancak şimdi LinuxKomut Satırını kullanmaya başlayacağız.
Adım 4: 1-3: Rpi Ayarlarını Ayarlamak için Komut Satırını Kullanma
Sistem güncellemesinden yeniden başlatmayı bitirdiğinizde, sistem, önyüklemeyi bitirdiğinde kullanıcı masaüstünü gösterecektir. Şimdi ekranın sol üst köşesine bakarsanız, bazı düğmeler bulacaksınız, Rpi menü düğmesi olan raspberryPi Logolu bir düğme, internet tarayıcısı olan küre şeklinde bir düğme, ….. klasörler olan bir klasörler düğmesi ve son olarak, herhangi bir linux sistemindeki en önemli düğme olan siyah ekran pencereli bir düğme, Komut satırı. devam edin ve o düğmeye basın, siyah bir pencerenin açıldığını göreceksiniz.
Komut satırı, herkesin linux sistemini nasıl kullandığı ve nasıl kullandığıdır, tıpkı windows'un kendi komut satırına sahip olması gibi, sadece dullarda onu çok sık kullanmamıza gerek yoktur. linux'ta, her linux kullanıcısının öğrenmesi ve ustalaşması gereken temel şeydir. komut satırı…. COMMANDS tarafından kullanılabilir! siyah pencerede gördüğünüz, komutun kullanıcı tarafından yazılmasını ve yürütülmesini bekleyen komut istemidir. Bu kılavuzda, bu projeyi gerçekleştirmek için ihtiyacınız olan tüm komutları vereceğiz, bu yüzden endişelenmeyin.
Kullanacağımız ilk Linux komutu başka bir yapılandırma komutudur, bundan sonra tüm komutların bir kod kutusuna yerleştirileceğini unutmayın, böylece onu normal adımlardan ayırt edebilirsiniz. Klavyenizi getirin ve aşağıdakini yazın ve enter tuşuna basın:
sudo raspi yapılandırması
Bunu doğru yaparsanız, ekranın ortasında gri küçük bir kutu ile ekranın maviye döndüğünü göreceksiniz (resme bakın). kodlamaya başlamadan önce son yapılandırmamızı yapmak için bunu kullanacağız.
şimdi, bu menüde gezinmek için klavye yön tuşlarınızı kullanmanız gerekecek.
1-Arayüz seçeneklerine gidin >> I2C >> YES >> enter tuşuna basın. bu, RTC'yi kullanabilmemiz için I2c iletişim protokolünü etkinleştirir
2-Gelişmiş seçeneklere gidin >> Dosya sistemini genişletin.
ve bu pencereden ihtiyacınız olan tüm yapılandırma bu. ana sayfada aşağı inin ve sistemi yeniden başlatmak için "bitir" ve "EVET" üzerine enter'a basın.
Sistem yeniden başlatmayı bitirdiğinde, hepimiz yapılandırmayı bitirdik! cihaz büyük adımlar için hazır! Bir sonraki adım, RTC modülünü kurmak ve sistemle birlikte kullanmak olacaktır.
Adım 5: Bölüm 2: RTC Modülünü Takma, Yapılandırma ve Kullanma
RTC (veya Gerçek Zamanlı Saat) modülü, üzerinde biraz pil bulunan küçük bir cihazdır, adından da anlaşılacağı gibi, Clocking! bu yüzden güç vermek için bağlantısını kestiğinizde saat çalışmaya devam eder ve durmaz. buna neden ihtiyacımız var? Pekala, ahududu pi'nin kapatıldıktan sonra saat verilerini saklama yöntemi gerçekten yok, tarih ve saatini güncellemek için önyükleme sırasında internete bağlanmaya güveniyor, ancak sorun şu ki her zaman internet erişimimiz yok ve bu bu yüzden RTC modülüne ihtiyacımız var. RTC, ahududu pi için bir saat görevi görecektir, bu nedenle Rpi başlatıldığında, RTC'den Tarih ve Saati alacaktır, bu da RaspberryPi saatini her zaman güncel tutacaktır.
birden fazla model var ve RTC'yi arıyor, DS1307 ve DS3231 var. bulduğunuz herhangi bir RTC modülünü I2C protokol haberleşmesine sahip olduğu sürece kullanabilirsiniz (bunu belirtebilirsiniz ki SDA ve SCL pinlerini modül pinleri üzerinde bulabilirsiniz.
Bu kılavuzdaki herhangi bir şey gibi, projedeki amacıma ulaşmak için başka kılavuzlar kullandım, bu talimat size rehberlik edecek ve bu projeyi yapmak için tam olarak ne yapacağınızı söyleyecektir, ancak değiştirmeniz veya herhangi birinde daha fazla derinliğe ihtiyacınız varsa adımlar, her adımın sonunda daha verimli kılavuzu bağlayacağım.
RTC modülünüzü hazırladıktan sonra (başlık pinlerini lehimleyin ve pili takın), RapberryPi pinlerine aşağıdaki gibi bağlayabilirsiniz:
RTC PIN'i----------------Rpi Pimi
GND===========> PIN 6 (GND)
Vcc============> PIN 1 (3.3V)
SDA==========> PIN 3(SDA)
SCL===========> PIN 5(SCL)
veya hangi RTC modülüne sahip olduğunuza bağlı olarak, doğrudan RaspberryPi'ye monte edebilirsiniz (Pimlerin doğru olduğundan emin olun !!! aksi takdirde Rpi/RTC'ye zarar verebilirsiniz)
RTC'yi bağladıktan sonra Raspberry'yi yapılandıralım.
Adım 6: 2-1: Modül Kurulumu
Başlamadan önce komut satırına gidin ve şunu yazın:
tarih
Bu, Raspberry'deki geçerli tarih ve saati geri verecek, bu çok yararlı komutu not alacak ve modülün ne zaman çalışıp çalışmadığını kontrol edebilmemiz için geçerli tarih ve saati not edecektir.
Şimdi kuruluma başlayalım, Rpi kitaplıklarını her seferinde bir satır güncellemek için aşağıdakini yazın:
sudo apt-get güncellemesi
sudo apt-get -y yükseltme
Bu yapıldıktan sonra, i2c modülünü etkinleştirmek ve RTC eklemek için sistem dosyalarını değiştirmemiz gerekiyor, bir dosya sistemini değiştirmek için Nano adlı bir yazılım kullanacağız. nano, tıpkı dullarda olduğu gibi temelde bir metin düzenleyici olan hafif bir yerleşik yazılımdır. bu nedenle nano ile başlayan ve ardından dosya adıyla başlayan herhangi bir komut, o dosyayı nano metin düzenleyicide açacaktır. Ayrıca Sudo adında bir şey kullandığımızı fark ettiniz, kısacası sudo, sisteme bu komutu yapan kullanıcının başka biri değil Cihaz sahibi olduğunu söyleyen ve düzenleme gibi ayrıcalıklar veren linux sistemi için bir güvence görevi görür. kullanıcıya silme. örneğin, bir nano dosyasını sudo olmadan açsaydık, o dosyayı görebilirdik ama onu düzenleyemez veya silemeyiz.
şimdi, modül dosyasını değiştirmemiz gerekiyor, bunu yazarak yapabiliriz:
sudo nano /etc/modüller
Bunu yaptığınızda, o dosyanın içeriğini bulacaksınız (resme bakın). imleci metnin sonuna getirmek için ok tuşlarını kullanın ve aşağıdakileri ekleyin:
snd-bcm2835
i2c-bcm2835 i2c-dev rtc-ds1307
kaydetmek için CTRL+S ve çıkmak için CTRL+X tuşlarına basın
Adım 7: 2-2: I2C Arayüzü
Şimdi RTC'yi bağladık ve i2c'yi etkinleştirdik, her şeyi birbirine bağlayalım.
komut istemine şunu yazın:
i2cdetect -y 1
size bir dizi boşluk verilecek, ancak bir yerde bir numara olduğunu fark edeceksiniz, bu numara sizin RTC modül adresinizdir. benim durumumda 68. Bu sayıyı not alın. bu iki basamaklı sayıyı görmüyorsanız, bu muhtemelen RTC'yi yanlış bağladığınız anlamına gelir.
şimdi, rc.local dosyasını değiştirmemiz gerekiyor, böylece RTC modülünü açılışta etkinleştirebilir ve tarih ve saati sisteme kaydetmesine izin verebiliriz. önce rc.local dosyasını açın:
sudo nano /etc/rc.local
exit0 satırından önce aşağıdakileri ekleyin:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock -s
0x68, cihazınızın i2c adresidir. işiniz bittiğinde CTRL+S CTRL+X tuşlarına basın, ardından sisteminizi şu şekilde yeniden başlatın:
sudo yeniden başlatma
Adım 8: 2-3: RTC'nin Test Edilmesi
Sistem yeniden başlatıldığında, RTC'nin çalışıp çalışmadığını kontrol edebiliriz. ilk önce çalıştırın:
sudo hwclock -r
RTC modülünde tarih ve saat size geri verilecektir. size başka bir şey verilirse, adımları doğru yaptığınızdan emin olun.
şimdi, RTC'deki saat ve tarihi değiştirmek için, önce sistemdeki Tarih ve Saati değiştirmemiz, SONRA değişiklikleri RTC'ye yazmamız gerekiyor. bunu yapmak için çalıştırın:
sudo tarihi -s "29 AUG 1997 13:00:00"
ve tabii ki, enter tuşuna basmadan önce yerel saat ve tarihe göre tarih ve saati değiştirin. Rpi'de zamanı aldığınızda, RTC'de tarih ve saati kaydetmek için aşağıdakileri çalıştırın:
sudo hwclock -w
aaaa ve işte bu! hwclock -r ile çalışıp çalışmadığını kontrol edebilir ve RTC'deki tarihin doğru olup olmadığını görebilir, ardından rpi'nin internet bağlantısını kesip bir süreliğine kapatıp tekrar açıp doğru olup olmadığına bakabilirsiniz. saat ve tarih. sen bittin!
RTC modülünün nasıl kurulacağına dair tam Kılavuz burada bulunabilir
www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/
Adım 9: Bölüm 3: Ezan Alarm Programının Yapılması
Saat yapmak bir şey tabi, saate ve namaz vakitlerine bakıp vaktinin ne zaman geldiğini görebiliriz, ama namaz vakitlerini bize bildiren sesli bir alarm eklesek daha iyi olmaz mıydı? DAHA İYİSİ, biz o alarmı AZAN'ın sesi olarak yaparız! bunu nasıl başarabileceğimize bir bakalım.
python RaspberryPi ile mükemmel gittiği için programlamamız için tercih ettiğimiz programlama dili olarak python'u kullanacağız. python'da bir kod dosyası yapmak için, bir metin dosyasını açmakla aynı şeyi yapıyoruz, ancak şimdi onu.py olarak kaydediyoruz. programı çalıştırmak için ahududu yüklü python ortamına ihtiyacımız var, neyse ki Raspbian python ve python3 önceden yüklenmiş olarak geliyor! yani tek yapmamız gereken programlamak. bu rehberde dilden bahsedip nasıl çalıştığını ve işlevlerini öğretmeyeceğiz ama projeyi yapabilmeniz için size gerekli kodları vereceğim.
Başlamak için, tercih ettiğimiz ezan sesinin (. WAV formatında) bir ses dosyasına ihtiyacımız var, biri al-fecr ezan için diğeri normal ezan için iki dosyaya ihtiyacımız var. Bunu aldıktan sonra bir çubuk sürücüye koyun ve raspberrypi'nin masaüstüne kopyalayın.
şimdi dosyalarımız var, raspberryPi'de sesli müzik çalmanın bir yolunu arıyordum ve beni şaşırttı, bunu yapabilmemin pek bir yolu yoktu, ancak bu cevabı yığın akışında buldum ve bana ihtiyacım olanı verdi
stackoverflow.com/questions/2021457/playi…
Bu yöntemi test ettim ve işe yaradı! bu yöntemi projemizde nasıl uygulayabileceğimizi görelim…
Adım 10: 3-1: Hadi Bir Ses Çalalım
ilk olarak, masaüstüne şu şekilde gidin:
cd Masaüstü
daha sonra şu şekilde yeni bir python kod dosyası oluşturun:
sudo nano AzanPlay.py
bu, bir python dosyasında.py uzantılı AzanPlay adında yeni bir dosya oluşturacak, kodumuzu yazmamıza izin verecek boş bir siyah ekranımız olacak. sadece şu satırları yazın (python'da bu son derece önemli olduğundan, girintileri veya boşlukları değiştirmemeye dikkat edin):
pygame ithalat karıştırıcısından
mikser.init() mikser.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mikser.music.play() while mixer.music.get_busy() == Doğru: devam
/Desktop/, ses dosyalarınızı koyduğunuz yerdir ve 'Adhan-Makkah.wav', Mekke'deki Ezan ses kaydı olan Ses dosyamdır.
şimdi kodumuzu test etmek için şunu yazarak python ile çalıştırıyoruz:
piton EzanPlay.py
ve HDMI LCD'nizden veya Raspberrypi'deki AUX bağlantı noktanızdan gelen sesin yavaş yavaş çalınmasını sağlarsınız. LCD hoparlörlerden duymuyorsanız, AUX'a bir kulaklık takın ve kontrol edin.
Adım 11: 3-2: Namaz Vakitlerini Alın
Bildiğimiz gibi, namaz vakitleri yeryüzünde bir yerden diğerine farklılık gösterir ve hatta belirli bir yer için bile yıllar içinde farklılık gösterir, yani sistemdeki namaz vakitlerimizi her zaman güncel tutmanın bir yolunu bulmamız gerekiyor ve bunun için doğru yapmak için özel ve çok karmaşık fonksiyonlara ve hesaplamalara ihtiyacımız var. Neyse ki kardeşimiz Hamid Zarrabi-Zadeh, ihtiyacımız olan tüm fonksiyonları, bulunduğumuz yere ve şimdiki zamana bağlı olarak zamanı almak için kolayca kullanabileceğimiz tek bir fonksiyon haline getirdi, MUHTEŞEM! kütüphaneyi ve kaynak dosyaları adresinde bulabilirsiniz.
praytimes.org/
Yani, bu harika dosyaları namaz vakitlerimizi almak ve sisteme uygulamak için kullanacağız. önce kodları web sitesinden indirin ve /adhan/ klasörüne koyun, (hem JS hem de Python kodlarına ihtiyacımız var).
şimdi, o klasöre gidelim ve kütüphaneyi ve neler yapabileceğini test edelim:
cd ezan
orada, işlevi test edebilmemiz için python'da yeni bir test dosyası oluşturmamız gerekiyor:
sudo nano testAd.py
içeride, şu kodu yazın:
namaz vakitlerini içe aktar
tarihsaatten içe aktarma tarihi tmm = duatimes. PrayTimes().getTimes(date.today(), [BOYUM, ENLEM], GMT) print(tmm)
Dosyayı kaydetmeden önce, LATITUDE'u konumunuzla, LONGTITUDE ile aynı şekilde ve GMT'yi saat diliminize göre değiştirmeniz gerekir. benim durumumda, olacak:
tmm = duatimes. PrayTimes().getTimes(date.today(), [21.3236, 39.1022], 3)
yazdır(tmm)
Son olarak, CTRL-S ve CTRL-X ve ardından kodu çalıştırın:
piton testAd.py
son olarak, bulunduğunuz yer için bugün için namaz vakitleriniz size geri verilecek.
{'işa': '18:58', 'asr': '15:22', 'gün batımı': '17:43', 'dhuhr': '12:17', 'akşam': '17:43', 'imsak': '05:23', 'gece yarısı': '00:17', 'gün doğumu': '06:52', 'fecr': '05:33'}
Harika! Artık namaz vaktimiz geldiğine ve artık seslerin nasıl çalınacağını öğrendiğimize göre, bu iki kodu tek bir ana kodda birleştirelim.
Adım 12: 3-3: Son Ezan Alarm Kodunun Oluşturulması
önceki iki kodu da bitirerek konumumuza göre doğru namaz vakitlerini nasıl alacağımızı ve ezan sesinin nasıl çalınacağını öğrendik. şimdi bu iki kodu tek bir kodda birleştireceğiz ve son projemiz olarak kullanacağız ve bu kod arka planda çalışacak, Ezan zamanı geldiğinde Ezan sesini çalacak.
Kodun tamamını yazdım, kopyalayıp yapıştırabilir ve uygun gördüğünüz şekilde kendi değişikliklerinizi yapabilirsiniz. Kod:
ithalat zamanı
pygame'den import mikser import string import duatimes from datetime import date while (1): tmm = Prayertimes. 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')) currTime= tempT tempT= time.strftime(str('%M')) currTime= currTime +':'+ tempT if currTime == FAJR: mikser.init() mikser.music.load('/home/pi/Desktop/Adhan-fajr. wav') mikser.music.play() while mixer.music.get_busy() == Doğru: currTime == DHUHR ise devam et: mikser.init() mikser.music.load('/home/pi/Desktop/Adhan- Makkah.wav') mikser.music.play() while mixer.music.get_busy() == Doğru: currTime == ASR ise devam et: mikser.init() mikser.music.load('/home/pi/Desktop/ Adhan-Makkah.wav') mikser.music.play() while mixer.music.get_busy() == Doğru: currTime == MAGHRIB: mikser.init() mikser.music.load('/home/pi/ ise devam et Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == Doğru: currTime == ise devam et ISHA: mikser.init() mikser.music.load('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play() while mixer.music.get_busy() == Doğru: devam
Eğer koda bakarsanız ve daha önce yaptıklarımız ile karşılaştırırsanız, pek yeni bir şey yapmadığımızı göreceksiniz, önce gerekli kütüphanelerimizi ekledik ve sonra sonsuz bir döngü açtık. döngüde, konumumuz ve saat dilimimiz ile namaz vakitlerini sürekli hesaplıyoruz ve tüm sonucu tmm değişkeninde saklıyoruz. daha sonra her namaz vaktini tmm'den bağımsız bir değişkene kaydediyoruz. bu, zamanları karşılaştırmamıza izin verecek. sonra, sistem zamanını alır ve bağımsız bir değişkende saklarız. Son olarak, sistem zamanını namaz vakitleriyle karşılaştırmaya devam ediyoruz, eğer sistem zamanı herhangi bir namaz vakti ile eşleşirse, Ezan sesi çalacaktır.
Adım 13: Bölüm 4: Saat Yüzlerini Uygulama
Projenin daha iyi görünmesini sağlamak için LCD'ye saat yüzleri ekleme fikrim vardı, bu yüzden kullanıcıya hoş görünüyor (en azından komut satırından daha iyi), bu yüzden birden fazla yüz tasarlamak için bir tasarımcı tuttum. Saatin boş olması, verilerin HTML üzerinden eklenmesi, saat tasarımlarının arka plan yapılması ve namaz vakitleri gibi diğer verilerin arka planın üstüne HTML öğeleri olarak eklenebilmesi gerektiği için boş olması gerekir.
Ne yazık ki, bu talimatı yazarken, HTML'deki bilgim ve deneyimim çok sınırlı, bu yüzden çok fazla ayrıntı tartışmayacağım çünkü bir gerçeği biliyorum ki işleri yanlış bir şekilde yapacağım ve bilmiyorum. insanların kafasını karıştırmak ister ancak JS ve HTML'de ufak bir deneyiminiz varsa, bu noktadan nasıl devam edeceğinizi bilmelisiniz. Şimdiye kadar tek bir yüz yaptım (mavi olan). plan 14 saat yüzü yapmak! Haftanın her günü için 7 yüz ve başka bir tema olarak 7 yüz. ilk temanın Azkar yuvarlanması ile olması gerekiyordu ve diğer temanın Azkar yerine İslami GIF'lere sahip olması gerekiyordu. ne olursa olsun, indirebilmeniz için bu talimata tüm tasarımları ekleyeceğim.
Adım 14: Bölüm5: Bir Kullanıcı Arayüzünün Uygulanması
Yolculuğumuzun son bölümünde, projeyi bir camide veya herhangi bir halka açık yerde uygulamak istiyorsak, projeyi daha kullanıcı dostu hale getirmek için isteğe bağlı bazı değişiklikler yapacağız. Daha önce de söylediğimiz gibi, her şehrin dualar için kendi zamanlaması vardır ve bu projenin daha geniş bir insan kitlesine ulaşmasını sağlamak için, projeyi açtıktan sonra istediğimiz şehri ve temayı seçebilmemiz için bir kullanıcı arayüzü yapacağız.
Bunu yapmak için "TKinter" adında bir python GUI kütüphanesi kullanacağız.
Bana Mekke dahil Suudi Arabistan'daki beş şehir arasında seçim yapma seçeneği vermek için uyguladığım kod:
tkinter'ı tk olarak içe aktar
tkinter'dan import * tkinter'dan import ttk import codec'leri import os class karl(Frame): def _init_(self): tk. Frame._init_(self) self.pack() self.master.title("Azan Time") self. button1 = Button(self, text = "Cidde", yükseklik=5, genişlik = 80, komut = self.open_jeddah1) self.button2 = Button(self, metin = "Mekke", yükseklik=5, genişlik = 80, komut = self.open_makkah1) self.button3 = Button(self, text = "Riyad", yükseklik=5, genişlik = 80, komut = self.open_riyadh1) self.button4 = Button(self, metin = "Medine", yükseklik=5, genişlik = 80, komut = self.open_madina1) self.button5 = Button(self, text = "Qasim", width = 80, command = self.open_qasaim1) self.button1.grid(satır = 0, sütun = 1, sütun genişliği = 2, yapışkan = W+E+N+S) self.button2.grid(satır = 1, sütun = 1, sütun genişliği = 2, yapışkan = W+D+N+S) self.button3.grid(satır = 2, sütun = 1, sütun genişliği = 2, yapışkan = W+D+N+S) self.button4.grid(satır = 3, sütun = 1, sütun genişliği = 2, yapışkan = W+E+N+S) self.button5.grid(satır = 4, sütun = 1, sütun genişliği = 2, yapışkan = W+E+N+S) def open_jeddah1(self): order = "sudo krom tarayıcı /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 (sipariş) def open_riyadh1(self): order = "sudo krom tarayıcı /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system(sipariş) def open_madina1(self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type " os.system(sipariş) 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() ise _name_ == '_main_': ana()
Kod büyük görünebilir, ancak düzenlemek çok kolaydır. temelde yeni bir pencere yaptık, beş isim butonu koyduk ve her butona basıldığında çağrılacak beş fonksiyon tanımladık. düğmeye bastığınızda, program, her şehir HTML'sinin namaz vakitlerinden () zaman aldığında şehir koordinatlarına sahip olduğu Şehirler klasöründe karşılık gelen HTML dosyasını açacaktır. Düğmeye bastığınızda, python kodu, HTML dosyasını krom tarayıcı kullanarak açacağı bir linux kodunu yürütür ve tam ekran seçeneği açıkken saat yüzünü görüntülemeye hazır hale getirirsiniz.
Adım 15: (İsteğe bağlı): Hoparlör Anahtarı Ekleme
Gördüğümüz gibi namaz vakti geldiğinde ezan sesi çalıyor ve ses varsayılan ses çıkışından (HDMI veya AV çıkışı) çıkıyor ve HDMI çıkışına taktığımız için ses LCD'den gelecek. peki ya LCD sesimiz yeterli değilse? örneğin, bunu gerçek bir caminin içinde uygulamak istersek ne olur? geniş dış hoparlörler ile? o zaman bunu başarmak için ÇOK kolay bir adım daha ekleyebiliriz. Halihazırda inşa edilmiş bir hoparlör ses sistemi için, onu AÇMA ve KAPATMA ve zaten mevcut olan mikrofonu alıp LCD hoparlörlerin yanına koymamız yeterlidir.
Bunu yapmak kolaydır. hoparlöre bağlı önceden var olan cami mikrofonunu kullanacağız, tüm ses sistemini açıp kapatan gücü kontrol etmek için sadece raspberryPi'ye ihtiyacımız olacak. bunu yapmak için bir SSR: KATI HAL RÖLESİ kullanmamız gerekecek. bu tür röleler, ortalama mavi röle gibi bir anahtar görevi görebilir, aradaki fark, SSR'lerin, mavi olanlarda (genellikle maksimum 10A) geçerli olmayan büyük miktarda AC Amperajına dayanabilmesidir ve SSR'lerin ihtiyacı vardır. 3 yerine sadece iki kablo: DC+ ve DC- ve hepsi bu! SSR'nin diğer ucunda hoparlör sistemi güç kablosunu bağlayabiliriz, bu şekilde SSR'ye voltaj verdiğimizde hoparlör sisteminin AC devresini kapatacak veya açık devre yapmak için voltajı kapatacağız, hoparlörleri kapatmak.
Bir tane yakalama var, RaspberryPi pinleri SSR'yi kontrol etmemiz gereken 5v değil, 3.3v veriyor. yani RPi pininden sinyal almak için bir transistöre ve RPi 5v pininden 5V'a ihtiyacımız var. bunu yapmak için ihtiyacımız var:
1-Solid State Röle (25A'nın üzerindeki her şey iyidir)
2-2n2222 npn transistör
3-220ohm direnç
bağlantı için fritzing devresini takip edin.
şimdi kodda, bu işi yapan bazı şeyler ekleyeceğiz. ilk olarak, while döngüsünden önce, GPIO pinlerini başlatmak için bazı satırlar ekleyeceğiz:
İçe aktarma bölümüne şunu ekleyin:
RPi. GPIO'yu GPIO olarak içe aktar
while döngüsünden önce şunu ekleyin:
GPIO.setmode(GPIO. BOARD)GPIO.setwarnings(Yanlış) röle = 40 GPIO.setup(ledPin, GPIO. OUT)
Şimdi while döngüsünde, her Ezan çal komutu için röleyi açmamız, 10 saniye beklememiz, Ezan çalmayı bitirmemiz ve ardından röleyi kapatmamız gerekiyor. sadece iki satır eklememiz gerekiyor, ilki:
GPIO.output(ledPin, GPIO. HIGH)
zaman.uyku(10)
bu, her if ifadesinden sonra eklenmelidir (TANIMLAMA ÖNEMLİDİR!), diğer satır:
GPIO.output(ledPin, GPIO. LOW)
Bu, "devam" satırından sonra eklenmelidir. her Ezan zamanı için şöyle görünmelidir:
eğer currTime == FAJR:
GPIO.output(ledPin, GPIO. HIGH) time.sleep(10) mikser.init() mikser.music.load('/home/pi/Desktop/Adhan-fajr.wav') mikser.music.play() while mikser.music.get_busy() == Doğru: GPIO.output'a devam edin(ledPin, GPIO. LOW)
Önerilen:
Oksimetre ve Nabız ile DIY Fitness Tracker Akıllı İzle - TinyCircuits'ten Modüler Elektronik Modüller - En Küçük Oyun Salonu: 6 Adım
Oksimetre ve Nabız ile DIY Fitness Tracker Akıllı İzle | TinyCircuits'ten Modüler Elektronik Modüller | En Küçük Oyun Salonu: Hey, naber çocuklar! Akarsh burada CETech'ten. Bugün, günlük hayatımızda çok yararlı olan, ancak kendilerinin küçük bir versiyonu olan bazı sensör modüllerine sahibiz. Bugün sahip olduğumuz Sensörler, tra
Hesap Makinesi İzle: 5 Adım
Hesap Makinesi Saati: 15 yaşından küçükseniz yetişkin gözetiminde sivri cisim kullanacaksınız. Ayrıca sıcak nesneler kullanacaksınız
TTGO T-İzle Robotu: 11 Adım
TTGO T-Watch Robot: Bu talimat, bir TTGO T-Watch'in küçük bir robota nasıl dönüştürüleceğini gösterir
KS-Batman-İzle: 4 Adım
KS-Batman-Watch: (Burada saat 7:11'i gösteriyor) Durum Batman'i büyük yuvarlak Batman-Pencerenizden sık sık aramadığınız için, saati size göstermek için de kullanmak istiyorsunuz. Bunu yapmak için, WS2801-Tipinde bir Led-Şerit kullanırsınız. (resme bakın).Saat şunlardan oluşur
Nixie Tüp İzle: 7 Adım (Resimlerle)
Nixie Tube Watch: Bu yılın başlarında işlevsel bir şey yapıp yapamayacağımı görmek için bir saat yaptım. 3 ana tasarım gereksinimim vardı Doğru zamanı koru Tüm gün pil ömrüne sahip ol Rahatça takılabilecek kadar küçük olİlk 2 gereksinimi karşılamayı başardım, ancak