Satura rādītājs:

RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)
RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)

Video: RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)

Video: RaspberryPi islāma lūgšanu pulkstenis un modinātājs: 15 soļi (ar attēliem)
Video: Собрал часы 2024, Jūnijs
Anonim
RaspberryPi islāma lūgšanu pulkstenis un modinātājs
RaspberryPi islāma lūgšanu pulkstenis un modinātājs
RaspberryPi islāma lūgšanu pulkstenis un modinātājs
RaspberryPi islāma lūgšanu pulkstenis un modinātājs

Musulmaņiem visā pasaulē katru dienu ir piecas lūgšanas, un katrai lūgšanai ir jābūt noteiktā diennakts laikā. eliptiskais veids, kā mūsu planēta pārvietojas ap sauli, tāpēc saulei uzlecošie un krītošie laiki visu gadu atšķiras, un tas arī padara lūgšanu laiku nepastāvīgu, tāpēc mums ir vajadzīgs islāma pulkstenis, lai atgādinātu mums musulmaņiem par katru lūgšanas laiku diena.

Katram musulmanim ir veids, kā piekļūt ikdienas lūgšanu laikapstākļiem, izmantojot interneta islāma vietnes, vietējos islāma kalendārus vai pat pa televizoru, un lielākajai daļai no mums ir islāma pulksteņu ierīces, kas nodrošina lūgšanu laiku, kā arī trauksmes signāli. Bet kā būtu, ja mēs izveidotu savu lūgšanu pulksteņa un modinātāja ierīci!

Pirms sākat darbu pie projekta, ir daži apsvērumi, kas jums varētu būt noderīgi, lasot šo pamācību. Es dzīvoju Saūda Arābijā, tāpēc daži mani soļi un vērtības atšķirsies no jūsu, un es tos skaidri norādīšu darba laikā. Ir soļi un attēli, kas var ietvert arābu vārdus, jo es izveidoju saskarni arābu valodā, taču es arī norādīšu, kā to izveidot angļu valodā, tāpēc neļaujiet attēlos redzamajiem arābu vārdiem jūs uztraukt. darīts jebkurā valodā (kas ir lieliski!: D) Lūdzu, atvainojiet arī par manām drukas kļūdām, jo angļu valoda nav mana pirmā valoda.

Uz mūsu projektu! Šis projekts tiks sadalīts X galvenajos posmos, kas līdz X soļa beigām mums būs jauki un gatavi! Darbības būs šādas:

1-RaspberryPi konfigurēšana un sagatavošana

2-RTC moduļa uzstādīšana

3-Azanas trauksmes programmas izveide

4-Pulksteņu seju ieviešana

5-Lietotāja saskarnes izveide un

Tāpat kā katram projektam, mums vispirms ir jāsagatavo nepieciešamās daļas. Daļas, kas mums nepieciešamas šim projektam, ir:

1-RaspberryPi Datoru komplekts Amazon US || Amazon KSA

Jūs varat izmantot jebkuru Rpi versiju, tikai pārliecinieties, vai tajā ir Wifi. Es izmantoju Rpi3B+

2-RTC reāllaika pulksteņa modulis Amazon US || Amazon KSA

Jūs varat izmantot jebkuru RTC moduļa modeli, tikai pārliecinieties, vai tam ir I2C

3-LCD monitors

Jebkurš LCD to darīs

4 peles un tastatūra

un tas ir ….. tas !! Tas ir viss, kas jums nepieciešams, lai izveidotu savu Azan pulksteni un modinātāju

1. darbība: 1. nodaļa: RaspberryPI iestatīšana un konfigurēšana

1. nodaļa: RaspberryPI iestatīšana un konfigurēšana
1. nodaļa: RaspberryPI iestatīšana un konfigurēšana

Pirmās lietas Vispirms! Mums ir jāsagatavo Raspberry pi, lai ar to strādātu.

Raspberry pi ir nekas cits kā dators, tam ir RAM un ROM, tam ir CPU, GPU, I/O ……. Dators! tāpat kā mēs spēlējam spēles un pārlūkojam tīmekli, tikai galvenais, ka tas ir ļoti mazs! kas padara avenes par ļoti labu izvēli projektu izstrādei un īstenošanai. tā kā aveņu pi ir mazs, tam ir ļoti ierobežotas specifikācijas, ka tā nevar darboties ar lielu prasīgu OS, piemēram, Windows vai MacOS, tā vietā mēs izmantosim Linux kā operētājsistēmu, lai izmantotu ierīci. ir tūkstošiem, ja ne desmitiem tūkstošu Linux distribūciju, kuras mēs varētu izmantot, bet viens ideāls distro ir lieliski optimizēts tieši aveņu šķirnei, kuru mēs izmantosim, sauktai par Raspbian.

2. darbība: 1-1: lejupielādējiet nepieciešamos failus

1-1: lejupielādējiet nepieciešamos failus
1-1: lejupielādējiet nepieciešamos failus
1-1: lejupielādējiet nepieciešamos failus
1-1: lejupielādējiet nepieciešamos failus
1-1: lejupielādējiet nepieciešamos failus
1-1: lejupielādējiet nepieciešamos failus

-Dodieties uz oficiālo Rasbian lejupielādes lapu vietnē https://www.raspberrypi.org/software/operating-sy… un lejupielādējiet Raspberry Pi OS ar darbvirsmas failu

-Kamēr tas tiek lejupielādēts, dodieties uz vietni https://win32diskimager.org/ un lejupielādējiet un instalējiet win32DiskImager, jūs varat izmantot jebkuru attēlu ierakstīšanas programmatūru, kas jums patīk

kad lejupielāde ir pabeigta, jums būs.img fails, kurā būs RaspberryPi OS. pēc tam pievienojiet SD atmiņas karti datoram (parasti ar USB karšu lasītāju) un palaidiet win32diskimager programmatūru. soļi attēla ierakstīšanai SD atmiņā ir ļoti vienkārši, jums vienkārši jāveic 1- Atlasiet atmiņas burtu 2-atlasiet lejupielādētos OS failus un 3 klikšķi rakstiet! Pārliecinieties, ka sarakstā esat izvēlējies pareizo ierīces burtu un jūsu atmiņa ir tukša, jo, nospiežot rakstīt, jūs tiksit paaugstināts ar brīdinājumu, kas norāda, ka viss ierīcē esošais tiks izdzēsts! Nospiediet jā, lai apstiprinātu rakstīšanu, un gaidiet, līdz tas tiks pabeigts. tas var ilgt līdz 20 minūtēm.

Kad tas ir paveikts, atmiņā būs pilna Rapbian OS, varat turpināt un ievietot to Rapberry Pi, savienot Raspberry Pi ar monitoru, izmantojot HDMI, savienot peli un tastatūru, izmantojot USB, un, visbeidzot, savienot jauda.

3. darbība: 1-2: Raspbian sistēmas konfigurēšana

Pēc kabeļu un strāvas pievienošanas redzēsit, ka OS ir ieslēgta, tā tiks automātiski restartēta un pēc tam tiks parādīta Raspbian lietotāja saskarne (kas izskatās līdzīgi logiem). pirmā lieta, ko jūs redzēsit, ir apsveikuma logs, kurā tiks parādītas pirmās RaspberryPi konfigurēšanas darbības. logi un soļi būs šādi:

1-Nospiediet nākamo pirmajā "Welcome" logā

2-Nākamais logs būs jūsu atrašanās vietas konfigurēšana. izvēlieties valsti, valodu un laika joslu. pēc tam ir ļoti ieteicams pārbaudīt “Lietot angļu valodu”, jo tā būs operētājsistēmas saskarnes valoda. JĀPĀRBAUDA "ASV ANGLIJAS TAGATŪRAS IEKĀRTAS KASTE" DARBAM VAJADZĪGAS ANGLIJAS KLAustiņas!

3-Tālāk jums tiks lūgts ievadīt aveņu paroli, tas ir svarīgi drošībai, taču mēs atstāsim to nemainīgu šim projektam. ņemiet vērā, ka noklusējuma lietotājvārds un parole ir:

lietotājvārds: pi

parole: aveņu

4-Nākamais logs raspberryPi savienos ar jūsu WiFi tīklu. izvēlieties savu wifi nosaukumu un ievadiet savu wifi paroli

Pēc tam jums tiks lūgts atjaunināt aveņu pi bibliotēkas un sistēmas failus. šis solis prasīs milzīgu laiku (varbūt stundās), taču tas ir ļoti svarīgs solis ikreiz, kad tiek iestatīta jauna aveņu pi.

6-kad atjaunināšana ir pabeigta, jums tiks lūgts restartēt sistēmu. dari to tagad.

Labs darbs! Tagad mums ir atjaunināta sistēma, mums vēl ir jādara vēl dažas lietas, lai konfigurētu sistēmu darbam, bet tagad sāksim izmantot LinuxCommand Line.

4. darbība: 1-3: komandrindas izmantošana, lai iestatītu Rpi iestatījumus

1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai
1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai
1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai
1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai
1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai
1-3: komandrindas izmantošana RPI iestatījumu iestatīšanai

Kad esat pabeidzis atsāknēšanu no sistēmas atjauninājuma, pēc palaišanas sistēma parādīs lietotāja darbvirsmu. tagad, ja paskatās ekrāna augšējā kreisajā stūrī, jūs atradīsiet dažas pogas, pogu ar aveņuPi logotipu, kas ir Rpi izvēlnes poga, globusa formu, kas ir interneta pārlūks, mapju pogu, kas ir ….. mapes un visbeidzot, poga ar melnu ekrāna logu, kas ir vissvarīgākā poga jebkurā Linux sistēmā - komandrindā. dodieties uz priekšu un nospiediet šo pogu, un jūs redzēsit melnu logu.

Komandrinda ir tā, kā visi mijiedarbojas un izmanto Linux sistēmu, tāpat kā logiem ir sava komandrinda tikai atraitnēm, kuras mums nav jāizmanto ļoti bieži. Linux sistēmā tā ir pamata lieta, kas katram Linux lietotājam jāiemācās un jāapgūst. komandrindu var izmantot…. KOMANDAS! tas, ko redzat melnajā logā, ir komandu uzvedne, kas gaida, kad lietotājs uzrakstīs komandu un izpildīs. šajā rokasgrāmatā mēs sniegsim visu komandu, kas nepieciešama šī projekta veikšanai, tāpēc neuztraucieties.

pati pirmā Linux komanda, kuru mēs izmantosim, ir vēl viena konfigurācijas komanda, ņemiet vērā, ka visas komandas no šī brīža tiks ievietotas koda lodziņā, lai jūs varētu to atšķirt no parastajām darbībām. Paņemiet tastatūru un ierakstiet šo un nospiediet enter:

sudo raspi-config

Ja to izdarīsit pareizi, redzēsit, ka ekrāns ir kļuvis zils, un vidū ir pelēks lodziņš (skatīt attēlu). mēs to izmantosim, lai izveidotu galīgo konfigurāciju, pirms sākam kodēšanu.

Tagad, lai pārvietotos šajā izvēlnē, jums būs jāizmanto tastatūras bulttaustiņi.

1-Dodieties uz saskarnes opcijām >> I2C >> JĀ >> nospiediet taustiņu Enter. tas ļauj iespējot I2c sakaru protokolu, lai mēs varētu izmantot RTC

2 Dodieties uz Papildu opcijas >> Izvērst failu sistēmu.

un tā ir visa konfigurācija, kas jums nepieciešama šajā logā. galvenajā lapā dodieties uz leju un nospiediet taustiņu "Pabeigt" un "JĀ", lai restartētu sistēmu.

Kad sistēma pabeidz pārstartēšanu, mēs visi esam pabeiguši konfigurēšanu! ierīce ir gatava lieliem soļiem! Nākamais solis būs RTC moduļa instalēšana un izmantošana kopā ar sistēmu.

5. darbība: 2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana

2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana
2. nodaļa: RTC moduļa uzstādīšana, konfigurēšana un lietošana

RTC (vai reāllaika pulksteņa) modulis ir maza ierīce, kurā ir nedaudz akumulatora, un tas dara to, ko norāda nosaukums, Clocking! tāpēc, atvienojot to barošanai, pulkstenis turpina darboties un neapstājas. kāpēc mums tas ir vajadzīgs? labi, aveņu pi tiešām nav metodes pulksteņa datu glabāšanai pēc izslēgšanas, tā paļaujas uz savienojumu ar internetu pēc palaišanas, lai atjauninātu datumu un laiku, taču problēma ir tā, ka mums ne vienmēr ir piekļuve internetam, un tas tāpēc mums ir nepieciešams RTC modulis. RTC darbosies kā aveņu pi pulkstenis, tāpēc pēc Rpi palaišanas datums un laiks tiks ņemti no RTC, tādējādi RaspberryPi laiks tiks pastāvīgi atjaunināts.

ir vairāki modeļi un meklē RTC, ir DS1307 un DS3231. jūs varat izmantot jebkuru RTC moduli, ko atrodat, ja tam ir I2C protokola sakari (varat norādīt, ka uz moduļa tapām var atrast SDA un SCL tapas).

tāpat kā viss šajā rokasgrāmatā, es izmantoju citus ceļvežus, lai sasniegtu savu mērķi projektā, šī pamācība jums palīdzēs un precīzi pateiks, kas jādara, lai izveidotu šo projektu, bet, ja jums ir jāmaina vai jums ir nepieciešams padziļināt kādu no soļus, es katra soļa beigās saistīšu auglīgāko ceļvedi.

Kad esat sagatavojis RTC moduli (pielodējiet galvenes tapas un ievietojiet akumulatoru), varat to savienot ar RapberryPi tapām šādi:

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

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

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

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

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

vai atkarībā no tā, kādu RTC moduli iegādājāties, varat to uzstādīt tieši uz RaspberryPi (pārliecinieties, vai tapas ir pareizas !!! jo, ja nē, varat sabojāt Rpi/RTC)

Kad esat pievienojis RTC, konfigurēsim Raspberry.

6. darbība: 2-1: moduļa iestatīšana

2-1: moduļa iestatīšana
2-1: moduļa iestatīšana
2-1: moduļa iestatīšana
2-1: moduļa iestatīšana

Pirms sākat, dodieties uz komandrindu un ierakstiet:

datums

Tas atdos Raspberry pašreizējo datumu un laiku, ņemiet vērā šo ļoti noderīgo komandu un atzīmējiet pašreizējo datumu un laiku, lai mēs varētu pārbaudīt, vai modulis darbojas vai nē.

tagad, sāksim iestatīšanu, ierakstiet šo, lai atjauninātu Rpi bibliotēkas, vienu rindu vienlaikus:

sudo apt-get update

sudo apt -get -y jauninājums

kad tas ir izdarīts, mums ir jāpārveido sistēmas faili, lai iespējotu i2c moduli, un jāpievieno RTC, lai mainītu failu sistēmu, mēs izmantosim programmatūru ar nosaukumu Nano. nano ir viegla iebūvēta programmatūra, kas būtībā ir teksta redaktors, tāpat kā atraitnēm. tāpēc jebkura komanda, kas sākas ar nano, kam seko faila nosaukums, atvērs šo failu nano teksta redaktorā. jūs pamanījāt, ka mēs izmantojām arī kaut ko tādu, ko sauc par Sudo, īsāk sakot, sudo darbojas kā garantija Linux sistēmai, kas paziņo sistēmai, ka lietotājs, kurš ir devis šo komandu, ir ierīces īpašnieks, nevis kāds cits, un piešķir tādas privilēģijas kā rediģēšana/ dzēšana lietotājam. piemēram, ja mēs atvērtu nano failu bez sudo, mēs varētu apskatīt šo failu, bet nevaram to rediģēt vai izdzēst.

Tagad mums ir jāmaina moduļu fails, mēs to varam izdarīt, ierakstot:

sudo nano /etc /modules

kad esat to izdarījis, jūs atradīsit šī faila saturu (skatiet attēlu). izmantojiet bulttaustiņus, lai novietotu kursoru teksta beigās, un pievienojiet:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

nospiediet CTRL+S, lai saglabātu, un CTRL+X, lai izietu

7. darbība: 2-2: I2C saskarne

2-2: I2C saskarne
2-2: I2C saskarne

Tagad mēs esam pievienojuši RTC un iespējojuši i2c, savienosim visu kopā.

komandu uzvednē ierakstiet šo:

i2cdetect -y 1

jums tiks dots tukšs masīvs, taču pamanīsit, ka kaut kur ir skaitlis, šis numurs ir jūsu RTC moduļa adrese. manā gadījumā tas ir 68. ņem vērā šo skaitli. ja neredzat šo divu ciparu skaitli, tas nozīmē, ka, iespējams, esat nepareizi pievienojis RTC.

tagad mums ir jāmaina rc.local fails, lai mēs varētu iespējot RTC moduli sāknēšanas laikā un ļaut tam saglabāt datumu un laiku sistēmā. vispirms atveriet rc.local failu:

sudo nano /etc/rc.local

Pirms rindas exit0 pievienojiet šo:

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

hwclock -s

kur 0x68 ir jūsu ierīces i2c adrese. kad esat pabeidzis, nospiediet CTRL+S CTRL+X, pēc tam restartējiet sistēmu, veicot tālāk norādītās darbības.

sudo atsāknēšana

8. darbība: 2-3: RTC pārbaude

2-3: RTC pārbaude
2-3: RTC pārbaude

Kad sistēma ir restartēta, mēs varam pārbaudīt laika apstākļus, kas RTC darbojas. vispirms skrien:

sudo hwclock -r

jums tiks atgriezts datums un laiks RTC modulī. ja jums tiek dots kaut kas cits, pārliecinieties, vai esat pareizi veicis darbības.

tagad, lai mainītu laiku un datumu RTC, mums vispirms ir jāmaina datums un laiks sistēmā, pēc tam veicot izmaiņas RTC. lai to izdarītu, palaidiet:

sudo date -s "1997. gada 29. augusts 13:00:00"

un, protams, mainiet datumu un laiku atbilstoši vietējam laikam un datumam, pirms nospiežat Enter. kad esat atradis laiku Rpi labajā pusē, veiciet tālāk norādītās darbības, lai saglabātu datumu un laiku RTC:

sudo hwclock -w

aaaa un viss! jūs varat pārbaudīt, vai tas darbojas līdz hwclock -r, un redzēt, vai datums uz RTC ir pareizs vai nē, pēc tam atvienojiet rpi no interneta un pēc tam kādu laiku izslēdziet to, pēc tam atkal ieslēdziet un pārbaudiet, vai tam ir pareizs laiks un datums. jūs esat pabeidzis!

Pilnu RTC moduļa iestatīšanas rokasgrāmatu var atrast šeit

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

9. darbība: 3. nodaļa: Azana trauksmes programmas izveide

3. nodaļa: Azana trauksmes programmas izveidošana
3. nodaļa: Azana trauksmes programmas izveidošana

pulksteņa izgatavošana ir viena lieta, protams, mēs varam paskatīties pulkstenī un lūgšanu laikos un redzēt, kad pienāks laiks, bet vai nebūtu pat CITI labāk, ja mēs varētu pievienot skaņu modinātāju, kas mūs informētu par lūgšanu laikiem? VĒL LABĀK, mēs šo modinātāju veidojam kā AZAN skaņu! redzēsim, kā mēs to varam paveikt.

mūsu programmēšanai mēs izmantosim python kā vēlamo programmēšanas valodu, jo python lieliski sader ar RaspberryPi. lai izveidotu koda failu python, mēs darām to pašu, kā atvērt teksta failu, bet tagad mēs to saglabājam kā.py. lai palaistu programmu, mums ir nepieciešama python vide, kas instalēta no raspbery, par laimi, Raspbian ir iepriekš instalēts python un python3! tāpēc mums atliek tikai programmēt. šajā rokasgrāmatā mēs nerunāsim par valodu un nemācīsim, kā tā darbojas un funkcijas, bet es jums došu nepieciešamos kodus, lai jūs varētu izveidot projektu.

lai sāktu, mums ir nepieciešams vēlamās azāna skaņas skaņas fails (. WAV), mums ir nepieciešami divi faili, viens al-fajr azan un otrs parastajam azanam. kad esat to sapratis, ielieciet to uz nūju diska un nokopējiet to aveņu darbvirsmā.

tagad mums ir faili, es meklēju veidu, kā atskaņot skaņu audio uz aveņuPi, un man par pārsteigumu nebija daudz veidu, kā mēs to varētu izdarīt, bet es atradu šo atbildi stackoverflow, kas man deva vajadzīgo

stackoverflow.com/questions/20021457/playi…

Es pārbaudīju šo metodi un tā strādāja! tāpēc redzēsim, kā mēs varam ieviest šo metodi mūsu projektā …

10. solis: 3-1: atskaņosim skaņu

3-1: atskaņosim skaņu!
3-1: atskaņosim skaņu!

vispirms dodieties uz darbvirsmu, izmantojot:

cd darbvirsma

pēc tam izveidojiet jaunu python koda failu:

sudo nano AzanPlay.py

tas izveidos jaunu failu ar nosaukumu AzanPlay ar paplašinājumu python failā.py, mums būs tukšs melns ekrāns, lai mēs varētu rakstīt kodu. vienkārši pierakstiet šīs rindiņas (uzmanieties, lai nemainītu atkāpes vai atstarpes, jo tas ir ārkārtīgi svarīgi python):

no pygame importa mikseris

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpināt

Kur / darbvirsma / ir vieta, kur ievietojat savus skaņas failus, un “Adhan-Makkah.wav” ir mans audio fails, kas ir Azanas skaņas ieraksts makkah.

tagad, lai pārbaudītu savu kodu, mēs to palaižam ar python, ierakstot:

python AzanPlay.py

un skaņa atskanēs no jūsu HDMI LCD vai AUX porta, kas atrodas Raspberrypi. ja nedzirdat to no LCD skaļruņiem, pievienojiet austiņas AUX un pārbaudiet.

11. solis: 3-2: iegūstiet lūgšanu laikus

3-2: iegūstiet lūgšanu laikus
3-2: iegūstiet lūgšanu laikus

Kā mēs zinām, lūgšanu laiki dažādās vietās uz zemes ir atšķirīgi, un pat noteiktā vietā tas atšķiras gadu gaitā, tas nozīmē, ka mums ir jāatrod veids, kā pastāvīgi atjaunināt savu lūgšanu laiku sistēmā, un tam mums ir vajadzīgas īpašas un ļoti sarežģītas funkcijas un aprēķini, lai to pareizi izpildītu. Par laimi, mūsu brālis Hamids Zarrabi-Zadehs visas nepieciešamās funkcijas ir apvienojis vienā funkcijā, kuru mēs varam viegli izmantot, lai iegūtu laiku atkarībā no mūsu atrašanās vietas un pašreizējā laika, AMAZING! bibliotēku un avota failus varat atrast vietnē

praytimes.org/

Tātad, mēs izmantosim šos satriecošos failus, lai iegūtu lūgšanu laiku un ieviestu to sistēmā. vispirms lejupielādējiet kodus no vietnes un ievietojiet tos mapē / adhan / (mums ir nepieciešami gan JS, gan Python kodi).

Tagad dodieties uz šo mapi un pārbaudiet bibliotēku un tās iespējas:

cd adhan

tur mums ir jāizveido jauns testa fails python, lai mēs varētu pārbaudīt funkciju:

sudo nano testAdAdpy

iekšpusē pierakstiet šo kodu:

importēt praytimes

no datuma un laika importēšanas datuma tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) drukāt (tmm)

Pirms faila saglabāšanas jums ir jāmaina LATITUDE ar savu atrašanās vietu Latitude, tāpat kā ar LONGTITUDE un jāmaina GMT uz jūsu laika joslu. manā gadījumā tas būs:

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

drukāt (tmm)

Visbeidzot, CTRL-S un CTRL-X un pēc tam palaidiet kodu:

python testAd.py

visbeidzot, jums tiks atdoti šodienas lūgšanas laiki par jūsu atrašanās vietu.

{'isha': '18: 58 ',' asr ': '15: 22', 'saulriets': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' midnight ': '00: 17', 'saullēkts': '06: 52 ',' fajr ': '05: 33'}

Lieliski! tagad, kad esam saņēmuši lūgšanu laiku un tagad zinām, kā atskaņot skaņas, apvienosim šos divus kodus vienā galvenajā kodā.

12. darbība: 3-3: galīgā Azanas trauksmes koda izveide

pabeidzot iepriekšējos divus kodus, mēs uzzinājām, kā iegūt precīzus lūgšanu laikus atbilstoši mūsu atrašanās vietai un kā atskaņot Azan skaņu. Tagad mēs apvienosim šos divus kodus vienā kodā, kuru izmantosim kā savu galīgo projektu, un šis kods darbosies fonā, jo, kad pienāks Azanas laiks, tas atskaņos Azāna skaņu.

Esmu uzrakstījis visu kodu, jūs varat to nokopēt un ielīmēt un pēc saviem ieskatiem veikt izmaiņas. Kods ir šāds:

importa laiks

no pygame importa mikseris importēt virkni importēt praytimes no datuma importēšanas datuma, kamēr (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, ja currTime == FAJR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr. wav ') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpiniet, ja currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpiniet, ja currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpiniet, ja currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpiniet, ja currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpināt

Ja paskatās uz kodu un salīdzina to ar iepriekš veikto, jūs redzēsiet, ka mēs neko daudz jaunu nedarījām, sākumā iekļāvām nepieciešamās bibliotēkas un pēc tam atvērām bezgalīgu cilpu. šajā ciklā mēs pastāvīgi aprēķinām lūgšanu laiku ar savu atrašanās vietu un laika joslu, un visu rezultātu saglabājam mainīgā tmm. tad mēs glabājam katru lūgšanas laiku no tmm līdz neatkarīgam mainīgajam. kas ļaus mums salīdzināt laiku. pēc tam mēs ņemam sistēmas laiku un uzglabājam to neatkarīgā mainīgajā. visbeidzot, mēs turpinām salīdzināt sistēmas laiku ar lūgšanu laikiem, ja sistēmas laiks atbilst kādam no lūgšanas laikiem, tas atskaņos azāna skaņu.

13. darbība: 4. nodaļa. Pulksteņu seju ieviešana

4. nodaļa: Pulksteņu seju ieviešana
4. nodaļa: Pulksteņu seju ieviešana
4. nodaļa. Pulksteņu seju ieviešana
4. nodaļa. Pulksteņu seju ieviešana
4. nodaļa. Pulksteņu seju ieviešana
4. nodaļa. Pulksteņu seju ieviešana
4. nodaļa: Pulksteņu seju ieviešana
4. nodaļa: Pulksteņu seju ieviešana

Lai projekts izskatītos labāk, man radās ideja LCD ekrānam pievienot pulksteņa ciparnīcas, tāpēc lietotājam tas izskatās jauki (vismaz labāk, nekā komandrindā), tāpēc esmu nolīgusi dizaineri, kurš izstrādās vairākas sejas pulkstenim, tam jābūt tukšam bez datiem, jo dati jāpievieno, izmantojot HTML, padarot pulksteņa dizainu par fonu, un pārējos datus, piemēram, lūgšanu laikus, var pievienot kā HTML elementus fona augšpusē.

Diemžēl, rakstot šo instrukciju, manas zināšanas un pieredze HTML ir ļoti ierobežota, tāpēc es neapspriedīšu daudz detaļu, jo es zinu, ka darīšu lietas nepareizi, un es to nedaru. gribu mulsināt cilvēkus. bet, ja jums ir pat neliela pieredze JS un HTML, jums vajadzētu zināt, kā turpināt šo punktu. līdz šim esmu izveidojis vienu seju (zilo). plāns ir izveidot 14 pulksteņa ciparnīcas! 7 sejas ikdienas ikdienai un vēl 7 - kā cita tēma. tā kā pirmajai tēmai vajadzētu būt kopā ar Azkar, un otrai tēmai vajadzētu būt islāma GIFS, nevis Azkar. neatkarīgi no tā, es šajā instrukcijā iekļaušu visus dizainus, lai jūs varētu to lejupielādēt.

14. darbība: 5. nodaļa: lietotāja interfeisa ieviešana

5. nodaļa: Lietotāja interfeisa ieviešana
5. nodaļa: Lietotāja interfeisa ieviešana

Mūsu ceļojuma pēdējā nodaļā mēs veiksim dažas izvēles izmaiņas, lai padarītu projektu pat lietotājam draudzīgu, ja mēs vēlamies projektu īstenot mošejā vai jebkurā sabiedriskā vietā. kā jau teicām iepriekš, katrai pilsētai ir savs lūgšanu laiks, un, lai šis projekts būtu pieejams plašākam cilvēku lokam, mēs izveidosim lietotāja saskarni, lai pēc projekta ieslēgšanas mēs varētu izvēlēties vēlamo pilsētu un tēmu.

Lai to izdarītu, mēs izmantosim python GUI bibliotēku ar nosaukumu "TKinter".

Šo kodu esmu ieviesis, lai dotu man iespēju izvēlēties starp piecām Saūda Arābijas pilsētām, tostarp Meku:

importēt tkinter kā tk

no tkinter importa * no tkinter importa ttk importa kodeku importēšana os klases karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Poga (self, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Poga (self, text = "Makkah", augstums = 5, platums = 80, komanda = self.open_makkah1) self.button3 = Poga (self, text = "Riyadh", height = 5, width = 80, command = self.open_riyadh1) self.button4 = Button (self, text = "Madina", height = 5, platums = 80, komanda = self.open_madina1) self.button5 = Poga (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (rinda = 0, kolonna = 1, kolonnu platums = 2, lipīgs = W+E+N+S) self.button2.grid (rinda = 1, kolonna = 1, kolonnu josla = 2, lipīga = W+E+N+S) self.button3.grid (rinda = 2, kolonna = 1, kolonnu josla = 2, lipīga = W+E+N+S) self.button4.grid (rinda = 3, kolonna = 1, kolonnu josla = 2, lipīga = W+E+N+S) self.button5.grid (rinda = 4, kolonna = 1, kolonnu josla = 2, sticky = W+E+N+S) def open_jeddah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox" os.system (order) def open_makkah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def main (): karl (). mainloop () if _name_ == '_main_': main ()

Kods var šķist liels, taču rediģēt to ir ļoti vienkārši. mēs būtībā izveidojām jaunu logu, ievietojām piecas vārdu pogas un definējām piecas funkcijas, kas jāizsauc katru pogu nospiešanu. vienreiz nospiežot pogu, programma mapē Pilsētas atvērs atbilstošo HTML failu, kuram katras pilsētas HTML ir pilsētas koordinātas, kad tas saņem laiku no praytimes (). kad nospiežat pogu, pitona kods izslēgs linux kodu, kurā tas atvērs HTML failu, izmantojot pārlūku hroms, un pulksteņa ekrāns būs gatavs rādīšanai, ieslēdzot pilnekrāna iespēju.

15. darbība: (pēc izvēles): skaļruņu slēdža pievienošana

(Pēc izvēles): skaļruņu slēdža pievienošana
(Pēc izvēles): skaļruņu slēdža pievienošana
(Pēc izvēles): skaļruņu slēdža pievienošana
(Pēc izvēles): skaļruņu slēdža pievienošana

Kā mēs redzējām, kad lūgšanu laikā pienāks Azan skaņas atskaņošana un skaņa iznāks no noklusējuma skaņas izejas (HDMI vai AV izeja), un, tā kā mēs to ievietojam HDMI izejā, skaņa nāks no LCD. bet ko tad, ja ar mūsu LCD skaņu nepietiek? piemēram, ja mēs vēlamies to īstenot īstā mošejā? ar platiem ārējiem skaļruņiem? tad mēs varam pievienot vēl vienu ĻOTI vienkāršu soli, lai to paveiktu. jau izveidotai skaļruņu skaņas sistēmai mums tikai jāieslēdz un jāizslēdz, kā arī jāņem jau esošais mikrofons un jāatrodas blakus LCD skaļruņiem.

To izdarīt ir viegli. mēs izmantosim jau esošo mošejas mikrofonu, kas ir pievienots skaļrunim, mums būs nepieciešams tikai raspberryPi, lai kontrolētu jaudu, kas ieslēdz un izslēdz visu skaņas sistēmu. Lai to izdarītu, mums būs jāizmanto SSR: SOLID STATE RELAY. šāda veida releji var darboties kā slēdzis, līdzīgi kā vidējais zilais relejs, atšķirība ir tāda, ka SSR caur to var izturēt lielu daudzumu maiņstrāvas strāvas stipruma, kas nav piemērojams zilajiem (parasti ne vairāk kā 10A), un SSR vajadzībām tikai divi vadi 3 vietā: DC+ un DC- un viss! SSR otrā galā mēs varam savienot skaļruņu sistēmas barošanas kabeli, tādā veidā, kad mēs piešķiram spriegumu SSR, tas aizvērs skaļruņu sistēmas maiņstrāvas ķēdi vai mēs izslēgsim spriegumu, lai izveidotu atvērtu ķēdi, izslēdzot skaļruņus.

tur ir viena nozveja, RaspberryPi tapas izvada 3.3v, nevis 5v, kas mums ir nepieciešams, lai kontrolētu SSR. tāpēc mums ir nepieciešams tranzistors, lai ņemtu signālu no RPi tapas un 5V no RPi 5v tapas. lai to izdarītu, mums ir nepieciešams:

1 cietvielu relejs (viss, kas pārsniedz 25A, ir labs)

2-2n2222 npn tranzistors

3-220 omu rezistors

pievienojiet fritēšanas ķēdi.

tagad kodā mēs pievienosim dažas lietas, kas padara šo darbu. Pirmkārt, pirms cikla cikla mēs pievienosim dažas rindiņas, lai inicializētu GPIO tapas:

Importēšanas sadaļā pievienojiet:

importēt RPi. GPIO kā GPIO

Pirms cikla cikla pievienojiet:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) relejs = 40 GPIO.setup (ledPin, GPIO. OUT)

Tagad, kamēr cilpa, katrai Azan komandai ir jāieslēdz relejs, jāgaida 10 sekundes, jāpabeidz Azan atskaņošana un pēc tam jāizslēdz relejs. mums jāpievieno tikai divas rindas, pirmā ir:

GPIO izeja (LEDPin, GPIO. HIGH)

laiks. miegs (10)

šis ir jāpievieno pēc katra paziņojuma (IDENTĀCIJA IR SVARĪGA!), otra rinda ir šāda:

GPIO izvade (ledPin, GPIO. LOW)

Šis ir jāpievieno aiz rindas "turpināt". tam vajadzētu izskatīties šādi katru Azana laiku:

ja currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play (), kamēr mixer.music.get_busy () == True: turpināt GPIO.output (ledPin, GPIO. LOW)

Ieteicams: