Мазмуну:

RaspberryPi Ислам тиленүүлөрү Watch & Ойготкуч: 15 кадам (сүрөттөр менен)
RaspberryPi Ислам тиленүүлөрү Watch & Ойготкуч: 15 кадам (сүрөттөр менен)

Video: RaspberryPi Ислам тиленүүлөрү Watch & Ойготкуч: 15 кадам (сүрөттөр менен)

Video: RaspberryPi Ислам тиленүүлөрү Watch & Ойготкуч: 15 кадам (сүрөттөр менен)
Video: RPI OFFICIAL THE Real PIcture OF ISLAM 2024, Июнь
Anonim
RaspberryPi Ислам тиленүүлөрү Watch & Alarm
RaspberryPi Ислам тиленүүлөрү Watch & Alarm
RaspberryPi Ислам тиленүүлөрү Watch & Alarm
RaspberryPi Ислам тиленүүлөрү Watch & Alarm

Дүйнө жүзүндөгү мусулмандар күн сайын беш маал намаз окушат жана ар бир намаз күндүн белгилүү бир убактысында болушу керек. планетабыз эллиптикалык жол менен күндүн айланасында жылгандыктан, күндүн чыгышын жана түшүү убактысын жыл бою айырмалайт, бул намаздын убактысын туруксуз кылат, ошондуктан бизге мусулмандардын намаз убактысын эскертип туруу үчүн исламдык саат керек. күн.

Ар бир мусулман күнүмдүк намаз убактысына аба ырайына Интернет ислам веб -сайттары, жергиликтүү ислам календары же атүгүл сыналгы аркылуу жетүү мүмкүнчүлүгүнө ээ, жана көбүбүздө намаз убактысын берүүчү өзгөчөлүктөрү бар исламдык саат аппараттары, ошондой эле намаз сигналдары бар.. Бирок, биз өзүбүздүн тиленүү саатыбызды жана ойготкуч аппаратыбызды жасасакчы!

Долбоордун үстүндө иштөөнү баштоодон мурун, бул Нускаманы окуп жатканда сиз үчүн пайдалуу болушу мүмкүн болгон бир нече ойлор бар. Мен Сауд Аравиясында жашап жатам, андыктан менин кээ бир кадамдарым жана баалуулуктарым сиздикинен айырмаланат, жана мен аларды иш учурунда ачык айтам. Мен араб тилинде интерфейс түзгөндөн бери араб сөздөрүн камтышы мүмкүн болгон кадамдар жана сүрөттөр бар, бирок мен аны англисче кантип жасоону көрсөтөм, андыктан сүрөттөрдөгү араб сөздөрү сизди тынчсыздандырбасын, бул долбоор каалаган тилде жасалган (бул укмуш!: D) Ошондой эле менин каталарымды кечирип коюңуз, анткени англисче менин биринчи тилим эмес.

Биздин проектке! Бул долбоор X Негизги кадамдарга бөлүнөт, ал эми X кадамдын аягында биздин долбоор жакшы жана даяр болот! Кадамдар төмөнкүдөй болот:

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

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

3-Азан Ойготкуч программасын жасоо

4-Сааттардын жүзүн ишке ашыруу

5-Колдонуучу интерфейсин түзүү жана

Ар бир долбоор сыяктуу, биз биринчи өзүбүзгө керектүү тетиктерди даярдашыбыз керек. Бул долбоор үчүн бизге керектүү бөлүктөр:

1-RaspberryPi Компьютердик комплект Amazon US || Amazon KSA

Сиз каалаган Rpi версиясын колдоно аласыз, анын Wifi бар экенине ишениңиз. Мен Rpi3B+ колдондум

2-RTC Реалдуу убакыт режиминдеги саат модулу Amazon US || Amazon KSA

Сиз каалаган RTC модулунун моделин колдоно аласыз, анын I2C бар экендигине ынануу керек

3-LCD монитор

Ар кандай ЖК жасайт

4-Чычкан жана клавиатура

жана бул….. IT !! Азандын өз саатын жана ойготкучту жасоо үчүн ушул гана керек

1 -кадам: 1 -бөлүм: RaspberryPIди орнотуу жана конфигурациялоо

1 -бөлүм: RaspberryPIди орнотуу жана конфигурациялоо
1 -бөлүм: RaspberryPIди орнотуу жана конфигурациялоо

Биринчи нерсе биринчи! Биз аны менен иштөө үчүн Raspberry pi даярдашыбыз керек.

Raspberry pi - бул компьютерден башка эч нерсе эмес, анын RAM жана ROMу, CPU, GPU, I/O ……. Компьютер! биз ойногондой жана вебти карап чыккандай эле, эң кичинекей нерсе! бул малинаны долбоорлорду кабыл алуу жана ишке ашыруу үчүн абдан жакшы тандоо кылат. Малина пи кичинекей болгондуктан, анын чектелген өзгөчөлүктөрү бар, ал 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 Download баракчасына өтүңүз жана Raspberry Pi OSти Desktop файлы менен жүктөп алыңыз.

-Жүктөп жатканда, https://win32diskimager.org/ сайтына кирип, win32DiskImagerди жүктөп алып орнотуңуз, сиз каалаган сүрөттү күйгүзүүчү программаны колдоно аласыз.

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

Ал бүткөндөн кийин, сизде эс тутумда толук Rapbian OS болот, сиз алдыга жылып, Rapberry Pi'ге салып, Raspberry Pi'ди HDMI аркылуу мониторго туташтырып, чычкан менен клавиатураны USB аркылуу туташтырып, акыры, күч

3-кадам: 1-2: Raspbian системасын конфигурациялоо

Кабелдерди жана кубаттуулукту туташтыргандан кийин, OS күйгүзүлгөнүн көрөсүз, ал автоматтык түрдө кайра жүктөлөт, андан кийин Raspbian User Interface (терезелерге окшош) көрсөтүлөт. сиз көргөн биринчи нерсе - RaspberryPi'ди биринчи жолу конфигурациялоо кадамдарынан өтүүчү саламдашуу терезеси. терезелер жана кадамдар төмөнкүдөй болот:

1-Биринчи "Кош келиңиз" терезесинен кийинки баскычты басыңыз

2-Кийинки терезе жайгашкан жериңизди конфигурациялоо үчүн болот. өлкөнү, тилди жана убакыт алкагын тандаңыз. Андан кийин "Англис тилин колдонууну" текшерүү сунушталат, анткени бул Иштетүү тутумунун интерфейси тили болот. СИЗ "АКШ КЫРГЫЗЧАСЫНЫН КЛАВКАСЫНЫН КӨРСӨТҮҮ БОКСУН" ТЕКШЕРИҢИЗ КЕРЕК!

3-Кийинки, сизден малинаңыздын сырсөзүн киргизишиңиз талап кылынат, бул коопсуздук үчүн маанилүү, бирок биз аны бул долбоор үчүн өзгөртүүсүз калтырабыз. демейки Колдонуучунун ысымы жана сырсөзү:

колдонуучунун аты: pi

сырсөз: малина

4-Кийинки терезе raspberryPiди WiFi тармагыңызга туташтырат. wifi атыңызды тандап, wifi сырсөзүңүздү киргизиңиз

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 системасындагы эң маанилүү баскыч, Command сабы. бара бериңиз жана ошол баскычты басыңыз, сиз кара терезенин ачылганын көрөсүз.

Буйрук сабы - бул баарынын өз ара аракеттениши жана Linux тутумун колдонушу, терезелердин жесирлерде гана өзүнүн буйрук сабы болгондой эле, биз аны көп колдонуунун кажети жок. linuxта, бул ар бир Linux колдонуучусу үйрөнүшү жана өздөштүрүшү керек болгон негизги нерсе. буйрук сабын колдонсо болот …. COMMANDS! кара терезеде көргөнүңүз-бул колдонуучу тарабынан жазылган жана аткарылган буйрукту күткөн буйрук. бул колдонмодо биз бул долбоорду аткаруу үчүн керек болгон бардык буйрукту беребиз, андыктан кабатыр болбоңуз.

биз колдоно турган Linuxтун эң биринчи буйругу - бул башка конфигурациялык буйрук, мындан ары бардык буйруктар код кутусуна салынат, андыктан аны кадимки кадамдардан айырмалай аласыз. Клавиатураңызды алып, төмөнкүлөрдү териңиз жана Enter баскычын басыңыз:

sudo raspi-config

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

Эми, бул менюга өтүү үчүн клавиатура жебе баскычтарын колдонуу керек болот.

1-Интерфейстин варианттарына өтүү >> I2C >> Ооба >> баскычын басыңыз. бул 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 казыктарын таба алаарыңызды көрсөтө аласыз.

Бул колдонмодогу нерселер сыяктуу эле, мен дагы башка көрсөтмөлөрдү колдонуп, долбоордогу максатыма жеттим, бул көрсөтмө сизге багыт берет жана сизге бул долбоорду жасоо үчүн эмне кылыш керектигин так айтып берет, бирок эгер сиз өзгөртүү керек болсо же сизге дагы тереңирээк маалымат керек болсо кадамдар, мен ар бир кадамдын аягында жемиштүү жетекчини байланыштырам.

РТК модулуңуз даяр болгондон кийин (башкы казыктарды туташтырып, батареяны коюңуз), аны RapberryPi казыктарына төмөнкүдөй туташтырсаңыз болот:

RTC PIN ---------------- Rpi пин

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 update

sudo apt -get -y жогорулатуу

бүткөндөн кийин, i2c модулун иштетүү жана RTC кошуу үчүн системалык файлдарды өзгөртүү керек, файлдык системаны өзгөртүү үчүн, биз Nano деп аталган программаны колдонобуз. нано-жесирлердегидей эле текст редактору болгон жеңил орнотулган программа. Ошентип, нано менен башталган жана буйруктун артынан файлдын аты, ал файлды нано текст редакторунда ачат. Сиз Sudo деп аталган нерсени колдонгондугубузду байкадыңыз, кыскасы, sudo бул буйрукту берген колдонуучу башка бирөө эмес, Түзмөктүн ээси экенин айтып, Linux системасы үчүн кепилдик катары иштейт жана түзөтүү/ колдонуучуга өчүрүү. Мисалы, эгер биз sudo жок нано файлды ачсак, анда биз бул файлды көрө алабыз, бирок биз аны оңдоп же жок кыла албайбыз.

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

Sudo нано /ж.б. /модулдар

муну кылгандан кийин, сиз файлдын мазмунун таба аласыз (сүрөттү караңыз). курсорду тексттин аягына коюу үчүн жебе баскычтарын колдонуңуз жана төмөнкүлөрдү кошуңуз:

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-adapter/i2c-1/new_device

hwclock -s

бул жерде 0x68 сиздин түзмөгүңүздүн i2c дареги. Бүткөндөн кийин CTRL+S CTRL+X басыңыз, андан кийин системаңызды өчүрүп күйгүзүңүз:

sudo өчүрүп күйгүзүү

8-кадам: 2-3: RTC тестирлөө

2-3: RTC тестирлөө
2-3: RTC тестирлөө

Система кайра жүктөлгөндөн кийин, биз аба ырайынын RTC иштеп жаткандыгын же иштебей турганын текшере алабыз. биринчи чуркоо:

sudo hwclock -r

сизге RTC модулунун күнү жана убактысы кайтарылып берилет. эгер сизге башка нерсе берилсе, анда кадамдарды туура жасаганыңызды текшериңиз.

азыр, RTC боюнча убакытты жана датаны өзгөртүү үчүн, биз биринчи системада Date & Time өзгөртүшүбүз керек, СОНУН РТКга өзгөртүүлөрдү жазуу. бул үчүн, чуркагыла:

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 Desktop

анда жаңы python код файлын түзүңүз:

sudo nano AzanPlay.py

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

pygame импорт миксеринен

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

Кайсы жерде / Үстөл / сиз үн файлдарыңызды салып жатасыз, ал эми 'Adhan-Makkah.wav'-бул менин Аудио файлым, ал азан үнү маккада.

азыр кодубузду текшерүү үчүн, биз аны терүү менен python менен иштетебиз:

python AzanPlay.py

жана сизде HDMI LCD же Raspberrypiдеги AUX портуңуздан үн чыгып калат. эгер сиз муну ЖК динамиктеринен укпасаңыз, AUXка гарнитураны сайыңыз жана текшериңиз.

11-кадам: 3-2: Намаз убактысын алыңыз

3-2: Намаз убактысын алыңыз
3-2: Намаз убактысын алыңыз

Белгилүү болгондой, намаз убактысы жердин бир жеринен экинчисине айырмаланат, ал тургай белгилүү бир жерге чейин, ал жылдар бою айырмаланат, демек, биз системада намаз убактыбызды дайыма жаңыртып туруунун жолун табышыбыз керек жана ал үчүн биз аны туура кабыл алуу үчүн конкреттүү жана өтө татаал функцияларга жана эсептөөлөргө муктажбыз. Бактыга жараша, бир тууганыбыз Хамид Зарраби-Заде бизге керектүү болгон функциялардын бардыгын бир функцияга айландырды, аны биз жайгашкан жерибизге жана учурдагы убактыбызга жараша убакытты оңой колдоно алабыз. китепкананы жана булак файлдарын таба аласыз

praytimes.org/

Ошентип, биз бул сонун файлдарды намаз убактыбызды алуу жана аны системага киргизүү үчүн колдонобуз. Биринчиден, веб -сайттан коддорду жүктөп алып / adhan / папкасына салыңыз (Бизге JS жана Python коддору керек).

Эми, ошол папкага баш багып, китепкананы сынап көрөлү жана ал эмне кыла алат:

cd adhan

ал жерде, биз функцияны текшерүү үчүн, pythonдо жаңы тест файлын түзүшүбүз керек:

sudo нано testAd.py

ичинде, бул кодду жазыңыз:

намаз убактысын импорттоо

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

Файлды сактоодон мурун LATITUDE жайгашкан жериңизди Latitude менен өзгөртүп, LONGTITUDE менен бирдей кылып, GMTти убакыт алкагыңызга өзгөртүшүңүз керек. менин учурда, мындай болот:

tmm = praytimes. PrayTimes (). getTimes (дата.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 ',' midnight ': '00: 17', 'sunrise': '06: 52 ',' fajr ': '05: 33'}

Абдан жакшы! азыр биз намаз убактыбызды алдык жана эми биз үндөрдү кантип ойной аларыбызды билели, бул эки кодду бир башкы кодго бириктирели.

12-кадам: 3-3: Азан сигналынын акыркы кодун кабыл алуу

мурунку эки кодду бүтүрүү менен биз жайгашкан жерибизге ылайык намаздын так убактысын алууну жана Азан үнүн кантип ойноону үйрөндүк. Эми биз бул эки кодду бир долбоорго бириктиребиз, аны биз акыркы долбоорубуз катары колдонобуз жана бул код фондо иштейт, Азан убактысы келгенде Азан үнүн ойнойт.

Мен бүт кодду жаздым, сиз аны көчүрүп, чаптап, өзүңүз каалагандай өзгөртүүлөрдү киргизе аласыз. Код мындай:

импорттоо убактысы

pygame импорт миксеринен импорттук сап импорттоо намаз убактысы datetime импорттоо күнүнөн (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 if CurrTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play () mixer.music.get_busy () == Туура: CurrTime болсо улантыңыз == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () mixer.music.get_busy () == Туура: CurrTime болсо улантыңыз == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () mixer.music.get_busy () == Туура: CurrTime болсо улантыңыз == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Туура: CurrTime болсо улантыңыз == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () mixer.music.get_busy () == Туура: улантуу

Эгерде сиз кодду карап, аны мурунку жасаган нерселерибиз менен салыштырсаңыз, анда биз жаңы эч нерсе кылбаганыбызды көрөбүз, алгач керектүү китепканаларыбызды кошуп, анан чексиз укурукту ачтык. укурукта, биз дайыма намаздын убактысын жайгашкан жерибиз жана убакыт алкагыбыз менен эсептеп, бардык натыйжаны tmm өзгөрмөсүндө сактайбыз. андан кийин, биз ар бир намаз убактысын tmmден көз карандысыз өзгөрмөгө чейин сактайбыз. бул убакытты салыштырууга мүмкүндүк берет. Андан кийин, биз системага убакыт бөлүп, аны көз карандысыз өзгөрмөгө сактайбыз. акырында, биз системанын убактысын намаз убактысы менен салыштырууну улантабыз, эгерде система убактысы кайсы бир намаз убактысына дал келсе, анда Азан үнүн ойнойт.

13 -кадам: 4 -бөлүм: Көздүн жүзүн ишке ашыруу

4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу
4 -бөлүм: Көздүн жүзүн ишке ашыруу

Долбоордун жакшыраак көрүнүшү үчүн менде ЖКга сааттын жүзүн кошуу идеясы бар болчу, ошондуктан колдонуучуга жагымдуу көрүнөт (жакшы, жок дегенде буйрук сабынан жакшыраак), ошондуктан мен бир нече жүздү иштеп чыгуу үчүн дизайнер жалдадым. саат, ал эч кандай маалыматсыз бош болушу керек, анткени маалыматтар HTML аркылуу кошулуп, сааттардын дизайнын фон кылып, ал эми намаз убактысы сыяктуу башка маалыматтарды фондун үстүнө HTML элементтери катары кошууга болот.

Тилекке каршы, бул көрсөтмөнү жазууга жөндөмдүү болгондо, HTML боюнча менин билимим жана тажрыйбам өтө чектелген, ошондуктан мен көп нерселерди талкуулабайм, анткени мен туура эмес жолдо болоорумду билем жана андай эмес. элди чаташтыргысы келет. бирок JS жана HTMLде кичине тажрыйбаңыз болсо, бул жерден кантип улантууну билишиңиз керек. Буга чейин мен жалгыз жүздү (көк бет) жасадым. план боюнча 14 сааттык бет жасоо! Аптанын күнүмдүк 7 бети, дагы 7 башка тема. биринчи тема Азкар прокаты менен болушу керек, ал эми башка темада Азкардын ордуна Ислам GIFS болушу керек. карабастан, мен бардык үлгүлөрдү бул нускамага киргизем, андыктан аны жүктөп алсаңыз болот.

14 -кадам: 5 -бөлүм: Колдонуучу интерфейсин ишке ашыруу

5 -бөлүм: Колдонуучу интерфейсин ишке ашыруу
5 -бөлүм: Колдонуучу интерфейсин ишке ашыруу

Саякаттын акыркы бөлүмүндө, биз долбоорду мечитте же кандайдыр бир коомдук жайда ишке ашыргыбыз келсе, колдонуучуларга ыңгайлуу кылуу үчүн кээ бир кошумча өзгөртүүлөрдү киргизебиз. Биз мурда айткандай, ар бир шаарда намаздын өз убактысы бар жана бул проектти элдин кеңири чөйрөсүнө жеткиликтүү кылуу үчүн, биз колдонуучу интерфейсин түзөбүз, ошондуктан биз долбоорду иштеткенден кийин каалаган шаарыбызды жана теманы тандап алабыз.

Бул үчүн биз "TKinter" деп аталган python GUI китепканасын колдонобуз.

Бул мен Сауд Аравиясындагы беш шаарды, анын ичинде Мекке шаарын тандоо мүмкүнчүлүгүн берүү үчүн ишке ашырган код:

tkterди tk катары импорттоо

tkinter импортунан * tkinter импортунан ttk импортунун кодектерин импорттоо os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (өзүн, текст = "Жидда", бийиктик = 5, туурасы = 80, команда = self.open_jeddah1) өзүнчө. self.open_makkah1) self.button3 = Баскыч (өзүн, текст = "Эр -Рияд", бийиктик = 5, туурасы = 80, команда = self.open_riyadh1) self.button4 = Баскыч (өзүн, текст = "Мадина", бийиктик = 5, туурасы = 80, буйрук = self.open_madina1) self.button5 = Баскыч (өзүн, текст = "Qasim", бийиктик = 5, туурасы = 80, команда = өзүн.open_qasaim1) өзүнчө.button1.grid (катар = 0, мамыча = 1, columnspan = 2, жабышчаак = W+E+N+S) self.button2.grid (катар = 1, мамыча = 1, columnspan = 2, жабышчаак = W+E+N+S) self.button3.grid (катар = 2, мамыча = 1, columnspan = 2, жабышчаак = W+E+N+S) self.button4.grid (катар = 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 (өзүн өзү): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_riyadh1 (өзүн өзү): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_madina1 (өзүнчө): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (өзүнчө): 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 ()

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

15 -кадам: (Милдеттүү эмес): Динамик которгучун кошуу

(Милдеттүү эмес): Динамик которгучун кошуу
(Милдеттүү эмес): Динамик которгучун кошуу
(Милдеттүү эмес): Динамик которгучун кошуу
(Милдеттүү эмес): Динамик которгучун кошуу

Биз көргөндөй, намаз убактысы келгенде азан үнү ойногондо жана үн демейки үн чыгаруудан чыгат (HDMI же AV чыгаруу) жана биз аны HDMI чыгарууга коюп жаткандыктан, үн ЖКдан чыгат. бирок, эгерде биздин ЖК үнү жетишсиз болсочу? мисалы, эгер биз муну чыныгы мечиттин ичинде ишке ашыргыбыз келсе? кенен сырткы динамиктер менен? анда биз муну ишке ашыруу үчүн дагы бир Өтө оңой кадамды кошо алабыз. буга чейин курулган динамик үн системасы үчүн, биз аны күйгүзүп жана өчүрүшүбүз керек, жана буга чейин болгон микрофонду алып, ЖК спикерлеринин жанына коюшубуз керек.

Муну кылуу оңой. биз катуу сүйлөткүчкө туташкан мурдатан бар болгон мечиттин микрофонун колдонобуз, бизге raspberryPi бүт үн системасын КҮЙГӨН жана ӨЧҮРГӨН кубатты башкаруу үчүн керек болот. муну үчүн, бизге ССР: ТУРУКТУУ МАМЛЕКЕТТИК ЭСТАФЕТА колдонуу керек болот. реленин бул түрлөрү орточо көк релеге окшоп, коммутатордун ролун аткара алат, айырмасы SSRs ал аркылуу чоң өлчөмдөгү AC амперине туруштук бере алат, бул көк түстө колдонулбайт (көбүнчө максималдуу 10А) жана SSRs муктаждыктары 3 ордуна эки гана зым: DC+ жана DC- жана ушуну менен! ССРдин экинчи четинде биз спикер системасынын кубат кабелин туташтыра алабыз, ошондо биз СССРге чыңалуу берсек, ал динамик системасынын AC схемасын жабат же биз ачык схеманы түзүү үчүн чыңалууну өчүрөбүз, динамиктерди өчүрүү.

бир кармоо бар, RaspberryPi пиндери бизди көзөмөлдөө үчүн 5v эмес, 3.3v чыгарат. ошондуктан бизге RPi пинден сигналды алуу үчүн транзистор керек, ал эми 5V RPi пинден. бул үчүн бизге керек:

1-Катуу абал релеси (25Адан жогору нерсе жакшы)

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

3-220 Ohm каршылыгы

туташуу үчүн фризинг схемасын ээрчиңиз.

Эми кодго биз бул ишти аткара турган нерселерди кошобуз. Биринчиден, while циклине чейин, биз GPIO казыктарын инициализациялоо үчүн кээ бир саптарды кошобуз:

Импорттоо бөлүмүнө төмөнкүлөрдү кошуңуз:

GPO катары RPi. GPIO импорттоо

Убакыт циклинин алдында, төмөнкүлөрдү кошуңуз:

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

Эми, азгыруу командасы үчүн, биз релени күйгүзүп, 10 секунд күтүп, Азанды ойноп бүтүрүп, андан кийин релени өчүрүшүбүз керек. Биз эки гана сапты кошушубуз керек, биринчиси:

GPIO.output (ledPin, GPIO. HIGH)

time.sleep (10)

бул ар if сөзүнөн кийин кошулушу керек (ИДЕНТИЦИЯ МААНИЛҮҮ!), башка сап:

GPIO.output (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 () == Туура: GPIO.output улантуу (ledPin, GPIO. LOW)

Сунушталууда: