Агуулгын хүснэгт:
- Алхам 1: Бүлэг 1: RaspberryPI -ийг тохируулах, тохируулах
- Алхам 2: 1-1: Шаардлагатай файлуудыг татаж авах
- Алхам 3: 1-2: Raspbian системийг тохируулах
- Алхам 4: 1-3: Rpi тохиргоог тохируулахын тулд командын мөрийг ашиглана уу
- Алхам 5: Бүлэг 2: RTC модулийг суурилуулах, тохируулах, ашиглах
- Алхам 6: 2-1: Модулийн тохиргоо
- Алхам 7: 2-2: I2C интерфэйс
- Алхам 8: 2-3: ЗТТ-ийг турших
- Алхам 9: Бүлэг 3: Азан дохиоллын програм хийх
- Алхам 10: 3-1: Дуу тоглоцгооё
- Алхам 11: 3-2: Залбирлын цаг авах
- Алхам 12: 3-3: Эцсийн Азан дохиоллын кодыг хийх
- Алхам 13: Бүлэг 4: Харуулын царайг хэрэгжүүлэх
- Алхам 14: Бүлэг5: Хэрэглэгчийн интерфэйсийг хэрэгжүүлэх
- Алхам 15: (Заавал биш): Чанга яригчийг солих
Видео: RaspberryPi Исламын залбирлын цаг ба сэрүүлэг: 15 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:00
Дэлхийн өнцөг булан бүрт байгаа лалын шашинтнууд өдөр бүр таван удаа залбирдаг бөгөөд залбирал нь өдрийн тодорхой цагт байх ёстой. Манай гариг нарны эргэн тойронд эллипс хэлбэртэй байдаг тул нар мандах, унах цаг нь жилийн туршид өөр өөр байдаг бөгөөд энэ нь залбирлын цагийг үл тоомсорлодог тул залбирах цагийг лалын шашинтнуудад сануулах Исламын цаг бидэнд хэрэгтэй байдаг. өдөр.
Лалын шашинтай хүн бүр өдөр тутмын залбирлын цагийг интернетээр дамжуулан Исламын вэбсайт, лалын шашны хуанли эсвэл телевизээр үзэх боломжтой байдаг бөгөөд бидний ихэнх нь залбирлын цаг, залбирлын дохиолол өгөх чадвартай Исламын цагны төхөөрөмжтэй байдаг.. Гэхдээ бид өөрсдөө залбирлын цаг, дохиоллын төхөөрөмж хийвэл яах вэ!
Төсөл дээр ажиллаж эхлэхээсээ өмнө энэхүү зааварчилгааг уншиж байхдаа танд хэрэгтэй байж болох цөөн хэдэн зүйлийг анхаарч үзэх хэрэгтэй. Би Саудын Арабт амьдарч байгаа тул миний алхам, үнэт зүйлсийн зарим нь таныхаас өөр байх бөгөөд би ажлын явцад эдгээрийг тодорхой зааж өгөх болно. Би араб хэлээр интерфэйс хийснээс хойш араб үгсийг багтаасан алхамууд, зургууд байдаг, гэхдээ би үүнийг хэрхэн англи хэл дээр яаж хийхийг зааж өгөх болно, ингэснээр зурган дээрх араб үгс танд санаа зовох хэрэггүй. ямар ч хэлээр хийгдсэн (энэ үнэхээр гайхалтай!: D) Мөн англи хэл миний анхны хэл биш тул миний алдааг уучлаарай.
Манай төсөл рүү явцгаая! Энэхүү төсөл нь X Major үе шатанд хуваагдах бөгөөд 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 дэлгэц
Аливаа LCD хийх болно
4-Хулгана ба гар
тэгээд л ….. энэ !! Азан цаг, сэрүүлгээ өөрөө хийхийн тулд танд энэ л хэрэгтэй болно
Алхам 1: Бүлэг 1: RaspberryPI -ийг тохируулах, тохируулах
Эхний зүйлүүд Эхлээд! Бид түүнтэй ажиллахын тулд Raspberry pi бэлтгэх хэрэгтэй.
Raspberry pi бол компьютерээс өөр юу ч биш, RAM, ROM -тэй, CPU, GPU, I/O ……. Компьютер! яг л бидний тоглоом тоглож, вэб үзэж буйтай адил маш жижигхэн зүйл юм! Энэ нь бөөрөлзгөнө дээр төсөл хийх, хэрэгжүүлэх маш сайн сонголт болдог. бөөрөлзгөнө pi нь жижиг тул Windows эсвэл macOS гэх мэт асар их ачаалалтай үйлдлийн системийг ажиллуулж чаддаггүй маш хязгаарлагдмал үзүүлэлттэй тул бид төхөөрөмжийг ашиглахын тулд Linux -ийг үйлдлийн систем болгон ашиглах гэж байна. Бидний ашиглаж болох мянга мянган, хэдэн арван мянган Линукс дистрибьюторууд байдаг, гэхдээ бидний ашиглах гэж буй raspberrypi -д зориулагдсан Raspbian гэж нэг төгс хуваарийг төгс оновчтой болгосон.
Алхам 2: 1-1: Шаардлагатай файлуудыг татаж авах
Https://www.raspberrypi.org/software/operating-sy… албан ёсны Rasbian татаж авах хуудас руу орж Raspberry Pi OS-ийг Desktop файлтай татаж аваарай.
-Татаж авах явцдаа https://win32diskimager.org/ хаягаар орж win32DiskImager програмыг татаж аваад суулгаарай.
Татаж авсны дараа танд RaspberryPi OS агуулсан.img файл байх болно. Дараа нь SD санах ойн картаа компьютерт залгаарай (ихэвчлэн USB карт уншигчтай), win32diskimager програмыг ажиллуулна уу. SD санах ойд дүрсийг бичих алхамууд нь маш энгийн бөгөөд та 1- Санах ойн үсгээ сонгох 2-Татаж авсан OS файлуудаа сонгох, 3-дарж бичих! Та жагсаалтаас төхөөрөмжийн зөв үсгийг сонгосон бөгөөд санах ой хоосон байгаа эсэхийг шалгаарай, учир нь бичих дээр дарахад төхөөрөмж дээрх бүх зүйл устах болно гэдгийг анхааруулах болно. Тийм гэж дарж бичвэрийг баталгаажуулж, дуусгахыг хүлээнэ үү. энэ нь 20 хүртэл минут үргэлжилж магадгүй юм.
Үүнийг хийсний дараа та санах ойд Rapbian үйлдлийн системийг бүрэн ашиглах боломжтой бөгөөд үүнийг Rapberry Pi -д оруулах, Raspberry Pi -ийг HDMI -ээр дамжуулан монитор руу холбох, хулгана, гарыг USB -ээр холбох, эцэст нь хүч
Алхам 3: 1-2: Raspbian системийг тохируулах
Кабель ба хүчийг холбосны дараа OS асаалттай байгаа бөгөөд автоматаар дахин асах бөгөөд дараа нь Raspbian хэрэглэгчийн интерфэйсийг харуулах болно (цонхтой төстэй). Таны харж буй хамгийн эхний зүйл бол RaspberryPi -ийг анх удаа тохируулах алхамуудыг хийх цонх юм. цонх, алхамууд дараах байдалтай байна.
1-Эхний "Тавтай морил" цонхон дээр дарна уу
2-Дараагийн цонх нь таны байршлыг тохируулах болно. улс, хэл, цагийн бүсээ сонгоно уу. Үүний дараа Үйлдлийн системийн интерфейсийн хэл байх тул "Англи хэл ашиглах" -ыг шалгахыг зөвлөж байна. Та "АНУ -ЫН АНГЛИ ХЭЛНИЙ ТАВЧЛАГДАХ ХАЙРЛАГДАХ ШАГДАХ" -ыг шалгах ёстой.
3-Дараа нь, та бөөрөлзгөнөдөө нууц үг оруулахыг шаардах болно, энэ нь аюулгүй байдлын хувьд чухал ач холбогдолтой боловч бид энэ төслийн хувьд үүнийг өөрчлөхгүй хэвээр үлдээх болно. Анхдагч хэрэглэгчийн нэр, нууц үг нь:
хэрэглэгчийн нэр: pi
нууц үг: бөөрөлзгөнө
4-Дараагийн цонх raspberryPi-ийг таны WiFi сүлжээнд холбох болно. wifi нэрээ сонгоод wifi нууц үгээ оруулна уу
5-ийн дараа та бөөрөлзгөнө pi номын сан болон системийн файлуудыг шинэчлэхийг танаас хүсэх болно. Энэ алхам нь маш их цаг хугацаа шаардагдах болно (магадгүй хэдэн цагийн дараа) гэхдээ энэ нь шинэ бөөрөлзгөнө пи тохируулах бүрт маш чухал алхам болно.
6-Шинэчлэлт хийгдсэний дараа танаас системийг дахин эхлүүлэхийг танаас хүсэх болно. одоо үүнийг хий.
Агуу ажил! Одоо бидэнд шинэчилсэн систем байгаа бөгөөд системийг ажиллуулахын тулд бид өөр зүйл хийх шаардлагатай хэвээр байгаа боловч одоо LinuxCommand Line -ийг ашиглаж эхлэх болно.
Алхам 4: 1-3: Rpi тохиргоог тохируулахын тулд командын мөрийг ашиглана уу
Та системийн шинэчлэлтээс дахин ачаалж дуусмагц ачаалах ажил дууссаны дараа систем хэрэглэгчийн ширээний дэлгэцийг харуулна. Хэрэв та дэлгэцийн зүүн дээд хэсгийг харвал хэд хэдэн товчлуур, rpi цэс бүхий raspberryPi лого бүхий товчлуур, интернет браузер бөмбөрцөг хэлбэртэй, хавтасны товчлуурыг олж болно. Эцэст нь хэлэхэд хар дэлгэцийн цонхтой товчлуур нь линукс системийн хамгийн чухал товчлуур болох Command line юм. явж, тэр товчлуурыг дарахад хар цонх гарч ирэх болно.
Тушаалын мөр бол хүн бүр линукс системтэй хэрхэн харьцаж, ашиглахыг хэлдэг бөгөөд Windows нь зөвхөн бэлэвсэн эмэгтэйчүүдэд өөрийн гэсэн тушаалын мөртэй байдаг тул бид үүнийг байнга ашиглах шаардлагагүй байдаг. Linux -д энэ бол линукс хэрэглэгч бүрийн сурч, эзэмших ёстой үндсэн зүйл юм. командын мөрийг ашиглаж болно.. COMMANDS! Хар цонхонд таны харж буй зүйл бол хэрэглэгчийн бичиж командыг хүлээж буй командын мөр юм. Энэхүү гарын авлагад бид энэ төслийг хэрэгжүүлэхэд шаардлагатай бүх тушаалыг өгөх тул санаа зовох хэрэггүй.
Бидний ашиглах хамгийн анхны Линукс команд бол өөр тохиргооны тушаал бөгөөд одооноос эхлэн бүх тушаалыг кодын хайрцагт байрлуулах болно, ингэснээр та үүнийг энгийн алхмуудаас ялгах боломжтой болно. Гараа аваад дараахь зүйлийг бичээд enter товчийг дарна уу.
sudo raspi-config
Хэрэв та үүнийг зөв хийвэл дэлгэц нь цэнхэр болж, дунд нь саарал өнгийн жижиг хайрцаг байрлуулсныг харах болно (зураг харна уу). Бид үүнийг кодлохоосоо өмнө эцсийн тохиргоогоо хийх болно.
Одоо та энэ цэсийг удирдахын тулд гарны сумны товчлуурыг ашиглах хэрэгтэй болно.
1-Interface options >> I2C >> YES >> руу очоод enter дарна уу. Энэ нь I2c холбооны протоколыг идэвхжүүлсэн тул бид RTC ашиглах боломжтой болно
2-Нарийвчилсан сонголтууд руу очно уу >> Файлын системийг өргөжүүлэх.
мөн энэ цонхноос танд хэрэгтэй бүх тохиргоо. Үндсэн хуудсан дээр доошоо бууж "дуусгах" ба "YES" дээр дарж системийг дахин ачаална уу.
Системийг дахин ачаалж дуусмагц бид бүгд тохиргоог хийж дуусгах болно! төхөөрөмж том алхам хийхэд бэлэн боллоо! Дараагийн алхам бол RTC модулийг суулгаж, системд ашиглах явдал юм.
Алхам 5: Бүлэг 2: RTC модулийг суурилуулах, тохируулах, ашиглах
RTC (эсвэл Бодит цагийн цаг) модуль нь бага оврын батерейтай жижиг төхөөрөмж бөгөөд энэ нь нэрнээс нь шууд хамаардаг, Clocking! Тиймээс та үүнийг асаахын тулд цаг тасралтгүй ажиллаж, зогсдоггүй. яагаад бидэнд энэ хэрэгтэй байна вэ? За, бөөрөлзгөнө пи нь унтраасан даруйдаа цагийн мэдээллийг хадгалах ямар ч арга байдаггүй, ачаалах үедээ интернетэд холбогдохдоо цаг, огноогоо шинэчилдэг, гэхдээ асуудал бол бид үргэлж интернет холболтгүй байдаг. яагаад бидэнд RTC модуль хэрэгтэй байна. RTC нь бөөрөлзгөнө pi -ийн цаг болж ажиллах тул Rpi -ийг ачаалсны дараа RTC -ээс Огноо, цагийг авах бөгөөд ингэснээр RaspberryPi цаг үргэлж шинэчлэгдэх болно.
олон загварууд байдаг бөгөөд RTC -ийг хайж байдаг, DS1307 ба DS3231 байдаг. I2C протоколын холболттой байх үед та олж авсан RTC модулийг ашиглаж болно (та үүнийг модулийн тээглүүрээс SDA ба SCL тээглүүр олох боломжтой гэдгийг хэлж болно.
Энэхүү гарын авлагад дурдсанчлан би төсөлд тавьсан зорилгодоо хүрэхийн тулд бусад гарын авлага ашигласан бөгөөд энэхүү зааварчилгаа нь таныг удирдан чиглүүлж, энэ төслийг хэрэгжүүлэхийн тулд яг юу хийх ёстойг хэлж өгөх болно, гэхдээ хэрэв та өөрчлөх шаардлагатай эсвэл танд ямар нэг зүйлийг илүү гүнзгийрүүлэх шаардлагатай бол. алхам, би алхам бүрийн төгсгөлд илүү үр дүнтэй гарын авлагыг холбох болно.
RTC модулийг бэлэн болгосны дараа (толгойн зүүг гагнах, зайг асаах) та үүнийг RapberryPi тээглүүрт дараах байдлаар холбож болно.
RTC PIN ---------------- Rpi Pin
GND ==========> ПИН 6 (GND)
Vcc ===========> ПИН 1 (3.3V)
SDA ===========> ПИН 3 (SDA)
SCL ===========> PIN 5 (SCL)
эсвэл танд ямар RTC модуль байгаагаас хамааран та үүнийг RaspberryPi дээр шууд холбож болно (Зүү зөв эсэхийг шалгаарай !!! Хэрэв тийм биш бол Rpi/RTC -ийг гэмтээж болзошгүй)
RTC -ийг холбосны дараа Raspberry -ийг тохируулцгаая.
Алхам 6: 2-1: Модулийн тохиргоо
Эхлэхийн өмнө тушаалын мөрөнд очоод дараах зүйлийг бичнэ үү.
огноо
Энэ нь бөөрөлзгөнө дээрх одоогийн огноо, цагийг буцааж өгөх бөгөөд маш хэрэгтэй тушаалыг анхаарч, модуль ажиллаж байгаа эсэхийг шалгахын тулд одоогийн огноо, цагийг тэмдэглэх болно.
одоо тохиргоог эхлүүлээд Rpi сангуудыг нэг мөр болгон шинэчлэхийн тулд дараах зүйлийг бичнэ үү.
sudo apt-get update
sudo apt -get -y шинэчлэлт
Үүнийг хийсний дараа бид i2c модулийг идэвхжүүлэхийн тулд системийн файлуудаа өөрчлөх, RTC нэмэх, Nano нэртэй програм хангамжийг ашиглах файлын системийг өөрчлөх шаардлагатай байна. нано бол бэлэвсэн эхнэрүүдийн нэгэн адил үндсэндээ текст засварлагч юм. Тиймээс нано -гоор эхэлж, дараа нь файлын нэрийг өгсөн аливаа тушаал нано текст засварлагч дээр нээгдэнэ. Бид бас Sudo гэж нэрлэгддэг зүйлийг ашиглаж байсныг та анзаарсан, товчхондоо sudo нь энэ тушаалыг өгсөн хэрэглэгч өөр хэн нэгэн биш Төхөөрөмжийн эзэмшигч гэдгийг хэлдэг, засварлах гэх мэт давуу эрх олгодог линукс системийн баталгаа болдог. хэрэглэгчийг устгах. Жишээлбэл, хэрэв бид sudo -гүйгээр нано файл нээсэн бол бид тэр файлыг үзэх боломжтой байсан ч бид үүнийг засварлаж, устгаж чадахгүй.
Одоо бид модулийн файлыг өөрчлөх хэрэгтэй, үүнийг бичих замаар үүнийг хийж болно:
sudo нано /etc /модулиуд
Үүнийг хийсний дараа та энэ файлын агуулгыг олох болно (зураг харна уу). Сумны товчлуурыг ашиглан курсорыг текстийн төгсгөлд оруулаад дараахь зүйлийг нэмнэ үү.
snd-bcm2835
i2c-bcm2835 i2c-dev rtc-ds1307
Хадгалахын тулд CTRL+S, гарах бол CTRL+X дарна уу
Алхам 7: 2-2: I2C интерфэйс
Одоо бид RTC -ийг холбож, i2c -ийг идэвхжүүллээ, бүгдийг хамтдаа холбоё.
тушаалын мөрөнд дараахь зүйлийг оруулна уу.
i2cdetect -y 1
танд олон тооны хоосон зай өгөх болно, гэхдээ та хаа нэгтээ тоо байгааг анзаарах болно, энэ дугаар нь таны RTC модулийн хаяг юм. миний хувьд энэ нь 68. тэр тоог анхаарч үзээрэй. Хэрэв та энэ хоёр оронтой тоог харахгүй байгаа бол энэ нь СТӨ -ийг буруу холбосон гэсэн үг юм.
Одоо бид rc.local файлыг өөрчлөх хэрэгтэй бөгөөд ингэснээр ачаалах үед RTC модулийг идэвхжүүлж, огноо, цагийг системд хадгалах боломжийг олгоно. Эхлээд rc.local файлыг нээнэ үү.
sudo нано /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 ажиллаж байгаа эсэхийг шалгаж болно. эхлээд гүйх:
sudo hwclock -r
танд RTC модулийн огноо, цагийг буцааж өгөх болно. Хэрэв танд өөр зүйл өгвөл та алхамуудыг зөв хийсэн эсэхээ шалгаарай.
одоо, СТО -ны цаг, огноог өөрчлөхийн тулд бид эхлээд систем дээрх Огноо, цагийг өөрчлөх хэрэгтэй, дараа нь өөрчлөлтийг СТӨ -нд бичнэ үү. Үүнийг хийхийн тулд ажиллуулна уу:
sudo date -s "1997 оны 8 -р сарын 29 13:00:00"
Мэдээжийн хэрэг, enter дарахаасаа өмнө орон нутгийн цаг, огнооны дагуу огноо, цагийг өөрчилнө үү. 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: Азан дохиоллын програм хийх
Цаг хийх нь нэг зүйл, мэдээжийн хэрэг, бид цаг, залбирлын цагийг харж, цаг нь ирэхийг харж болно, гэхдээ залбирлын цагийг бидэнд мэдэгдэхийн тулд дуут дохиолол нэмж өгөх нь илүү дээр биш гэж үү? САЙН БОЛОХООР бид тэр дохиоллыг АЗАН -ийн дуу болгож өгдөг! үүнийг хэрхэн биелүүлж болохыг харцгаая.
Програмчлалын хувьд бид Python -ийг програмчлалын хэл болгон ашиглах болно, учир нь python нь RaspberryPi -тэй төгс нийцдэг. python дээр код файл хийхийн тулд бид текст файл нээхтэй адил зүйлийг хийдэг боловч одоо үүнийг.py болгон хадгалдаг. Хөтөлбөрийг ажиллуулахын тулд бидэнд бөөрөлзгөнө суулгасан python орчин хэрэгтэй болно, аз болоход Raspbian нь python болон python3 -ийг урьдчилан суулгасан болно! Тиймээс бидний хийх ёстой зүйл бол програмчлал юм. Энэхүү гарын авлагад бид хэлний талаар ярихгүй бөгөөд энэ нь хэрхэн ажилладаг, чиг үүргийг заахгүй, гэхдээ би танд шаардлагатай кодуудыг өгөх бөгөөд ингэснээр та төслийг хийж чадна.
Эхлэхийн тулд бидэнд илүүд үздэг азан дууны дууны файл хэрэгтэй (. WAV) бидэнд аль-фажр азан, нөгөө нь ердийн азан гэсэн хоёр файл хэрэгтэй. Үүнийг авсны дараа үүнийг зөөгч дээр тавиад raspberrypi -ийн ширээний компьютер дээр хуулна уу.
Одоо бидэнд файлууд байгаа, би raspberryPi дээр дууны аудио тоглуулах арга хайж байсан бөгөөд үүнийг хийх олон арга байгаагүй, гэхдээ надад хэрэгтэй зүйлээ өгсөн стековер урсгалаас энэ хариултыг олсон.
stackoverflow.com/questions/20021457/playi…
Би энэ аргыг туршиж үзсэн бөгөөд энэ нь ажилласан! Тиймээс бид энэ аргыг төсөл дээрээ хэрхэн хэрэгжүүлэхийг харцгаая …
Алхам 10: 3-1: Дуу тоглоцгооё
Нэгдүгээрт, ширээний компьютерт дараах байдлаар очно уу.
cd Ширээний компьютер
Дараа нь шинэ python код файлыг дараах байдлаар хий.
sudo нано AzanPlay.py
Энэ нь AzanPlay нэртэй шинэ файлыг python файлын өргөтгөлтэй болгох болно.py, бидэнд кодоо бичих боломжийг олгох хоосон хар дэлгэц байх болно. зүгээр л эдгээр мөрүүдийг бичээрэй (энэ нь 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 портоосоо дуу гарах болно. Хэрэв та үүнийг LCD чанга яригчаас сонсохгүй бол чихэвчийг AUX -д залгаад шалгана уу.
Алхам 11: 3-2: Залбирлын цаг авах
Бидний мэдэж байгаагаар залбирлын цаг дэлхийн өөр өөр газраас өөр өөр байдаг бөгөөд тодорхой байршилд ч гэсэн олон жилийн туршид өөр өөр байдаг тул залбирлын цагийг системд байнга шинэчилж байх арга замыг хайж олох хэрэгтэй гэсэн үг юм. Үүнийг зөв болгохын тулд бидэнд тодорхой, маш нарийн төвөгтэй функц, тооцоо хэрэгтэй болно. Аз болоход манай ах Хамид Зарраби-Задех бидэнд хэрэгтэй бүх функцийг нэг функц болгон бүтээсэн бөгөөд энэ нь бидний байршил, одоогийн цаг хугацаанаас хамаарч цагийг хялбархан авах боломжийг олгодог. номын сан болон эх файлуудыг эндээс олж болно
praytimes.org/
Тиймээс, бид эдгээр гайхалтай файлуудыг ашиглан залбирлынхаа цагийг авч, системд хэрэгжүүлэх болно. Нэгдүгээрт, кодыг вэбсайтаас татаж аваад / adhan / хавтсанд оруулна уу (Бидэнд JS болон Python код хэрэгтэй).
Одоо тэр хавтас руу ороод номын санг шалгаж, юу хийж чадахыг үзье.
CD азан
тэнд бид функцийг туршиж үзэхийн тулд python дээр шинэ туршилтын файл хийх шаардлагатай байна.
sudo нано тестAd.py
дотор энэ кодыг бичнэ үү:
залбирах цагийг импортлох
datetime импортын огнооноос tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) хэвлэх (tmm)
Файлыг хадгалахаасаа өмнө LATITUDE -ийг LONGTITUDE -тэй адил Latitude байршлаараа өөрчилж, GMT -ийг цагийн бүс болгон өөрчлөх хэрэгтэй. миний хувьд энэ нь:
tmm = praytimes. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)
хэвлэх (tmm)
Эцэст нь CTRL-S ба CTRL-X, дараа нь кодыг ажиллуулна уу.
python тестAd.py
Эцэст нь хэлэхэд, өнөөдөр залбирах цагийг таны байршлын дагуу буцааж өгөх болно.
{'isha': '18: 58 ',' asr ': '15: 22', 'нар жаргах': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' шөнө дунд ': '00: 17', 'мандах': '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'))) 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 () == Үнэн: CurrTime == ASR: mixer.init () mixer.music.load ('/home/pi/Ширээний/ 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 () == Үнэн: үргэлжлүүлэх
Хэрэв та кодыг хараад өмнөх хийсэн зүйлтэйгээ харьцуулж үзвэл бид тийм ч их шинэ зүйл хийгээгүй, эхлээд шаардлагатай номын сангаа оруулаад дараа нь хязгааргүй хүрд нээсэн болно. Бид залбирлын цагийг байршил, цагийн бүсээр байнга тооцоолж, үр дүнг tmm хувьсагч хэлбэрээр хадгалдаг. Дараа нь бид залбирах цаг бүрийг tmm -ээс бие даасан хувьсагч хүртэл хадгалдаг. Энэ нь цаг хугацааг харьцуулах боломжийг бидэнд олгоно. Дараа нь бид системийн цагийг аваад бие даасан хувьсагчаар хадгалдаг. Эцэст нь бид системийн цагийг залбирлын цагтай харьцуулж үздэг, хэрвээ системийн цаг нь залбирлын аль ч цагтай таарч байвал энэ нь Азан дууг тоглуулах болно.
Алхам 13: Бүлэг 4: Харуулын царайг хэрэгжүүлэх
Төслийг илүү сайн харагдуулахын тулд би LCD дэлгэц дээр цагны нүүр нэмэх санаа төрсөн бөгөөд энэ нь хэрэглэгчдэд сайхан харагдаж байна (ядаж командын мөрөөс илүү дээр юм), тиймээс би олон нүүрний загвар зохион бүтээх дизайнер хөлсөлсөн. Цаг нь өгөгдөлгүй хоосон байх ёстой, учир нь өгөгдлийг HTML -ээр оруулах ёстой бөгөөд энэ нь цагны загварыг арын дэвсгэр болгож, залбирлын цаг гэх мэт бусад өгөгдлийг арын дээр HTML элемент болгон нэмж болно.
Харамсалтай нь энэхүү зааварчилгааг бичиж байх үед миний HTML мэдлэг, туршлага маш хязгаарлагдмал байгаа тул би буруу зүйл хийх болно гэдгээ сайн мэдэж байгаа болохоор тийм ч их дэлгэрэнгүй ярихгүй. хүмүүсийг төөрөгдүүлэхийг хүсч байна. гэхдээ хэрэв та JS болон HTML -ийн талаар бага ч гэсэн туршлагатай бол энэ үеэс хэрхэн үргэлжлүүлэхээ мэдэх хэрэгтэй. Би одоог хүртэл ганц нүүр (цэнхэр) хийлээ. 14 цагны нүүр хийх төлөвлөгөөтэй байна! Долоо хоногийн 7 нүүр царай, өөр 7 нь өөр сэдэв юм. Эхний сэдэв нь Азкар гулсмал байх ёстой бөгөөд нөгөө сэдэв нь Азкарын оронд Исламын-g.webp
Алхам 14: Бүлэг5: Хэрэглэгчийн интерфэйсийг хэрэгжүүлэх
Аялалынхаа сүүлийн бүлэгт бид төслийг сүм хийд эсвэл олон нийтийн газар хэрэгжүүлэхийг хүсч байгаа тохиолдолд төслийг хэрэглэгчдэд ээлтэй болгох үүднээс нэмэлт өөрчлөлт оруулах болно. Өмнө нь хэлсэнчлэн хот бүр залбирах цаг хугацаатай байдаг бөгөөд энэхүү төслийг хүмүүст илүү өргөн хүрээнд нэвтрүүлэхийн тулд бид хэрэглэгчийн интерфэйсийг хийх бөгөөд ингэснээр төслийг асаахад хүссэн хот, сэдвийг сонгох боломжтой болно.
Үүнийг хийхийн тулд бид "TKinter" нэртэй python GUI номын санг ашиглах болно.
Энэ бол Саудын Арабын Макка зэрэг таван хотын аль нэгийг сонгох сонголтыг өгөх зорилгоор миний хэрэгжүүлсэн код юм.
tkinter -ийг tk болгон импортлох
tkinter импортоос * tkinter импортоос ttk импортын кодек импортлох os class karl (Frame): def _init _ (өөрөө): tk. Frame._ init _ (өөрөө) self.pack () self.master.title ("Азан цаг") өөрөө. button1 = Товчлуур (өөрөө, текст = "Жидда", өндөр = 5, өргөн = 80, тушаал = өөрөө.open_jeddah1) өөрөө.товч2 = Товч (өөрөө, текст = "Макка", өндөр = 5, өргөн = 80, тушаал = self.open_makkah1) self.button3 = Товч (өөрөө, текст = "Эр -Рияд", өндөр = 5, өргөн = 80, тушаал = өөрөө.open_riyadh1) өөрөө.товх4 = Товч (өөрөө, текст = "Мадина", өндөр = 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, columnspan = 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 (өөрөө): 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 (өөрөө): 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 ()
Код том харагдаж магадгүй, гэхдээ засварлах нь маш хялбар юм. Бид үндсэндээ шинэ цонх гаргаж, таван нэр товчлуур тавьж, товчлуур дарах бүрт таван функцийг тодорхойлсон. Та товчлуурыг дарсны дараа програм нь хотуудын фолдерт харгалзах HTML файлыг нээх бөгөөд үүнийг хотын HTML бүр залбирах цаг () авахад хотын координаттай болно. Та товчлуурыг дарсны дараа питон код нь хром хөтөч ашиглан HTML файлыг нээх линукс кодыг өдөөх бөгөөд та бүтэн цагийн сонголтыг асаахад цагийн нүүрийг харуулахад бэлэн болно.
Алхам 15: (Заавал биш): Чанга яригчийг солих
Бидний харж байгаагаар залбирах цаг ирэхэд Азан дуу тоглож, дуу нь үндсэн дууны гаралтаас (HDMI эсвэл AV гаралт) гарч ирдэг бөгөөд үүнийг HDMI гаралт дээр байрлуулж байгаа тул дуу нь LCD дэлгэцээс гарах болно. гэхдээ бидний LCD дуу хангалтгүй байвал яах вэ? Жишээлбэл, хэрэв бид үүнийг жинхэнэ сүмд хэрэгжүүлэхийг хүсч байвал яах вэ? өргөн гадна чанга яригчтай юу? Дараа нь бид үүнийг хийх маш хялбар алхамыг нэмж болно. аль хэдийн баригдсан чанга яригчийн дууны системийн хувьд бид үүнийг асааж, унтрааж, одоо байгаа микрофоноо аваад LCD чанга яригчийн хажууд тавих хэрэгтэй.
Ингэх нь амархан. Бид чанга яригчтай холбогдсон сүмийн микрофоныг ашиглах болно, бидэнд дууны системийг бүхэлд нь асааж, унтраах хүчийг хянахын тулд raspberryPi хэрэгтэй болно. Үүнийг хийхийн тулд бид SSR: SOLID STATE RELAY ашиглах шаардлагатай болно. Эдгээр төрлийн реле нь дундаж цэнхэр релений нэгэн адил унтраалгын үүргийг гүйцэтгэдэг бөгөөд ялгаа нь SSR нь цэнхэр (ихэвчлэн хамгийн ихдээ 10А) -д ашиглагддаггүй их хэмжээний AC гүйдлийг тэсвэрлэх чадвартай байдаг. 3-ийн оронд зөвхөн хоёр утас: DC+ ба DC- тэгээд л боллоо! SSR -ийн нөгөө талд бид чанга яригч системийн тэжээлийн кабелийг холбож болно, ингэснээр бид SSR -д хүчдэл өгөхөд чанга яригч системийн AC хэлхээг хаах болно, эсвэл бид нээлттэй хэлхээ хийхийн тулд хүчдэлийг хаадаг. чанга яригчийг унтраах.
RaspberryPi тээглүүр нь SSR -ийг хянах шаардлагатай 5v биш харин 3.3v гаралт юм. Тиймээс бидэнд RPi зүүгээс дохио авахын тулд транзистор хэрэгтэй бөгөөд RPi 5v зүүгээс 5V хэрэгтэй. Үүнийг хийхийн тулд бидэнд хэрэгтэй:
1-Хатуу төлөвт буухиа (25А-аас дээш бүх зүйл сайн)
2-2n2222 npn транзистор
3-220 ом эсэргүүцэл
холбохын тулд fritzing хэлхээг дагана уу.
одоо кодонд бид үүнийг ажиллуулах зарим зүйлийг нэмж оруулах болно. Нэгдүгээрт, while давталтын өмнө бид GPIO тээглүүрийг эхлүүлэхийн тулд хэдэн мөр нэмж оруулах болно.
Импорт хэсэгт дараахь зүйлийг нэмнэ үү.
RPi. GPIO -г GPIO болгон импортлох
Хугацаа давталтын өмнө дараахийг нэмнэ үү.
GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (Худал) реле = 40 GPIO.setup (ledPin, GPIO. OUT)
Одоо, Azan командыг тоглуулах бүрт бид реле асааж, 10 секунд хүлээгээд Azan тоглож дуусаад реле унтрах хэрэгтэй. Бид зөвхөн хоёр мөр нэмэх шаардлагатай бөгөөд эхнийх нь:
GPIO. гаралт (ledPin, GPIO. HIGH)
цаг унтах (10)
if гэсэн бүх мэдэгдлийн дараа үүнийг оруулах ёстой (IDENTATION нь чухал юм!), нөгөө мөр нь:
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)
Зөвлөмж болгож буй:
Содтой лаазнаас хийсэн хос хонх сэрүүлэг: 7 алхам (зурагтай)
Сода лаазнаас хийсэн хос хонх сэрүүлэг: Энэхүү зааварчилгаа нь содны лаазнаас хос хонх сэрүүлгийг хэрхэн яаж хийхийг харуулсан болно. Төсөлд бэх арилгасан содын лаазыг ашигладаг. Энэхүү сэрүүлгийг бүрэн ажиллагаатай болгохын тулд DIY кварцын цагны модулийг нэгтгэсэн
Санах ойн таавар сэрүүлэг: 3 алхам (зурагтай)
Санах ойн таавар сэрүүлэгтэй цаг: Энэ бол сэрүүлгийн цаг бөгөөд энэ нь сэрүүлгийн дууг зогсоохын тулд шийдэх ёстой жижиг санах ойн тоглоом байдаг гэсэн үг юм! Дүгнэж хэлэхэд энэ цаг нь өглөө сэрүүн байгаа хүмүүст зориулагдсан болно. Энэ нь 3 LED -тэй бөгөөд товчлууруудын аль нэгийг дарахад дохиолол асах болно
Бүгд нэг дижитал хронометр (цаг, таймер, сэрүүлэг, температур): 10 алхам (зурагтай)
Бүгд нэг дижитал хронометрт (Цаг, Таймер, Сэрүүлэг, Температур): Бид өөр тэмцээнд зориулж таймер хийхээр төлөвлөж байсан боловч хожим нь бас цаг (RTC -гүй) хэрэгжүүлсэн. Бид програмчлалд орохдоо төхөөрөмжид илүү олон функц ашиглах сонирхолтой болж, DS3231 RTC -ийг нэмж дуусгасан
IR телевизийн алсын удирдлагатай хоёр сэрүүлэг, температурын хяналт бүхий Big Arduino LCD цаг: 5 алхам
IR телевизийн алсын удирдлагатай хоёр дохиолол, температурын хяналт бүхий том Arduino LCD цаг
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээ: 13 алхам (зурагтай)
Хуучин сэрүүлэг, Arduino ашиглан цаг агаарын урьдчилсан мэдээний цаг: Надад эвдэрсэн сэрүүлэгтэй цаг байсан бөгөөд үүнийг цаг, цаг агаарын урьдчилсан мэдээний станц болгон хөрвүүлэх санаа төрсөн бөгөөд энэ төслийн хувьд танд хэрэгтэй болно: Хуучин дугуйны сэрүүлэгтэй цаг Arduino Nano BME280 мэдрэгч модуль ( температур, чийгшил, даралт) LCD дэлгэц