Мазмұны:

RaspberryPi ислам дұғаларының сағаты мен дабылы: 15 қадам (суреттермен)
RaspberryPi ислам дұғаларының сағаты мен дабылы: 15 қадам (суреттермен)

Бейне: RaspberryPi ислам дұғаларының сағаты мен дабылы: 15 қадам (суреттермен)

Бейне: RaspberryPi ислам дұғаларының сағаты мен дабылы: 15 қадам (суреттермен)
Бейне: RPI OFFICIAL THE Real PIcture OF ISLAM 2024, Қараша
Anonim
RaspberryPi ислам дұғаларына арналған сағаттар мен дабыл
RaspberryPi ислам дұғаларына арналған сағаттар мен дабыл
RaspberryPi ислам дұғаларына арналған сағаттар мен дабыл
RaspberryPi ислам дұғаларына арналған сағаттар мен дабыл

Дүние жүзі мұсылмандары күн сайын бес уақыт намаз оқиды және әр намаз күннің белгілі бір уақытында болуы керек. планетамыздың эллипс тәріздес қозғалысының арқасында күннің шығуы мен түсу уақыты жыл бойы әр түрлі болады, бұл сонымен қатар намаз уақытын тұрақсыз етеді, сондықтан бізге мұсылмандарға намаз уақыттарын еске салу үшін бізге ислам сағаты қажет. күн

Әр мұсылманның күнделікті намаз уақытына ауа -райына интернет -исламдық веб -сайттар, жергілікті ислам күнтізбелері немесе тіпті теледидар арқылы қол жеткізуге мүмкіндігі бар, ал біздің көпшілігімізде намаз уақыттарын беретін ерекшеліктері бар исламдық сағаттар бар.. Бірақ егер біз өз қолымызбен дұғалар мен дабыл құрылғысын жасасақ ше!

Жоба бойынша жұмысты бастамас бұрын, осы Нұсқаулықты оқу кезінде сізге пайдалы болуы мүмкін бірнеше ойлар бар. Мен Сауд Арабиясында тұрамын, сондықтан менің кейбір қадамдарым мен құндылықтарым сіздікінен өзгеше болады, мен оларды жұмыс барысында нақты көрсетемін. Мен араб тілінде интерфейс жасағаннан бері араб сөздерін қамтуы мүмкін қадамдар мен суреттер бар, бірақ мен оны ағылшын тілінде қалай жасау керектігін көрсетемін, сондықтан суреттердегі араб сөздері сізді алаңдатпасын, бұл жоба болуы мүмкін. Кез келген тілде жасалған (бұл керемет!: D) Сондай -ақ, менің қателіктерімді кешіріңіз, себебі ағылшын тілі менің бірінші тілім емес.

Біздің жобаға көшіңіз! Бұл жоба X негізгі кезеңге бөлінеді, X кезеңнің аяғында біз өз жобамызды жақсы және дайын етеміз! Қадамдар келесідей болады:

1-RaspberryPi конфигурациялау және дайындау

2-RTC модулін орнату

3-Азан дабылы бағдарламасын жасау

4-Сағат беттерін іске асыру

5-Пайдаланушы интерфейсін құру және

Әр жоба сияқты, бізге алдымен қажетті бөлшектерді дайындау керек. Бұл жобаның бізге қажет бөліктері:

1-RaspberryPi компьютерлік жинағы Amazon US || Amazon KSA

Сіз кез -келген Rpi нұсқасын қолдана аласыз, тек Wi -Fi бар екеніне көз жеткізіңіз. Мен Rpi3B+ қолдандым

2-RTC Нақты уақыттағы сағат модулі Amazon US || Amazon KSA

Сіз кез келген RTC модулін қолдана аласыз, оның I2C бар екеніне көз жеткізіңіз

3-LCD монитор

Кез келген СКД жасайды

4-Тінтуір мен пернетақта

және бұл ….. БҰЛ !! Азан сағаты мен оятқышты өз қолыңызбен жасау үшін осы ғана қажет

1 -қадам: 1 -тарау: RaspberryPI орнату және конфигурациялау

1 тарау: RaspberryPI орнату және конфигурациялау
1 тарау: RaspberryPI орнату және конфигурациялау

Бірінші заттар бірінші! Онымен жұмыс істеу үшін бізге Raspberry pi дайындау керек.

Raspberry pi - бұл компьютерден басқа ештеңе емес, оның жедел жады мен ROM -ы бар, процессор, GPU, енгізу -шығару ……. Компьютер! біз ойын ойнайтын және интернетті шолатын сияқты, тек ең бастысы - ол өте кішкентай! бұл таңқурайды жобаларды жасау мен іске асыру үшін өте жақсы таңдау етеді. таңқурай пи кішкентай болғандықтан, оның шектеулі ерекшеліктері бар, ол Windows немесе macOS сияқты үлкен талап етілетін ОЖ -мен жұмыс істей алмайды, оның орнына біз Linux -ті құрылғыны пайдалану үшін операциялық жүйе ретінде қолданатын боламыз. біз қолдана алатын мыңдаған, он мыңдаған Linux дистрибутивтері бар, бірақ бір тамаша тарату біз қолданатын raspberrypi үшін өте жақсы оңтайландырылған, ол Raspbian деп аталады.

2-қадам: 1-1: Қажетті файлдарды жүктеңіз

1-1: Қажетті файлдарды жүктеңіз
1-1: Қажетті файлдарды жүктеңіз
1-1: Қажетті файлдарды жүктеңіз
1-1: Қажетті файлдарды жүктеңіз
1-1: Қажетті файлдарды жүктеңіз
1-1: Қажетті файлдарды жүктеңіз

Https://www.raspberrypi.org/software/operating-sy… ресми Rasbian жүктеу бетіне өтіңіз және Raspberry Pi ОЖ-ны жұмыс үстелі файлымен жүктеңіз.

-Жүктеу кезінде https://win32diskimager.org/ сайтына өтіп, win32DiskImager бағдарламасын жүктеп, орнатыңыз, сіз өзіңізге ұнайтын кез келген кескінді жазу бағдарламасын қолдана аласыз.

жүктеу аяқталғаннан кейін сізде RaspberryPi ОЖ бар.img файлы болады. Содан кейін, SD жад картасын компьютерге қосыңыз (әдетте USB картасын оқу құрылғысы бар) және win32diskimager бағдарламалық жасақтамасын іске қосыңыз. суретті SD жадына жазу қадамдары өте қарапайым, сізге 1- жадыңыздың әрпін таңдаңыз 2-жүктеген ОЖ файлдарыңызды таңдаңыз және 3-жазуды басыңыз! Тізімнен дұрыс құрылғы әрпін таңдағаныңызға және жады бос екеніне көз жеткізіңіз, себебі жазуды басу арқылы сізге құрылғыдағы барлық нәрсе өшірілетіні туралы ескерту беріледі. Жазуды растау үшін иә түймесін басыңыз және оның аяқталуын күтіңіз. бұл 20 минутқа дейін созылуы мүмкін.

Аяқтағаннан кейін сізде жадыда Rapbian операциялық жүйесі толық болады, оны Rapberry Pi -ге қоюға болады, Raspberry Pi -ді HDMI арқылы мониторға, тінтуір мен пернетақтаны USB арқылы жалғап, соңында күш

3-қадам: 1-2: Raspbian жүйесін конфигурациялау

Кабельдер мен қуатты қосқаннан кейін сіз ОЖ қосылғанын көресіз, ол автоматты түрде қайта жүктеледі, содан кейін ол Raspbian пайдаланушы интерфейсін көрсетеді (терезеге ұқсас). Сіз көретін бірінші нәрсе - RaspberryPi -ді бірінші рет конфигурациялау қадамдарымен өтетін сәлемдесу терезесі. терезелер мен қадамдар келесідей болады:

1-Бірінші «Қош келдіңіз» терезесінде Келесі түймесін басыңыз

2-Келесі терезе сіздің орналасқан жеріңізді конфигурациялайды. елді, тілді және уақыт белдеуін таңдаңыз. Осыдан кейін «Ағылшын тілін қолдану» дегенді тексеру ұсынылады, себебі бұл операциялық жүйенің интерфейс тілі болады. СІЗ «Ағылшын тілінің пернетақтасының қорапшасын» тексеруіңіз керек, бізге жұмыс істеу үшін ағылшын тілінің пернетақтасы қажет!

3-Әрі қарай, сізден таңқурайдың құпия сөзін енгізу сұралады, бұл қауіпсіздік үшін маңызды, бірақ біз оны бұл жоба үшін өзгеріссіз қалдырамыз. Назар аударыңыз, әдепкі пайдаланушы аты мен құпия сөз:

пайдаланушы аты: pi

құпия сөз: таңқурай

4-Келесі терезеде raspberryPi WiFi желісіне қосылады. Wi -Fi атауын таңдап, Wi -Fi құпия сөзін енгізіңіз

5-келесіде сізден raspberry pi кітапханалары мен жүйелік файлдарды жаңарту сұралады. бұл қадам үлкен уақытты қажет етуі мүмкін (мүмкін сағаттарда), бірақ бұл таңқурайдың жаңа пиін орнату үшін өте маңызды қадам.

6-жаңарту аяқталғаннан кейін сізден жүйені қайта іске қосу сұралады. мұны қазір жаса.

Керемет жұмыс! Енді бізде жаңартылған жүйе бар, біз әлі де жүйенің жұмыс істеуін конфигурациялау үшін тағы да біраз нәрсені жасауымыз керек, бірақ енді LinuxCommand Line қолдана бастайды.

4-қадам: 1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану

1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану
1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану
1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану
1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану
1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану
1-3: Rpi параметрлерін орнату үшін пәрмен жолын пайдалану

Жүйені жаңартудан қайта жүктеуді аяқтағаннан кейін, жүктеу аяқталғаннан кейін жүйе пайдаланушының жұмыс үстелін көрсетеді. Егер сіз экранның сол жақ жоғарғы жағына қарасаңыз, онда сіз бірнеше түймені таба аласыз, rpi мәзір түймесі raspberryPi логотипі бар түйме, интернет-шолғыш болып табылатын глобус пішіні, қалталар түймесі …. және, ақырында, кез келген линукс жүйесіндегі ең маңызды түйме болып табылатын қара экран терезесі бар түйме - Пәрмен жолы. Жалғастырыңыз және сол түймені басыңыз, сіз қара терезе ашылатынын көресіз.

Пәрмен жолы - бұл әркімнің линукс жүйесімен әрекеттесуі және қолдануы, терезелердің тек жесірлерде жеке командалық жолы бар сияқты, біз оны жиі қолданудың қажеті жоқ. Linux -те бұл әрбір Linux қолданушысы үйренуі және меңгеруі керек негізгі нәрсе. пәрмен жолын…. COMMANDS қолдана алады! қара терезеде сіз пайдаланушы жазатын және орындалатын команданың күтілетінін көресіз. бұл нұсқаулықта біз бұл жобаны орындау үшін қажет барлық командаларды береміз, сондықтан алаңдамаңыз.

Біз қолданатын бірінші Linux пәрмені - бұл басқа конфигурация пәрмені, бұдан былай барлық командалар код терезесіне енгізілетінін ескеріңіз, сондықтан сіз оны қарапайым қадамдардан ажыратуға болады. Пернетақтаны алып, келесіні теріңіз және Enter пернесін басыңыз:

sudo raspi-config

Егер сіз мұны дұрыс жасасаңыз, экранның көкке айналғанын көресіз, ортасында сұр кішкентай қорап бар (суретті қараңыз). біз мұны кодтауды бастамас бұрын соңғы конфигурацияны жасау үшін қолданамыз.

Енді бұл мәзірде жылжу үшін пернетақтаның көрсеткі пернелерін пайдалану қажет.

1-Интерфейс опциялары >> I2C >> ИӘ >> тармағына өтіңіз, enter пернесін басыңыз. бұл I2c байланыс хаттамасын қосады, осылайша біз RTC қолдана аламыз

2-Қосымша опцияларға өтіңіз >> Файлдық жүйені кеңейтіңіз.

және бұл терезеден сізге қажет барлық конфигурация. басты бетте төмен түсіп, жүйені қайта жүктеу үшін «аяқтау» және «ИӘ» батырмасын басыңыз.

Жүйені қайта жүктеуді аяқтағаннан кейін, біз конфигурациялауды аяқтаймыз! құрылғы үлкен қадамдарға дайын! Келесі қадам - RTC модулін орнату және оны жүйеде қолдану.

5 -қадам: 2 тарау: RTC модулін орнату, конфигурациялау және пайдалану

2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану
2 тарау: RTC модулін орнату, конфигурациялау және қолдану

RTC (немесе нақты уақыттағы сағат) модулі-бұл кішкене құрылғы, оның батареясы аз, ол атауды білдіреді, Clocking! сондықтан оны қуат көзінен ажыратқанда сағат жұмыс істейді және тоқтамайды. бұл бізге не үшін қажет? Рас, таңқурай пи сөндірілгеннен кейін сағаттық деректерді сақтаудың шын мәнінде ешқандай әдісі жоқ, ол жүктелген кезде Интернетке қосылу арқылы оның күні мен уақытын жаңартады, бірақ мәселе - бізде әрқашан Интернетке кіру мүмкін емес, бұл сондықтан бізге RTC модулі қажет. RTC таңқурай пи үшін сағат ретінде әрекет етеді, сондықтан Rpi жүктелгеннен кейін ол RTC -тен Date & Time алады, бұл RaspberryPi уақытын үнемі жаңартып отырады.

бірнеше модельдер бар және RTC іздейді, DS1307 және DS3231 бар. сіз I2C протоколы байланысы бар кез келген RTC модулін қолдана аласыз (бұл модуль түйреуіштерінде SDA және SCL түйреуіштерін табуға болатынын көрсете аласыз.

Бұл нұсқаулықтағы кез келген нәрсе сияқты мен де жобадағы мақсатыма жету үшін басқа нұсқаулықтарды қолдандым, бұл нұсқаулық сізге бағыт береді және сізге бұл жобаны жасау үшін не істеу керектігін дәл айтады, бірақ егер сізге өзгерту қажет болса немесе сізге кез келгеніне тереңірек қарау қажет болса. қадамдар, мен әр қадамның соңында жемісті нұсқаулықты байланыстырамын.

Сіз RTC модулін дайындағаннан кейін (тақырып түйреуіштерін дәнекерлеңіз және батареяны қосыңыз), оны RapberryPi түйреуіштеріне келесідей қосуға болады:

RTC PIN коды ---------------- Rpi PIN

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

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

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

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

немесе сізде қандай RTC модуліне байланысты, сіз оны тікелей RaspberryPi -ге орната аласыз (түйреуіштердің дұрыс екеніне көз жеткізіңіз !!! себебі Rpi/RTC зақымдалмауы мүмкін)

RTC қосқаннан кейін, Raspberry -ді конфигурациялайық.

6-қадам: 2-1: Модульді орнату

2-1: модульді орнату
2-1: модульді орнату
2-1: модульді орнату
2-1: модульді орнату

Бастамас бұрын пәрмен жолына өтіп, теріңіз:

күні

Бұл таңқурайдағы ағымдағы күн мен уақытты қайтарады, өте пайдалы пәрменді ескереді және модульдің жұмыс істеп тұрғанын тексере алатын ағымдағы күн мен уақытты ескереді.

енді орнатуды бастайық, Rpi кітапханаларын бір жолға жаңарту үшін келесіні теріңіз:

sudo apt-get жаңартуы

sudo apt -get -y жаңарту

Бұл аяқталғаннан кейін, i2c модулін қосу үшін жүйелік файлдарды өзгерту керек және RTC қосу керек, файлдық жүйені өзгерту үшін біз Nano деп аталатын бағдарламалық жасақтаманы қолданамыз. нано-бұл жеңіл мәтіндік редактор, жесірлердегі сияқты. нанодан басталатын кез келген пәрмен, содан кейін файл атауы, бұл файлды нано мәтіндік редакторда ашады. біз Sudo деп аталатын нәрсені қолданғанымызды байқадыңыз, қысқаша айтқанда, sudo Linux жүйесіне бұл команданы берген пайдаланушы басқа біреудің емес, Құрылғының иесі екенін айтады және өңдеу сияқты артықшылықтар береді. пайдаланушыға жою. мысалы, егер біз sudo жоқ нано файлды ашсақ, біз бұл файлды көре аламыз, бірақ оны өңдей алмаймыз немесе жоя алмаймыз.

енді біз модульдер файлын өзгертуіміз керек, мұны теру арқылы жасай аламыз:

sudo nano /etc /модульдер

мұны жасағаннан кейін сіз файлдың мазмұнын таба аласыз (суретті қараңыз). курсорды мәтін соңына қою үшін көрсеткі пернелерін қолданыңыз және мыналарды қосыңыз:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

сақтау үшін CTRL+S, шығу үшін CTRL+X пернелерін басыңыз

7-қадам: 2-2: I2C интерфейсі

2-2: I2C интерфейсі
2-2: I2C интерфейсі

Енді біз RTC -ді қосып, i2c -ті қостық, бәрін бірге қосайық.

пәрмен жолына келесіні теріңіз:

i2cdetect -y 1

Сізге бос орындар жиыны беріледі, бірақ сіз бір жерде нөмір бар екенін байқайсыз, бұл сан сіздің RTC модулінің мекенжайы. менің жағдайда бұл 68. бұл санға назар аударыңыз. егер сіз бұл екі таңбалы санды көрмесеңіз, бұл сіз RTC қате қосылғанын білдіреді.

енді біз rc.local файлын өзгертуіміз керек, осылайша біз жүктеу кезінде RTC модулін қосамыз және жүйеге күн мен уақытты сақтай аламыз. Алдымен rc.local файлын ашыңыз:

sudo nano /etc/rc.local

Exit0 жолының алдында келесіні қосыңыз:

echo ds1307 0x68>/sys/class/i2c-адаптер/i2c-1/new_device

hwclock -s

мұнда 0x68 - сіздің құрылғыңыздың i2c мекенжайы. Аяқтағаннан кейін CTRL+S CTRL+X пернелер тіркесімін басыңыз, содан кейін жүйені қайта жүктеңіз:

sudo қайта жүктеу

8-қадам: 2-3: RTC тестілеу

2-3: RTC тестілеу
2-3: RTC тестілеу

Жүйе қайта жүктелгеннен кейін, біз ауа райы режимінің жұмыс істеп тұрғанын тексере аламыз. алдымен жүгіріңіз:

sudo hwclock -r

сізге RTC модуліндегі күн мен уақыт қайтарылады. егер сізге басқа нәрсе берілсе, қадамдарды дұрыс орындағаныңызға көз жеткізіңіз.

енді, RTC -дегі уақыт пен күнді өзгерту үшін алдымен жүйеде Date & Time -ді өзгерту керек, содан кейін RTC -ге өзгерістер енгізіңіз. Ол үшін жүгіріңіз:

sudo date -s «29 тамыз 1997 ж. 13:00:00»

және, әрине, енгізу мен енгізбестен бұрын жергілікті уақыт пен күнге сәйкес күн мен уақытты өзгертіңіз. Rpi оң жағындағы уақытты алғаннан кейін, RTC -де күн мен уақытты сақтау үшін келесі әрекеттерді орындаңыз:

sudo hwclock -w

аааа және бұл! Сіз оның hwclock -r арқылы жұмыс істейтінін тексере аласыз және RTC күнінің дұрыс немесе дұрыс еместігін көре аласыз, содан кейін rpi интернеттен ажыратыңыз, содан кейін оны біраз уақыт өшіріңіз, содан кейін оны қайта қосыңыз және оның дұрыс екенін тексеріңіз. уақыт пен күн. бітті!

RTC модулін орнату туралы толық нұсқаулықты мына жерден табуға болады

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

9 -қадам: 3 -тарау: Азан дабылы бағдарламасын жасау

3 тарау: Азан дабылын жасау
3 тарау: Азан дабылын жасау

сағатты жасау - бұл бір нәрсе, әрине, біз сағат пен намаз уақытына қарай аламыз және уақытты көре аламыз, бірақ бізге намаз уақыты туралы хабарлау үшін дыбыстық дабыл қоссақ, бұдан да жақсы болар ма еді? БІРАҚ, біз бұл дабылды АЗАН дыбысы ретінде жасаймыз! бұған қалай қол жеткізуге болатынын қарастырайық.

біздің бағдарламалау үшін біз питонды қалаған бағдарламалау тілі ретінде қолданамыз, себебі python RaspberryPi -мен тамаша үйлеседі. python -да код файлын жасау үшін біз мәтіндік файлды ашумен бірдей жасаймыз, бірақ қазір біз оны.py ретінде сақтаймыз. Бағдарламаны іске қосу үшін бізге таңқурай орнатылған python ортасы қажет, бақытымызға орай, Raspbian python және python3 алдын ала орнатылған! сондықтан бізге тек бағдарламалау керек. Бұл нұсқаулықта біз тіл туралы сөйлеспейміз және оның қалай жұмыс істейтіні мен функцияларын үйретпейміз, бірақ мен сізге жобаны жасау үшін қажетті кодтарды беремін.

бастау үшін бізге қалаған азан дыбысының дыбыстық файлы қажет (. WAV) бізге екі файл қажет, бірі әл-фәжр азан үшін, екіншісі тұрақты азан үшін. Сіз оны алғаннан кейін оны дискіге салыңыз және оны raspberrypi жұмыс үстеліне көшіріңіз.

қазір бізде файлдар бар, мен raspberryPi -де дыбыстық аудионы ойнату әдісін іздедім және таңқаларлықтай, мұны істеудің көптеген жолдары болмады, бірақ мен бұл жауапты stackoverflow -да таптым, ол маған қажет нәрсені берді

stackoverflow.com/questions/20021457/playi…

Мен бұл әдісті сынап көрдім және ол жұмыс істеді! сондықтан бұл әдісті жобамызға қалай енгізуге болатынын көрейік …

10-қадам: 3-1: Дыбыс ойнайық

3-1: Дыбыс ойнайық!
3-1: Дыбыс ойнайық!

алдымен жұмыс үстеліне өтіңіз:

cd жұмыс үстелі

содан кейін жаңа python код файлын жасаңыз:

sudo нано AzanPlay.py

бұл.py python файлындағы кеңейтімі бар AzanPlay деп аталатын жаңа файл жасайды, бізде кодты жазуға мүмкіндік беретін бос қара экран болады. жай ғана осы жолдарды жазыңыз (шегіністі немесе бос орындарды өзгертпеу үшін абай болыңыз, себебі бұл питонда өте маңызды):

pygame импорттық араластырғыштан

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == True: жалғастыру

Бұл жерде / жұмыс үстелі /-бұл сіздің дыбыстық файлдарыңызды енгізетін орын, ал 'Adhan-Makkah.wav'-бұл менің аудиофайлым, ол маккандағы азан дыбысы.

енді кодты тексеру үшін біз оны теру арқылы python көмегімен іске қосамыз:

python AzanPlay.py

және сізде HDMI СКД немесе Raspberrypi орналасқан AUX портынан дыбыс шығады. егер сіз оны СКД динамиктерінен естімесеңіз, құлаққапты AUX -ке қосыңыз және тексеріңіз.

11-қадам: 3-2: Намаз уақыттарын алыңыз

3-2: Намаз уақыттарын алыңыз
3-2: Намаз уақыттарын алыңыз

Біз білетіндей, намаз уақыттары жердегі бір жерден басқа жерге өзгереді, тіпті белгілі бір орын үшін ол жылдар бойы өзгереді, демек, біз жүйеде намаз уақытын үнемі жаңартып отырудың жолын іздеуіміз керек. ол үшін бізге дәл және өте күрделі функциялар мен есептеулер қажет. Бақытымызға орай, біздің ағамыз Хамид Зарраби-Заде бізге қажет барлық функцияларды бір функцияға айналдырды, оны біз орналасқан жерімізге және қазіргі уақытқа байланысты уақытты оңай алуға болады, таңқаларлық! кітапхананы және бастапқы файлдарды таба аласыз

praytimes.org/

Сонымен, біз бұл керемет файлдарды намаз уақыттарын алу үшін және оны жүйеге енгізу үшін қолданамыз. Біріншіден, кодтарды веб -сайттан жүктеп алып / adhan / қалтасына салыңыз (бізге JS пен Python кодтары қажет).

Енді сол қалтаға өтіп, кітапхананы тексеруге және ол не істей алатынын білуге рұқсат етіңіз:

CD азан

Онда біз функцияны тексере алу үшін python -да жаңа тест файлын жасауымыз керек:

sudo nano testAd.py

ішіне мына кодты жазыңыз:

намаз уақыттарын импорттау

datetime импорттау күнінен tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) басып шығару (tmm)

Файлды сақтамас бұрын, LATITUDE параметрін LONGTITUDE сияқты Latitude орналасуымен өзгерту және GMT -ді уақыт белдеуіне өзгерту керек. менің жағдайда бұл болады:

tmm = намаз уақыты. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)

басып шығару (tmm)

Соңында, CTRL-S және CTRL-X, содан кейін кодты іске қосыңыз:

python testAd.py

ақырында, сіз өзіңіздің орналасқан жеріңіз үшін бүгінгі намаз уақыттарын қайтарасыз.

{'иша': '18: 58 ',' аср ': '15: 22', 'күннің батуы': '17: 43 ',' зухр ':' 12: 17 ',' мағриб ': '17: 43', 'imsak': '05: 23 ',' түн ортасы ': '00: 17', 'күннің шығуы': '06: 52 ',' таңғы ': '05: 33'}

Тамаша! енді бізде намаз уақыты бар, енді біз дыбыстарды қалай ойнауды білеміз, осы екі кодты бір негізгі кодқа біріктірейік.

12-қадам: 3-3: Азан дабылының соңғы кодын жасау

Алдыңғы екі кодты аяқтай отырып, біз орналасқан жерімізге сәйкес намаз уақыттарын дәл алуды және азан дыбысын қалай ойнауды білдік. Енді біз осы екі кодты бір жобаға біріктіреміз, оны біз соңғы жоба ретінде қолданамыз және бұл код фонда жұмыс істейді, өйткені Азан уақыты келгенде ол азан дыбысын шығарады.

Мен бүкіл кодты жаздым, сіз оны көшіріп, қоюға және өзіңіз қалағандай өзгертуге болады. Код дегеніміз:

импорт уақыты

pygame импорттау миксерінен импорттау жолын импорттау уақыты импорттау датасынан импорттау уақыты = 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: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () while mixer.music.get_busy () == Рас: CurrTime болса жалғастырыңыз == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: CurrTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/) Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Рас: CurrTime == MAGHRIB болса, жалғастырыңыз: mixer.init () mixer.music.load ('/home/pi/ Жұмыс үстелі/Adhan-Makkah.wav ') mixer.music.play () mixer.music.get_busy () == Рас: егер CurrTime == болса жалғастырыңыз ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == True: жалғастыру

Егер сіз кодты қарап, оны бұрын жасаған нәрсемен салыстырсаңыз, онда біз жаңа ештеңе жасамағанын көреміз, алдымен біз өзімізге қажетті кітапханаларды енгіздік, содан кейін біз шексіз цикл аштық. циклде біз үнемі намаздың уақытын орналасқан жеріміз бен уақыт белдеуімізбен есептеп, нәтижені tmm айнымалы мәнінде сақтаймыз. содан кейін біз әр намаз уақытын tmm -ден тәуелсіз айнымалыға дейін сақтаймыз. бұл уақытты салыстыруға мүмкіндік береді. Содан кейін біз жүйелік уақытты аламыз және оны тәуелсіз айнымалыға сақтаймыз. Ақырында, біз жүйелік уақытты намаз уақыттарымен салыстыруды жалғастырамыз, егер жүйе кез келген намаз уақытына сәйкес келсе, ол азан дыбысын шығарады.

13 -қадам: 4 -тарау: Watch Faces бағдарламасын енгізу

4 -тарау: Беттердің сақталуын енгізу
4 -тарау: Беттердің сақталуын енгізу
4 -тарау: Беттердің сағаттарын енгізу
4 -тарау: Беттердің сағаттарын енгізу
4 -тарау: Беттердің сақталуын енгізу
4 -тарау: Беттердің сақталуын енгізу
4 -тарау: Беттердің сақталуын енгізу
4 -тарау: Беттердің сақталуын енгізу

Жобаның жақсы көрінуі үшін менде СКД -ге сағат беттерін қосу идеясы болды, сондықтан ол пайдаланушыға жақсы көрінеді (кем дегенде пәрмен жолынан да жақсы), сондықтан мен дизайнерді жалдадым, ол бірнеше беттерді безендіре алады. сағаттарда ол бос болуы керек, өйткені деректерді HTML арқылы қосу керек, бұл сағаттардың дизайнын фонға айналдырады, ал намаз уақыты сияқты басқа деректерді фонның үстіне HTML элементтері ретінде қосуға болады.

Өкінішке орай, бұл нұсқауды жазу мүмкіндігінде менің HTML -дегі білімім мен тәжірибем өте шектеулі, сондықтан мен көп нәрсені талқыламаймын, себебі мен дұрыс емес нәрсені шешетінімді білемін, және мен жоқ адамдарды шатастырғысы келеді. бірақ егер сізде JS және HTML -де аздаған тәжірибе болса, сіз осы сәттен бастап қалай жалғастыру керектігін білуіңіз керек. Осы уақытқа дейін мен жалғыз бет жасадым (көк бет). Жоспар бойынша 14 сағаттар жасау керек! Аптаның әр күніне арналған 7 бет, ал басқа 7 - басқа тақырып. бірінші тақырып Azkar ролигінде болуы керек, ал басқа тақырыпта Azkar орнына исламдық GIFS болуы керек. қарамастан, мен барлық нұсқауларды осы нұсқаулыққа қосамын, сондықтан сіз оны жүктей аласыз.

14 -қадам: 5 -тарау: Пайдаланушы интерфейсін енгізу

5 тарау: Пайдаланушы интерфейсін енгізу
5 тарау: Пайдаланушы интерфейсін енгізу

Саяхатымыздың соңғы тарауында біз жобаны мешітте немесе кез келген қоғамдық орында жүзеге асырғымыз келсе, оны қолданушыға ыңғайлы ету үшін кейбір қосымша өзгертулер енгіземіз. Жоғарыда айтқанымыздай, әр қалада намаздың өз уақыты бар, және бұл жобаға адамдардың кеңінен қол жеткізуі үшін біз қолданушы интерфейсін жасаймыз, осылайша біз жобаны қосқаннан кейін қалаған қаламыз бен тақырыбымызды таңдай аламыз.

Ол үшін біз «TKinter» деп аталатын python GUI кітапханасын қолданамыз.

Бұл маған Сауд Арабиясының Мекке қаласын қосқанда бес қаланың бірін таңдау мүмкіндігін беру үшін енгізген код:

tkinter -ді tk ретінде импорттаңыз

tkinter импортынан * tkinter импортынан ttk импорттау кодектерінің импорты os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title («Azan Time») self. button1 = Түйме (өзін -өзі, мәтін = «Джидда», биіктік = 5, ені = 80, команда = self.open_jeddah1) self.button2 = Түйме (өзін, мәтін = «Мекке», биіктік = 5, ені = 80, команда = self.open_makkah1) self.button3 = Түйме (өзін, мәтін = «Эр -Рияд», биіктік = 5, ені = 80, команда = self.open_riyadh1) self.button4 = Түйме (өзін, мәтін = «Мадина», биіктігі = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = «Qasim», height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (жол = 0, баған = 1, бағаналық кеңістік = 2, жабысқақ = W+E+N+S) өздігінен батырмасы2. тор (жол = 1, баған = 1, бағаналық кеңістік = 2, жабысқақ = W+E+N+S) өздігінен түймешік3. тор (жол = 2, баған = 1, баған аралығы = 2, жабысқақ = W+E+N+S) өздігінен түймешік4. тор (жол = 3, баған = 1, баған аралығы = 2, жабысқақ = W+E+N+S) self.button5.grid (жол = 4, баған = 1, баған аралығы = 2, жабысқақ = W+E+N+S) def open_jeddah1 (өзін): 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 (тапсырыс) def open_riyadh1 (өзін): order = «sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type» os.system (тапсырыс) def open_madina1 (self): order = «sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type» os.system (тапсырыс) def open_qasaim1 (self): order = «sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type» os.system (order) def main (): karl (). mainloop () if _name_ == '_main_': main ()

Код үлкен болып көрінуі мүмкін, бірақ оны өңдеу өте оңай. біз негізінен жаңа терезе жасадық, бес түймені қойдық және әр түймені басу үшін шақырылатын бес функцияны анықтадық. түймені басқаннан кейін, бағдарлама қалалар қалтасында сәйкес HTML файлын ашады, оны әрбір қала намаз уақытынан () уақыт алған кезде қалалық координаттары бар. Сіз түймені басқаннан кейін, питон коды хромдық шолғышты пайдаланып HTML файлын ашатын линукс кодын шығарады және сізде толық экран опциясы қосылған сағат беті көрсетуге дайын болады.

15 -қадам: (Қосымша): Динамик қосқышын қосу

(Қосымша): Динамик қосқышын қосу
(Қосымша): Динамик қосқышын қосу
(Қосымша): Динамик қосқышын қосу
(Қосымша): Динамик қосқышын қосу

Көріп отырғанымыздай, намаз уақыты келгенде азан дыбысы шығады, және дыбыс әдепкі дыбыс шығысынан шығады (HDMI немесе AV шығысы), және біз оны HDMI шығысына қосқандықтан, дыбыс СКД -ден шығады. бірақ, егер біздің СКД дыбысы жеткіліксіз болса ше? Мысалы, егер біз мұны нақты мешіттің ішінде жүзеге асырғымыз келсе ше? кең сыртқы динамиктермен? содан кейін біз мұны жүзеге асыру үшін тағы бір өте қарапайым қадамды қоса аламыз. қазірдің өзінде құрастырылған дыбыс жүйесі үшін бізге оны тек ҚОСУ және ӨШІРУ керек, және бұрыннан бар микрофонды алып, оны СКД динамиктерінің жанына қою керек.

Бұлай жасау оңай. біз бұрыннан бар мешіт микрофонын қолданамыз, ол дауыс зорайтқышқа қосылады, бізге бүкіл дыбыс жүйесін қосатын және өшіретін қуатты басқару үшін raspberryPi қажет болады. Ол үшін бізге SSR: SOLID STATE RELAY қолдану қажет болады. бұл реле түрлері кәдімгі көк реле сияқты коммутатор рөлін атқара алады, айырмашылығы - ССРО ол арқылы айнымалы токтың үлкен мөлшеріне төтеп бере алады, ол көк түске жарамайды (әдетте максимум 10А), және ССРО қажеттіліктері 3 орнына тек екі сым: DC+ және DC- және бұл! ССР -нің екінші шетінде біз динамиктік жүйенің қуат кабелін қосуға болады, осылайша біз КСР -ге кернеу бергенде ол динамик жүйесінің айнымалы ток тізбегін жабады немесе ашық тізбек жасау үшін кернеуді өшіреміз, динамиктерді өшіру.

бір нәрсе бар, RaspberryPi түйреуіштері 5В емес, 3.3В шығарады, біз ССРО -ны бақылауымыз керек. сондықтан бізге RPi түйреуішінен сигналды алу үшін транзистор қажет, ал 5V RPi түйреуішінен. ол үшін бізге қажет:

1-қатты дене релесі (25А жоғары кез келген нәрсе жақсы)

2-2n2222 npn транзистор

3-220 Ом резистор

қосу үшін тоңазытқыш тізбегін ұстаныңыз.

енді кодта біз оны жұмыс істейтін кейбір нәрселерді қосамыз. Біріншіден, while циклінің алдында GPIO түйреуіштерін инициализациялау үшін бірнеше жолдар қосамыз:

Импорт бөлімінде мыналарды қосыңыз:

GPO ретінде RPi. GPIO импорттау

Уақыт циклінің алдында мыналарды қосыңыз:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) релесі = 40 GPIO.setup (ledPin, GPIO. OUT)

Енді, уақытша циклде, әр Азан пәрмені үшін біз релені қосып, 10 секунд күтіп, Азанды ойнап бітіріп, релені өшіруіміз керек. бізге тек екі жолды қосу керек, біріншісі:

GPIO. шығысы (ledPin, GPIO. HIGH)

уақыт.ұйықтау (10)

бұл әрбір if операторынан кейін қосылуы керек (ИДЕНТАНЦИЯ МАҢЫЗДЫ!), басқа жол:

GPIO. шығысы (ledPin, GPIO. LOW)

Бұл «жалғастыру» жолынан кейін қосылуы керек. ол әр азан уақытында келесідей болуы керек:

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 () == True: GPIO.output жалғастыру (ledPin, GPIO. LOW)

Ұсынылған: