Sisällysluettelo:
- Vaihe 1: Luku 1: RaspberryPI: n määrittäminen ja määrittäminen
- Vaihe 2: 1-1: Lataa tarvittavat tiedostot
- Vaihe 3: 1-2: Raspbian-järjestelmän määrittäminen
- Vaihe 4: 1-3: Rpi-asetusten määrittäminen komentorivin avulla
- Vaihe 5: Luku 2: RTC -moduulin asentaminen, määrittäminen ja käyttö
- Vaihe 6: 2-1: Moduulin asetukset
- Vaihe 7: 2-2: I2C-käyttöliittymä
- Vaihe 8: 2-3: RTC: n testaaminen
- Vaihe 9: Luku 3: Azan -hälytysohjelman luominen
- Vaihe 10: 3-1: Soitetaan ääni
- Vaihe 11: 3-2: Hanki rukousajat
- Vaihe 12: 3-3: Viimeisen Azan-hälytyskoodin tekeminen
- Vaihe 13: Luku 4: Kellotaulujen käyttöönotto
- Vaihe 14: Luku 5: Käyttöliittymän käyttöönotto
- Vaihe 15: (Valinnainen): Kaiutinkytkimen lisääminen
Video: RaspberryPi islamilaisen rukouksen kello ja hälytys: 15 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Muslimit ympäri maailmaa pitävät viisi rukousta joka päivä, ja jokaisen rukouksen on oltava tiettyyn aikaan päivästä. koska planeettamme liikkuu auringon ympäri elliptisesti, mikä tekee auringon noususta ja laskusta eri aikoja eri aikoina, mikä tekee myös rukousajan epävakaaksi, minkä vuoksi tarvitsemme islamilaisen kellon, joka muistuttaa meitä muslimeja rukoilemisesta päivä.
Jokaisella muslimilla on mahdollisuus käyttää päivittäistä rukousajan säätä Internetin islamilaisten verkkosivustojen, paikallisten islamilaisten kalentereiden tai jopa television kautta, ja useimmilla meistä on islamilaisia kellolaitteita, joilla on rukousaikoja sekä rukoushälytyksiä. Mutta entä jos tekisimme oman rukouskello- ja hälytyslaitteen!
Ennen kuin aloitat projektin parissa työskentelyn, on muutamia näkökohtia, joista saatat olla hyötyä sinulle tämän opaskirjan lukemisen aikana. Asun Saudi -Arabiassa, joten jotkut askeleistani ja arvoistani eroavat sinun askeleistasi, ja osoitan ne nimenomaan työn aikana. On vaiheita ja kuvia, jotka saattavat sisältää arabialaisia sanoja, koska tein liitännän arabiaksi, mutta huomautan myös, kuinka tehdä se englanniksi, joten älä anna kuvien arabian sanojen huolestuttaa sinua ollenkaan, tämä projekti voi olla tehdään millä tahansa kielellä (mikä on mahtavaa!: D) Anteeksi myös kirjoitusvirheeni, koska englanti ei ole ensimmäinen kieleni.
Kohti projektiamme! Tämä projekti jakautuu X -päävaiheeseen, jotka saamme projektimme hienosti valmiiksi X. vaiheen loppuun mennessä! Vaiheet ovat seuraavat:
1-RaspberryPi-laitteen määrittäminen ja valmistelu
2-RTC-moduulin asentaminen
3-Azan-hälytysohjelman tekeminen
4-Kellotaulujen toteuttaminen
5-Käyttöliittymän luominen ja
Kuten jokaisessa projektissa, meidän on valmisteltava tarvitsemamme osat ensin. Osat, joita tarvitsemme tähän projektiin, ovat:
1-RaspberryPi -tietokonesarja Amazon USA || Amazon KSA
Voit käyttää mitä tahansa Rpi -versiota, mutta varmista, että siinä on Wifi. Käytin Rpi3B+
2-RTC Reaaliaikainen kellomoduuli Amazon US || Amazon KSA
Voit käyttää mitä tahansa RTC -moduulimallia, vain varmista, että siinä on I2C
3-LCD-näyttö
Mikä tahansa LCD tekee
4-hiiri ja näppäimistö
ja se on ….. !! Se on kaikki mitä tarvitset oman Azan -kellon ja herätyksen tekemiseen
Vaihe 1: Luku 1: RaspberryPI: n määrittäminen ja määrittäminen
Ensimmäiset asiat ensin! Meidän on valmisteltava Raspberry pi, jotta voimme työskennellä sen kanssa.
Raspberry pi on vain tietokone, siinä on RAM ja ROM, siinä on suoritin, GPU, I/O ……. Tietokone! aivan kuten se, jolla pelaamme pelejä ja selaamme verkkoa, vain tärkeintä on, että se on hyvin pieni! mikä tekee vadelmasta erittäin hyvän valinnan hankkeiden tekemiseen ja toteuttamiseen. koska vadelma pi on pieni, sillä on hyvin rajalliset tiedot, että se ei voi käyttää suurta vaativaa käyttöjärjestelmää, kuten ikkunoita tai macOS: ää, sen sijaan aiomme käyttää Linuxia käyttöjärjestelmänä laitteen käyttämiseksi. meillä on tuhansia ellei kymmeniä tuhansia Linux -distroja, joita voisimme käyttää, mutta yksi täydellinen distro on täydellisesti optimoitu nimenomaan raspberrypille, jota aiomme käyttää, nimeltään Raspbian.
Vaihe 2: 1-1: Lataa tarvittavat tiedostot
-Mene viralliselle Rasbian-lataussivulle osoitteessa https://www.raspberrypi.org/software/operating-sy… ja lataa Raspberry Pi OS with Desktop -tiedosto
-Kun se latautuu, siirry osoitteeseen https://win32diskimager.org/ ja lataa ja asenna win32DiskImager, voit käyttää mitä tahansa haluamaasi kuvan poltto -ohjelmistoa
kun lataus on valmis, sinulla on.img -tiedosto, joka sisältää RaspberryPi -käyttöjärjestelmän. kytke sitten SD -muistikortti tietokoneeseen (yleensä USB -kortinlukijalla) ja käynnistä win32diskimager -ohjelmisto. vaiheet kuvan polttamiseksi SD-muistiin on hyvin yksinkertainen, sinun tarvitsee vain 1- Valitse muistikirjaimesi 2-valitse lataamasi käyttöjärjestelmän tiedostot ja 3-napsauta kirjoittaa! Varmista, että olet valinnut oikean laitteen kirjaimen luettelosta ja muistisi on tyhjä, koska painamalla Kirjoita sinua ylennetään varoituksella, joka kertoo, että kaikki laitteen tiedot poistetaan! Vahvista kirjoittaminen painamalla kyllä ja odota sen päättymistä. tämä voi kestää jopa 20 minuuttia.
Kun se on valmis, sinulla on koko Rapbian -käyttöjärjestelmä muistissa, voit jatkaa ja laittaa sen Rapberry Pi -laitteeseen, liittää Raspberry Pi -laitteen näyttöön HDMI -liitännän kautta, liittää hiiren ja näppäimistön USB -liitännän kautta ja lopuksi liittää tehoa.
Vaihe 3: 1-2: Raspbian-järjestelmän määrittäminen
Kun olet liittänyt kaapelit ja virran, näet, että käyttöjärjestelmä on käynnistynyt, se käynnistyy automaattisesti uudelleen ja näyttää sitten Raspbian -käyttöliittymän (joka näyttää ikkunalta). ensimmäinen asia, jonka näet, on tervetuloa -ikkuna, joka vie sinut läpi RaspberryPi -laitteen ensimmäiset asetukset. ikkunat ja portaat ovat seuraavat:
1-Paina seuraavaksi ensimmäisessä "Tervetuloa" -ikkunassa
2-Seuraava ikkuna on sijaintisi määrittäminen. valitse maa, kieli ja aikavyöhyke. sen jälkeen on erittäin suositeltavaa tarkistaa "Käytä englannin kieltä", koska tämä on käyttöjärjestelmän käyttöliittymän kieli. PITÄÄ TARKISTA "US -ENGLANTIlaisen NÄPPÄIMISTÖASETUKSEN LAATIKKO", TARVITSEMME ENGLANTIKANÄPPÄIMISTÖN TYÖSKENTELEMISEKSI!
3-Seuraavaksi sinua pyydetään syöttämään vadelmasi salasana. Tämä on tärkeää turvallisuuden kannalta, mutta jätämme sen ennalleen tälle projektille. Huomaa, että oletuskäyttäjätunnus ja salasana ovat:
käyttäjätunnus: pi
salasana: vadelma
4-Seuraava ikkuna yhdistää raspberryPi WiFi-verkkoon. valitse wifi -nimi ja kirjoita wifi -salasanasi
Seuraavaksi sinua pyydetään päivittämään raspberry pi -kirjastot ja järjestelmätiedostot. tämä vaihe vie valtavasti aikaa (ehkä tunteina), mutta se on erittäin tärkeä askel aina, kun uutta vadelmapiä asennetaan.
6-kun päivitys on valmis, sinua pyydetään käynnistämään järjestelmä uudelleen. tee se nyt.
Hienoa työtä! Nyt meillä on päivitetty järjestelmä, meidän on vielä tehtävä muutamia asioita, jotta järjestelmä voidaan määrittää toimimaan, mutta nyt alkaa käyttää LinuxCommand Linea.
Vaihe 4: 1-3: Rpi-asetusten määrittäminen komentorivin avulla
Kun olet suorittanut uudelleenkäynnistyksen järjestelmäpäivityksestä, järjestelmä näyttää käyttäjän työpöydän, kun se on käynnistynyt. nyt jos katsot näytön vasenta yläkulmaa, löydät joitain painikkeita, painike, jossa on vadelmaPi-logo, joka on Rpi-valikkopainike, maapallon muotoinen internet-selain, kansiopainike, joka on…..kansioita ja lopuksi painike, jossa on musta näyttöikkuna, joka on tärkein painike missä tahansa Linux -järjestelmässä, komentorivi. mene eteenpäin ja paina tätä painiketta, näet mustan ikkunan avautuvan.
Komentorivi on se, miten kaikki ovat vuorovaikutuksessa ja käyttävät linux -järjestelmää, aivan kuten Windowsilla on oma komentorivi vain leskille, joiden ei tarvitse käyttää sitä kovin usein. Linuxissa se on perusasia, joka jokaisen linux -käyttäjän on opittava ja hallittava. komentoriviä voivat käyttää…. COMMANDS! mustassa ikkunassa näet komentokehotteen, joka odottaa, että käyttäjä kirjoittaa komennon ja suorittaa sen. tässä oppaassa annamme kaikki tämän projektin suorittamiseen tarvittavat komennot, joten älä huoli.
ensimmäinen Linux -komento, jota aiomme käyttää, on toinen kokoonpanokomento. Huomaa, että tästä lähtien kaikki komennot laitetaan koodikenttään, joten voit erottaa sen tavallisista vaiheista. Tuo näppäimistö ja kirjoita seuraava ja paina enter:
sudo raspi-config
Jos teet sen oikein, näet, että näyttö muuttui siniseksi ja harmaa pieni laatikko keskellä (katso kuva). käytämme sitä lopullisen määrityksen tekemiseen ennen koodauksen aloittamista.
Nyt sinun on käytettävä näppäimistön nuolinäppäimiä navigoidaksesi tässä valikossa.
1-Siirry kohtaan Liitäntävaihtoehdot >> I2C >> KYLLÄ >> paina Enter. tämä mahdollistaa I2c -tiedonsiirtoprotokollan, jotta voimme käyttää RTC: tä
2-Siirry Lisäasetukset >> Laajenna tiedostojärjestelmä.
ja se on kaikki määritykset, joita tarvitset tästä ikkunasta. Pääsivulla, mene alas ja paina Enter -painiketta "Finish" ja "YES" käynnistääksesi järjestelmän uudelleen.
Kun järjestelmä on käynnistynyt uudelleen, olemme kaikki määrittäneet! laite on valmis suuriin vaiheisiin! Seuraava vaihe on asentaa RTC -moduuli ja käyttää sitä järjestelmän kanssa.
Vaihe 5: Luku 2: RTC -moduulin asentaminen, määrittäminen ja käyttö
RTC (tai reaaliaikainen kello) -moduuli on pieni laite, jossa on vähän akkua, se tekee mitä nimi viittaa, kello! joten kun irrotat sen virtalähteestä, kello jatkaa toimintaansa eikä pysähdy. Miksi me tarvitsemme tätä? No, vadelmalla pi ei todellakaan ole mitään tapaa tallentaa kellotietoja, kun se on sammutettu, se perustuu Internet -yhteyden muodostamiseen käynnistyksen yhteydessä päivittääkseen päivämäärän ja kellonajan, mutta ongelma on, että meillä ei aina ole Internet -yhteyttä, ja tämä siksi tarvitsemme RTC -moduulin. RTC toimii vadelman pi kellona, joten kun Rpi käynnistetään, se ottaa päivämäärän ja ajan RTC: stä, jolloin RaspberryPi -aika pysyy ajan tasalla.
on olemassa useita malleja ja etsii RTC: tä, ovat DS1307 ja DS3231. Voit käyttää mitä tahansa löytämääsi RTC -moduulia, kunhan sillä on I2C -protokollayhteys (voit ilmoittaa, että löydät SDA- ja SCL -nastat moduulin nastoista.
Kuten mikä tahansa tässä oppaassa, käytin muita oppaita saavuttaakseni tavoitteeni projektissa, tämä ohje opastaa sinua ja kertoo täsmälleen, mitä tehdä tämän projektin toteuttamiseksi, mutta jos haluat muokata tai tarvitset enemmän syvyyttä johonkin linkin hedelmällisempään oppaaseen jokaisen vaiheen lopussa.
Kun olet saanut RTC -moduulin valmiiksi (juota otsikkotapit ja laita akku päälle), voit liittää sen RapberryPi -nastoihin seuraavasti:
RTC PIN ---------------- Rpi Pin
GND ===========> PIN 6 (GND)
Vcc ============> PIN 1 (3.3V)
SDA ===========> PIN 3 (SDA)
SCL ===========> PIN 5 (SCL)
tai riippuen siitä, minkä RTC -moduulin olet hankkinut, voit asentaa sen suoraan RaspberryPi -laitteeseen (Varmista, että nastat ovat oikein !!! koska saatat vahingoittaa Rpi/RTC -laitetta)
Kun olet liittänyt RTC: n, määritetään Vadelma.
Vaihe 6: 2-1: Moduulin asetukset
Ennen kuin aloitat, siirry komentoriville ja kirjoita:
Päivämäärä
Tämä antaa takaisin Vadelman nykyisen päivämäärän ja kellonajan, huomioi tämän erittäin hyödyllisen komennon ja merkitsee nykyisen päivämäärän ja kellonajan, jotta voimme tarkistaa, milloin moduuli toimii vai ei.
Aloitetaan nyt asennus, päivitä Rpi -kirjastot kirjoittamalla seuraava rivi kerrallaan:
sudo apt-get päivitys
sudo apt -get -y päivitys
Kun tämä on tehty, meidän on muokattava järjestelmätiedostoja, jotta i2c -moduuli voidaan ottaa käyttöön, ja lisättävä RTC, jotta voimme muokata tiedostojärjestelmää, jota aiomme käyttää Nano -ohjelmistolla. nano on kevyt sisäänrakennettu ohjelmisto, joka on pohjimmiltaan tekstieditori, aivan kuten leskiä. joten kaikki komennot, jotka alkavat sanalla nano ja jonka jälkeen tiedostonimi, avaavat kyseisen tiedoston nano -tekstieditorissa. olet huomannut, että käytimme myös jotain nimeltä Sudo, lyhyesti sanottuna, sudo toimii vakuutena linux -järjestelmälle, joka kertoo järjestelmälle, että kyseisen komennon antanut käyttäjä on laitteen omistaja, ei joku muu, ja antaa oikeuksia, kuten muokkaus/ poistaminen käyttäjälle. jos esimerkiksi avasimme nano -tiedoston ilman sudoa, voisimme tarkastella kyseistä tiedostoa, mutta emme voi muokata tai poistaa sitä.
Nyt meidän on muutettava moduulitiedostoa, voimme tehdä tämän kirjoittamalla:
sudo nano /etc /modules
Kun teet sen, löydät tiedoston sisällön (katso kuva). aseta kohdistin tekstin loppuun nuolinäppäimillä ja lisää seuraava:
snd-bcm2835
i2c-bcm2835 i2c-dev rtc-ds1307
Tallenna painamalla CTRL+S ja poistu painamalla CTRL+X
Vaihe 7: 2-2: I2C-käyttöliittymä
Nyt olemme yhdistäneet RTC: n ja ottaneet i2c: n käyttöön, kytketään kaikki yhteen.
kirjoita seuraava komentokehotteeseen:
i2cdetect -y 1
sinulle annetaan joukko aihioita, mutta huomaat, että jossain on numero, joka on RTC -moduulin osoite. minun tapauksessani se on 68. huomaa tämä numero. Jos et näe tätä kaksinumeroista numeroa, olet todennäköisesti liittänyt RTC: n väärin.
Nyt meidän on muokattava rc.local -tiedostoa, jotta voimme ottaa RTC -moduulin käyttöön käynnistyksen yhteydessä ja antaa sen tallentaa päivämäärän ja kellonajan järjestelmään. avaa ensin rc.local -tiedosto:
sudo nano /etc/rc.local
Lisää ennen exit0 -riviä seuraava:
echo ds1307 0x68>/sys/class/i2c-adapter/i2c-1/new_device
hwclock -s
jossa 0x68 on laitteen i2c -osoite. Kun olet valmis, paina CTRL+S CTRL+X ja käynnistä järjestelmä uudelleen seuraavasti:
sudo uudelleenkäynnistys
Vaihe 8: 2-3: RTC: n testaaminen
Kun järjestelmä on käynnistetty uudelleen, voimme tarkistaa RTC: n sään vai ei. juokse ensin:
sudo hwclock -r
sinulle annetaan päivämäärä ja kellonaika RTC -moduulissa. jos sinulle annetaan jotain muuta, varmista, että olet tehnyt vaiheet oikein.
Jos haluat muuttaa kellonaikaa ja päivämäärää RTC: ssä, meidän on ensin muutettava järjestelmän päivämäärää ja kellonaikaa, sitten RTC: n muutokset. tehdäksesi sen, juokse:
sudo date -s "29. ELOKUU 1997 13:00:00"
ja tietysti, muuta päivämäärä ja aika paikallisen ajan ja päivämäärän mukaan, ennen kuin painat enter. kun olet saanut ajan Rpi -oikealla, tallenna päivämäärä ja kellonaika RTC: lle suorittamalla seuraava:
sudo hwclock -w
aaaa ja siinä se! voit tarkistaa, toimiiko se hwclock -r: llä ja nähdä, onko RTC: n päivämäärä oikea vai ei, irrota sitten rpi Internetistä ja sammuta se jonkin aikaa ja kytke se sitten uudelleen päälle ja katso, onko se oikea aika ja päivämäärä. olet valmis!
Täysi opas RTC -moduulin asentamiseen löytyy täältä
www.raspberrypi-spy.co.uk/2015/05/adding-a-ds3231-real-time-clock-to-the-raspberry-pi/
Vaihe 9: Luku 3: Azan -hälytysohjelman luominen
kellon tekeminen on yksi asia, tietysti, voimme katsoa kelloa ja rukousaikoja ja katsoa, milloin aika tulee, mutta eikö olisi vielä PALJON parempi, jos voisimme lisätä äänimerkin ilmoittamaan meille rukousajoista? Vielä PAREMPI, teemme sen hälytyksen AZANin äänenä! katsotaan miten voimme tehdä tämän.
ohjelmoinnissamme aiomme käyttää pythonia ensisijaisena ohjelmointikielenämme, koska python sopii täydellisesti RaspberryPi: n kanssa. luodaksemme kooditiedoston pythonissa, teemme saman kuin avaamme tekstitiedoston, mutta nyt tallennamme sen.py. Ohjelman suorittamiseksi tarvitsemme raspberysta asennetun python -ympäristön, onneksi Raspbianin mukana on valmiiksi asennettu python ja python3! joten meidän tarvitsee vain ohjelmoida. Tässä oppaassa emme puhu kielestä ja opetamme sen toimintaa ja toimintoja, mutta annan sinulle tarvittavat koodit, jotta voit tehdä projektin.
aluksi tarvitsemme äänitiedoston haluamastamme atsan-äänestä (. WAV-muodossa), tarvitsemme kaksi tiedostoa, yhden al-fajr azanille ja toisen tavalliselle azanille. Kun saat sen, aseta se tikkuasemalle ja kopioi se vadelmapiirin työpöydälle.
nyt meillä on tiedostot, etsin tapaa toistaa ääniääniä vadelmaPi: llä ja yllätyksekseni ei ollut paljon tapoja, joilla voisimme tehdä tämän, mutta löysin tämän vastauksen stackoverflow: sta, joka antoi minulle mitä tarvitsin
stackoverflow.com/questions/20021457/playi…
testasin tuota menetelmää ja se toimi! joten katsotaan kuinka voimme toteuttaa tämän menetelmän projektissamme…
Vaihe 10: 3-1: Soitetaan ääni
Siirry ensin työpöydälle seuraavasti:
cd -työpöytä
Luo sitten uusi python -kooditiedosto seuraavasti:
sudo nano AzanPlay.py
tämä tekee uuden tiedoston nimeltä AzanPlay, jonka laajennus on python -tiedostossa.py, meillä on tyhjä musta näyttö, jotta voimme kirjoittaa koodimme. kirjoita vain nämä rivit muistiin (varo, ettet muuta sisennyksiä tai välilyöntejä, koska tämä on ERITTÄIN tärkeää pythonissa):
pygame -tuontisekoittimesta
mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () kun mixer.music.get_busy () == True: jatka
Minne / Desktop / on äänitiedostojen sijoituspaikka, ja "Adhan-Makkah.wav" on äänitiedostoni, joka on Azan-äänitallenne makkahissa.
testataksemme koodiamme, suoritamme sen pythonilla kirjoittamalla:
python AzanPlay.py
ja ääni toistuu HDMI -nestekidenäytöstä tai Raspberrypi -laitteen AUX -portista. jos et kuule sitä LCD -kaiuttimista, kytke kuulokkeet AUX -liitäntään ja tarkista.
Vaihe 11: 3-2: Hanki rukousajat
Kuten tiedämme, rukousajat vaihtelevat eri paikoissa maan päällä, ja jopa tietyssä paikassa, ne vaihtelevat vuosien mittaan, mikä tarkoittaa, että meidän on löydettävä tapa pitää rukousaikamme järjestelmässä jatkuvasti ajan tasalla, ja Tätä varten tarvitsemme erityisiä ja erittäin monimutkaisia toimintoja ja laskelmia, jotta se saadaan oikein. Onneksi veljemme Hamid Zarrabi-Zadeh on yhdistänyt kaikki tarvitsemamme toiminnot yhdeksi funktioksi, jonka avulla voimme helposti saada ajan sijaintimme ja nykyisen ajan mukaan, AMAZING! löydät kirjaston ja lähdetiedostot osoitteesta
praytimes.org/
Joten aiomme käyttää näitä mahtavia tiedostoja saadaksemme rukousaikamme ja toteuttaaksemme sen järjestelmässä. Lataa ensin koodit verkkosivustolta ja aseta se / adhan / kansioon (tarvitsemme sekä JS- että Python -koodit).
Siirry nyt kyseiseen kansioon ja testaa kirjastoa ja mitä se voi tehdä:
cd adhan
siellä meidän on tehtävä uusi testitiedosto pythonissa, jotta voimme testata toimintoa:
sudo nano testAd.py
kirjoita sisään tämä koodi:
tuoda rukousajat
päivämäärän ja tuonnin päivämäärästä tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)
Ennen kuin tallennat tiedoston, sinun on vaihdettava LATITUDE sijaintisi Latitude -asemaan, sama LONGTITUDE -asetukseen ja GMT -aikavyöhyke. minun tapauksessani se on:
tmm = rukousajat. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)
tulosta (tmm)
Lopuksi CTRL-S ja CTRL-X ja suorita sitten koodi:
python testAd.py
lopulta sinulle annetaan takaisin tämän päivän, sijaintisi, rukousajat.
{'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'}
Loistava! nyt kun meillä on rukousaika ja osaamme nyt soittaa ääniä, yhdistetään nämä kaksi koodia yhteen pääkoodiksi.
Vaihe 12: 3-3: Viimeisen Azan-hälytyskoodin tekeminen
viimeistelemällä kaksi edellistä koodia, opimme saamaan tarkat rukousajat sijaintimme mukaan ja kuinka toistaa Azan -ääntä. Yhdistämme nämä kaksi koodia yhdeksi koodiksi, jota aiomme käyttää lopullisena projektina, ja tämä koodi toimii taustalla, sillä kun Azanin aika tulee, se toistaa Azan -äänen.
Olen kirjoittanut koko koodin, voit kopioida sen ja liittää sen ja tehdä omia muutoksia parhaaksi katsomallasi tavalla. Koodi on:
tuonnin aika
pygame -tuontisekoittimesta tuontimerkkijonon tuonti rukouksen ajat päivämäärän tuontipäivästä, kun taas (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 () while mixer.music.get_busy () == True: jatka jos currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () kun mixer.music.get_busy () == Tosi: jatka jos currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mikseri.music.play (), kun taas mixer.music.get_busy () == Totta: jatka, jos currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mikseri.music.play (), kun taas mixer.music.get_busy () == Totta: jatka, jos currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play (), kun taas mixer.music.get_busy () == True: jatka
Jos tarkastelet koodia ja vertaat sitä aikaisempaan tekemäämme, huomaat, että emme tehneet mitään uutta, aluksi sisällytimme tarvittavat kirjastot ja avasimme loputtoman silmukan. silmukassa laskemme jatkuvasti rukousajan sijaintimme ja aikavyöhykkeemme mukaan ja tallennamme koko tuloksen muuttuvaan tmm: ään. sitten tallennamme jokaisen rukousajan tmm: stä riippumattomaan muuttujaan. jonka avulla voimme vertailla aikoja. seuraavaksi otamme järjestelmän ajan ja tallennamme sen riippumattomaan muuttujaan. Lopuksi verraamme järjestelmäaikaa rukousaikoihin, jos järjestelmäaika vastaa rukousaikoja, se toistaa Azan -äänen.
Vaihe 13: Luku 4: Kellotaulujen käyttöönotto
Jotta projekti näyttäisi paremmalta, minulla oli idea lisätä kellotauluja nestekidenäyttöön, joten se näyttää käyttäjältä kivalta (ainakin paremmalta kuin komentoriviltä), joten olen palkannut suunnittelijan suunnittelemaan useita kasvoja kellon, sen pitäisi olla tyhjä ilman tietoja, koska tiedot on lisättävä HTML: n kautta, jolloin kellomallit muodostetaan taustaksi, ja muut tiedot, kuten rukousajat, voitaisiin lisätä HTML -elementteinä taustan päälle.
Valitettavasti tämän ohjeen kirjoittamishetkellä tietoni ja kokemukseni HTML: stä ovat hyvin rajalliset, joten en keskustele paljon yksityiskohdista, koska tiedän tosissani, että teen asiat väärin, enkä haluavat hämmentää ihmisiä. mutta jos sinulla on pientäkin kokemusta JS: stä ja HTML: stä, sinun pitäisi tietää, miten jatkaa tästä kohdasta. toistaiseksi olen tehnyt yhden kasvot (sininen). Suunnitelma on tehdä 14 kellotaulua! 7 kasvot viikon jokapäiväiseen, ja 7 muuta teemaa. koska ensimmäisen teeman pitäisi olla Azkarin vieritys, ja toisessa teemassa on tarkoitus olla islamilaisia GIFS -tiedostoja Azkarin sijasta. Siitä huolimatta sisällytän kaikki mallit tähän ohjeeseen, jotta voit ladata sen.
Vaihe 14: Luku 5: Käyttöliittymän käyttöönotto
Matkamme viimeisessä luvussa teemme joitakin valinnaisia muutoksia, jotta projekti olisi jopa käyttäjäystävällinen, jos haluamme toteuttaa projektin moskeijassa tai missä tahansa julkisessa paikassa. Kuten aiemmin sanoimme, jokaisella kaupungilla on oma ajoituksensa rukouksille, ja jotta saamme tämän projektin käyttöön laajemmalle ihmisille, teemme käyttöliittymän, jotta voimme valita haluamamme kaupungin ja teeman, kun käynnistymme projektissa.
Tätä varten käytämme python GUI -kirjastoa nimeltä "TKinter".
Tämä on koodi, jonka olen ottanut käyttöön, jotta voin valita viidestä Saudi -Arabian kaupungista, mukaan lukien Mekka:
tuo tkinter tk: nä
tkinter tuonnista * tkinter tuonnista ttk tuonti koodekit tuonti os luokka karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (its, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Button (self, text = "Riyadh", height = 5, width = 80, command = self.open_riyadh1) self.button4 = Button (self, text = "Madina", height = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", height = 5, width = 80, command = self.open_qasaim1) self.button1.grid (rivi = 0, sarake = 1, sarakeväli = 2, tahmea = L+E+N+S) its.button2.grid (rivi = 1, sarake = 1, sarakeväli = 2, tahmea = W+E+N+S) self.button3.grid (rivi = 2, sarake = 1, sarakkeiden väli = 2, tahmea = L+E+N+S) itse. painike 4. ruudukko (rivi = 3, sarake = 1, sarakealue = 2, tahmea = W+E+N+S) self.button5.grid (rivi = 4, sarake = 1, sarakeväli = 2, tahmea = 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 (järjestys) def open_madina1 (itse): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (order) def open_qasaim1 (itse): 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 ()
Koodi saattaa näyttää isolta, mutta sen muokkaaminen on erittäin helppoa. teimme pohjimmiltaan uuden ikkunan, laitoimme viisi nimipainiketta ja määritimme viisi toimintoa, joita kutsutaan jokaisen painikkeen painalluksen jälkeen. kun painat painiketta, ohjelma avaa vastaavan HTML -tiedoston Cities -kansiossa, jonka jokaisella kaupungin HTML -koodilla on kaupungin koordinaatit, kun se saa ajan rukouksista (). kun painat painiketta, python -koodi lähettää linux -koodin, jossa se avaa HTML -tiedoston kromiselaimella, ja kellotaulu on valmis näytettäväksi, ja koko näytön vaihtoehto on käytössä.
Vaihe 15: (Valinnainen): Kaiutinkytkimen lisääminen
Kuten näimme, kun rukousaika tulee Azan -äänentoisto ja ääni tulee oletusäänilähdöstä (HDMI- tai AV -lähtö), ja koska laitamme sen HDMI -lähtöön, ääni tulee nestekidenäytöstä. mutta entä jos LCD -äänemme ei riitä? mitä jos esimerkiksi haluamme toteuttaa tämän aidon moskeijan sisällä? leveillä ulkokaiuttimilla? sitten voimme lisätä yhden erittäin helpon askeleen sen saavuttamiseksi. jo rakennetulle kaiutinäänijärjestelmälle meidän tarvitsee vain kytkeä se päälle ja pois päältä ja ottaa jo olemassa oleva mikrofoni ja asettaa se LCD -kaiuttimien viereen.
Sen tekeminen on helppoa. käytämme kaiuttimeen yhdistettyä olemassa olevaa moskeijamikrofonia, tarvitsemme vain raspberryPi: n ohjaamaan virran, joka kytkee koko äänijärjestelmän päälle ja pois. Tätä varten meidän on käytettävä SSR: SOLID STATE RELAY -toimintoa. tämäntyyppiset releet voivat toimia kytkimenä, aivan kuten keskimääräinen sininen rele, ero on siinä, että SSR: t kestävät sen läpi suuren määrän AC -virtaa, mikä ei koske sinisiä (yleensä enintään 10 A), ja SSR: t tarvitsevat vain kaksi johtoa 3 sijasta: DC+ ja DC- ja siinä kaikki! SSR: n toisessa päässä voimme liittää kaiutinjärjestelmän virtakaapelin, jolloin kun annamme jännitteen SSR: lle, se sulkee kaiutinjärjestelmän vaihtovirtapiirin tai sammutamme jännitteen, jotta saadaan aikaan avoin piiri, sammuttamalla kaiuttimet.
siinä on yksi saalis, RaspberryPi -nastat tuottavat 3.3v, ei 5v, joita meidän on hallittava SSR: ää. joten tarvitsemme transistorin ottamaan signaalin RPi -nastasta ja 5V RPi: n 5v -nastasta. niin tarvitsemme:
1-puolijohderele (mikä tahansa yli 25A on hyvä)
2-2n2222 npn-transistori
3-220 ohmin vastus
seuraa liimauspiiriä liittämiseksi.
nyt koodiin lisäämme joitain asioita, jotka tekevät tämän toimivaksi. Ensinnäkin, ennen while -silmukkaa, lisäämme joitain rivejä GPIO -nastien alustamiseksi:
Lisää tuontiosioon:
Tuo RPi. GPIO GPIO: ksi
Lisää ennen while -silmukkaa:
GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) -rele = 40 GPIO.setup (ledPin, GPIO. OUT)
Nyt, samalla silmukalla, jokaista Azan -komentoa varten meidän on kytkettävä rele päälle, odotettava 10 sekuntia, lopetettava Azanin toisto ja kytkettävä sitten rele pois päältä. meidän tarvitsee vain lisätä kaksi riviä, ensimmäinen on:
GPIO -lähtö (ledPin, GPIO. HIGH)
aika. unta (10)
tämä tulee lisätä jokaisen if -lauseen jälkeen (TUNNISTUS ON TÄRKEÄÄ!), toinen rivi on:
GPIO -lähtö (ledPin, GPIO. LOW)
Tämä on lisättävä "jatka" -rivin jälkeen. sen pitäisi näyttää tältä joka Azan -ajan:
jos currTime == FAJR:
GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () kun mixer.music.get_busy () == True: jatka GPIO.output (ledPin, GPIO. LOW)
Suositeltava:
UD-hälytys. autistiselle pojalle: 7 vaihetta (kuvilla)
UD-hälytys. pojalle, jolla on autismi: Ud-Alert tai parempi Undress Alert, mutta mihin? Poikamme Scott, 13-vuotias, kärsii autismista. Hän on sanaton ja hänellä on edelleen ongelmia näyttää meille, kun hänen on mentävä wc: hen. Rajoitetun viestinnän vuoksi hän ottaa vaatteet pois
Kaikki yhdessä digitaalinen kronometri (kello, ajastin, hälytys, lämpötila): 10 vaihetta (kuvien kanssa)
Kaikki yhdessä digitaalinen kronometri (kello, ajastin, hälytys, lämpötila): Suunnittelimme tehdä ajastimen jollekin toiselle kilpailulle, mutta myöhemmin otimme käyttöön myös kellon (ilman RTC: tä). Kun aloitimme ohjelmoinnin, kiinnostuimme lisäämään toimintoja laitteeseen ja lisäsimme DS3231 RTC: n, kuten
Arduino -hälytys ultraäänianturilla: 5 vaihetta (kuvilla)
Arduino -hälytys ultraääni -anturilla: Tämä opas kertoo siitä, miten voit tehdä helpon ja halvan hälytyslaitteen itse. Tarvitset vain perustiedot elektroniikasta ja arduino -ohjelmoinnista. [email protected]ässä
Hei tyyny IoT -hälytys: 8 vaihetta (kuvilla)
Hei Tyyny IoT -hälytys: Tunne joku, joka kamppailee jatkuvasti sängystä nousemisen kanssa, tulee myöhään töihin ja haluat vain antaa heille ahdistuksen aamulla. Nyt voit tehdä oman Hey -tyynyn. Tyynyn sisäpuolelle on upotettu ärsyttävä pietsosummeri, jonka voit
Hälytys PIR WiFi -yhteydelle (ja kotiautomaatiolle): 7 vaihetta (kuvilla)
Hälytys PIR WiFi -yhteydelle (ja kotiautomaatiolle): Yleiskatsaus Tämä ohje antaa sinulle mahdollisuuden tarkastella viimeistä päivämäärää/kellonaikaa (ja valinnaisesti aikahistoriaa), jolloin House Alarmin PIR (passiiviset infrapuna -anturit) laukaistiin kotiautomaatiossasi ohjelmisto. Tässä projektissa aion