Cuprins:
- Pasul 1: Capitolul 1: Configurarea și configurarea RaspberryPI
- Pasul 2: 1-1: Descărcați fișierele Neccessary
- Pasul 3: 1-2: Configurarea sistemului Raspbian
- Pasul 4: 1-3: Utilizarea liniei de comandă pentru a configura setările Rpi
- Pasul 5: Capitolul 2: Montarea, configurarea și utilizarea modulului RTC
- Pasul 6: 2-1: Configurarea modulului
- Pasul 7: 2-2: Interfață I2C
- Pasul 8: 2-3: Testarea RTC
- Pasul 9: Capitolul 3: Realizarea programului de alarmă Azan
- Pasul 10: 3-1: Să redăm un sunet
- Pasul 11: 3-2: Obțineți orele de rugăciune
- Pasul 12: 3-3: Realizarea codului final de alarmă Azan
- Pasul 13: Capitolul 4: Implementarea fețelor Watch
- Pasul 14: Capitolul 5: Implementarea unei interfețe cu utilizatorul
- Pasul 15: (Opțional): Adăugarea unui comutator difuzor
Video: Ceas și alarmă RaspberryPi Islamic Prayers: 15 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Musulmanii din întreaga lume au cinci rugăciuni în fiecare zi și fiecare rugăciune trebuie să se afle într-un anumit moment al zilei. datorită modului eliptic în care planeta noastră se mișcă în jurul soarelui, ceea ce face ca soarele să răsară și să coboare diferă pe tot parcursul anului, ceea ce face ca timpul de rugăciune să fie inconstant, motiv pentru care avem nevoie de un ceas islamic care să ne reamintească musulmanilor la fiecare oră de rugăciune zi.
Fiecare musulman are o modalitate de a accesa vremea zilnică a rugăciunii prin intermediul site-urilor web islamice, al calendarelor islamice locale sau chiar prin televizor, iar majoritatea dintre noi avem dispozitive de ceas islamic care au caracteristicile de a ne oferi orele de rugăciune, precum și alarmele de rugăciune.. Dar dacă ne-am confecționa propriul dispozitiv Prayers Watch și Alarm!
Înainte de a începe să lucrați la proiect, există câteva considerații pe care le-ați putea fi utile în timp ce citiți acest Instructable. Locuiesc în Arabia Saudită, așa că unii dintre pașii și valorile mele vor diferi de ale tale și le voi indica în mod explicit pe acestea în timpul lucrării. Există pași și imagini care ar putea include cuvinte arabe de când am făcut interfața în arabă, dar vă voi arăta și cum să o faceți în engleză, așa că nu lăsați cuvintele arabe din imagini să vă îngrijoreze deloc, acest proiect poate fi făcut în orice limbă (ceea ce este minunat!: D) De asemenea, vă rog să-mi scuzați greșelile de scriere, deoarece limba engleză nu este prima mea limbă.
La proiectul nostru! Acest proiect va fi împărțit în X pași majori, care până la sfârșitul celui de-al X-lea pas vom avea proiectul nostru frumos și gata! Pașii vor fi după cum urmează:
1-Configurarea și pregătirea RaspberryPi
2-Instalarea modulului RTC
3-Realizarea programului Azan Alarm
4-Implementarea fețelor ceasului
5-Realizarea interfeței utilizator și
Ca orice proiect, trebuie să pregătim mai întâi părțile de care avem nevoie. părțile de care avem nevoie pentru acest proiect sunt:
1-RaspberryPi Kit computer Amazon SUA || Amazon KSA
Puteți utiliza orice versiune Rpi, asigurați-vă că are Wifi. Am folosit Rpi3B +
2-RTC Modul de ceas în timp real Amazon SUA || Amazon KSA
Puteți utiliza orice model de modul RTC, asigurați-vă că are I2C
Monitor 3-LCD
Orice LCD va funcționa
4-Mouse și tastatură
si asta e!! Asta este tot ce ai nevoie pentru a-ți crea propriul ceas și alarmă Azan
Pasul 1: Capitolul 1: Configurarea și configurarea RaspberryPI
Să începem cu începutul! Trebuie să pregătim Raspberry pi pentru a lucra cu el.
Raspberry pi nu este altceva decât un computer, are RAM și ROM, are un procesor, GPU, I / O ……. Un computer! la fel ca cel pe care jucăm jocuri și cu care navighăm pe web, singurul lucru important este foarte mic! ceea ce face ca zmeura să fie o alegere foarte bună pentru realizarea și implementarea proiectelor pe. deoarece raspberry pi este mic, are specificații foarte limitate că nu poate opera un sistem de operare mare și exigent, cum ar fi Windows sau MacOS, în schimb, vom folosi Linux ca sistem de operare pentru a utiliza dispozitivul. există mii, dacă nu zeci de mii de distribuții Linux pe care le-am putea folosi, dar o distribuție perfectă este perfect optimizată special pentru raspberrypi pe care urmează să îl folosim, numit Raspbian.
Pasul 2: 1-1: Descărcați fișierele Neccessary
-Accesați pagina oficială de descărcare Rasbian la https://www.raspberrypi.org/software/operating-sy… și descărcați sistemul de operare Raspberry Pi cu fișier desktop
-În timp ce se descarcă, accesați https://win32diskimager.org/ și descărcați și instalați win32DiskImager, puteți utiliza orice software de înregistrare a imaginilor care vă place
după descărcare, veți avea un fișier.img care conține sistemul de operare RaspberryPi. apoi, conectați cardul de memorie SD la computer (de obicei cu un cititor de carduri USB) și lansați software-ul win32diskimager. pașii pentru arderea imaginii în memoria SD sunt foarte simpli, trebuie doar să 1- Selectați litera de memorie 2-Selectați fișierele sistemului de operare pe care le-ați descărcat și 3-Faceți clic pe scrie! Asigurați-vă că ați selectat litera potrivită a dispozitivului din listă și că memoria dvs. este goală, deoarece prin apăsarea scriere veți fi promovat cu un avertisment care vă spune că orice lucru de pe dispozitiv va fi șters! Apăsați da pentru a confirma scrierea și așteptați să se termine. acest lucru poate dura până la 20 de minute.
Odată ce ați terminat, veți avea întregul sistem de operare Rapbian pe memorie, puteți merge mai departe și îl puteți pune în Rapberry Pi, conectați Raspberry Pi la monitor prin HDMI, conectați mouse-ul și tastatura prin USB și, în cele din urmă, conectați putere.
Pasul 3: 1-2: Configurarea sistemului Raspbian
După conectarea cablurilor și a alimentării, veți vedea că sistemul de operare a pornit, se va reporni automat și apoi va afișa interfața de utilizator Raspbian (care arată similar cu Windows). primul lucru pe care îl veți vedea este o fereastră de bun venit, care vă va duce prin pașii de configurare a RaspberryPi pentru prima dată. ferestrele și pașii vor fi după cum urmează:
1-Apăsați următoarea pe prima fereastră „Bun venit”
2-Următoarea fereastră va fi pentru a vă configura locația. selectați țara, limba și fusul orar. după aceea, este foarte recomandat să verificați „Utilizați limba engleză”, deoarece aceasta va fi limba interfeței sistemului de operare. TREBUIE SĂ VERIFICAȚI „CASETA DE DISPOZIȚIE A TASTATURII ENGLEZE DIN SUA” AVEM NEVOIE DE TASTATURA ENGLEZĂ PENTRU A FUNCȚIONA!
3-În continuare, vi se va cere să introduceți o parolă pentru zmeura dvs., acest lucru este important pentru securitate, dar îl vom lăsa neschimbat pentru acest proiect. rețineți că numele de utilizator și parola implicite sunt:
nume de utilizator: pi
parola: zmeură
4-Următoarea fereastră va conecta raspberryPi la rețeaua WiFi. selectați numele wifi și introduceți parola wifi
5-următor, vi se va cere să actualizați bibliotecile și fișierele de sistem raspberry pi. acest pas va dura o cantitate uriașă de timp (poate în ore), dar este un pas foarte important pentru fiecare dată când se instalează un nou pi de zmeură.
6-odată ce actualizarea este finalizată, vi se va cere să reporniți sistemul. face asta acum.
Buna treaba! Acum avem un sistem actualizat, trebuie să mai facem câteva lucruri pentru a configura sistemul să funcționeze, dar acum, vom începe să folosim Linia de comandă Linux.
Pasul 4: 1-3: Utilizarea liniei de comandă pentru a configura setările Rpi
Odată ce ați terminat repornirea din actualizarea sistemului, sistemul va afișa desktopul utilizatorului odată ce a terminat pornirea. acum, dacă vă uitați în partea din stânga sus a ecranului, veți găsi câteva butoane, un buton cu sigla raspberryPi, care este butonul meniului Rpi, o formă de glob care este browserul de internet, un buton pentru foldere care este …..foldere și, în cele din urmă, un buton cu o fereastră cu ecran negru, care este cel mai important buton din orice sistem Linux, Linia de comandă. mergeți mai departe și apăsați butonul respectiv, veți vedea o fereastră neagră care apare.
Linia de comandă este modul în care toată lumea interacționează și folosește sistemul Linux, la fel cum Windows are propria linie de comandă numai la văduve, nu este nevoie să o folosim foarte des. în linux, este lucrul de bază pe care fiecare utilizator Linux trebuie să-l învețe și să-l stăpânească. linia de comandă poate fi utilizată de…. COMANDE! ceea ce vedeți în fereastra neagră este promptul de comandă care așteaptă ca comanda să fie scrisă de utilizator și executată. în acest ghid vom da toată comanda de care aveți nevoie pentru a realiza acest proiect, așa că nu vă faceți griji.
prima comandă Linux pe care o vom folosi este o altă comandă de configurare, rețineți că toate comenzile de acum înainte vor fi introduse într-o casetă de cod, astfel încât să o puteți diferenția de pașii obișnuiți. Aduceți tastatura și tastați următoarele și apăsați Enter:
sudo raspi-config
Dacă faceți acest lucru corect, veți vedea că ecranul a devenit ecran albastru, cu o căsuță gri în mijloc (a se vedea imaginea). vom folosi acest lucru pentru a face configurația finală înainte de a începe codarea.
acum, va trebui să utilizați tastele săgeată de la tastatură pentru a naviga în acest meniu.
1-Accesați opțiunile de interfață >> I2C >> DA >> apăsați Enter. acesta este activează protocolul de comunicație I2c, astfel încât să putem utiliza RTC
2-Accesați Opțiuni avansate >> Extindeți sistemul de fișiere.
și asta este toată configurația de care aveți nevoie din această fereastră. în pagina principală, coborâți și apăsați Enter pe "finish" și "YES" pentru a reporni sistemul.
Odată ce sistemul a repornit, am terminat cu configurarea! dispozitivul este gata pentru pașii mari! Următorul pas va fi instalarea modulului RTC și utilizarea acestuia cu sistemul.
Pasul 5: Capitolul 2: Montarea, configurarea și utilizarea modulului RTC
Modulul RTC (sau Ceas în timp real) este un dispozitiv mic, care are puțină baterie, face ceea ce implică numele, Clocking! deci, când îl deconectați la alimentare, ceasul continuă să funcționeze și nu se oprește. De ce avem nevoie de asta? Ei bine, raspberry pi nu are nicio metodă de stocare a datelor de ceas odată ce este oprit, se bazează pe conectarea la internet la pornire pentru a actualiza data și ora, dar problema este că nu avem întotdeauna acces la internet și acest lucru de aceea avem nevoie de modulul RTC. RTC va acționa ca un ceas pentru raspberry pi, astfel încât odată ce Rpi este pornit, va lua data și ora de la RTC, care va menține timpul RaspberryPi actualizat tot timpul.
există mai multe modele și arată RTC, există DS1307 și DS3231. puteți utiliza orice modul RTC pe care îl găsiți atâta timp cât are comunicare cu protocol I2C (puteți indica faptul că puteți găsi pinii SDA și SCL pe pinii modulului.
ca orice altceva din acest ghid, am folosit alte ghiduri pentru a-mi atinge obiectivul în proiect, acest instructiv vă va ghida și vă va spune exact ce trebuie să faceți pentru a face acest proiect, dar dacă trebuie să modificați sau aveți nevoie de mai multă profunzime pași, voi lega ghidul mai fructuos la sfârșitul fiecărui pas.
După ce ați pregătit modulul RTC (lipiți pinii antetului și puneți bateria), îl puteți conecta la pinii RapberryPi după cum urmează:
PIN RTC ---------------- Pin Rpi
GND ===========> PIN 6 (GND)
Vcc ============> PIN 1 (3,3V)
SDA ===========> PIN 3 (SDA)
SCL ===========> PIN 5 (SCL)
sau în funcție de modulul RTC pe care l-ați obținut, îl puteți monta direct pe RaspberryPi (asigurați-vă că pinii sunt corecți !!! deoarece s-ar putea deteriora Rpi / RTC dacă nu)
După ce ați conectat RTC, să configurăm Raspberry.
Pasul 6: 2-1: Configurarea modulului
Înainte de a începe, accesați linia de comandă și tastați:
Data
Acest lucru va reda data și ora curente pe Raspberry, va lua act de acea comandă foarte utilă și va nota data și ora curente, astfel încât să putem verifica când modulul funcționează sau nu.
acum, să începem configurarea, tastați următoarele pentru a actualiza bibliotecile Rpi, rând pe rând:
sudo apt-get update
sudo apt-get -y upgrade
Odată ce ați terminat, trebuie să modificăm fișierele de sistem pentru a activa modulul i2c și a adăuga RTC, pentru a modifica un sistem de fișiere vom folosi un software numit Nano. nano este un software încorporat ușor, care este practic un editor de text, la fel ca cel din văduve. deci orice comandă care începe cu nano urmată de numele fișierului, va deschide fișierul respectiv în editorul de text nano. ați observat că am folosit și ceva numit Sudo, pe scurt, sudo acționează ca o asigurare pentru sistemul Linux care spune sistemului că utilizatorul care a făcut acea comandă este proprietarul dispozitivului, nu altcineva și oferă privilegii precum editarea / ștergerea către utilizator. de exemplu, dacă am deschide un fișier nano fără sudo, am putea vedea acel fișier, dar nu îl putem edita sau șterge.
acum, trebuie să modificăm fișierul modulelor, putem face acest lucru tastând:
sudo nano / etc / modules
după ce faceți acest lucru, veți găsi conținutul acelui fișier (a se vedea imaginea). utilizați tastele săgeată pentru a pune cursorul la sfârșitul textului și adăugați următoarele:
snd-bcm2835
i2c-bcm2835 i2c-dev rtc-ds1307
apăsați CTRL + S pentru a salva și CTRL + X pentru a ieși
Pasul 7: 2-2: Interfață I2C
Acum am conectat RTC și am activat i2c, să conectăm totul împreună.
tastați următoarele în promptul de comandă:
i2cdetect -y 1
vi se vor oferi o serie de spații libere, dar veți observa că există un număr undeva, acel număr este adresa modulului dvs. RTC. în cazul meu este 68. ia act de numărul respectiv. dacă nu vedeți acel număr din două cifre, înseamnă că probabil că sunteți conectat la RTC greșit.
acum, trebuie să modificăm fișierul rc.local, astfel încât să putem activa modulul RTC la pornire și să-l lăsăm să salveze data și ora în sistem. mai întâi, deschideți fișierul rc.local:
sudo nano /etc/rc.local
Înainte de linia exit0, adăugați următoarele:
echo ds1307 0x68> / sys / class / i2c-adapter / i2c-1 / new_device
hwclock -s
unde 0x68 este adresa i2c a dispozitivului dvs. după ce ați terminat, apăsați CTRL + S CTRL + X, apoi reporniți sistemul prin:
sudo reboot
Pasul 8: 2-3: Testarea RTC
Odată ce sistemul este repornit, putem verifica vremea în care RTC funcționează sau nu. prima alergare:
sudo hwclock -r
vi se va reda data și ora în modulul RTC. dacă vi se oferă altceva, asigurați-vă că ați făcut corect pașii.
acum, pentru a modifica ora și data de pe RTC, trebuie să modificăm mai întâi Data și Ora pe sistem, Apoi scrieți modificările la RTC. pentru a face acest lucru, rulați:
sudo date -s "29 AUG 1997 13:00:00"
și, bineînțeles, modificați data și ora în funcție de ora și data dvs. locale, înainte de a apăsa pe Enter. odată ce obțineți ora din dreapta Rpi, rulați următoarele pentru a salva data și ora pe RTC:
sudo hwclock -w
aaaa și gata! puteți verifica dacă funcționează cu hwclock -r și puteți vedea dacă data de pe RTC este corectă sau nu, apoi deconectați rpi de la internet și apoi opriți-l pentru o perioadă de timp și apoi porniți-l din nou și vedeți dacă are corect data si ora. ați terminat!
Ghidul complet despre modul de configurare a modulului RTC poate fi găsit aici
www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/
Pasul 9: Capitolul 3: Realizarea programului de alarmă Azan
a face un ceas este un lucru, sigur, putem să ne uităm la ceas și la orele de rugăciune și să vedem când va veni timpul, dar nu ar fi chiar MULT mai bine dacă am putea adăuga o alarmă sonoră pentru a ne anunța despre orele de rugăciune? CHIAR MAI BUN, facem alarma ca sunetul lui AZAN! să vedem cum putem realiza acest lucru.
pentru programarea noastră, vom folosi python ca limbaj de programare preferat, deoarece Python merge perfect cu RaspberryPi. pentru a crea un fișier de cod în python, procedăm la fel ca deschiderea unui fișier text, dar acum îl salvăm ca.py. pentru a rula programul, avem nevoie de mediul python instalat de raspbery, din fericire, Raspbian vine cu python și python3 preinstalate! deci tot ce trebuie să facem este să programăm. în acest ghid, nu vom vorbi despre limbă și nu vom învăța cum funcționează și funcțiile, dar vă voi da codurile necesare pentru a putea face proiectul.
pentru a începe, avem nevoie de un fișier de sunet al sunetului nostru preferat azan (în. WAV) avem nevoie de două fișiere, unul pentru al-fajr azan și altul pentru azan obișnuit. odată ce obțineți, puneți-l pe un stick și copiați-l pe desktopul raspberrypi.
acum avem fișierele, căutam o modalitate de a reda sunete audio pe raspberryPi și, spre surprinderea mea, nu prea puteam face acest lucru, dar am găsit acest răspuns pe stackoverflow care mi-a oferit ceea ce aveam nevoie
stackoverflow.com/questions/20021457/playi…
Am testat această metodă și a funcționat! deci să vedem cum putem implementa această metodă în proiectul nostru …
Pasul 10: 3-1: Să redăm un sunet
mai întâi, navigați la desktop prin:
cd Desktop
apoi creați un nou fișier de cod Python prin:
sudo nano AzanPlay.py
aceasta va face un nou fișier numit AzanPlay cu extensia pe un fișier python.py, vom avea un ecran negru gol pentru a ne permite să scriem codul nostru. scrieți pur și simplu aceste rânduri (aveți grijă să nu modificați nicio indentare sau spații, deoarece acest lucru este EXTREM de important în Python):
din mixerul de import pygame
mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () în timp ce mixer.music.get_busy () == Adevărat: continua
Unde / Desktop / este locul în care îți pui fișierele audio și „Adhan-Makkah.wav” este fișierul meu audio, care este înregistrarea sonoră Azan în makkah.
acum pentru a testa codul nostru, îl rulăm cu python tastând:
python AzanPlay.py
și veți avea sunetul care se va oferi de pe LCD-ul HDMI sau din portul AUX de pe Raspberrypi. dacă nu îl auziți de la difuzoarele LCD, conectați o căști la AUX și verificați.
Pasul 11: 3-2: Obțineți orele de rugăciune
După cum știm, timpul de rugăciune diferă de la un loc de pe pământ la altul și chiar și pentru o anumită locație, diferă de-a lungul anilor, ceea ce înseamnă că trebuie să găsim o modalitate de a ne menține orele de rugăciune în sistem actualizate tot timpul și pentru asta avem nevoie de funcții și calcule specifice și foarte complexe, pentru a le face corect. Din fericire, fratele nostru Hamid Zarrabi-Zadeh a transformat toate funcțiile de care avem nevoie într-o singură funcție pe care o putem folosi cu ușurință pentru a obține timpul în funcție de locația noastră și de ora curentă, UIMITOR! puteți găsi biblioteca și fișierele sursă la
praytimes.org/
Deci, vom folosi aceste fișiere minunate pentru a obține orele noastre de rugăciune și a le implementa în sistem. mai întâi, descărcați codurile de pe site și introduceți-le într-un folder / adhan / (avem nevoie atât de codurile JS, cât și de cele Python).
acum, permiteți să mergeți la acel folder și să testați biblioteca și ce poate face:
cd adhan
acolo, trebuie să facem un nou fișier de test în python, astfel încât să putem testa funcția:
sudo nano testAd.py
în interior, scrieți acest cod:
importați orele de rugăciune
de la data de import data tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)
Înainte de a salva fișierul, trebuie să schimbați LATITUDINE cu locația dvs. Latitude, la fel cu LONGTITUDE și să schimbați GMT în fusul dvs. orar. în cazul meu, va fi:
tmm = rugăciunile. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)
print (tmm)
În cele din urmă, CTRL-S și CTRL-X și apoi rulați codul:
test pythonAd.py
în cele din urmă, vi se vor reda timpul de rugăciune pentru ziua de azi, pentru locația dvs.
{'isha': '18: 58 ',' asr ': '15: 22', 'sunset': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' midnight ': '00: 17', 'sunrise': '06: 52 ',' fajr ': '05: 33'}
Grozav! acum că avem timpul nostru de rugăciune și știm acum să redăm sunete, să combinăm aceste două coduri într-un singur cod principal.
Pasul 12: 3-3: Realizarea codului final de alarmă Azan
terminând cele două coduri anterioare, am învățat cum să obținem orele exacte de rugăciune în funcție de locația noastră și cum să redăm sunetul Azan. acum, vom combina aceste două coduri într-un singur cod pe care îl vom folosi ca proiect final, iar acest cod va funcționa pe fundal, deoarece atunci când vine timpul Azan, acesta va reda sunetul Azan.
Am scris întregul cod, îl puteți copia și lipi și face propriile modificări după cum doriți. Codul este:
timpul de import
din pygame import mixer import șir de importare rugăciuni de la data de import datetime în timp ce (1): tmm = rugăciune. 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 () în timp ce mixer.music.get_busy () == Adevărat: continuați dacă currTime == DHUHR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if currTime == ASR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue if currTime == MAGHRIB: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () în timp ce mixer.music.get_busy () == Adevărat: continuați dacă currTime == ISHA: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () în timp ce mixer.music.get_busy () == Adevărat: continuați
Dacă vă uitați la cod și îl comparați cu ceea ce am creat anterior, veți vedea că nu am făcut nimic nou, la început, am inclus bibliotecile noastre necesare și apoi am deschis o buclă infinită. în buclă, calculăm constant timpul de rugăciune cu locația și fusul nostru orar și stocăm întregul rezultat în variabilă tmm. apoi, stocăm fiecare timp de rugăciune de la tmm la o variabilă independentă. care ne va permite să comparăm timpii. apoi, luăm timpul sistemului și îl stocăm într-o variabilă independentă. în cele din urmă, continuăm să comparăm timpul sistemului cu timpul de rugăciune, dacă timpul sistemului se potrivește cu oricare dintre timpurile de rugăciune, acesta va reda sunetul Azan.
Pasul 13: Capitolul 4: Implementarea fețelor Watch
Pentru a face proiectul să arate mai bine, am avut ideea de a adăuga fețe de ceas pe ecranul LCD, așa că arată frumos pentru utilizator (bine, cel puțin mai bine decât linia de comandă), așa că am angajat un designer care să proiecteze mai multe fețe pentru ceasul, ar trebui să fie gol, fără date, deoarece datele ar trebui adăugate prin HTML, făcând proiectarea ceasului ca fundal, iar celelalte date, cum ar fi timpul de rugăciune, ar putea fi adăugate ca elemente HTML deasupra fundalului.
Din păcate, din momentul scrierii acestei instrucțiuni, cunoștințele și experiența mea în HTML sunt foarte limitate, așa că nu voi discuta multe detalii, deoarece știu cu adevărat că voi face lucrurile într-un mod greșit și nu vreau să confundăm oamenii. dar dacă aveți chiar și o ușoară experiență în JS și HTML, ar trebui să știți cum să continuați din acest punct. până acum am făcut o singură față (cea albastră). planul este să faci 14 fețe de ceas! 7 fețe pentru fiecare zi a săptămânii și alte 7 ca o altă temă. deoarece prima temă ar trebui să fie cu rularea lui Azkar, iar cealaltă temă ar trebui să aibă GIF-uri islamice în loc de Azkar. indiferent, voi include toate desenele în acest instructable, astfel încât să îl puteți descărca.
Pasul 14: Capitolul 5: Implementarea unei interfețe cu utilizatorul
În ultimul capitol al călătoriei noastre, vom face câteva modificări opționale pentru a face proiectul chiar ușor de utilizat, în cazul în care dorim să implementăm proiectul într-o moschee sau în orice loc public. așa cum am spus mai devreme, fiecare oraș are propriul moment pentru rugăciuni și, pentru a face acest proiect acces pentru o veritate mai largă de oameni, vom crea o interfață cu utilizatorul, astfel încât să putem selecta orașul și tema dorită odată ce pornim proiectul.
Pentru a face acest lucru, vom folosi o bibliotecă GUI python numită „TKinter”.
Acesta este codul pe care l-am implementat pentru a-mi alege să aleg între cinci orașe din Arabia Saudită, inclusiv Makkah:
import tkinter ca tk
from tkinter import * from tkinter import ttk import codecs import os class karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. buton1 = Buton (auto, text = "Jeddah", înălțime = 5, lățime = 80, comandă = self.open_jeddah1) self.button2 = Buton (auto, text = "Makkah", înălțime = 5, lățime = 80, comandă = self.open_makkah1) self.button3 = Buton (self, text = "Riyadh", înălțime = 5, lățime = 80, comandă = self.open_riyadh1) self.button4 = Buton (self, text = "Madina", înălțime = 5, lățime = 80, comandă = self.open_madina1) self.button5 = Buton (self, text = "Qasim", înălțime = 5, lățime = 80, comandă = self.open_qasaim1) self.button1.grid (rând = 0, coloană = 1, columnspan = 2, lipicios = W + E + N + S) self.button2.grid (rând = 1, coloană = 1, columnspan = 2, lipicios = W + E + N + S) self.button3.grid (rând = 2, coloană = 1, coloană = 2, lipicios = W + E + N + S) self.button4.grid (rând = 3, coloană = 1, coloană = 2, lipicios = W + E + N + S) self.button5.grid (rând = 4, coloană = 1, columnspan = 2, lipicios = 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 ()
Codul ar putea părea mare, dar editarea acestuia este foarte ușoară. practic am creat o fereastră nouă, am pus cinci butoane cu nume și am definit cinci funcții care să fie apelate la fiecare apăsare a butonului. odată ce apăsați butonul, programul va deschide fișierul HTML corespunzător în folderul Orașe, pe care fiecare oraș HTML are coordonatele orașului atunci când obține timpul de la rugăciune (). după ce apăsați butonul, codul python va exclude un cod Linux în care va deschide fișierul HTML folosind browserul crom și veți avea fața ceasului gata de afișat, cu opțiunea ecran complet activat.
Pasul 15: (Opțional): Adăugarea unui comutator difuzor
După cum am văzut, când vine ora rugăciunii, sunetul Azan este redat, iar sunetul iese din ieșirea implicită a sunetului (ieșire HDMI sau AV) și, din moment ce îl punem pe ieșirea HDMI, sunetul va veni de pe ecranul LCD. dar, dacă sunetul nostru LCD nu este suficient? de exemplu, ce se întâmplă dacă vrem să implementăm acest lucru într-o adevărată moschee? cu difuzoare exterioare largi? apoi putem adăuga încă un pas FOARTE ușor pentru a realiza acest lucru. pentru un sistem de sunet pentru difuzoare deja construit, trebuie doar să îl porniți și să OPRIȚI și să luăm microfonul deja existent și să-l punem lângă difuzoarele LCD.
A face acest lucru este ușor. vom folosi microfonul pre-existent moschee care este conectat la difuzorul puternic, vom avea nevoie doar de raspberryPi pentru a controla puterea care pornește și oprește întregul sistem de sunet. pentru a face acest lucru, va trebui să folosim un SSR: SOLID STATE RELAY. aceste tipuri de relee pot acționa ca un comutator, la fel ca un releu albastru mediu, diferența este că SSR-urile pot rezista printr-o cantitate mare de Amperaj AC, care nu se aplică în cele albastre (de obicei, maxim 10A), iar SSR-urile au nevoie doar două fire în loc de 3: DC + și DC- și atât! la celălalt capăt al SSR putem conecta cablul de alimentare al sistemului de difuzoare, astfel, când acordăm tensiune SSR-ului, acesta va închide circuitul de curent alternativ al sistemului de difuzoare sau oprim tensiunea pentru a face un circuit deschis, oprind difuzoarele.
există o singură problemă, pinii RaspberryPi generează 3.3v, nu 5v, de care trebuie să controlăm SSR. deci avem nevoie de un tranzistor pentru a prelua semnalul de la pinul RPi și de 5V de la pinul RPi 5v. pentru a face acest lucru avem nevoie de:
1-Releu în stare solidă (orice peste 25A este bun)
2-2n2222 tranzistor npn
Rezistor 3-220ohm
urmați circuitul fritzing pentru conectare.
acum în cod, vom adăuga câteva lucruri care fac acest lucru să funcționeze. mai întâi, înainte de bucla while, vom adăuga câteva linii pentru a inițializa pinii GPIO:
În secțiunea de import, adăugați:
importați RPi. GPIO ca GPIO
Înainte de bucla while, adăugați:
GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) releu = 40 GPIO.setup (ledPin, GPIO. OUT)
Acum, în bucla while, pentru fiecare comandă Azan de redare, trebuie să pornim releul, să așteptăm 10 secunde, să terminăm redarea Azan și apoi să oprim releul. trebuie doar să adăugăm două linii, prima este:
Ieșire GPIO (ledPin, GPIO. HIGH)
time.sleep (10)
aceasta ar trebui adăugată după fiecare declarație if (IDENTAȚIA ESTE IMPORTANTĂ!), cealaltă linie este:
Ieșire GPIO (ledPin, GPIO. LOW)
Acesta trebuie adăugat după linia „continuare”. ar trebui să arate așa pentru fiecare dată Azan:
dacă currTime == FAJR:
GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-fajr.wav') mixer.music.play () în timp ce mixer.music.get_busy () == Adevărat: continuați GPIO.output (ledPin, GPIO. LOW)
Recomandat:
Ceas de pensionare / Count Up / Ceas Dn: 4 pași (cu imagini)
Ceas de pensionare / Count Up / Dn Clock: Am avut câteva dintre aceste afișaje cu matrice de puncte LED 8x8 în sertar și mă gândeam ce să fac cu ele. Inspirat de alte instructabile, mi-a venit ideea să construiesc un afișaj de numărătoare inversă / în sus pentru a număra înapoi până la o dată / oră viitoare și dacă timpul țintă p
Ceas cu alarmă extra puternic inspirat de bombă cu ceas cu doar 5 componente: 3 pași
Ceas cu alarmă extra puternic inspirat de Time Bomb cu doar 5 componente: Am creat acest ceas cu alarmă inspirat de Time Bomb ușor de realizat, care este garantat să vă trezească dimineața. Am folosit materiale simple în casă. Toate articolele utilizate sunt ușor disponibile și ieftine. Această alarmă inspirată de bomba cu ceas
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Ceas cu alarmă DIY Sesame Street (cu alarmă de incendiu!): 6 pași (cu imagini)
DIY Sesame Street Alarm Clock (cu alarmă de incendiu!): Bună tuturor! Acest proiect este primul meu. De când a apărut prima aniversare a verișorilor mei, am vrut să îi fac un cadou special. Am auzit de la unchiul și mătușa că se află pe Sesame Street, așa că am decis împreună cu frații mei să fac un ceas cu alarmă
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: 7 pași (cu imagini)
Ceas cu alarmă cu răsărit cu LED cu alarmă de melodie personalizabilă: motivația mea În această iarnă, iubita mea a avut multe probleme la trezire dimineața și părea să sufere de SAD (tulburare afectivă sezonieră). Ba chiar observ cât de greu este să te trezești iarna, deoarece soarele nu a venit