Mundarija:

RaspberryPi islomiy namozlarini tomosha qilish va signal: 15 qadam (rasmlar bilan)
RaspberryPi islomiy namozlarini tomosha qilish va signal: 15 qadam (rasmlar bilan)

Video: RaspberryPi islomiy namozlarini tomosha qilish va signal: 15 qadam (rasmlar bilan)

Video: RaspberryPi islomiy namozlarini tomosha qilish va signal: 15 qadam (rasmlar bilan)
Video: HASBI RABBI JALLALLAH PART 5 2024, Noyabr
Anonim
RaspberryPi islomiy namozlarini tomosha qilish va signal
RaspberryPi islomiy namozlarini tomosha qilish va signal
RaspberryPi islomiy namozlarini tomosha qilish va signal
RaspberryPi islomiy namozlarini tomosha qilish va signal

Dunyo musulmonlari har kuni beshta namoz o'qiydilar va har bir namoz kunning ma'lum bir vaqtida bo'lishi kerak. Bizning sayyoramiz elliptik tarzda aylanib yurganligi sababli, quyoshning chiqishi va tushishi vaqtini yil davomida farq qiladi, shuning uchun ham namoz vaqtini o'zgarmas qiladi, shuning uchun har bir musulmonga ibodat vaqtlarini eslatish uchun bizga islomiy soat kerak. kun.

Har bir musulmon kundalik namoz vaqtiga ob -havoni Internetdagi islomiy veb -saytlar, mahalliy islom taqvimlari yoki hatto televidenie orqali olish imkoniyatiga ega va ko'pchiligimizda bizga namoz vaqtlarini, shuningdek, namoz signallarini berish xususiyatlariga ega bo'lgan islomiy soat asboblari o'rnatilgan.. Ammo, agar biz o'zimiz namoz o'qish va signalizatsiya moslamasini yasagan bo'lsak -chi!

Loyiha ustida ishlashni boshlashdan oldin, ushbu ko'rsatmalarni o'qiyotganda siz uchun foydali bo'lishi mumkin bo'lgan bir nechta fikrlar mavjud. Men Saudiya Arabistonida yashayman, shuning uchun mening ba'zi qadamlarim va qadriyatlarim siznikidan farq qiladi va men buni ish paytida aniq ko'rsataman. Arabcha so'zlarni o'z ichiga olishi mumkin bo'lgan qadamlar va rasmlar bor, chunki men arab tilida interfeys yaratganman, lekin men buni ingliz tilida qanday qilish kerakligini ham ko'rsataman, shuning uchun rasmlardagi arabcha so'zlar sizni xavotirga solmasin, bu loyiha bo'lishi mumkin. har qanday tilda qilingan (bu ajoyib!: D) Shuningdek, mening xatolarimni kechiring, chunki ingliz tili mening birinchi tilim emas.

Loyihamizga! Bu loyiha X asosiy bosqichlarga bo'linadi, biz X bosqichning oxiriga kelib loyihamizni yaxshi va tayyor qilib qo'yamiz! Bosqichlar quyidagicha bo'ladi:

1-RaspberryPi-ni sozlash va tayyorlash

2-RTC modulini o'rnatish

3-Azon signal dasturini yaratish

4-Soat yuzlarini bajarish

5-Foydalanuvchi interfeysini yaratish va.

Har bir loyihada bo'lgani kabi, biz avval kerakli qismlarni tayyorlashimiz kerak. Ushbu loyiha uchun bizga kerak bo'lgan qismlar:

1-RaspberryPi kompyuter to'plami Amazon AQSh || Amazon KSA

Siz har qanday Rpi versiyasidan foydalanishingiz mumkin, faqat Wi -Fi borligiga ishonch hosil qiling. Men Rpi3B+ dan foydalanardim

2-RTC Haqiqiy vaqtda soat moduli Amazon AQSh || Amazon KSA

Siz har qanday RTC modul modelidan foydalanishingiz mumkin, faqat uning I2C borligiga ishonch hosil qiling

3-LCD monitor

Har qanday LCD ishlaydi

4-Sichqoncha va klaviatura

va bu ….. BU !! Azon soati va budilnikini o'zingiz qilishingiz uchun kerak bo'lgan narsa shu

1 -qadam: 1 -bob: RaspberryPI -ni sozlash va sozlash

1 -bob: RaspberryPI -ni sozlash va sozlash
1 -bob: RaspberryPI -ni sozlash va sozlash

Birinchi narsa Birinchi! U bilan ishlash uchun biz Raspberry pi ni tayyorlashimiz kerak.

Raspberry pi - bu kompyuterdan boshqa narsa emas, u operativ xotira va ROMga ega, uning protsessori, GPU, kirish -chiqish ……. Kompyuter! xuddi biz o'ynaydigan va Internetni ko'zdan kechiradigan o'yin singari, faqat kichik narsa! bu malinani loyihalarni ishlab chiqish va amalga oshirish uchun juda yaxshi tanlovga aylantiradi. chunki malina pi kichik, u juda cheklangan xususiyatlarga ega, u Windows yoki macOS kabi katta talab qilinadigan OS bilan ishlay olmaydi, buning o'rniga biz Linuxni operatsion tizim sifatida ishlatamiz. biz foydalanishimiz mumkin bo'lgan minglab, hatto o'n minglab Linux distributivlari bor, lekin bitta mukammal tarqatish biz foydalanadigan raspberrypi uchun juda yaxshi optimallashtirilgan, Raspbian.

2-qadam: 1-1: Kerakli fayllarni yuklab oling

1-1: Kerakli fayllarni yuklab oling
1-1: Kerakli fayllarni yuklab oling
1-1: Kerakli fayllarni yuklab oling
1-1: Kerakli fayllarni yuklab oling
1-1: Kerakli fayllarni yuklab oling
1-1: Kerakli fayllarni yuklab oling

-https://www.raspberrypi.org/software/operating-sy… rasmiy Rasbian yuklab olish sahifasiga o'ting va Raspberry Pi OS-ni ish stoli bilan yuklab oling.

-Yuklab olayotganda, https://win32diskimager.org/ saytiga o'ting va win32DiskImager -ni yuklab oling va o'rnating, siz xohlagan tasvirni yoqish dasturidan foydalanishingiz mumkin.

yuklash tugagandan so'ng, sizda RaspberryPi OS ni o'z ichiga olgan.img fayli bo'ladi. Keyin, SD xotira kartasini kompyuterga ulang (odatda USB -kartani o'quvchi bilan) va win32diskimager dasturini ishga tushiring. Rasmni SD xotiraga yozish bosqichlari juda oddiy, sizga 1- Xotira harfini tanlang 2-Yuklab olgan OS fayllarini tanlang va 3-ni bosing! Ro'yxatdagi qurilmaning to'g'ri harfini tanlaganingizga va xotirangiz bo'sh ekanligiga ishonch hosil qiling, chunki yozish tugmachasini bosish orqali siz qurilmadagi hamma narsa o'chirilishini bildiradigan ogohlantirish olasiz! Yozishni tasdiqlash uchun ha tugmasini bosing va uning tugashini kuting. bu 20 daqiqagacha davom etishi mumkin.

Bu bajarilgandan so'ng, siz xotirada to'liq Rapbian operatsion tizimiga ega bo'lasiz, uni Rapberry Pi -ga qo'yishingiz, Raspberry Pi -ni HDMI orqali monitorga ulashingiz, sichqoncha va klaviaturani USB orqali ulashingiz va nihoyat, kuch

3-qadam: 1-2: Raspbian tizimini sozlash

Kabellarni va quvvatni ulaganingizdan so'ng, siz OS yoqilganligini ko'rasiz, u avtomatik ravishda qayta ishga tushadi va keyin Raspbian foydalanuvchi interfeysini ko'rsatadi (u oynalarga o'xshaydi). Siz ko'radigan birinchi narsa - RaspberryPi -ni birinchi marta sozlash bosqichlaridan o'tadigan xush kelibsiz oyna. derazalar va qadamlar quyidagicha bo'ladi:

1-Birinchi "Xush kelibsiz" oynasida keyingisini bosing

2-Keyingi oyna sizning joylashuvingizni sozlash bo'ladi. mamlakat, til va vaqt mintaqasini tanlang. Shundan so'ng, "Ingliz tilidan foydalanish" ni tekshirish tavsiya etiladi, chunki bu operatsion tizim interfeysi tili bo'ladi. SIZ "US INGLIZ TILIDA Klaviaturani joylashtirish qutisini" tekshirishingiz kerak, bizga ishlash uchun ingliz klaviaturasi kerak!

3-Keyin, sizdan malina uchun parolni kiritish so'raladi, bu xavfsizlik uchun muhim, lekin biz bu loyiha uchun o'zgarishsiz qoldiramiz. E'tibor bering, standart foydalanuvchi nomi va parol:

foydalanuvchi nomi: pi

parol: malina

4-Keyingi oyna raspberryPi-ni Wi-Fi tarmog'ingizga ulaydi. wifi nomini tanlang va wifi parolini kiriting

5-navbatda, sizdan raspberry pi kutubxonalari va tizim fayllarini yangilash so'raladi. bu qadam juda ko'p vaqtni oladi (balki soatlab), lekin har safar yangi malina pi o'rnatilganda bu juda muhim qadamdir.

6-yangilanish tugagach, sizdan tizimni qayta ishga tushirish so'raladi. buni hozir qiling.

Ajoyib ish! Endi bizda yangilangan tizim bor, biz tizimni ishlashini sozlash uchun yana bir qancha ishlarni bajarishimiz kerak, lekin endi LinuxCommand Line -dan foydalanishni boshlaymiz.

4-qadam: 1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish

1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish
1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish
1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish
1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish
1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish
1-3: Rpi sozlamalarini o'rnatish uchun buyruq satridan foydalanish

Tizim yangilanishidan qayta yuklashni tugatgandan so'ng, yuklash tugagandan so'ng, tizim foydalanuvchi ish stolini ko'rsatadi. Agar siz ekranning chap yuqori qismiga qarasangiz, siz ba'zi tugmalarni topasiz, Rpi menyusi tugmasi bo'lgan raspberryPi logotipli tugma, Internet-brauzer bo'lgan globus shakli, papkalar tugmasi.. va nihoyat, qora ekranli oynali tugma, bu har qanday linux tizimidagi eng muhim tugma, Buyruqlar qatori. davom eting va shu tugmani bosing, siz ochilgan qora oynani ko'rasiz.

Buyruqlar satri - bu hamma Linux tizimidan qanday foydalanishi va undan qanday foydalanishi, xuddi Windows -ning beva ayollarida o'z buyruq qatori bo'lgani uchun, biz uni tez -tez ishlatishga hojat yo'q. Linuxda har bir Linux foydalanuvchisi o'rganishi va o'zlashtirishi kerak bo'lgan asosiy narsa. buyruq satridan … foydalanish mumkin. qora oynada ko'rganingiz-bu buyruqni foydalanuvchi tomonidan yozilishini va bajarilishini kutish. Ushbu qo'llanmada biz ushbu loyihani amalga oshirish uchun kerak bo'lgan barcha buyruqlarni beramiz, shuning uchun xavotir olmang.

biz ishlatadigan birinchi Linux buyrug'i - bu boshqa konfiguratsiya buyrug'i, shuni esda tutingki, bundan buyon barcha buyruqlar kod qutisiga joylashtiriladi, shuning uchun siz uni oddiy qadamlardan farqlay olasiz. Klaviaturani olib keling va quyidagilarni kiriting va Enter ni bosing:

sudo raspi-config

Agar siz buni to'g'ri qilsangiz, ekran ko'k rangga aylanganini ko'rasiz, o'rtada kulrang kichkina quti (rasmga qarang). Biz buni kodlashni boshlashdan oldin yakuniy konfiguratsiyamiz uchun ishlatamiz.

Endi menyuga o'tish uchun klaviaturadagi o'q tugmalaridan foydalanish kerak bo'ladi.

1-Interfeys variantlari >> I2C >> Ha "ga o'ting. Enter tugmasini bosing. Bu I2c aloqa protokolini yoqadi, shuning uchun biz RTCdan foydalanishimiz mumkin

2-Kengaytirilgan variantlarga o'ting >> Fayl tizimini kengaytirish.

va bu oynadan sizga kerak bo'lgan hamma konfiguratsiya. Asosiy sahifada pastga tushing va tizimni qayta ishga tushirish uchun "tugatish" va "ha" tugmachalarini bosing.

Tizim qayta ishga tushirilgandan so'ng, biz hammamiz konfiguratsiyani tugatdik! qurilma katta qadamlarga tayyor! Keyingi qadam RTC modulini o'rnatish va uni tizim bilan ishlatish bo'ladi.

5 -qadam: 2 -bob: RTC modulini o'rnatish, sozlash va ishlatish

2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish
2 -bob: RTC modulini o'rnatish, sozlash va ishlatish

RTC (yoki real vaqtda soat) moduli-bu kichik batareya, u nomidan ko'rinib turibdiki, Clocking! Shunday qilib, siz uni elektr tarmog'idan uzsangiz, soat ishlaydi va to'xtamaydi. nega bizga bu kerak? Xo'sh, malina pi chindan ham o'chirilganidan keyin soat ma'lumotlarini saqlashning hech qanday usuliga ega emas, u sana va vaqtni yangilash uchun yuklash paytida Internetga ulanishga tayanadi, lekin muammo shundaki, bizda har doim ham Internetga kirish imkoni yo'q va bu shuning uchun bizga RTC moduli kerak. RTC malina pi uchun soat vazifasini bajaradi, shuning uchun Rpi yuklangach, RTC dan Sana va vaqtni oladi, bu esa RaspberryPi vaqtini doimo yangilab turadi.

bir nechta modellar mavjud va RTC qidiradi, DS1307 va DS3231 mavjud. I2C protokoli aloqasi mavjud ekan, siz topa oladigan har qanday RTC modulidan foydalanishingiz mumkin (bu shuni ko'rsatadiki, siz modul pimlarida SDA va SCL pinlarini topishingiz mumkin.

Men ushbu qo'llanmada bo'lgani kabi, men ham loyihada o'z maqsadimga erishish uchun boshqa qo'llanmalardan foydalandim, bu ko'rsatma sizga ko'rsatma beradi va sizga bu loyihani amalga oshirish uchun nima qilish kerakligini aniq aytib beradi, lekin agar sizga biron bir narsani o'zgartirish kerak bo'lsa yoki sizga chuqurroq ma'lumot kerak bo'lsa. qadamlar, men har bir qadam oxirida yanada samarali qo'llanmani bog'layman.

RTC modulini tayyorlaganingizdan so'ng (sarlavhani payvandlang va batareyani qo'ying), uni RapberryPi pinlariga quyidagicha ulashingiz mumkin:

RTC PIN kodi ---------------- Rpi pin

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

Vcc ============> PIN 1 (3.3V)

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

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

yoki sizda qanday RTC moduli borligiga qarab, siz uni to'g'ridan -to'g'ri RaspberryPi -ga o'rnatishingiz mumkin (Pimlarning to'g'riligiga ishonch hosil qiling, chunki Rpi/RTC -ga zarar etkazishingiz mumkin)

RTC -ni ulaganingizdan so'ng, Raspberry -ni sozlaymiz.

6-qadam: 2-1: Modulni sozlash

2-1: Modulni sozlash
2-1: Modulni sozlash
2-1: Modulni sozlash
2-1: Modulni sozlash

Ishni boshlashdan oldin buyruq satriga o'ting va yozing:

sana

Bu Raspberry -dagi joriy sana va vaqtni qaytarib beradi, bu juda foydali buyruqni eslab qoladi va hozirgi sana va vaqtni qayd qiladi, shunda modul ishlayotganini yoki ishlamasligini bilib olamiz.

Endi, sozlashni boshlaylik, Rpi kutubxonalarini yangilash uchun quyidagilarni yozing, birma -bir satr:

sudo apt-get yangilanishi

sudo apt -get -y yangilash

Bu bajarilgandan so'ng, biz tizim fayllarini o'zgartirishimiz kerak i2c modulini yoqish va RTC qo'shish, fayl tizimini o'zgartirish uchun biz Nano deb nomlangan dasturiy ta'minotdan foydalanamiz. nano-bu beva ayollarda bo'lgani kabi, asosan matn muharriri bo'lgan engil o'rnatilgan dasturiy ta'minot. shuning uchun nano bilan boshlanadigan har qanday buyruq fayl nomidan keyin faylni nano matn muharririda ochadi. Siz Sudo deb nomlangan narsani ishlatganimizni payqadingiz, qisqasi, sudo linux tizimi uchun kafolat vazifasini bajaradi, bu tizimga bu buyruqni bergan foydalanuvchi boshqa birov emas, balki qurilma egasi ekanligini aytadi va tahrir qilish kabi imtiyozlarni beradi/ foydalanuvchiga o'chirish. Masalan, agar biz nano faylni sudo holda ochgan bo'lsak, biz bu faylni ko'rishimiz mumkin bo'lardi, lekin biz uni tahrir qila olmaymiz yoki o'chira olmaymiz.

Endi biz modullar faylini o'zgartirishimiz kerak, buni yozish orqali qilishimiz mumkin:

sudo nano /etc /modullari

Buni qilganingizdan so'ng, siz faylning mazmunini topasiz (rasmga qarang). kursorni matn oxiriga qo'yish uchun o'q tugmalaridan foydalaning va quyidagilarni qo'shing:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

saqlash uchun CTRL+S tugmalarini bosing va chiqish uchun CTRL+X tugmalarini bosing

7-qadam: 2-2: I2C interfeysi

2-2: I2C interfeysi
2-2: I2C interfeysi

Endi biz RTC -ni uladik va i2c -ni yoqdik, hamma narsani bir -biriga ulaylik.

buyruq satriga quyidagilarni kiriting:

i2cdetect -y 1

sizga bir qator bo'sh joylar beriladi, lekin siz bir joyda raqam borligini sezasiz, bu raqam sizning RTC moduli manzilidir. mening holimda bu 68. bu raqamga e'tibor bering. Agar siz bu ikki xonali raqamni ko'rmasangiz, demak siz RTCni noto'g'ri ulagansiz.

Endi biz rc.local faylini o'zgartirishimiz kerak, shunda biz yuklashda RTC modulini ishga tushiramiz va tizimga sana va vaqtni saqlashga ruxsat beramiz. Birinchidan, rc.local faylini oching:

sudo nano /etc/rc.local

Exit0 qatoridan oldin quyidagilarni qo'shing:

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

hwclock -s

bu erda 0x68 sizning qurilmangiz i2c manzili. tugagandan so'ng CTRL+S CTRL+X tugmalarini bosing, so'ng tizimni qayta ishga tushiring:

sudo qayta yuklash

8-qadam: 2-3: RTCni sinovdan o'tkazish

2-3: RTCni sinovdan o'tkazish
2-3: RTCni sinovdan o'tkazish

Tizim qayta ishga tushirilgandan so'ng, biz ob -havoning RTC ishlayaptimi yoki yo'qligini tekshirishimiz mumkin. Birinchidan, ishga tushiring:

sudo hwclock -r

sizga RTC modulidagi sana va vaqt qaytariladi. Agar sizga boshqa narsa berilsa, qadamlarni to'g'ri bajarganingizga ishonch hosil qiling.

endi, RTC -dagi vaqt va sanani o'zgartirish uchun biz avval tizimdagi Sana va Vaqtni o'zgartirishimiz kerak, keyin O'zgartirishlarni RTCga yozib qo'ying. Buning uchun ishga tushiring:

sudo sanasi "29 avgust 1997 13:00:00"

va, albatta, kirishni bosishdan oldin, mahalliy vaqt va sanaga qarab sana va vaqtni o'zgartiring. Rpi -da o'ng vaqtni olganingizdan so'ng, RTC -dagi sana va vaqtni saqlash uchun quyidagilarni bajaring:

sudo hwclock -w

aaaa shu! Siz hwclock -r bilan ishlayotganini tekshirishingiz va RTC -dagi sana to'g'ri yoki yo'qligini ko'rishingiz mumkin, keyin rpi -ni Internetdan uzing, keyin uni bir muddat o'chiring va keyin qayta yoqing va u to'g'ri ekanligini tekshiring. vaqt va sana. ishingiz tugadi!

RTC modulini sozlash bo'yicha to'liq qo'llanmani bu erda topishingiz mumkin

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

9 -qadam: 3 -bob: Azon signalizatsiyasi dasturini tuzish

3 -bob: Azon signal dasturini yaratish
3 -bob: Azon signal dasturini yaratish

Soat yasash - bu bir narsa, albatta, biz soat va namoz vaqtlariga qarashimiz va qachon kelishini ko'rishimiz mumkin, lekin bizni namoz vaqtlari to'g'risida ogohlantirish uchun ovozli signal qo'shsak ham YO'LLIK bo'larmidi? YAXSHI, biz bu signalni AZAN ovozi sifatida qilamiz! buni qanday amalga oshirishimiz mumkinligini ko'rib chiqaylik.

dasturlash uchun biz pythonni afzal ko'rgan dasturlash tili sifatida ishlatamiz, chunki python RaspberryPi bilan juda mos keladi. python -da kod faylini yaratish uchun biz matnli faylni ochish bilan bir xil qilamiz, lekin hozir biz uni.py sifatida saqlaymiz. Dasturni ishga tushirish uchun bizga malina o'rnatilgan python muhiti kerak, xayriyatki, Raspbian oldindan o'rnatilgan python va python3 bilan birga keladi! shuning uchun biz faqat dasturlashimiz kerak. bu qo'llanmada biz til haqida gapirmaymiz va uning qanday ishlashini va vazifalarini o'rgatmaymiz, lekin men sizga kerakli kodlarni beraman, shunda siz loyihani amalga oshira olasiz.

Boshlash uchun bizga azon ovozining ovozli fayli kerak bo'ladi (. WAV-da) bizga ikkita fayl kerak, biri al-fajr azoni uchun, ikkinchisi oddiy azon uchun. bir marta, uni tayoqchaga joylashtiring va uni malinaning ish stoliga ko'chiring.

Endi bizda fayllar bor, men raspberryPi -da ovozli audiolarni ijro etish usulini qidirardim va ajablanarlisi shundaki, buni qilishning ko'p usullari yo'q edi, lekin men bu javobni menga kerakli narsani bergan stackoverflow -da topdim.

stackoverflow.com/questions/20021457/playi…

Men bu usulni sinab ko'rdim va u ishladi! Keling, bu usulni loyihamizda qanday amalga oshirish mumkinligini ko'rib chiqaylik …

10-qadam: 3-1: Keling, ovoz chiqaramiz

3-1: Keling, ovoz chiqaramiz!
3-1: Keling, ovoz chiqaramiz!

Birinchidan, ish stoliga o'ting:

CD ish stoli

keyin yangi python kodli faylni yarating:

sudo nano AzanPlay.py

Bu AzanPlay deb nomlangan yangi faylni python fayli.py kengaytmasi bilan yaratadi, bizda kodni yozish uchun bo'sh qora ekran bo'ladi. shunchaki bu satrlarni yozing (har qanday bo'shliqni yoki bo'sh joyni o'zgartirmaslik uchun ehtiyot bo'ling, chunki bu pythonda o'ta muhim):

pygame import mikseridan

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == To'g'ri: davom eting

Qaerda / Ish stolida-bu siz o'z ovozli fayllaringizni joylashtiradigan joy, va "Adhan-Makkah.wav"-bu mening audio faylim, bu makondagi azon ovoz yozuvi.

Endi kodimizni sinab ko'rish uchun biz uni python bilan yozamiz:

python AzanPlay.py

va siz HDMI LCD -dan yoki Raspberrypi -dagi AUX portidan ovoz eshitasiz. Agar siz uni LCD karnaylardan eshitmasangiz, quloqchinni AUX -ga ulang va tekshiring.

11-qadam: 3-2: Namoz vaqtlarini oling

3-2: Namoz vaqtlarini oling
3-2: Namoz vaqtlarini oling

Ma'lumki, namoz vaqtlari er yuzida bir joydan boshqasiga farq qiladi, hatto ma'lum bir joy uchun ham yillar davomida farq qiladi, demak, biz tizimda namoz vaqtimizni doimo yangilab turish yo'lini topishimiz kerak. buning uchun bizga aniq va juda murakkab vazifalar va hisob -kitoblar kerak. Yaxshiyamki, birodarimiz Hamid Zarrabi-Zoda bizga kerak bo'lgan barcha funktsiyalarni bitta funktsiyaga aylantirdi, bu biz osongina joylashuvimiz va hozirgi vaqtimizga qarab vaqtni olishimiz mumkin, AMAZING! kutubxona va manba fayllarini topishingiz mumkin

praytimes.org/

Shunday qilib, biz bu ajoyib fayllardan ibodat vaqtimizni olish va uni tizimda qo'llash uchun foydalanamiz. Birinchidan, kodlarni veb -saytdan yuklab oling va uni / adhan / papkasiga joylashtiring (bizga JS va Python kodlari kerak).

Endi biz ushbu papkaga boramiz va kutubxonani sinab ko'ramiz va u nima qila oladi:

CD azon

u erda biz vazifani sinab ko'rishimiz uchun pythonda yangi test faylini yaratishimiz kerak:

sudo nano testAd.py

ichida, bu kodni yozing:

namoz vaqtlarini import qilish

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

Faylni saqlashdan oldin siz LATITUDE -ni Latitude joylashuvi bilan LONGTITUDE -da o'zgartirishingiz va GMT -ni vaqt mintaqangizga o'zgartirishingiz kerak. mening holimda shunday bo'ladi:

tmm = namoz vaqti. PrayTimes (). getTimes (sana.today (), [21.3236, 39.1022], 3)

bosib chiqarish (mm)

Nihoyat, CTRL-S va CTRL-X va keyin kodni ishga tushiring:

python testAd.py

Nihoyat, bugun sizning namoz vaqtingiz, sizning joylashuvingiz uchun qaytariladi.

{'isha': '18: 58 ',' asr ': '15: 22', 'quyosh botishi': '17: 43 ',' zuhr ':' 12: 17 ',' magrib ': '17: 43', 'imsak': '05: 23 ',' yarim tunda ': '00: 17', 'quyosh chiqishi': '06: 52 ',' bomdod ': '05: 33'}

Ajoyib! Endi biz ibodat vaqtini oldik va endi tovushlarni qanday chalishni bilamiz, keling, bu ikki kodni bitta asosiy kodga birlashtiraylik.

12-qadam: 3-3: Oxirgi Azon signal kodini tuzish

oldingi ikkita kodni tugatib, biz o'z joyimizga ko'ra namoz vaqtlarini aniq olishni va azon ovozini qanday chalishni o'rgandik. Endi biz bu ikkita kodni bitta loyihaga birlashtiramiz va biz ularni yakuniy loyihamiz sifatida ishlatamiz va bu kod fonda ishlaydi, chunki Azan vaqti kelganda Azan ovozi eshitiladi.

Men butun kodni yozdim, siz uni nusxa ko'chirishingiz va joylashtirishingiz va o'zingiz xohlagan tarzda o'zgartirishlar kiritishingiz mumkin. Kod:

import vaqti

pygame import mikseridan import satrini import namuna vaqtlari datetime import qilinadigan vaqtdan (1): tmm = praytimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3) FAJR = tmm ['fajr'] DHUHR = tmm ['dhuhr'] ASR = tmm ['asr'] MAGHRIB = tmm ['mag'rib'] ISHA = tmm ['isha'] tempT = time.strftime (str ('%H')) CurrTime = tempT tempT = time.strftime (str ('%M'))) wav ') mixer.music.play () while mixer.music.get_busy () == To'g'ri: CurrTime bo'lsa davom et == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == To'g'ri: CurrTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == To'g'ri: CurrTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Ish stoli/Adhan-Makkah.wav ') mixer.music.play () mixer.music.get_busy () == To'g'ri: agar CurrTime == davom etsa ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Azhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == To'g'ri: davom eting

Agar siz kodni ko'rib chiqsangiz va uni biz ilgari ishlab chiqargan narsalar bilan taqqoslasak, biz hech qanday yangilik qilmaganimizni ko'ramiz, avvaliga biz kerakli kutubxonalarni o'z ichiga olganmiz, so'ngra cheksiz pastadir ochganmiz. namuna vaqtini doimiy ravishda o'z joylashuvimiz va vaqt mintaqamiz bilan hisoblab chiqamiz va butun natijani tmm o'zgaruvchan holda saqlaymiz. keyin, biz har bir namoz vaqtini tmm dan mustaqil o'zgaruvchiga saqlaymiz. bu vaqtni solishtirishga imkon beradi. Keyin, biz tizimga vaqt ajratamiz va uni mustaqil o'zgaruvchiga saqlaymiz. Nihoyat, biz tizim vaqtini namoz vaqtlari bilan taqqoslashni davom ettiramiz, agar tizim vaqti har qanday namoz vaqtiga to'g'ri kelsa, u azon ovozini eshitadi.

13 -qadam: 4 -bob: Kuzatish yuzlarini amalga oshirish

4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish
4 -bob: Kuzatish yuzlarini amalga oshirish

Loyihani yanada yaxshiroq qilish uchun men LCD displeyga soat yuzlarini qo'shishni xohlardim, shuning uchun u foydalanuvchilarga yaxshi ko'rinadi (hech bo'lmaganda buyruq satridan yaxshiroq), shuning uchun men bir nechta yuzlarni loyihalash uchun dizayner yolladim. soat hech qanday ma'lumotsiz bo'sh bo'lishi kerak, chunki ma'lumotlar HTML orqali qo'shilishi kerak, bu esa soat dizaynini fonga aylantiradi va namoz vaqtlari kabi boshqa ma'lumotlarni fonning yuqori qismiga HTML elementlari sifatida qo'shish mumkin.

Afsuski, bu ko'rsatma yozilgunga qadar HTML -dagi bilimim va tajribam juda cheklangan, shuning uchun men ko'p tafsilotlarni muhokama qilmayman, chunki men noto'g'ri yo'l tutishimni bilaman va bilmayman. odamlarni chalkashtirib yubormoqchi. lekin agar sizda JS va HTML -da ozgina tajribangiz bo'lsa, shu vaqtdan boshlab qanday davom etishni bilishingiz kerak. Men hozirgacha bitta yuz (ko'k) qildim. reja bo'yicha 14 ta soatlar ishlab chiqariladi! Haftaning har kuni uchun 7 ta yuz, yana 7 ta boshqa mavzu. chunki birinchi mavzu Azkar rollingda bo'lishi kerak, boshqa mavzuda Azkar o'rniga Islomiy-g.webp

14 -qadam: 5 -bob: Foydalanuvchi interfeysini amalga oshirish

5 -bob: Foydalanuvchi interfeysini amalga oshirish
5 -bob: Foydalanuvchi interfeysini amalga oshirish

Sayohatimizning oxirgi bobida, agar biz loyihani masjidda yoki boshqa jamoat joylarida amalga oshirmoqchi bo'lsak, loyihani foydalanuvchilar uchun ham qulay qilish uchun biz ixtiyoriy o'zgartirishlar kiritamiz. Yuqorida aytganimizdek, har bir shaharda namozni o'qish vaqti bor va bu loyihaga odamlarning keng doirasi kirishi uchun biz foydalanuvchi interfeysini yaratamiz, shunda biz loyihani ishga tushirgandan so'ng kerakli shahar va mavzuni tanlashimiz mumkin.

Buning uchun biz "TKinter" deb nomlangan python GUI kutubxonasidan foydalanamiz.

Bu menga Saudiya Arabistonining beshta shahri, shu jumladan Makka orasidan tanlash imkoniyatini berish uchun amalga oshirgan kodim:

tkinterni tk sifatida import qiling

tkinter importidan * tkinter importidan ttk import kodeklari importi os sinf karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. tugma1 = Tugma (o'z -o'zidan, matn = "Jidda", balandlik = 5, kenglik = 80, buyruq = o'zini.open_jeddah1) self.button2 = Tugma (o'zini, matn = "Makka", balandlik = 5, kenglik = 80, buyruq =) self.open_makkah1) self.button3 = Tugma (o'zini, matn = "Riyod", balandlik = 5, kenglik = 80, buyruq = self.open_riyadh1) self.button4 = Tugma (o'zini, matn = "Madina", balandlik = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", balandlik = 5, width = 80, command = self.open_qasaim1) self.button1.grid (qator = 0, ustun = 1; qator = 2, ustun = 1, ustun oralig'i = 2, yopishqoq = W+E+N+S) o'z -o'zidan tugma4.grid (qator = 3, ustun = 1, ustun oralig'i = 2, yopishqoq = W+E+N+S) self.button5.grid (qator = 4, ustun = 1, ustun oralig'i = 2, yopishqoq = W+E+N+S) def open_jeddah1 (o'zini): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen-no-sandbox" os.sistem (buyurtma) def open_makkah1 (o'zini): 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 (buyurtma) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen-no-sandbox -test-type" os.system (buyurtma) def open_qasaim1 (o'zini): 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 katta ko'rinishi mumkin, lekin uni tahrir qilish juda oson. biz asosan yangi oyna ochdik, beshta ism tugmachasini qo'ydik va har bir tugmani bosish uchun chaqiriladigan beshta funktsiyani aniqladik. tugmani bosganingizda, dastur shaharlar papkasida tegishli HTML faylini ochadi, har bir shaharda namoz vaqtidan () vaqt ajratilganda shahar koordinatalari bo'ladi. Siz tugmani bosganingizda, python kodi Linux kodini qo'zg'atadi, u xrom brauzeri yordamida HTML -faylni ochadi va sizda to'liq ekran varianti bilan soatning yuzi ko'rsatishga tayyor bo'ladi.

15 -qadam: (Ixtiyoriy): Karnay kalitini qo'shish

(Ixtiyoriy): Karnay kalitini qo'shish
(Ixtiyoriy): Karnay kalitini qo'shish
(Ixtiyoriy): Karnay kalitini qo'shish
(Ixtiyoriy): Karnay kalitini qo'shish

Ko'rib turganimizdek, namoz vaqti azon ovozi eshitilganda va ovoz odatdagi ovoz chiqishidan chiqadi (HDMI yoki AV chiqishi) va biz uni HDMI chiqishiga qo'yganimiz uchun ovoz LCD displeydan keladi. lekin, agar bizning LCD ovozimiz etarli bo'lmasa -chi? Masalan, agar biz buni haqiqiy masjid ichida amalga oshirmoqchi bo'lsak? keng tashqi dinamiklar bilan? keyin biz buni amalga oshirish uchun yana bir juda oson qadamni qo'shishimiz mumkin. allaqachon qurilgan karnay ovoz tizimi uchun biz uni faqat yoqish va o'chirish, mavjud mikrofonni olib, LCD karnaylari yoniga qo'yishimiz kerak.

Buni qilish oson. biz baland ovozli karnayga ulangan oldindan mavjud bo'lgan masjid mikrofonidan foydalanamiz, bizga faqat ovoz tizimini yoqish va o'chirish quvvatini boshqarish uchun raspberryPi kerak bo'ladi. Buning uchun bizga SSR: SOLID STATE RELAY -dan foydalanish kerak bo'ladi. bu turdagi rölelar, xuddi o'rtacha ko'k o'rni kabi, kalit vazifasini bajarishi mumkin, farq shundaki, SSRlar u orqali katta miqdordagi o'zgaruvchan tok kuchiga bardosh bera oladilar, bu esa ko'k ranglarda (odatda maksimal 10A) qo'llanilmaydi va SSRlarning ehtiyojlari. 3 o'rniga faqat ikkita sim: DC+ va shahar- va bu hammasi! SSRning boshqa uchida biz karnay tizimining quvvat kabelini ulashimiz mumkin, shuning uchun biz SSRga kuchlanish beradigan bo'lsak, u karnay tizimining AC zanjirini yopadi yoki ochiq kontaktlarning zanglashiga olib keladigan kuchlanishni o'chirib qo'yamiz. karnaylarni o'chirish.

bitta narsa bor, RaspberryPi pinlari SSRni nazorat qilishimiz kerak bo'lgan 5v emas, balki 3.3v chiqadi. shuning uchun bizga RPi pinidan signal olish uchun tranzistor kerak, va 5V RPi pinidan. Buning uchun bizga kerak:

1-qattiq holli estafeta (25A dan yuqori har qanday narsa yaxshi)

2-2n2222 npn tranzistor

3-220 ohm qarshilik

ulanish uchun muzlatish sxemasiga amal qiling.

endi kodda biz bu ishni bajaradigan narsalarni qo'shamiz. Birinchidan, vaqt tsiklidan oldin, biz GPIO pinlarini ishga tushirish uchun ba'zi qatorlarni qo'shamiz:

Import bo'limiga quyidagilarni qo'shing:

RPi. GPIO -ni GPIO sifatida import qilish

Vaqt tsiklidan oldin quyidagilarni qo'shing:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) o'rni = 40 GPIO.setup (ledPin, GPIO. OUT)

Endi, vaqt oralig'ida, har bir Azan buyrug'i uchun biz o'rni yoqishimiz, 10 soniya kutib turishimiz, Azan chalishni tugatib, keyin o'rni o'chirishimiz kerak. biz faqat ikkita qatorni qo'shishimiz kerak, birinchisi:

GPIO.output (ledPin, GPIO. HIGH)

uyqu (10)

bu har if ifodasidan keyin qo'shilishi kerak (identifikatsiya muhim!), boshqa satr:

GPIO.output (ledPin, GPIO. LOW)

Bu "davom ettirish" qatoridan keyin qo'shilishi kerak. har bir Azan vaqti uchun shunday bo'lishi kerak:

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 () == To'g'ri: GPIO.output -ni davom ettiring (ledPin, GPIO. LOW)

Tavsiya: