Съдържание:

Гледане и аларма на ислямски молитви RaspberryPi: 15 стъпки (със снимки)
Гледане и аларма на ислямски молитви RaspberryPi: 15 стъпки (със снимки)

Видео: Гледане и аларма на ислямски молитви RaspberryPi: 15 стъпки (със снимки)

Видео: Гледане и аларма на ислямски молитви RaspberryPi: 15 стъпки (със снимки)
Видео: Part 3 - The House of the Seven Gables Audiobook by Nathaniel Hawthorne (Chs 8-11) 2024, Юни
Anonim
RaspberryPi Ислямски молитвени часовници и аларма
RaspberryPi Ислямски молитвени часовници и аларма
RaspberryPi Ислямски молитвени часовници и аларма
RaspberryPi Ислямски молитвени часовници и аларма

Мюсюлманите по света имат по пет молитви всеки ден и всяка молитва трябва да бъде в определено време на деня. поради елиптичния начин, по който нашата планета се движи около слънцето, което прави времето за изгряващо и залязващо слънце различно през годината, което също прави времето за молитва непостоянно, поради което се нуждаем от ислямски часовник, който да ни напомня на мюсюлманите в молитвата ни всеки ден.

Всеки мюсюлманин има начин да получи достъп до времето за ежедневна молитва през интернет ислямските уебсайтове, местните ислямски календари или дори по телевизията, а повечето от нас имат ислямски устройства за наблюдение, които имат функциите да ни дават молитвени часове, както и молитвени аларми. Но какво ще стане, ако направим собствено устройство за молитвени часовници и аларми!

Преди да започнете работа по проекта, има няколко съображения, които биха могли да ви бъдат полезни, докато четете тази инструкция. Живея в Саудитска Арабия, така че някои от моите стъпки и ценности ще се различават от вашите и ще ги посоча изрично по време на работата. Има стъпки и снимки, които може да включват арабски думи, откакто направих взаимодействието на арабски, но също така ще посоча как да го направя на английски, така че не позволявайте арабските думи в снимките изобщо да ви притесняват, този проект може да бъде направено на всеки език (което е страхотно!: D) Също така, моля, извинете грешките ми, тъй като английският не е моят първи език.

Към нашия проект! Този проект ще бъде разделен на X Major стъпки, които до края на Xth стъпка ще имаме нашия проект хубав и готов! Стъпките ще бъдат както следва:

1-Конфигуриране и подготовка на RaspberryPi

2-Инсталиране на RTC модула

3-Създаване на алармената програма Azan

4-Внедряване на циферблатите

5-Създаване на потребителски интерфейс и

Както всеки проект, първо трябва да подготвим частите, от които се нуждаем. частите, от които се нуждаем за този проект, са:

1-RaspberryPi Компютърен комплект Amazon US || Amazon KSA

Можете да използвате всяка версия на Rpi, просто се уверете, че има Wifi. Използвах Rpi3B+

2-RTC модул за часовник в реално време Amazon US || Amazon KSA

Можете да използвате всеки модел RTC модул, просто се уверете, че има I2C

3-LCD монитор

Всеки LCD ще е подходящ

4-мишка и клавиатура

и това е!! Това е всичко, от което се нуждаете, за да направите свой собствен часовник и аларма на Азан

Стъпка 1: Глава 1: Настройка и конфигуриране на RaspberryPI

Глава 1: Настройка и конфигуриране на RaspberryPI
Глава 1: Настройка и конфигуриране на RaspberryPI

Първо най-важното! Трябва да подготвим Raspberry pi, за да работим с него.

Raspberry pi не е нищо друго освен компютър, има RAM и ROM, има процесор, графичен процесор, I/O …….. Компютър! точно като тази, с която играем игри и сърфираме в мрежата, само важното е, че е много малка! което прави малината много добър избор за създаване и изпълнение на проекти. тъй като малиновото пи е малко, има много ограничени спецификации, че не може да работи с голяма взискателна операционна система като windows или macOS, вместо това ще използваме Linux като операционна система, за да използваме устройството. Има хиляди, ако не и десетки хиляди дистрибуции на Linux, които бихме могли да използваме, но един перфектен дистрибутор е перфектно оптимизиран специално за raspberrypi, който ще използваме, наречен Raspbian.

Стъпка 2: 1-1: Изтеглете необходимите файлове

1-1: Изтеглете необходимите файлове
1-1: Изтеглете необходимите файлове
1-1: Изтеглете необходимите файлове
1-1: Изтеглете необходимите файлове
1-1: Изтеглете необходимите файлове
1-1: Изтеглете необходимите файлове

-Отидете на официалната страница за изтегляне на Rasbian на адрес https://www.raspberrypi.org/software/operating-sy… и изтеглете Raspberry Pi OS с десктоп файл

-Докато се изтегля, отидете на https://win32diskimager.org/ и изтеглете и инсталирайте win32DiskImager, можете да използвате всеки софтуер за запис на изображения, който харесвате

след като изтеглянето приключи, ще имате.img файл, съдържащ RaspberryPi OS. след това включете вашата SD карта с памет в компютъра (обикновено с четец на USB карти) и стартирайте софтуера win32diskimager. стъпките за записване на изображението в SD паметта са много прости, просто трябва да 1-Изберете буквата на паметта 2-изберете файловете на вашата ОС, които сте изтеглили, и напишете с 3 щраквания! Уверете се, че сте избрали правилната буква на устройството от списъка и паметта ви е празна, тъй като чрез натискане на write ще бъдете повишени с предупреждение, което ви казва, че всичко на устройството ще бъде изтрито! Натиснете да, за да потвърдите записа и изчакайте да приключи. това може да отнеме до 20 минути.

След като приключите, ще имате пълната Rapbian OS в паметта, можете да продължите и да я поставите в Rapberry Pi, да свържете Raspberry Pi към монитора чрез HDMI, да свържете мишката и клавиатурата чрез USB и накрая, свържете мощност.

Стъпка 3: 1-2: Конфигуриране на Raspbian система

След като свържете кабелите и захранването, ще видите, че операционната система е включена, тя автоматично ще се рестартира и след това ще покаже Raspbian потребителски интерфейс (който прилича на Windows). първото нещо, което ще видите, е прозорец за добре дошли, който ще ви преведе през стъпките за конфигуриране на вашия RaspberryPi за първи път. прозорците и стъпките ще бъдат както следва:

1-Натиснете следващия в първия прозорец "Добре дошли"

2-Следващ прозорец ще бъде за конфигуриране на вашето местоположение. изберете вашата държава, език и часова зона. след това е силно препоръчително да проверите „Използване на английски език“, тъй като това ще бъде езикът на интерфейса на операционната система. ТРЯБВА ДА ПРОВЕРИТЕ „КОТАТА НА АНГЛИЙСКАТА КЛАВИШУТКА НА НАС“АНГЛИЙСКАТА КЛАВИАТУРА НИ ТРЯБВА ДА РАБОТИМ!

3-След това ще бъдете помолени да въведете парола за вашата малинка, това е важно за сигурността, но ние ще я оставим непроменена за този проект. имайте предвид, че потребителското име и паролата по подразбиране са:

потребителско име: pi

парола: малина

4-Следващият прозорец ще свърже raspberryPi към вашата WiFi мрежа. изберете вашето име за wifi и въведете паролата си за wifi

След това ще бъдете помолени да актуализирате библиотеките на raspberry pi и системните файлове. тази стъпка ще отнеме много време (може би в часове), но това е много важна стъпка към всеки път, когато се настройва нов малинов пи.

6-след като актуализацията приключи, ще бъдете помолени да рестартирате системата. направи това сега.

Чудесна работа! Сега имаме актуализирана система, все още трябва да направим още някои неща, за да конфигурираме системата да работи, но сега ще започнем да използваме командния ред на Linux.

Стъпка 4: 1-3: Използване на командния ред за настройка на Rpi настройки

1-3: Използване на командния ред за настройка на Rpi настройки
1-3: Използване на командния ред за настройка на Rpi настройки
1-3: Използване на командния ред за настройка на Rpi настройки
1-3: Използване на командния ред за настройка на Rpi настройки
1-3: Използване на командния ред за настройка на Rpi настройки
1-3: Използване на командния ред за настройка на Rpi настройки

След като приключите с рестартирането от системната актуализация, системата ще покаже работния плот на потребителя, след като приключи зареждането. сега, ако погледнете в горния ляв ъгъл на екрана, ще намерите някои бутони, бутон с лого на raspberryPi, който е бутонът на менюто Rpi, форма на глобус, който е интернет браузърът, бутон за папки, който е …..папки и накрая, бутон с прозорец с черен екран, който е най -важният бутон във всяка система на Linux, командният ред. продължете напред и натиснете този бутон, ще видите изскачащ черен прозорец.

Командният ред е начинът, по който всеки взаимодейства и използва системата на Linux, точно както windows има собствен команден ред само в вдовици, не е нужно да го използваме много често. в linux това е основното нещо, което всеки потребител на linux трябва да научи и овладее. командният ред може да се използва от …. КОМАНДИ! това, което виждате в черния прозорец, е командният ред, който чака командата да бъде написана от потребителя и изпълнена. в това ръководство ще дадем цялата команда, която ви е необходима за изпълнение на този проект, така че не се притеснявайте.

първата команда на Linux, която ще използваме, е друга команда за конфигуриране, имайте предвид, че всички команди оттук нататък ще бъдат поставени в кодово поле, така че можете да го различавате от обикновените стъпки. Донесете клавиатурата си и въведете следното и натиснете enter:

sudo raspi-config

Ако направите това правилно, ще видите, че екранът стана син, със сиво малко поле в средата (вижте снимката). ще го използваме, за да направим окончателната си конфигурация, преди да започнем кодирането.

сега ще трябва да използвате клавишите със стрелки на клавиатурата, за да навигирате в това меню.

1-Отидете на Опции на интерфейса >> I2C >> ДА >> натиснете Enter. това е разрешаване на комуникационния протокол I2c, за да можем да използваме RTC

2-Отидете на Разширени опции >> Разширете файловата система.

и това е цялата конфигурация, от която се нуждаете от този прозорец. на главната страница, слезте надолу и натиснете enter за „финал“и „ДА“, за да рестартирате системата.

След като системата приключи с рестартирането, всички сме приключили с конфигурирането! устройството е готово за големите стъпки! Следващата стъпка ще бъде инсталирането на RTC модула и използването му със системата.

Стъпка 5: Глава 2: Монтиране, конфигуриране и използване на RTC модула

Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул
Глава 2: Монтиране, конфигуриране и използване на RTC модул

Модулът RTC (или часовник в реално време) е малко устройство, на което има малко батерия, той прави това, което подсказва името, Clocking! така че когато го изключите от захранването, часовникът продължава да работи и не спира. защо имаме нужда от това? Е, малиновото пи наистина няма метод за съхраняване на данни за часовника, след като се изключи, разчита на свързване с интернет при зареждане, за да актуализира датата и часа, но проблемът е, че не винаги имаме достъп до интернет и това затова се нуждаем от RTC модул. RTC ще действа като часовник за малиновото пи, така че след като Rpi се стартира, той ще вземе датата и часа от RTC, което ще поддържа времето на RaspberryPi актуализирано през цялото време.

има няколко модела и търси RTC, има DS1307 и DS3231. можете да използвате всеки RTC модул, който намерите, стига да има комуникация по протокол I2C (можете да посочите, че това е, че можете да намерите SDA и SCL щифтове върху щифтовете на модула.

както всичко в това ръководство, използвах други ръководства, за да постигна целта си в проекта, тази инструкция ще ви насочи и ще ви каже точно какво да направите, за да направите този проект, но ако трябва да промените или имате нужда от повече задълбоченост в някоя от стъпки, ще свържа по -плодотворното ръководство в края на всяка стъпка.

След като сте подготвили вашия RTC модул (запоявайте щифтовете на заглавката и поставете батерията), можете да го свържете към щифтовете на RapberryPi, както следва:

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

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

Vcc ============> ПИН 1 (3.3V)

SDA ===========> ПИН 3 (SDA)

SCL ===========> ПИН 5 (SCL)

или в зависимост от това какъв RTC модул имате, можете да го монтирате директно върху RaspberryPi (Уверете се, че щифтовете са правилни !!! тъй като може да повредите Rpi/RTC, ако не)

След като свържете RTC, нека конфигурираме Raspberry.

Стъпка 6: 2-1: Настройка на модула

2-1: Настройка на модула
2-1: Настройка на модула
2-1: Настройка на модула
2-1: Настройка на модула

Преди да започнете, отидете на командния ред и въведете:

дата

Това ще върне текущата дата и час на Raspberry, ще вземе под внимание тази много полезна команда и ще отбележи текущата дата и час, за да можем да проверим кога модулът работи или не.

сега, нека започнем настройката, въведете следното, за да актуализирате Rpi библиотеките, един ред в един:

sudo apt-get update

sudo apt -get -y ъпгрейд

след като това стане, трябва да променим системните файлове, за да активираме i2c модула и да добавим RTC, за да променим файлова система, ще използваме софтуер, наречен Nano. nano е лек вграден софтуер, който по същество е текстов редактор, точно като този в вдовиците. така че всяка команда, която започва с nano, последвана от името на файла, ще отвори този файл в nano текстов редактор. забелязахте, че също използвахме нещо, наречено Sudo, накратко, sudo действа като гаранция за системата на Linux, която казва на системата, че потребителят, който е направил тази команда, е собственик на устройството, а не някой друг, и дава привилегии като редактиране/ изтриване на потребителя. например, ако отворим нано файл без sudo, бихме могли да прегледаме този файл, но не можем да го редактираме или изтрием.

сега трябва да променим файла с модули, можем да направим това, като напишем:

sudo nano /etc /модули

след като направите това, ще намерите съдържанието на този файл (вижте снимката). използвайте клавишите със стрелки, за да поставите курсора в края на текста и да добавите следното:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

натиснете CTRL+S, за да запазите, и CTRL+X, за да излезете

Стъпка 7: 2-2: I2C интерфейс

2-2: I2C интерфейс
2-2: I2C интерфейс

Сега свързахме RTC и активирахме i2c, нека свържем всичко заедно.

въведете следното в командния ред:

i2cdetect -y 1

ще ви бъде даден масив от празни полета, но ще забележите, че някъде има номер, този номер е вашият адрес на RTC модула. в моя случай е 68. вземете под внимание този номер. ако не виждате този двуцифрен номер, това означава, че вероятно сте свързали грешно RTC.

сега трябва да променим файла rc.local, за да можем да активираме RTC модула при зареждане и да му позволим да запише датата и часа в системата. първо отворете файла rc.local:

sudo nano /etc/rc.local

Преди изходния ред 0 добавете следното:

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

hwclock -s

където 0x68 е i2c адресът на вашето устройство. след като приключите, натиснете CTRL+S CTRL+X, след това рестартирайте системата си чрез:

sudo рестартиране

Стъпка 8: 2-3: Тестване на RTC

2-3: Тестване на RTC
2-3: Тестване на RTC

След като системата се рестартира, можем да проверим дали RTC работи или не. първо стартирайте:

sudo hwclock -r

ще ви бъдат върнати датата и часът на RTC модула. ако ви е дадено нещо друго, уверете се, че сте изпълнили стъпките правилно.

сега, за да променим часа и датата в RTC, първо трябва да променим датата и часа в системата, след това да потвърдим промените в RTC. за да направите това, стартирайте:

sudo date -s "29 АВГУСТ 1997 13:00:00"

и разбира се, променете датата и часа в съответствие с вашето местно време и дата, преди да натиснете enter. след като получите времето в Rpi надясно, изпълнете следното, за да запазите датата и часа в RTC:

sudo hwclock -w

аааа и това е! можете да проверите дали работи чрез hwclock -r и да видите дали датата в RTC е правилна или не, след това изключете rpi от интернет и след това го изключете за известно време и след това го включете отново и вижте дали има правилното час и дата. готови сте!

Пълно ръководство за това как да настроите RTC модул можете да намерите тук

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

Стъпка 9: Глава 3: Създаване на алармената програма на Азан

Глава 3: Създаване на алармената програма на Азан
Глава 3: Създаване на алармената програма на Азан

Изработването на часовник е едно нещо, разбира се, можем да погледнем часовника и молитвените часове и да видим кога идва часът, но не би било дори НАЧАЛНО по -добре, ако можем да добавим звукова аларма, която да ни уведоми за молитвените часове? ОЩЕ ПО -ДОБРО правим тази аларма като звук на АЗАН! нека видим как можем да постигнем това.

за нашето програмиране ще използваме python като предпочитан от нас език за програмиране, тъй като python върви перфектно с RaspberryPi. за да направим кодов файл в python, правим същото като отваряне на текстов файл, но сега го запазваме като.py. за да стартираме програмата, имаме нужда от python среда, инсталирана на raspbery, за щастие, Raspbian идва с предварително инсталирани python и python3! така че всичко, което трябва да направим, е да програмираме. в това ръководство няма да говорим за езика и да преподаваме как работи и функциите, но ще ви дам необходимите кодове, за да можете да направите проекта.

за да започнем, имаме нужда от звуков файл с предпочитания от нас звук на азан (в. WAV), имаме нужда от два файла, един за ал-фаджр азан и друг за обикновен азан. след като го получите, поставете го на стик устройство и го копирайте на работния плот на raspberrypi.

сега имаме файловете, търсех начин да възпроизвеждам звукови аудио на raspberryPi и за моя изненада нямаше много начини да направя това, но намерих този отговор на stackoverflow, който ми даде това, от което имах нужда

stackoverflow.com/questions/20021457/playi…

тествах този метод и той работи! така че нека видим как можем да приложим този метод в нашия проект …

Стъпка 10: 3-1: Нека пуснем звук

3-1: Нека пуснем звук!
3-1: Нека пуснем звук!

първо отидете до работния плот чрез:

cd Desktop

след това направете нов кодов файл на python чрез:

sudo nano AzanPlay.py

това ще направи нов файл, наречен AzanPlay с разширение на python файл.py, ще имаме празен черен екран, който да ни позволи да напишем нашия код. просто запишете тези редове (внимавайте да не променяте отстъп или интервали, тъй като това е изключително важно в python):

от миксер за внос на pygame

mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == Вярно: продължи

Където / Desktop / е мястото, където поставяте звуковите си файлове, и „Adhan-Makkah.wav“е моят аудио файл, който е звукозаписът на Азан в мека.

сега, за да тестваме нашия код, го изпълняваме с python, като въведем:

python AzanPlay.py

и звукът ще изсъхне от вашия HDMI LCD или от вашия AUX порт, който е на Raspberrypi. ако не го чуете от LCD високоговорителите, включете слушалки в AUX и проверете.

Стъпка 11: 3-2: Вземете време за молитва

3-2: Вземете време за молитва
3-2: Вземете време за молитва

Както знаем, времената за молитва се различават от едно място на земята до друго и дори за определено място те се различават през годините, което означава, че трябва да намерим начин да поддържаме времето си за молитва в системата постоянно актуализирано и за това се нуждаем от специфични и много сложни функции и изчисления, за да го оправим. За щастие, нашият брат Хамид Зараби-Заде е превърнал всички необходими функции в една функция, която можем лесно да използваме, за да получим времето в зависимост от нашето местоположение и текущото време, ЗАПЕЧАВАЩО! можете да намерите библиотеката и изходните файлове на адрес

praytimes.org/

Така че, ние ще използваме тези страхотни файлове, за да получим молитвеното си време и да го внедрим в системата. първо изтеглете кодовете от уебсайта и ги поставете в / adhan / папка ((Нуждаем се от JS и Python кодовете).

сега, нека отидем в тази папка и да тестваме библиотеката и какво може да направи:

cd adhan

там трябва да направим нов тест файл в python, за да можем да тестваме функцията:

sudo nano testAd.py

вътре запишете този код:

внос на молитва

от дата за импортиране дата -час tmm = времена на молитва. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) печат (tmm)

Преди да запазите файла, трябва да промените LATITUDE с местоположението си Latitude, същото с LONGTITUDE и да промените GMT за вашата часова зона. в моя случай ще бъде:

tmm = времена на молитва. PrayTimes (). getTimes (date.today (), [21.3236, 39.1022], 3)

печат (tmm)

И накрая, CTRL-S и CTRL-X и след това изпълнете кода:

python testAd.py

накрая ще ви бъде върнато времето за молитва за днес, за вашето местоположение.

{'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'}

Страхотен! сега, когато имаме време за молитва и сега знаем как да възпроизвеждаме звуци, нека обединим тези два кода заедно в един основен код.

Стъпка 12: 3-3: Създаване на последния алармен код на Азан

завършвайки предишните два кода, научихме как да получим точните молитвени часове според местоположението ни и как да възпроизвеждаме звука на Азан. сега ще обединим тези два кода в един код, който ще използваме като окончателен проект и този код ще работи на заден план, тъй като когато дойде времето на Азан, той ще възпроизведе звука на Азан.

Написал съм целия код, можете да го копирате и поставите и да направите свои собствени промени, както сметнете за добре. Кодът е:

време за импортиране

от pygame миксер за импортиране низ за импортиране време на молба от дата и час на импортиране while (1): tmm = времена на молба. 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 () == Вярно: продължете, ако currTime == DHUHR: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Вярно: продължи, ако currTime == ASR: mixer.init () mixer.music.load ('/home/pi/Desktop/ Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Вярно: продължи, ако currTime == MAGHRIB: mixer.init () mixer.music.load ('/home/pi/ Desktop/Adhan-Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == Вярно: продължете, ако currTime == ISHA: mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-Makkah.wav') mixer.music.play () while mixer.music.get_busy () == Вярно: продължи

Ако погледнете кода и го сравните с това, което направихме преди, ще видите, че не направихме нищо много ново, първо включихме необходимите ни библиотеки и след това отворихме безкраен цикъл. в цикъла ние постоянно изчисляваме времето за молитви с нашето местоположение и часова зона и съхраняваме целия резултат в променлива tmm. след това съхраняваме всяко време за молитва от tmm до независима променлива. което ще ни позволи да сравним времената. След това вземаме системното време и го съхраняваме в независима променлива. накрая, ние продължаваме да сравняваме системното време с молитвените часове, ако системното време съвпада с някое от молитвените часове, то ще възпроизвежда звука на азан.

Стъпка 13: Глава 4: Прилагане на часовника

Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника
Глава 4: Прилагане на часовника

За да изглежда проектът по -добър, имах идеята да добавя циферблати към LCD дисплея, така че да изглежда приятно за потребителя (добре, поне по -добре от командния ред), затова наех дизайнер да проектира множество лица часовникът, той трябва да е празен, без данни, тъй като данните трябва да се добавят чрез HTML, като дизайнът на часовника се превръща в фон, а останалите данни, като например молитвените часове, могат да се добавят като HTML елементи отгоре на фона.

За съжаление, към момента на писане на тази инструкция, моите познания и опит в HTML са много ограничени, така че няма да обсъждам много подробности, защото знам със сигурност, че ще направя нещата по грешен начин, а не искат да объркат хората. но ако имате дори лек опит в JS и HTML, трябва да знаете как да продължите от този момент. досега съм направил едно лице (синьото). планът е да се направят 14 циферблата! 7 лица за всеки ден от седмицата и още 7 като друга тема. тъй като първата тема трябва да бъде с подвижния Azkar, а другата тема трябва да има ислямски GIFS вместо Azkar. независимо, ще включа всички дизайни в тази инструкция, за да можете да я изтеглите.

Стъпка 14: Глава 5: Внедряване на потребителски интерфейс

Глава 5: Внедряване на потребителски интерфейс
Глава 5: Внедряване на потребителски интерфейс

В последната глава от нашето пътуване ще направим някои незадължителни модификации, за да направим проекта дори удобен за потребителя, в случай че искаме да приложим проекта в джамия или на друго обществено място. както казахме по -рано, всеки град има свое собствено време за молитвите и за да направим този проект достъпен за по -широк кръг хора, ще направим потребителски интерфейс, за да можем да изберем желания от нас град и тема, след като включим проекта.

За да направим това, ще използваме библиотека с графичен потребителски интерфейс на python, наречена "TKinter".

Това е кодът, който приложих, за да ми даде избор да избирам между пет града в Саудитска Арабия, включително Мека:

внос на tkinter като tk

от tkinter import * от tkinter import ttk импортиращи кодеци импортиране os клас karl (Frame): def _init _ (self): tk. Frame._ init _ (self) self.pack () self.master.title ("Azan Time") self. button1 = Button (self, text = "Jeddah", височина = 5, width = 80, command = self.open_jeddah1) self.button2 = Button (self, text = "Mekkah", височина = 5, width = 80, command = self.open_makkah1) self.button3 = Button (self, text = "Riyadh", височина = 5, ширина = 80, команда = self.open_riyadh1) self.button4 = Button (себе си, текст = "Madina", височина = 5, width = 80, command = self.open_madina1) self.button5 = Button (self, text = "Qasim", височина = 5, ширина = 80, команда = self.open_qasaim1) self.button1.grid (ред = 0, колона = 1, колони = 2, лепкаво = W+E+N+S) self.button2.grid (ред = 1, колона = 1, диапазон на колони = 2, лепкав = W+E+N+S) self.button3.grid (ред = 2, колона = 1, диапазон на колони = 2, лепкав = W+E+N+S) self.button4.grid (ред = 3, колона = 1, диапазон на колони = 2, лепкав = W+E+N+S) self.button5.grid (ред = 4, колона = 1, диапазон на колони = 2, лепкав = 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 (ред) def open_riyadh1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (ред) 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 (order)): karl (). mainloop () if _name_ == '_main_': main ()

Кодът може да изглежда голям, но редактирането му е много лесно. основно направихме нов прозорец, поставихме пет бутона с имена и определихме пет функции, които да се извикват при всяко натискане на бутон. след като натиснете бутона, програмата ще отвори съответния HTML файл в папката Cities, който всеки градски HTML има координатите на града, когато получи времето от молитвите (). след като натиснете бутона, кодът на python ще извади код на Linux, в който ще отвори HTML файла, използвайки браузъра chromium, и ще имате циферблат готов за показване с включена опция на цял екран.

Стъпка 15: (По избор): Добавяне на превключвател за високоговорители

(По избор): Добавяне на превключвател за високоговорители
(По избор): Добавяне на превключвател за високоговорители
(По избор): Добавяне на превключвател за високоговорители
(По избор): Добавяне на превключвател за високоговорители

Както видяхме, когато дойде времето за молитва, звучи Azan и звукът излиза от стандартния звуков изход (HDMI или AV изход) и тъй като го поставяме на HDMI изход, звукът ще идва от LCD. но какво ще стане, ако нашият LCD звук не е достатъчен? например какво ще стане, ако искаме да приложим това в истинска джамия? с широки външни високоговорители? тогава можем да добавим още една МНОГО лесна стъпка, за да постигнем това. за вече изградена озвучителна система от високоговорители, трябва само да я включим и изключим, и да вземем вече съществуващия микрофон и да го поставим до LCD високоговорителите.

Това е лесно. ще използваме вече съществуващия микрофон джамия, който е свързан към високоговорителя, просто ще се нуждаем от raspberryPi, за да контролираме мощността, която включва и изключва цялата звукова система. за да направим това, ще трябва да използваме SSR: SOLID STATE RELAY. тези видове релета могат да действат като превключвател, подобно на средното синьо реле, разликата е, че SSR могат да издържат на голямо количество променлив ток през него, което не е приложимо в сините (обикновено максимум 10A), а нуждите на SSRs само два проводника вместо 3: DC+ и DC- и това е всичко! от другия край на SSR можем да свържем захранващия кабел на системата за високоговорители, по този начин, когато подадем напрежение на SSR, той ще затвори AC веригата на системата високоговорители или ще изключим напрежението, за да направим отворена верига, изключване на високоговорителите.

има един улов, изводите на RaspberryPi излизат 3.3v, а не 5v, от които се нуждаем, за да контролираме SSR. така че се нуждаем от транзистор, който да приема сигнала от щифта RPi и 5V от пина RPi 5v. за да направим това се нуждаем от:

1-твърдо реле (всичко над 25А е добро)

2-2n2222 npn транзистор

Резистор 3-220ohm

следвайте веригата за фризиране за свързване.

сега в кода, ние ще добавим някои неща, които правят тази работа. първо, преди цикъла while, ще добавим няколко реда за инициализиране на GPIO щифтовете:

В секцията за импортиране добавете:

импортирайте RPi. GPIO като GPIO

Преди цикъла while добавете:

GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) реле = 40 GPIO.setup (ledPin, GPIO. OUT)

Сега, в цикъла while, за всяка игра на команда Azan, трябва да включим релето, да изчакаме 10 секунди, да завършим възпроизвеждането на Azan и след това да изключим релето. трябва само да добавим два реда, първият е:

GPIO.изход (ledPin, GPIO. HIGH)

time.sleep (10)

това трябва да се добави след всеки оператор if (ИДЕНТИФИКАЦИЯТА Е ВАЖНО!), другият ред е:

GPIO.изход (ledPin, GPIO. LOW)

Тази трябва да се добави след реда „продължи“. трябва да изглежда така за всеки азански път:

ако currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/home/pi/Desktop/Adhan-fajr.wav') mixer.music.play () while mixer.music.get_busy () == Вярно: продължете GPIO.output (ledPin, GPIO. LOW)

Препоръчано: