Sisukord:

RaspberryPi islami palvete vaatamine ja äratus: 15 sammu (piltidega)
RaspberryPi islami palvete vaatamine ja äratus: 15 sammu (piltidega)

Video: RaspberryPi islami palvete vaatamine ja äratus: 15 sammu (piltidega)

Video: RaspberryPi islami palvete vaatamine ja äratus: 15 sammu (piltidega)
Video: RPI OFFICIAL THE Real PIcture OF ISLAM 2024, Juuni
Anonim
RaspberryPi islami palvete kell ja äratus
RaspberryPi islami palvete kell ja äratus
RaspberryPi islami palvete kell ja äratus
RaspberryPi islami palvete kell ja äratus

Moslemitel üle maailma on iga päev viis palvet ja iga palve peab toimuma kindlal kellaajal. Kuna meie planeet liigub elliptiliselt ümber päikese, mis muudab päikese tõusmise ja langemise ajad aastaringselt erinevaks, muudab see ka palveaja ebaühtlaseks, mistõttu vajame islami kella, mis tuletaks meile moslemitele meelde meie palveaegu päev.

Igal moslemil on võimalus pääseda igapäevasele palveaja ilmale islami Interneti -veebisaitide, kohalike islami kalendrite või isegi televiisori kaudu ning enamikul meist on islami kellaseadmed, millel on palveaja andmise funktsioonid, samuti palvehäired. Aga mis siis, kui me teeksime oma palvevaatamise ja äratuse seadme!

Enne projektiga alustamist on vähe kaalutlusi, mis võivad teile selle juhendi lugemisel kasulikud olla. Ma elan Saudi Araabias, nii et mõned minu sammud ja väärtused erinevad teie omadest ning ma viitan neile töö käigus selgesõnaliselt. On samme ja pilte, mis võivad sisaldada araabiakeelseid sõnu, kuna liidese tegin araabia keeles, kuid toon välja ka selle, kuidas seda teha inglise keeles, nii et ärge laske piltidel olevatel araabiakeelsetel sõnadel teid üldse muretseda. mis tahes keeles (mis on fantastiline!: D) Palun vabandage ka minu kirjavigade pärast, sest inglise keel pole mu esimene keel.

Meie projekti juurde! See projekt jaguneb X -peamiseks etapiks, mis saab X -nda sammu lõpuks oma projekti kenaks ja valmis! Sammud on järgmised:

1-RaspberryPi seadistamine ja ettevalmistamine

2-RTC mooduli paigaldamine

3-Azani häireprogrammi koostamine

4-Kellade rakendamine

5-kasutajaliidese loomine ja

Nagu iga projekti puhul, peame kõigepealt ette valmistama vajalikud osad. selle projekti jaoks vajalikud osad on järgmised:

1-RaspberryPi arvutikomplekt Amazon USA || Amazon KSA

Saate kasutada mis tahes Rpi versiooni, veenduge, et sellel oleks Wifi. Kasutasin Rpi3B+

2-RTC reaalajas kella moodul Amazon USA || Amazon KSA

Võite kasutada mis tahes RTC mooduli mudelit, veenduge, et sellel oleks I2C

3-LCD monitor

Iga LCD teeb seda

4-hiir ja klaviatuur

ja see ongi kõik!! See on kõik, mida vajate oma Azani kella ja äratuse tegemiseks

Samm: peatükk 1: RaspberryPI seadistamine ja konfigureerimine

Peatükk 1: RaspberryPI seadistamine ja konfigureerimine
Peatükk 1: RaspberryPI seadistamine ja konfigureerimine

Esimesed asjad kõigepealt! Sellega töötamiseks peame valmistama ette vaarika pi.

Vaarika pi pole midagi muud kui arvuti, sellel on RAM ja ROM, sellel on protsessor, GPU, I/O ……. Arvuti! täpselt nagu see, millega me mänge mängime ja veebis sirvime, ainus oluline asi on see, et see on väga väike! mis teeb vaarikast väga hea valiku projektide tegemiseks ja elluviimiseks. kuna vaarika pi on väike, on selle spetsifikatsioonid väga piiratud, kuna see ei saa kasutada suurt nõudlikku operatsioonisüsteemi, näiteks aknad või macOS, selle asemel kasutame seadme kasutamiseks operatsioonisüsteemina Linuxit. meil on tuhandeid, kui mitte kümneid tuhandeid Linuxi distributsioone, mida saaksime kasutada, kuid üks täiuslik distro on ideaalselt optimeeritud spetsiaalselt meie kasutatava vaarika jaoks, mida nimetatakse Raspbianiks.

Samm: 1-1: laadige alla vajalikud failid

1-1: laadige alla vajalikud failid
1-1: laadige alla vajalikud failid
1-1: laadige alla vajalikud failid
1-1: laadige alla vajalikud failid
1-1: laadige alla vajalikud failid
1-1: laadige alla vajalikud failid

-Minge ametlikule Rasbiani allalaadimislehele aadressil https://www.raspberrypi.org/software/operating-sy… ja laadige alla töölauafailiga Raspberry Pi OS

-Allalaadimise ajal minge aadressile https://win32diskimager.org/ ning laadige alla ja installige win32DiskImager, saate kasutada mis tahes pilditöötlustarkvara, mis teile meeldib

kui allalaadimine on tehtud, on teil.img -fail, mis sisaldab RaspberryPi OS -i. seejärel ühendage oma SD -mälukaart arvutiga (tavaliselt USB -kaardilugejaga) ja käivitage tarkvara win32diskimager. Kujutise SD-mällu põletamise sammud on väga lihtsad, peate lihtsalt 1- Valige oma mälutäht 2-valige allalaaditud OS-failid ja 3-klõpsake kirjutama! Veenduge, et olete loendist valinud õige seadme tähe ja teie mälu on tühi, sest kirjutamise vajutamisel edendatakse teid hoiatusega, mis ütleb teile, et kõik seadmes olevad andmed kustutatakse! Kirjutamise kinnitamiseks vajutage jah ja oodake, kuni see lõpeb. selleks võib kuluda kuni 20 minutit.

Kui see on tehtud, on teil täielik Rapbiani operatsioonisüsteem mälus, võite minna ja panna see Rapberry Pi -sse, ühendada Raspberry Pi monitoriga HDMI kaudu, ühendada hiir ja klaviatuur USB kaudu ning lõpuks ühendada võimsus.

Samm 3: 1-2: Raspbiani süsteemi konfigureerimine

Pärast kaablite ja toite ühendamist näete, et operatsioonisüsteem on sisse lülitatud, see taaskäivitub automaatselt ja seejärel kuvatakse Raspbiani kasutajaliides (mis näeb välja nagu aknad). esimene asi, mida näete, on teretulnud aken, mis viib teid läbi RaspberryPi esmakordse konfigureerimise. aknad ja sammud on järgmised:

1-Vajutage esimeses "Tere tulemast" aknas järgmist

2-Järgmine aken on teie asukoha konfigureerimine. valige oma riik, keel ja ajavöönd. pärast seda on tungivalt soovitatav kontrollida "Kasuta inglise keelt", kuna see on operatsioonisüsteemi liidese keel. PEAB KONTROLLIMA "USA INGLISE KLAVENDI KÄITLUSKARTI" TÖÖTAMISEKS VAJAME INGLISE KLAPPI!

3-Järgmisena palutakse teil sisestada oma vaarika parool, see on turvalisuse seisukohalt oluline, kuid jätame selle projekti jaoks muutmata. pange tähele, et vaikimisi kasutajanimi ja parool on:

kasutajanimi: pi

parool: vaarikas

4-Järgmine aken ühendab raspberryPi teie WiFi-võrguga. valige oma wifi nimi ja sisestage oma wifi parool

Järgmisena palutakse teil värskendada vaarika pi teegid ja süsteemifailid. see samm võtab tohutult aega (võib -olla tundidega), kuid see on väga oluline samm iga kord, kui uus vaarika pi on seadistamisel.

6-kui värskendus on tehtud, palutakse teil süsteem taaskäivitada. tehke seda nüüd.

Suur töö! Nüüd on meil uuendatud süsteem, peame süsteemi töötamiseks veel midagi tegema, kuid nüüd hakkame kasutama LinuxCommand Line'i.

Samm 4: 1-3: Rpi-sätete seadistamiseks käsurea kasutamine

1-3: Rpi-sätete seadistamiseks käsurea kasutamine
1-3: Rpi-sätete seadistamiseks käsurea kasutamine
1-3: Rpi-sätete seadistamiseks käsurea kasutamine
1-3: Rpi-sätete seadistamiseks käsurea kasutamine
1-3: Rpi-sätete seadistamiseks käsurea kasutamine
1-3: Rpi-sätete seadistamiseks käsurea kasutamine

Kui olete süsteemi värskendusest taaskäivitamise lõpetanud, kuvab süsteem pärast käivitamist kasutaja töölaua. Kui nüüd vaadata ekraani vasakus ülanurgas, leiate mõned nupud, nupu raspberryPi logoga, mis on Rpi menüünupp, gloobuse kujuga Interneti-brauser, kaustade nupp, mis on…..kaustad ja lõpuks musta ekraani aknaga nupp, mis on mis tahes linuxi süsteemi kõige olulisem nupp, käsurida. mine ja vajuta seda nuppu, näed musta akent.

Käsurida on see, kuidas kõik suhtlevad ja kasutavad linuxi süsteemi, nii nagu Windowsil on oma käsurida ainult lesknaistel, keda meil pole vaja väga sageli kasutada. Linuxis on see põhiline asi, mida iga Linuxi kasutaja peab õppima ja valdama. käsurida saavad kasutada…. KOMANDID! see, mida näete mustas aknas, on käsuviip, mis ootab kasutaja käsu kirjutamist ja täitmist. selles juhendis anname kogu käsu, mida selle projekti teostamiseks vajate, nii et ärge muretsege.

esimene Linuxi käsk, mida hakkame kasutama, on teine konfiguratsioonikäsk, pange tähele, et nüüdsest pannakse kõik käsud koodikasti, nii et saate seda tavalistest sammudest eristada. Tooge oma klaviatuur ja tippige järgmine ja vajutage sisestusklahvi:

sudo raspi-config

Kui teete seda õigesti, näete, et ekraan muutus siniseks ja keskel oli hall väike kast (vt pilti). kasutame seda lõpliku konfiguratsiooni tegemiseks enne kodeerimise alustamist.

nüüd peate selles menüüs navigeerimiseks kasutama klaviatuuri nooleklahve.

1-Avage liidese valikud >> I2C >> JAH >> vajutage sisestusklahvi. see lubab I2c sideprotokolli, et saaksime kasutada RTC -d

2 Avage Täpsemad valikud >> Laienda failisüsteemi.

ja see on kogu konfiguratsioon, mida sellest aknast vajate. avalehel minge alla ja vajutage süsteemi taaskäivitamiseks sisestusklahvi "Lõpeta" ja "JAH".

Kui süsteem on taaskäivitamise lõpetanud, oleme kõik konfigureerimise lõpetanud! seade on suurte sammude jaoks valmis! Järgmine samm on RTC mooduli installimine ja selle kasutamine koos süsteemiga.

5. samm: Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine

Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine
Peatükk 2: RTC -mooduli paigaldamine, konfigureerimine ja kasutamine

RTC (või reaalajas kella) moodul on väike seade, millel on väike aku, see teeb seda, mida nimi viitab, Clocking! nii et kui te selle toiteallikast lahti ühendate, töötab kell edasi ja ei peatu. miks me seda vajame? noh, vaarika piil pole tõepoolest ühtegi meetodit kella andmete salvestamiseks pärast selle väljalülitamist, see sõltub kuupäeva ja kellaaja värskendamiseks alglaadimisel Interneti -ühenduse loomisest, kuid probleem on selles, et meil pole alati Interneti -ühendust ja see Seetõttu vajame RTC moodulit. RTC toimib vaarika pi kellana, nii et kui Rpi on käivitatud, võtab see RTC -lt kuupäeva ja kellaaja, mis hoiab RaspberryPi aega pidevalt uuendatud.

on mitmeid mudeleid ja otsib RTC -d, seal on DS1307 ja DS3231. saate kasutada mis tahes leitud RTC -moodulit, kui sellel on I2C -protokolli side (võite märkida, et leiate mooduli tihvtidelt SDA- ja SCL -tihvtid).

nagu midagi muud selles juhendis, kasutasin ma oma projekti eesmärgi saavutamiseks ka teisi juhendeid, see juhendab teid ja ütleb teile täpselt, mida selle projekti tegemiseks teha, kuid kui teil on vaja muuta või vajate rohkem põhjalikkust samme, lisan iga sammu lõpus viljakama juhendi.

Kui olete oma RTC mooduli valmis saanud (jootke päise tihvtid ja pange aku sisse), saate selle ühendada RapberryPi tihvtidega järgmiselt.

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

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

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

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

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

või sõltuvalt sellest, millise RTC -mooduli saite, saate selle otse RaspberryPi külge kinnitada (veenduge, et tihvtid on õiged !!! kuna vastasel juhul võite kahjustada Rpi/RTC -d)

Kui olete RTC ühendanud, seadistame Vaarika.

6. samm: 2-1: mooduli seadistamine

2-1: mooduli seadistamine
2-1: mooduli seadistamine
2-1: mooduli seadistamine
2-1: mooduli seadistamine

Enne alustamist minge käsureale ja tippige:

kuupäev

See annab vaarika praeguse kuupäeva ja kellaaja tagasi, võtab selle väga kasuliku käsu teadmiseks ja märgib praeguse kuupäeva ja kellaaja, et saaksime kontrollida, kas moodul töötab või mitte.

Nüüd alustame seadistamist, tippige Rpi teekide värskendamiseks üks rida korraga:

sudo apt-get update

sudo apt -get -y täiendus

kui see on tehtud, peame muutma süsteemifaile, et lubada i2c moodul ja lisada RTC, et muuta failisüsteemi, mida me kasutame tarkvara nimega Nano. nano on kerge sisseehitatud tarkvara, mis on põhimõtteliselt tekstiredaktor, täpselt nagu leskede puhul. nii et iga käsk, mis algab nano -ga, millele järgneb failinimi, avab selle faili nano -tekstiredaktoris. olete märganud, et kasutasime ka midagi nimega Sudo, lühidalt öeldes toimib sudo Linuxi tagatisena, mis ütleb süsteemile, et selle käsu teinud kasutaja on seadme omanik, mitte keegi teine, ja annab selliseid õigusi nagu redigeerimine/ kustutamine kasutajale. näiteks kui me avasime nano -faili ilma sudo -ta, oleks meil võimalik seda faili vaadata, kuid me ei saa seda muuta ega kustutada.

Nüüd peame muutma moodulifaili, saame seda teha, tippides:

sudo nano /etc /modules

kui olete seda teinud, leiate selle faili sisu (vt pilti). kasutage nooleklahve kursori viimiseks teksti lõppu ja lisage järgmine:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

salvestamiseks vajutage CTRL+S ja väljumiseks CTRL+X

Samm 7: 2-2: I2C liides

2-2: I2C liides
2-2: I2C liides

Nüüd ühendasime RTC ja lubasime i2c, ühendame kõik kokku.

tippige käsureale järgmine:

i2cdetect -y 1

teile antakse hulk tühikuid, kuid märkate, et kuskil on number, see number on teie RTC -mooduli aadress. minu puhul on see 68. võtke see number teadmiseks. kui te seda kahekohalist numbrit ei näe, tähendab see, et olete tõenäoliselt RTC -d valesti ühendanud.

nüüd peame rc.local faili muutma, et saaksime RTC mooduli alglaadimisel lubada ja lasta sellel süsteemi kuupäev ja kellaaeg salvestada. kõigepealt avage rc.local fail:

sudo nano /etc/rc.local

Enne rida exit0 lisage järgmine:

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

hwclock -s

kus 0x68 on teie seadme i2c -aadress. kui olete lõpetanud, vajutage CTRL+S CTRL+X, seejärel taaskäivitage süsteem järgmiselt.

sudo taaskäivitamine

8. samm: 2-3: RTC testimine

2-3: RTC testimine
2-3: RTC testimine

Kui süsteem on taaskäivitatud, saame kontrollida, kas RTC töötab või mitte. kõigepealt jookse:

sudo hwclock -r

teile antakse RTC moodulis tagasi kuupäev ja kellaaeg. kui teile antakse midagi muud, veenduge, et olete toimingud õigesti teinud.

RTC kellaaja ja kuupäeva muutmiseks peame esmalt muutma süsteemi kuupäeva ja kellaaega ning seejärel muutma RTC muudatusi. selleks jookse:

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

ja muidugi, muutke kuupäeva ja kellaaega vastavalt kohalikule kellaajale ja kuupäevale, enne kui vajutate sisestusklahvi. kui olete Rpi paremal aja kätte saanud, käivitage kuupäev ja kellaaeg RTC -s järgmiselt:

sudo hwclock -w

aaaa ja ongi kõik! saate kontrollida, kas see töötab hwclock -r abil, ja näha, kas RTC kuupäev on õige või mitte, seejärel ühendage rpi Internetist lahti ja lülitage see mõneks ajaks välja ning seejärel uuesti sisse ja vaadake, kas see on õige kellaaeg ja kuupäev. olete valmis!

RTC -mooduli seadistamise täieliku juhendi leiate siit

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

9. samm: 3. peatükk: Azani häireprogrammi koostamine

Peatükk 3: Azani häireprogrammi koostamine
Peatükk 3: Azani häireprogrammi koostamine

kella tegemine on üks asi, kindlasti võime vaadata kella ja palveaegu ning vaadata, millal aeg saabub, kuid kas poleks isegi VÄGA parem, kui saaksime palveaegadest teavitamiseks lisada helisignaali? VEEL PAREM, teeme selle äratuse AZANi helina! vaatame, kuidas me seda saavutada saame.

oma programmeerimisel kasutame eelistatud programmeerimiskeelena pythonit, kuna python sobib ideaalselt RaspberryPi -ga. pythonis koodifaili tegemiseks teeme sama, mis tekstifaili avamine, kuid nüüd salvestame selle.py. programmi käivitamiseks vajame raspbery'st installitud python -keskkonda, õnneks on Raspbian kaasas juba eelnevalt installitud python ja python3! nii et kõik, mida peame tegema, on programmeerimine. selles juhendis ei räägi me keelest ega õpeta selle toimimist ja funktsioone, kuid ma annan teile vajalikud koodid, et saaksite projekti teha.

alustamiseks vajame eelistatud asaniheli helifaili (WAV-vormingus), meil on vaja kahte faili, üks al-fajr asani ja teine tavalise asani jaoks. kui olete selle saanud, pange see mälupulgale ja kopeerige see vaarikapi töölauale.

Nüüd on meil failid olemas, otsisin viisi, kuidas vaarikaPi -l heli kuulata ja minu üllatuseks ei olnud meil palju võimalusi seda teha, kuid leidsin selle vastuse stackoverflow -st, mis andis mulle vajaliku

stackoverflow.com/questions/20021457/playi…

katsetasin seda meetodit ja see töötas! nii et vaatame, kuidas saame seda meetodit oma projektis rakendada …

10. samm: 3-1: mängime heli

3-1: Mängime heli!
3-1: Mängime heli!

kõigepealt navigeerige töölauale:

cd töölaud

seejärel tehke uus pythoni koodifail:

sudo nano AzanPlay.py

see teeb uue faili nimega AzanPlay laiendiga python failil.py, meil on tühi must ekraan, mis võimaldab meil oma koodi kirjutada. lihtsalt kirjutage need read üles (olge ettevaatlik, et mitte muuta taanet ega tühikuid, kuna see on pythonis ERITI oluline):

Pygame'i impordisegistist

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () samas mikser.music.get_busy () == Tõsi: jätka

Kuhu / Desktop / on see, kuhu te oma helifailid panite, ja 'Adhan-Makkah.wav' on minu helifail, mis on maani keeles Azani helisalvestis.

nüüd oma koodi testimiseks käivitame selle pythoniga, tippides:

python AzanPlay.py

ja heli hakkab vaibuma HDMI -LCD -ekraanilt või Raspberrypi AUX -pordist. kui te ei kuule seda LCD -kõlaritest, ühendage kõrvaklapid AUX -i ja kontrollige.

Samm 11: 3-2: hankige palveajad

3-2: Palveajad
3-2: Palveajad

Nagu me teame, on palveajad maa peal erinevad ja isegi konkreetse asukoha puhul on see aastate lõikes erinev, see tähendab, et peame leidma viisi, kuidas oma palveaegu süsteemis pidevalt uuendada, ja selleks vajame õigeks saamiseks konkreetseid ja väga keerukaid funktsioone ja arvutusi. Õnneks on meie vend Hamid Zarrabi-Zadeh teinud kõik vajalikud funktsioonid üheks funktsiooniks, mida saame hõlpsasti kasutada, et saada aega sõltuvalt asukohast ja praegusest ajast, AMAZING! kogu ja lähtefailid leiate aadressilt

praytimes.org/

Niisiis, me kasutame neid suurepäraseid faile oma palveaegade saamiseks ja selle süsteemi rakendamiseks. esiteks laadige koodid veebisaidilt alla ja pange see kausta / adhan / (vajame nii JS kui ka Pythoni koode).

lähme nüüd sellesse kausta ja testime raamatukogu ning seda, mida see teha saab:

cd adhan

seal peame pythonis tegema uue testfaili, et saaksime funktsiooni testida:

sudo nano testAd.py

kirjutage see kood sisse:

importida palveaegu

kuupäevast ja ajast impordi kuupäevast tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Enne faili salvestamist peate muutma LATITUDE oma asukoha Latitude, sama ka LONGTITUDE ja muutma GMT oma ajavööndiks. minu puhul saab see olema:

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

trükk (tmm)

Lõpuks CTRL-S ja CTRL-X ning käivitage seejärel kood:

python testAd.py

lõpuks antakse teile tagasi oma tänased palveajad teie asukoha jaoks.

{'isha': '18: 58 ',' asr ': '15: 22', 'sunset': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' kesköö ': '00: 17', 'päikesetõus': '06: 52 ',' fajr ': '05: 33'}

Suurepärane! nüüd, kui meil on palveaeg käes ja me teame, kuidas helisid esitada, ühendame need kaks koodi üheks põhikoodiks.

12. samm: 3-3: lõpliku Azani häirekoodi koostamine

lõpetades kaks eelmist koodi, õppisime, kuidas saada täpseid palveaegu vastavalt meie asukohale ja kuidas mängida asani heli. Nüüd ühendame need kaks koodi üheks koodiks, mida kavatseme kasutada oma lõpliku projektina, ja see kood töötab taustal, sest kui Aasani aeg saabub, mängib see Asani heli.

Olen kirjutanud kogu koodi, saate selle kopeerida ja kleepida ning oma äranägemise järgi ise muudatusi teha. Kood on:

impordi aeg

alates pygame impordisegistist impordistring impordi praytimes alates kuupäevast ja kuupäevast impordi kuupäevast samas (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 () samas mixer.music.get_busy () == Tõsi: jätka, kui currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () samas mixer.music.get_busy () == Tõsi: jätka, kui currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () samas mixer.music.get_busy () == Tõsi: jätkake, kui currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play (), samal ajal kui mixer.music.get_busy () == Tõsi: jätkake, kui currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () samas mikser.music.get_busy () == Tõsi: jätka

Kui vaatate koodi ja võrdlete seda sellega, mida me varem tegime, näete, et me ei teinud midagi uut, algul lisasime oma vajalikud teegid ja seejärel avasime lõpmatu ahela. silmusena arvutame pidevalt palveaega oma asukoha ja ajavööndiga ning salvestame kogu tulemuse muutuvas tmm. siis salvestame iga palveaja tmm -st sõltumatu muutujani. mis võimaldab meil aegu võrrelda. seejärel võtame süsteemi aja ja salvestame selle sõltumatusse muutujale. Lõpuks võrdleme pidevalt süsteemi aega palveaegadega, kui süsteemiaeg sobib mõne palveajaga, mängib see Asani heli.

Samm 13: 4. peatükk. Vaatepindade rakendamine

4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine
4. peatükk. Vaatepindade rakendamine

Projekti parema väljanägemise nimel tekkis mul idee lisada LCD -le kellad, nii et see näeb kasutajale kena välja (vähemalt parem kui käsurealt), nii et olen palganud disaineri, kes kujundab mitu nägu käekell, see peaks olema tühi ja ilma andmeteta, kuna andmed tuleks lisada HTML -i kaudu, muutes kella kujunduse taustaks, ja muud andmed, näiteks palveajad, võiks lisada HTML -elementidena taustale.

Kahjuks on selle juhendi kirjutamise ajaks minu teadmised ja kogemused HTML -is väga piiratud, nii et ma ei aruta palju üksikasju, sest ma tean, et teen asju valesti ja ma ei tee seda tahavad inimesi segadusse ajada. kuid kui teil on isegi väike kogemus JS -i ja HTML -i alal, peaksite teadma, kuidas sellest punktist edasi minna. siiani olen teinud ühe näo (sinine). plaan on teha 14 kellamängu! 7 nägu igapäevaseks nädalaks ja veel 7 teemaks. kuna esimene teema peaks olema Azkari veeremisega ja teisel teemal peaks olema Azkari asemel islami GIFS. olenemata lisan sellesse juhendisse kõik kujundused, et saaksite selle alla laadida.

14. samm: 5. peatükk: kasutajaliidese juurutamine

Peatükk 5: kasutajaliidese juurutamine
Peatükk 5: kasutajaliidese juurutamine

Teekonna viimases peatükis teeme mõningaid valikulisi muudatusi, et muuta projekt isegi kasutajasõbralikuks, juhuks, kui soovime projekti ellu viia mošees või mõnes avalikus kohas. nagu me varem ütlesime, on igal linnal oma palvete ajastus ja selleks, et muuta see projekt inimestele laiemaks juurdepääsuks, teeme kasutajaliidese, et saaksime pärast projekti käivitamist valida soovitud linna ja teema.

Selleks kasutame python GUI raamatukogu nimega "TKinter".

See on kood, mille olen rakendanud, et anda mulle valik viie Saudi Araabia linna, sealhulgas Makkahi vahel:

impordi tkinter tk -na

tkinter importist * tkinter importist ttk import koodekid import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azani aeg") ise. button1 = Nupp (ise, tekst = "Jeddah", kõrgus = 5, laius = 80, käsk = self.open_jeddah1) self.button2 = Nupp (ise, tekst = "Makkah", kõrgus = 5, laius = 80, käsk = self.open_makkah1) self.button3 = Nupp (ise, tekst = "Riyadh", kõrgus = 5, laius = 80, käsk = self.open_riyadh1) self.button4 = Nupp (ise, tekst = "Madina", kõrgus = 5, width = 80, command = self.open_madina1) self.button5 = Nupp (ise, tekst = "Qasim", kõrgus = 5, laius = 80, käsk = self.open_qasaim1) self.button1.grid (rida = 0, veerg = 1, veerupaneel = 2, kleepuv = W+E+N+S) self.button2.grid (rida = 1, veerg = 1, veerupaneel = 2, kleepuv = W+E+N+S) self.button3.grid (rida = 2, veerg = 1, veerupaneel = 2, kleepuv = W+E+N+S) iseenesest nupp4.grid (rida = 3, veerg = 1, veerupaneel = 2, kleepuv = W+E+N+S) self.button5.grid (rida = 4, veerg = 1, veeruulatus = 2, kleepuv = W+E+N+S) def open_jeddah1 (ise): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox" os.system (order) def open_makkah1 (ise): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_riyadh1 (ise): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_madina1 (ise): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (ise): 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 ()

Kood võib tunduda suur, kuid selle muutmine on väga lihtne. põhimõtteliselt tegime uue akna, panime viis nime nuppu ja määratlesime viis funktsiooni, mida iga nupuvajutuse korral kutsuda. nupule vajutades avab programm vastava HTML -faili kaustas Linnad, mille iga linna HTML -il on linna koordinaadid, kui see saab aega praytimes (). kui nupule vajutate, väljastab python -kood Linuxi koodi, milles see avab Chrome -brauseri abil HTML -faili, ja teil on kellaekraan kuvamiseks valmis, täisekraanvalik sisse lülitatud.

Samm: (valikuline): kõlari lüliti lisamine

(Valikuline): kõlarilüliti lisamine
(Valikuline): kõlarilüliti lisamine
(Valikuline): kõlarilüliti lisamine
(Valikuline): kõlarilüliti lisamine

Nagu nägime, kui palveaeg saabub Azani helimäng ja heli tuleb vaikimisi heliväljundist (HDMI- või AV -väljund) ja kuna me paneme selle HDMI -väljundisse, tuleb heli LCD -ekraanilt. aga mis siis, kui meie LCD -heli ei piisa? näiteks mis siis, kui tahame seda rakendada tõelise mošee sees? laiade väliskõlaritega? siis saame selle saavutamiseks lisada veel ühe VÄGA lihtsa sammu. juba ehitatud kõlarite helisüsteemi jaoks peame selle ainult sisse ja välja lülitama ning võtma juba olemasoleva mikrofoni ja asetama selle LCD -kõlarite kõrvale.

Seda on lihtne teha. kasutame juba olemasolevat mošee mikrofoni, mis on ühendatud valjuhääldiga, vajame lihtsalt raspberryPi, et juhtida toiteallikat, mis lülitab kogu helisüsteemi sisse ja välja. Selleks peame kasutama SSR -i: SOLID STATE RELAY. seda tüüpi releed võivad toimida lülitina, sarnaselt keskmise sinise releega, erinevus on selles, et SSR -id taluvad selle kaudu suures koguses vahelduvvoolutugevust, mis ei kehti siniste puhul (tavaliselt max 10A) ja SSR -id vajavad ainult kaks juhet 3 asemel: DC+ ja DC- ja ongi kõik! SSR -i teises otsas saame ühendada kõlarisüsteemi toitekaabli, nii et kui me SSR -ile pinget anname, sulgeb see kõlarisüsteemi vahelduvvooluahela või lülitame pinge välja, et luua avatud ahel, kõlarite väljalülitamine.

seal on üks saak, RaspberryPi tihvtid väljastavad 3.3v, mitte 5v, mida peame SSR -i juhtima. nii et meil on vaja transistorit, et võtta signaal RPi tihvtilt ja 5 V RPi 5 v pinilt. selleks vajame:

1-tahkisrelee (kõik üle 25A on hea)

2-2n2222 npn transistor

3-220 oomi takisti

ühendamiseks järgige friteerimisahelat.

nüüd koodi lisame mõned asjad, mis selle toimima panevad. esiteks lisame GPO tihvtide initsialiseerimiseks mõned read enne mõnda tsüklit:

Lisage jaotises Importimine:

RPi. GPIO importimine GPIO -na

Enne aja ringi lisage:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (vale) relee = 40 GPIO.seadistus (ledPin, GPIO. OUT)

Nüüd, samas ringis, peame iga Azan -käskluse puhul relee sisse lülitama, ootama 10 sekundit, lõpetama Azani mängimise ja seejärel relee välja lülitama. peame lisama ainult kaks rida, esimene on:

GPIO väljund (ledPin, GPIO. HIGH)

aeg. uni (10)

see tuleks lisada pärast iga if -lauset (IDENTEERIMINE ON TÄHTIS!), teine rida on järgmine:

GPIO.väljund (ledPin, GPIO. LOW)

See tuleks lisada pärast "jätka" rida. see peaks iga Azani aja kohta välja nägema selline:

kui currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () samas mixer.music.get_busy () == Tõsi: jätkake GPIO.output (ledPin, GPIO. LOW)

Soovitan: