Talaan ng mga Nilalaman:

Panonood at Alarm ng RaspberryPi Islamic: 15 Hakbang (na may Mga Larawan)
Panonood at Alarm ng RaspberryPi Islamic: 15 Hakbang (na may Mga Larawan)

Video: Panonood at Alarm ng RaspberryPi Islamic: 15 Hakbang (na may Mga Larawan)

Video: Panonood at Alarm ng RaspberryPi Islamic: 15 Hakbang (na may Mga Larawan)
Video: 3 крутых вещи, которые вы все еще можете сделать со своим старым iPad. 2024, Hunyo
Anonim
Panonood at Pag-alarm ng RaspberryPi Islamic
Panonood at Pag-alarm ng RaspberryPi Islamic
Panonood at Pag-alarm ng RaspberryPi Islamic
Panonood at Pag-alarm ng RaspberryPi Islamic

Ang mga Muslim sa buong mundo ay mayroong limang mga panalangin araw-araw, at bawat pagdarasal ay dapat na nasa isang tiyak na oras ng araw. dahil sa elliptic na paraan ng pag-ikot ng ating planeta sa paligid ng araw, na kung saan ay naiiba ang pagsikat ng araw at pagbagsak ng mga oras sa buong taon, na ginagawa ding hindi pantay-pantay ang oras ng pagdarasal, kaya't kailangan namin ng relo ng Islam upang ipaalala sa amin ang mga Muslim sa ating mga oras ng pagdarasal bawat isa araw

Ang bawat Muslim ay may isang paraan upang ma-access ang pang-araw-araw na oras ng pagdarasal ng panahon sa pamamagitan ng mga Internet Islamic website, mga lokal na kalendaryong Islam o kahit sa pamamagitan ng TV, at karamihan sa atin ay may mga Islamic device na panonood na may mga tampok na pagbibigay sa amin ng mga oras ng panalangin, pati na rin ang mga alarma sa panalangin. Ngunit paano kung gumawa kami ng aming sariling Prayers Watch at Alarm na aparato!

Bago simulang magtrabaho sa proyekto, may ilang mga pagsasaalang-alang na maaari kang maging kapaki-pakinabang para sa iyo habang binabasa ang Ituturo. Nakatira ako Sa Saudi Arabia kaya't ang ilan sa aking mga hakbang at pagpapahalaga ay magkakaiba sa iyo, at malinaw kong ituturo ang mga iyon sa panahon ng trabaho. Mayroong mga hakbang at larawan na maaaring may kasamang mga salitang Arabe mula nang gawin ko ang interfacing sa Arabe, ngunit ituturo ko rin kung paano gawin ito sa Ingles kaya't huwag hayaang mag-alala sa iyo ang mga salitang Arabe sa mga larawan, maaaring maging ang proyektong ito tapos sa anumang Wika (na kung saan ay kahanga-hangang!: D) Gayundin mangyaring patawarin ang aking mga typo dahil ang Ingles ay hindi ang aking unang wika.

Sa aming proyekto! Ang proyektong ito ay nahahati sa X Pangunahing mga hakbang, na sa pagtatapos ng ika-X na hakbang ay magkakaroon kami ng aming proyekto na maganda at handa na! Ang mga hakbang ay ang mga sumusunod:

1-Pag-configure at paghahanda ng RaspberryPi

2-Pag-install ng RTC Module

3-Paggawa ng programa ng Azan Alarm

4-Pagpapatupad ng mga mukha ng relo

5-Paggawa ng User Interface at.

Tulad ng bawat proyekto, kailangan naming ihanda muna ang mga bahagi na kailangan namin. ang mga bahagi na kailangan namin para sa proyektong ito ay:

1-RaspberryPi Computer kit Amazon US || Amazon KSA

Maaari mong gamitin ang anumang bersyon ng Rpi, siguraduhin lamang na mayroon itong Wifi. Gumamit ako ng Rpi3B +

2-RTC Real-time na module ng orasan Amazon US || Amazon KSA

Maaari mong gamitin ang anumang modelo ng module ng RTC, siguraduhin lamang na mayroon itong I2C

3-LCD Monitor

Anumang LCD ay gagawin

4-Mouse at keyboard

at iyon ang ….. IT !! Iyon lang ang kailangan mo upang makagawa ng iyong sariling Azan na orasan at alarma

Hakbang 1: Kabanata 1: Pag-set up at Pag-configure ng RaspberryPI

Kabanata 1: Pag-set up at Pag-configure ng RaspberryPI
Kabanata 1: Pag-set up at Pag-configure ng RaspberryPI

Unang bagay Una! Kailangan naming ihanda ang Raspberry pi upang gumana ito.

Ang Raspberry pi ay walang iba kundi ang isang computer, mayroon itong RAM at ROM, mayroon itong CPU, GPU, I / O ……. Isang computer! tulad ng isa na naglalaro kami at nagba-browse sa web, ang pangunahing bagay lamang na napakaliit! na gumagawa ng raspberry isang napakahusay na pagpipilian para sa paggawa at pagpapatupad ng mga proyekto. dahil ang raspberry pi ay maliit, mayroon itong limitadong mga detalye na hindi nito mapapatakbo ang isang malaking hinihingi na OS tulad ng windows o macOS, sa halip, gagamitin namin ang Linux bilang isang operating system upang magamit ang aparato. may libu-libo kung hindi sampu-sampung libo ng mga distro ng Linux na maaari naming magamit, ngunit ang isang perpektong distro ay perpektong na-optimize para sa raspberrypi na gagamitin namin, na tinatawag na Raspbian.

Hakbang 2: 1-1: I-download ang Neccessary Files

1-1: I-download ang Neccessary Files
1-1: I-download ang Neccessary Files
1-1: I-download ang Neccessary Files
1-1: I-download ang Neccessary Files
1-1: I-download ang Neccessary Files
1-1: I-download ang Neccessary Files

-Punta sa opisyal na pahina ng Pag-download ng Rasbian sa https://www.raspberrypi.org/software/operating-sy… at i-download ang Raspberry Pi OS na may Desktop file

-Nga nagda-download ito, pumunta sa https://win32diskimager.org/ at i-download at i-install ang win32DiskImager, maaari mong gamitin ang anumang software burn ng imahe na gusto mo

sa sandaling tapos na ang pag-download, magkakaroon ka ng isang.img file na naglalaman ng RaspberryPi OS. susunod, isaksak ang iyong SD memory card sa computer (karaniwang may isang USB card reader) at ilunsad ang win32diskimager software. ang mga hakbang para sa pagsunog ng imahe sa memorya ng SD ay napaka-simple, kailangan mo lamang na 1- Piliin ang iyong memorya sulat 2-piliin ang iyong mga file ng OS na na-download mo at 3-Click na isulat! Siguraduhin na napili mo ang tamang titik ng aparato mula sa listahan at ang iyong memorya ay walang laman, tulad ng sa pamamagitan ng pagpindot sa pagsusulat, mai-aasulong ka sa isang babalang magsasabi sa iyo na ang anumang bagay sa aparato ay mabubura! Pindutin ang oo upang kumpirmahin ang pagsusulat at hintaying matapos ito. maaari itong tumagal ng hanggang sa 20minutes.

Kapag tapos na ito, magkakaroon ka ng buong Rapbian OS sa memorya, maaari kang magpatuloy at ilagay ito sa Rapberry Pi, ikonekta ang Raspberry Pi sa monitor sa pamamagitan ng HDMI, ikonekta ang mouse at keyboard sa pamamagitan ng USB at panghuli, ikonekta ang kapangyarihan

Hakbang 3: 1-2: Pag-configure ng Raspbian System

Matapos ikonekta ang mga kable at ang lakas, makikita mo na nakabukas ang OS, awtomatiko itong magre-reboot at pagkatapos ay ipapakita nito ang Raspbian User Interface (na kahawig ng mga bintana). ang unang bagay na makikita mo ay isang maligayang pagdating window, na magdadala sa iyo sa mga hakbang ng pag-configure ng iyong RaspberryPi sa kauna-unahang pagkakataon. ang mga bintana at hakbang ay ang mga sumusunod:

1-Pindutin ang susunod sa unang window ng "Maligayang Pagdating"

2-Susunod na window ay upang mai-configure ang iyong lokasyon. piliin ang iyong Bansa, wika at timezone. pagkatapos nito, lubos na inirerekomenda na suriin ang "Gumamit ng wikang Ingles" dahil ito ang magiging wika ng interface ng system ng Operating. DAPAT MONG Suriin ANG "US ENGLISH KEYBOARD LAYOUT BOX" KINAKAILANGAN KONG ENGLISH KEYBOARD UPANG MAGtrabaho!

3-Susunod, hihilingin sa iyo na magpasok ng isang password para sa iyong raspberry, mahalaga ito para sa seguridad ngunit iiwan namin itong hindi nababago para sa proyektong ito. tandaan na ang default Username at password ay:

username: pi

password: raspberry

Ang 4-Susunod na window ay ikonekta ang raspberryPi sa iyong WiFi network. piliin ang iyong pangalan ng wifi at ipasok ang iyong wifi password

5-susunod, hihilingin sa iyo na i-update ang mga library ng raspberry pi at mga file ng system. ang hakbang na ito ay magtatagal ng isang malaking halaga ng oras (marahil sa oras) ngunit ito ay isang napakahalagang hakbang sa bawat oras na ang isang bagong raspberry pi ay naka-setup.

6-sa sandaling tapos na ang pag-update, hihilingin sa iyo na i-restart ang system. gawin mo yan ngayon

Mahusay na gawain! Ngayon ay mayroon kaming na-update na system, kailangan pa naming gumawa ng maraming bagay upang mai-configure ang system upang gumana, ngunit ngayon, magsisimulang gamitin ang LinuxCommand Line.

Hakbang 4: 1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi

1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi
1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi
1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi
1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi
1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi
1-3: Gamit ang Command Line upang I-set up ang Mga Setting ng Rpi

Kapag natapos mo ang pag-reboot mula sa pag-update ng system, ipapakita ng system ang user desktop sa sandaling tapos na ito sa pag-boot. ngayon kung titingnan mo ang kaliwang tuktok ng screen, mahahanap mo ang ilang mga pindutan, Isang pindutan na may raspberryPi Logo na ang pindutan ng menu ng Rpi, isang hugis ng mundo na ang browser ng internet, isang pindutan ng mga folder na…..folders at sa wakas, isang pindutan na may isang itim na window ng window, na kung saan ay ang pinakamahalagang pindutan sa anumang linux system, ang linya ng Command. sige at pindutin ang pindutan na iyon, makakakita ka ng isang itim na bintana na bubukas.

Ang linya ng utos ay kung paano nakikipag-ugnay ang bawat isa at ginagamit ang linux system, tulad ng mga bintana ay may sariling linya ng utos lamang sa mga balo na hindi natin kailangang gamitin ito nang madalas. sa linux, ito ang pangunahing bagay na dapat matutunan at master ng bawat gumagamit ng linux. ang linya ng utos ay maaaring magamit ng…. COMMANDS! ang nakikita mo sa itim na bintana ay ang command-prompt na naghihintay para sa utos na maisulat ng gumagamit at naisakatuparan. sa gabay na ito bibigyan namin ang lahat ng mga utos na kailangan mo upang maisagawa ang proyektong ito, kaya huwag magalala.

ang kauna-unahang utos ng Linux na gagamitin namin ay isa pang utos ng pagsasaayos, tandaan na ang lahat ng mga utos mula ngayon ay ilalagay sa loob ng isang kahon ng code, upang maiba mo ito mula sa mga regular na hakbang. Dalhin ang iyong keyboard at i-type ang sumusunod at pindutin ang enter:

sudo raspi-config

Kung gagawin mo iyon nang tama, makikita mo na ang screen na naka-screen ay naging asul, na may kulay abong maliit na kahon sa gitna (tingnan ang larawan). gagamitin namin iyon upang gawin ang aming pangwakas na pagsasaayos bago namin simulan ang pag-coding.

ngayon, kakailanganin mong gamitin ang iyong mga keyboard arrow key upang mag-navigate sa menu na ito.

1-Pumunta sa mga pagpipilian sa Interface >> I2C >> YES >> hit enter. ito ay paganahin ang I2c komunikasyon protocol upang maaari naming gamitin ang RTC

2-Pumunta sa Mga advanced na pagpipilian >> Palawakin ang filesystem.

at iyon lang ang pagsasaayos na kailangan mo mula sa window na ito. sa pangunahing pahina, bumaba at pindutin ang enter sa "tapusin" at "YES" upang i-reboot ang system.

Kapag natapos ang pag-reboot ng system, tapos na kaming lahat sa pag-configure! handa na ang aparato para sa malalaking hakbang! Ang susunod na hakbang ay ang pag-install ng module ng RTC at gamitin ito sa system.

Hakbang 5: Kabanata 2: Pag-mount, Pag-configure at Paggamit ng RTC Module

Kabanata 2: Pag-mount, Pag-configure at Paggamit ng RTC Modyul
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng RTC Modyul
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng Modyul ng RTC
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng Modyul ng RTC
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng Modyul ng RTC
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng Modyul ng RTC
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng RTC Modyul
Kabanata 2: Pag-mount, Pag-configure at Paggamit ng RTC Modyul

Ang module ng RTC (o Real-Time Clock) ay isang maliit na aparato na mayroong kaunting baterya dito, ginagawa nito ang ipinahihiwatig ng pangalan, Clocking! kaya't kapag idiskonekta mo ito upang mapagana ang orasan ay patuloy na gumagana at hindi titigil. Bakit kailangan natin ang mga ito? mabuti, ang raspberry pi ay talagang walang paraan ng pag-iimbak ng data ng orasan sa sandaling ito ay naka-off, umaasa ito sa pagkonekta sa internet sa pag-boot upang ma-update ang petsa at oras nito, ngunit ang problema ay hindi tayo palaging may access sa internet, at ito kung bakit kailangan natin ang module ng RTC. ang RTC ay kikilos bilang isang orasan para sa raspberry pi kaya kapag na-boot ang Rpi ay kukuha ng Petsa at Oras mula sa RTC, panatilihin itong na-update ang oras ng RaspberryPi sa lahat ng oras.

maraming mga modelo at hinahanap para sa RTC, may mga DS1307 at DS3231. maaari mong gamitin ang anumang module ng RTC na mahahanap mo hangga't mayroon itong komunikasyon sa I2C protocol (maaari mong ipahiwatig na ito ay maaari mong makita ang mga pin ng SDA at SCL sa mga module module.

tulad ng anumang bagay sa patnubay na ito, gumamit ako ng iba pang mga gabay upang makamit ang aking layunin sa proyekto, tuturo sa iyo ang itinuturo na ito at sasabihin sa iyo nang eksakto kung ano ang gagawin upang gawin ang proyektong ito, ngunit kung kailangan mong baguhin o kailangan mo ng mas malalim sa alinman sa mga hakbang, iuugnay ko ang mas mabungang gabay sa pagtatapos ng bawat hakbang.

Sa sandaling handa na ang iyong module ng RTC (maghinang ang mga header pin at ilagay ang baterya), maaari mo itong ikonekta sa mga RapberryPi pin tulad ng sumusunod:

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

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

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

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

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

o depende sa kung anong module na RTC ang nakuha mo, maaari mo itong mai-mount nang direkta sa RaspberryPi (Tiyaking tama ang mga pin !!! dahil maaari mong mapinsala ang Rpi / RTC kung hindi)

Kapag nakakonekta mo ang RTC, i-configure natin ang Raspberry.

Hakbang 6: 2-1: Pag-setup ng Modyul

2-1: Pag-setup ng Modyul
2-1: Pag-setup ng Modyul
2-1: Pag-setup ng Modyul
2-1: Pag-setup ng Modyul

Bago magsimula, pumunta sa linya ng utos at i-type:

petsa

Ibabalik nito ang kasalukuyang petsa at oras sa Raspberry, tandaan ang napaka kapaki-pakinabang na utos na iyon, at tandaan ang kasalukuyang petsa at oras upang masuri namin kung gumagana ang module o hindi.

ngayon, simulan natin ang pag-set up, i-type ang sumusunod upang i-update ang mga aklatan ng Rpi, isang linya nang paisa-isa:

sudo apt-get update

sudo apt-get -y pag-upgrade

kapag tapos na iyon, kailangan naming baguhin ang mga file ng system upang paganahin ang i2c module at magdagdag ng RTC, upang mabago ang isang file system na gagamitin namin ang isang software na tinatawag na Nano. Ang nano ay isang light built-in na software na karaniwang isang text editor, tulad ng sa mga balo. kaya ang anumang utos na nagsisimula sa nano na sinusundan ng pangalan ng file, bubuksan ang file na iyon sa nano text editor. napansin mo na gumamit din kami ng tinatawag na Sudo, sa madaling salita, ang sudo ay kumikilos tulad ng isang kasiguruhan para sa linux system na nagsasabi sa system na ang gumagamit na gumawa ng utos na iyon ay ang may-ari ng Device, hindi ibang tao, at nagbibigay ng mga pribilehiyo tulad ng pag-edit / pagtanggal sa gumagamit. halimbawa, kung binuksan namin ang isang nano file nang walang sudo, maaari naming tingnan ang file na iyon, ngunit hindi namin ito mai-e-edit o matanggal.

Ngayon, kailangan nating baguhin ang file ng mga module, magagawa natin ito sa pamamagitan ng pagta-type:

sudo nano / etc / modules

sa sandaling magawa mo iyon, mahahanap mo ang mga nilalaman ng file na iyon (tingnan ang larawan). gamitin ang mga arrow key upang ilagay ang cursor sa dulo ng teksto at idagdag ang sumusunod:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

pindutin ang CTRL + S upang makatipid, at CTRL + X upang lumabas

Hakbang 7: 2-2: I2C Interface

2-2: I2C Interface
2-2: I2C Interface

Ngayon nakakonekta namin ang RTC at pinagana ang i2c, ikonekta nating magkasama ang lahat.

i-type ang sumusunod sa command prompt:

i2cdetect -y 1

bibigyan ka ng isang hanay ng mga blangko, ngunit mapapansin mo na mayroong isang numero sa isang lugar, ang numerong iyon ang iyong RTC module address. sa aking kaso ito ay 68. pansinin ang bilang na iyon. kung hindi mo nakikita ang dalawang digit na numero, nangangahulugan iyon na malamang na konektado ka sa RTC na mali.

ngayon, kailangan naming baguhin ang rc.local file upang mai-on namin ang module ng RTC sa boot at hayaan itong i-save ang petsa at oras sa system. una, buksan ang rc.local file:

sudo nano /etc/rc.local

Bago ang linya ng exit0, idagdag ang sumusunod:

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

hwclock -s

kung saan 0x68 ang iyong aparato i2c address. sa sandaling tapos ka na pindutin ang CTRL + S CTRL + X, pagkatapos ay i-reboot ang iyong system sa pamamagitan ng:

sudo reboot

Hakbang 8: 2-3: Pagsubok sa RTC

2-3: Pagsubok sa RTC
2-3: Pagsubok sa RTC

Kapag na-reboot ang system, maaari nating suriin ang panahon na gumagana ang RTC o hindi. unang takbo:

sudo hwclock -r

ibabalik sa iyo ang petsa at oras sa module ng RTC. kung bibigyan ka ng iba pa, tiyaking nagawa mo nang tama ang mga hakbang.

Ngayon, upang mabago ang oras at petsa sa RTC, kailangan naming baguhin muna ang Petsa at Oras sa system, KAYA ay pinagpalit ang mga pagbabago sa RTC. upang gawin ito, patakbuhin:

sudo date -s "29 AUG 1997 13:00:00"

at ofcourse, baguhin ang petsa at oras ayon sa iyong lokal na oras at petsa, bago ka pindutin ang enter. sa sandaling makuha mo ang oras sa kanan ng Rpi, patakbuhin ang mga sumusunod upang mai-save ang petsa at oras sa RTC:

sudo hwclock -w

aaaaand yun lang! maaari mong suriin kung gumagana ito sa pamamagitan ng oras-oras at tingnan kung ang petsa sa RTC ay tama o hindi, pagkatapos ay idiskonekta ang rpi mula sa internet at pagkatapos ay patayin ito nang ilang oras at pagkatapos ay i-on ito muli at tingnan kung mayroon itong tama oras at Petsa. tapos ka na!

Ang buong Gabay sa kung paano mag-set up ng module ng RTC ay matatagpuan dito

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

Hakbang 9: Kabanata 3: Paggawa ng Azan Alarm Program

Kabanata 3: Paggawa ng Azan Alarm Program
Kabanata 3: Paggawa ng Azan Alarm Program

Ang paggawa ng relo ay isang bagay, sigurado, maaari nating tingnan ang orasan at mga oras ng pagdarasal at makita kung dumating ang oras, ngunit hindi ba magiging mas mabuti ang PARAAN kung maaari tayong magdagdag ng isang tunog alarma upang ipaalam sa amin ang tungkol sa mga oras ng pagdarasal? Kahit na mas mahusay, ginagawa namin ang alarma na iyon bilang tunog ng AZAN! tingnan natin kung paano natin ito magagawa.

para sa aming programa, gagamitin namin ang python bilang aming ginustong wika sa pagprograma bilang perpekto ang python sa RaspberryPi. upang makagawa ng isang code file sa sawa, ginagawa namin ang parehong sa pagbubukas ng isang file na teksto, ngunit ngayon ay nai-save namin ito bilang.py. upang patakbuhin ang programa, kailangan namin ng kapaligiran na sawa na naka-install ng raspbery, sa kabutihang palad, ang Raspbian ay mayroong python at python3 pre install! kaya ang dapat nating gawin ay ang pag-program. sa patnubay na ito, hindi namin pag-uusapan ang tungkol sa wika at magturo kung paano ito gumagana at mga pag-andar, ngunit bibigyan kita ng mga kinakailangang code upang magawa mo ang proyekto.

upang magsimula, kailangan namin ng isang file ng tunog ng aming ginustong azan na tunog (sa. WAV) kailangan namin ng dalawang mga file, isa para sa al-fajr azan at isa pa para sa regular na azan. sa sandaling makuha mo na ilagay ito sa isang stick drive at kopyahin ito sa desktop ng raspberrypi.

Ngayon mayroon kaming mga file, naghahanap ako ng isang paraan upang maglaro ng mga audio audios sa raspberryPi at sa aking sorpresa, walang gaanong mga paraan na magagawa ko ito, ngunit nahanap ko ang sagot na ito sa stackoverflow na nagbigay sa akin ng kailangan ko

stackoverflow.com/questions/20021457/playi…

Sinubukan ko ang pamamaraang iyon at gumana ito! Hayaan makita kung paano namin maipapatupad ang pamamaraang ito sa aming proyekto …

Hakbang 10: 3-1: Magpatugtog tayo ng Tunog

3-1: Magpatugtog tayo ng Tunog!
3-1: Magpatugtog tayo ng Tunog!

una, mag-navigate sa desktop sa pamamagitan ng:

cd Desktop

pagkatapos ay gumawa ng isang bagong file ng python code sa pamamagitan ng:

sudo nano AzanPlay.py

gagawa ito ng isang bagong file na tinatawag na AzanPlay na may extension sa isang python file.py, magkakaroon kami ng isang walang laman na itim na screen upang payagan kaming isulat ang aming code. isulat lamang ang mga linyang ito (mag-ingat na huwag baguhin ang anumang indentation o puwang, dahil ito ay SOBRANG mahalaga sa sawa):

mula sa pygame import mixer

mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy

Kung saan / Desktop / kung saan mo inilalagay ang iyong mga file ng tunog, at ang 'Adhan-Makkah.wav' ay ang aking Audio file, na kung saan ay ang Azan sound recording sa makkah.

ngayon upang subukan ang aming code, pinapatakbo namin ito sa python sa pamamagitan ng pagta-type:

sawa AzanPlay.py

at magkakaroon ka ng tunog na naglalaro ng pagkalanta mula sa iyong HDMI LCD o sa iyong AUX port na nasa Raspberrypi. kung hindi mo ito naririnig mula sa mga LCD speaker, isaksak ang isang headphone sa AUX at suriin.

Hakbang 11: 3-2: Kumuha ng Mga Oras ng Panalangin

3-2: Kunin ang Mga Oras ng Panalangin
3-2: Kunin ang Mga Oras ng Panalangin

Tulad ng nalalaman natin, ang mga oras ng pagdarasal ay naiiba mula sa isang lugar sa lupa patungo sa iba pa, at kahit para sa isang tukoy na lokasyon, magkakaiba ito sa paglipas ng mga taon, nangangahulugang kailangan nating maghanap ng isang paraan upang mapanatili ang aming mga oras ng pagdarasal sa system na na-update palagi, at para doon kailangan namin ng tiyak at napaka-kumplikadong mga pag-andar at kalkulasyon upang maayos ito. Sa kasamaang palad, ang aming kapatid na si Hamid Zarrabi-Zadeh ay gumawa ng lahat ng mga pag-andar na kailangan namin sa isang pag-andar na maaari naming madaling gamitin upang makakuha ng oras depende sa aming lokasyon at kasalukuyang oras, NAKAKATULONG! mahahanap mo ang silid-aklatan at pinagmulan ng mga file sa

praytimes.org/

Kaya, gagamitin namin ang mga kamangha-manghang file na ito upang makuha ang mga oras ng aming panalangin at ipatupad ito sa system. una, i-download ang mga code mula sa website at ilagay ito sa loob ng isang / adhan / folder, (Kailangan namin ang parehong mga JS at Python code).

Ngayon, hinayaan ang magtungo sa folder na iyon at subukan ang library, at kung ano ang magagawa nito:

cd adhan

doon, kailangan naming gumawa ng isang bagong file ng pagsubok sa sawa upang masubukan namin ang pagpapaandar:

sudo nano testAd.py

sa loob, isulat ang code na ito:

i-import ang mga oras ng pagdarasal

mula sa datime date ng pag-import tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Bago i-save ang file, kailangan mong baguhin ang LATITUDE sa iyong lokasyon ng Latitude, pareho sa LONGTITUDE, at palitan ang GMT sa iyong time zone. sa aking kaso, ito ay magiging:

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

i-print (tmm)

Panghuli, CTRL-S at CTRL-X at pagkatapos ay patakbuhin ang code:

pagsubok sa sawaAd.py

sa wakas, ibabalik sa iyo ang iyong mga oras ng pagdarasal para sa araw na ito, para sa iyong lokasyon.

{'isha': '18: 58 ',' asr ': '15: 22', 'paglubog ng araw': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' hatinggabi ': '00: 17', 'pagsikat ng araw': '06: 52 ',' fajr ': '05: 33'}

Malaki! ngayong nakuha na namin ang aming oras ng pagdarasal at alam na namin kung paano maglaro ng mga tunog, pagsamahin natin ang dalawang mga code na ito sa isang pangunahing code.

Hakbang 12: 3-3: Paggawa ng Final Azan Alarm Code

sa pagtatapos ng nakaraang dalawang mga code, natutunan namin kung paano makuha ang tumpak na mga oras ng pagdarasal ayon sa aming lokasyon at kung paano patugtugin ang tunog ng Azan. Ngayon, isasama namin ang dalawang mga code sa isang code na gagamitin namin bilang aming pangwakas na proyekto, at ang code na ito ay gagana sa background, tulad ng pagdating ng oras ng Azan, ipapatugtog nito ang tunog ng Azan.

Sinulat ko ang buong code, maaari mo itong kopyahin at i-paste ito, at gumawa ng iyong sariling mga pagbabago ayon sa nakikita mong akma. Ang code ay:

oras ng pag-import

mula sa pygame import mixer import string importtimetime mula sa datime date ng pag-import habang (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')) currTime = tempT tempT = time.strftime (str ('% M')) currTime = currTime + ':' + tempT kung currTime == FAJR: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-fajr. wav ') mixer.music.play () habang mixer.music.get_busy () == True: magpatuloy kung currTime == DHUHR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan- Makkah.wav ') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy kung currTime == ASR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy kung currTime == MAGHRIB: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy kung currTime == ISHA: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy

Kung titingnan mo ang code at ihambing ito sa ginawa namin dati, makikita mo na wala kaming nagawa na bago, sa una, isinama namin ang aming mga kinakailangang aklatan at pagkatapos ay binuksan namin ang isang walang katapusang loop. sa loop, patuloy naming kinakalkula ang oras ng mga panalangin sa aming lokasyon at time zone, at pag-iimbak ng buong resulta sa variable tmm. pagkatapos, iniimbak namin ang bawat oras ng pagdarasal mula sa tmm hanggang sa isang independiyenteng variable. magpapahintulot sa amin na ihambing ang mga oras. Susunod, kinukuha namin ang oras ng system at iniimbak ito sa isang independiyenteng variable. Panghuli, patuloy naming ihinahambing ang oras ng system sa mga oras ng pagdarasal, kung tumutugma ang oras ng system sa alinman sa mga oras ng pagdarasal, tutugtog nito ang tunog ng Azan.

Hakbang 13: Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin

Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin
Kabanata 4: Pagpapatupad ng Mga Mukha ng Panoorin

Upang gawing mas mahusay ang hitsura ng proyekto, may ideya akong magdagdag ng mga mukha ng relo sa LCD, kaya't mukhang maganda ang pagtingin sa gumagamit (mabuti, mas mahusay kaysa sa linya ng utos kahit papaano) kaya, kumuha ako ng isang taga-disenyo upang magdisenyo ng maraming mga mukha sa ang relo, dapat itong walang laman na walang data, dahil ang data ay dapat idagdag sa pamamagitan ng HTML, ginagawa ang mga disenyo ng relo bilang background, at ang iba pang data tulad ng mga oras ng panalangin ay maaaring idagdag bilang mga elemento ng HTML sa tuktok ng background.

Sa kasamaang palad, tulad ng oras ng pagsulat na magagawa ang tagubiling ito, ang aking kaalaman at karanasan sa HTML ay napakalimitado kaya't hindi ko na tatalakayin ang maraming mga detalye dahil alam ko para sa isang katotohanan na gagawin ko ang mga bagay sa maling paraan, at hindi ko gusto lituhin ang tao. ngunit kung mayroon kang kahit kaunting karanasan sa JS at HTML dapat mong malaman kung paano magpatuloy mula sa puntong ito. sa ngayon nakagawa ako ng solong mukha (ang asul). ang plano ay gumawa ng 14 na mukha ng panonood! 7 mga mukha para sa araw-araw ng linggo, at isa pang 7 bilang ibang tema. dahil ang unang tema ay dapat na kasama ni Azkar rolling, at ang iba pang tema ay dapat magkaroon ng mga Islamic GIFs sa halip na ang Azkar. anuman, isasama ko ang lahat ng mga disenyo sa itinuturo na ito upang mai-download mo ito.

Hakbang 14: Kabanata5: Pagpapatupad ng isang User Interface

Kabanata5: Pagpapatupad ng isang User Interface
Kabanata5: Pagpapatupad ng isang User Interface

Sa huling kabanata ng aming paglalakbay, gagawa kami ng ilang mga opsyonal na pagbabago upang gawing friendly ang proyekto, kung nais naming ipatupad ang proyekto sa isang mosque o anumang pampublikong lugar. tulad ng sinabi namin dati, ang bawat lungsod ay may sariling tiyempo para sa mga pagdarasal, at upang ma-access ang proyektong ito para sa isang mas malawak na katotohanan ng mga tao, gagawa kami ng isang interface ng gumagamit upang mapili namin ang aming nais na lungsod at tema sa sandaling mapatakbo namin ang proyekto.

Upang magawa ito, gagamit kami ng isang python GUI library na tinatawag na "TKinter".

Ito ang code na ipinatupad ko upang bigyan ako ng pagpipilian na pumili sa pagitan ng limang lungsod sa Saudi Arabia, kasama ang Makkah:

i-import ang tkinter bilang tk

mula sa tkinter import * mula sa tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") sa sarili. button1 = Button (sarili, teksto = "Jeddah", taas = 5, lapad = 80, utos = self.open_jeddah1) self.button2 = Button (sarili, teksto = "Makkah", taas = 5, lapad = 80, utos = self.open_makkah1) self.button3 = Button (sarili, teksto = "Riyadh", taas = 5, lapad = 80, utos = self.open_riyadh1) self.button4 = Button (sarili, teksto = "Madina", taas = 5, lapad = 80, utos = self.open_madina1) self.button5 = Button (sarili, teksto = "Qasim", taas = 5, lapad = 80, utos = self.open_qasaim1) self.button1.grid (row = 0, haligi = 1, haligi = 2, malagkit = W + E + N + S) sa sarili.button2.grid (row = 1, haligi = 1, haligi = 2, malagkit = W + E + N + S) sa sarili.button3.grid hilera = 2, haligi = 1, haligi = 2, malagkit = W + E + N + S) sarili.button4.grid (hilera = 3, haligi = 1, haligi = 2, malagkit = W + E + N + S) self.button5.grid (row = 4, haligi = 1, haligi = 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 () kung _name_ == '_main_': main ()

Ang code ay maaaring magmukhang malaki, ngunit ang pag-edit nito ay napakadali. karaniwang gumawa kami ng isang bagong window, maglagay ng limang mga pindutan ng pangalan at tinukoy ng limang mga funcion na tatawagan sa bawat pindutan ng pindutan. sa sandaling pinindot mo ang pindutan, bubuksan ng programa ang kaukulang HTML file sa folder na Mga Lungsod, kung saan ang bawat lungsod na HTML ay may mga coordinate ng lungsod kapag nakuha ang oras mula sa mga oras ng pagdarasal (). sa sandaling pinindot mo ang pindutan, ang python code ay magpapalabas ng isang linux code kung saan bubuksan nito ang HTML file gamit ang chromium browser, at magkakaroon ka ng handa na ipakita ang mukha ng panonood, na may pagpipilian sa buong screen.

Hakbang 15: (Opsyonal): Pagdaragdag ng switch ng Speaker

(Opsyonal): Pagdaragdag ng switch ng Speaker
(Opsyonal): Pagdaragdag ng switch ng Speaker
(Opsyonal): Pagdaragdag ng switch ng Speaker
(Opsyonal): Pagdaragdag ng switch ng Speaker

Tulad ng nakita natin, pagdating ng oras ng pagdarasal ng Azan sound play, at ang tunog ay lalabas sa default na output ng tunog (output ng HDMI o AV) at dahil inilalagay namin ito sa output ng HDMI, ang tunog ay magmumula sa LCD. ngunit, paano kung hindi sapat ang aming tunog sa LCD? halimbawa, paano kung nais nating ipatupad ito sa loob ng isang tunay na mosque? na may malawak na mga speaker sa labas? pagkatapos ay maaari kaming magdagdag ng isa pang SOBRANG madaling hakbang upang magawa iyon. para sa isang naka-build na sound system ng speaker, kailangan lamang naming i-ON at i-OFF, at kunin ang mayroon nang mikropono at ilagay ito sa tabi ng mga LCD speaker.

Madali ang paggawa nito. gagamitin namin ang paunang umiiral na mikropono ng mosque na konektado sa malakas na speaker, kakailanganin lamang namin ang raspberryPi upang makontrol ang lakas na lumilipat sa ON at OFF ang buong sound system. upang gawin ito, kakailanganin naming gumamit ng isang SSR: SOLID STATE RELAY. ang mga uri ng relay na ito ay maaaring kumilos bilang isang switch, katulad ng average na asul na relay, ang pagkakaiba ay ang SSRs ay makatiis ng isang malaking halaga ng AC Amperage sa pamamagitan nito, na hindi nalalapat sa mga asul (karaniwang max 10A), at kailangan ng SSR dalawang wires lamang sa halip na 3: DC + at DC- at iyon lang! sa kabilang dulo ng SSR maaari nating ikonekta ang power system ng speaker speaker, sa ganoong paraan, kapag binibigyan natin ng boltahe ang SSR, isasara nito ang AC circuit ng system ng speaker, o isara namin ang boltahe upang gumawa ng isang bukas na circuit, patayin ang mga nagsasalita.

mayroong isang panghuli, ang mga RaspberryPi pin ay naglalabas ng 3.3v, hindi 5v na kailangan namin upang makontrol ang SSR. kaya kailangan namin ng transistor upang kunin ang signal mula sa RPi pin, at 5V mula sa RPi 5v pin. upang gawin ito kailangan natin:

1-Solid State Relay (anumang mas mataas sa 25A ay mabuti)

2-2n2222 npn transistor

3-220ohm risistor

sundin ang fritzing circuit para sa koneksyon.

ngayon sa code, magdaragdag kami ng ilang mga bagay-bagay na gumagawa ng ito gumagana. una, bago ang loop habang, magdagdag kami ng ilang mga linya upang simulan ang mga GPIO pin:

Sa seksyong pag-import, idagdag ang:

i-import ang RPi. GPIO bilang GPIO

Bago ang loop habang, idagdag ang:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Mali) relay = 40 GPIO.setup (ledPin, GPIO. OUT)

Ngayon, sa habang loop, para sa bawat pag-play ng Azan command, kailangan naming i-on ang relay, maghintay ng 10 segundo, tapusin ang pag-play ng Azan at pagkatapos ay i-off ang relay. kailangan lang namin magdagdag ng dalawang linya, ang una ay:

GPIO.output (ledPin, GPIO. HIGH)

oras. tulog (10)

ang isang ito ay dapat idagdag pagkatapos ng bawat kung pahayag (MAHALAGA ANG IDENTATION!), ang iba pang linya ay:

GPIO.output (ledPin, GPIO. LOW)

Ang isang ito ay dapat idagdag pagkatapos ng linya na "magpatuloy". dapat ganito ang hitsura nito para sa bawat oras ng Azan:

kung currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) oras. Natutulog (10) mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-fajr.wav') mixer.music.play () habang mixer.music.get_busy () == Totoo: magpatuloy sa GPIO.output (ledPin, GPIO. LOW)

Inirerekumendang: