Índice:

Relógio e alarme de orações islâmicas RaspberryPi: 15 etapas (com fotos)
Relógio e alarme de orações islâmicas RaspberryPi: 15 etapas (com fotos)

Vídeo: Relógio e alarme de orações islâmicas RaspberryPi: 15 etapas (com fotos)

Vídeo: Relógio e alarme de orações islâmicas RaspberryPi: 15 etapas (com fotos)
Vídeo: O Adhan - O Chamado à Oração no Islam - الاذان 2024, Junho
Anonim
Relógio e alarme de orações islâmicas RaspberryPi
Relógio e alarme de orações islâmicas RaspberryPi
Relógio e alarme de orações islâmicas RaspberryPi
Relógio e alarme de orações islâmicas RaspberryPi

Muçulmanos em todo o mundo têm cinco orações todos os dias, e cada oração deve ser em um determinado horário do dia. por causa da forma elíptica como nosso planeta se move ao redor do sol, que faz com que os horários do nascer e do pôr do sol sejam diferentes ao longo do ano, que também torna o tempo de oração inconstante, é por isso que precisamos de um relógio islâmico para nos lembrar os muçulmanos em nossos tempos de oração cada dia.

Todo muçulmano tem uma maneira de acessar os horários de oração diários por meio dos sites islâmicos da Internet, calendários islâmicos locais ou até mesmo pela TV, e a maioria de nós tem dispositivos de relógio islâmicos que têm a função de fornecer os horários de oração, bem como alarmes de oração. Mas e se fizéssemos nosso próprio relógio de oração e dispositivo de alarme!

Antes de começar a trabalhar no projeto, existem algumas considerações que podem ser úteis para você ao ler este Instructable. Estou morando na Arábia Saudita, então alguns dos meus passos e valores serão diferentes dos seus, e irei apontá-los explicitamente durante o trabalho. Há etapas e imagens que podem incluir palavras árabes, já que fiz a interface em árabe, mas também vou apontar como fazer em inglês, então não deixe que as palavras árabes nas imagens o preocupem, este projeto pode ser feito em qualquer idioma (o que é incrível!: D) Também desculpem meus erros de digitação, pois o inglês não é minha primeira língua.

Vamos ao nosso projeto! Este projeto será dividido em X etapas principais, as quais ao final da Xª etapa estaremos com nosso projeto pronto! As etapas serão as seguintes:

1-Configurando e preparando o RaspberryPi

2-Instalando o Módulo RTC

3-Fazendo o programa de Alarme Azan

4-Implementando os mostradores do relógio

5-Fazendo a interface do usuário e

Como todo projeto, precisamos preparar as peças de que precisamos primeiro. as peças de que precisamos para este projeto são:

1-RaspberryPi Computer kit Amazon US || Amazon KSA

Você pode usar qualquer versão Rpi, apenas certifique-se de que tem Wifi. Eu usei Rpi3B +

Módulo de relógio em tempo real 2-RTC Amazon US || Amazon KSA

Você pode usar qualquer modelo de módulo RTC, apenas certifique-se de que possui I2C

3-monitor LCD

Qualquer LCD servirá

4-Mouse e teclado

e é isso!! Isso é tudo que você precisa para fazer seu próprio relógio e alarme Azan

Etapa 1: Capítulo 1: Instalação e configuração do RaspberryPI

Capítulo 1: Instalação e configuração do RaspberryPI
Capítulo 1: Instalação e configuração do RaspberryPI

Primeiras coisas primeiro! Precisamos preparar o Raspberry pi para trabalhar com ele.

Raspberry pi nada mais é que um computador, tem RAM e ROM, tem uma CPU, GPU, I / O ……. Um computador! assim como aquele em que jogamos e navegamos na web, a única coisa importante é que é muito pequeno! o que torna a framboesa uma escolha muito boa para fazer e implementar projetos. como o raspberry pi é pequeno, ele tem especificações muito limitadas de que não pode operar um sistema operacional grande e exigente como o Windows ou o macOS. Em vez disso, usaremos o Linux como sistema operacional para usar o dispositivo. existem milhares, senão dezenas de milhares de distros Linux que poderíamos usar, mas uma distro perfeita é perfeitamente otimizada especificamente para o raspberrypi que iremos usar, chamado Raspbian.

Etapa 2: 1-1: Baixe os arquivos necessários

1-1: Baixe os arquivos necessários
1-1: Baixe os arquivos necessários
1-1: Baixe os arquivos necessários
1-1: Baixe os arquivos necessários
1-1: Baixe os arquivos necessários
1-1: Baixe os arquivos necessários

- Vá para a página oficial de download do Rasbian em https://www.raspberrypi.org/software/operating-sy… e baixe o Raspberry Pi OS com arquivo Desktop

-Enquanto está baixando, vá para https://win32diskimager.org/ e baixe e instale win32DiskImager, você pode usar qualquer software de gravação de imagem que desejar

assim que o download for concluído, você terá um arquivo.img contendo o sistema operacional RaspberryPi. em seguida, conecte o cartão de memória SD no computador (geralmente com um leitor de cartão USB) e inicie o software win32diskimager. os passos para gravar a imagem na memória SD são muito simples, você só precisa 1- Selecione a letra da sua memória 2-selecione os arquivos do sistema operacional que você baixou e 3-Click write! Certifique-se de que selecionou a letra de dispositivo certa na lista e de que sua memória está vazia, pois ao pressionar escrever você receberá um aviso que informa que tudo no dispositivo será apagado! Pressione sim para confirmar a gravação e espere até que termine. isso pode levar até 20 minutos.

Uma vez feito isso, você terá o Rapbian OS completo na memória, você pode ir em frente e colocá-lo no Rapberry Pi, conectar o Raspberry Pi ao monitor através de HDMI, conectar o mouse e teclado através de USB e por último, conectar o potência.

Etapa 3: 1-2: Configurando o Sistema Raspbian

Depois de conectar os cabos e a alimentação, você verá que o sistema operacional foi ligado, ele irá reiniciar automaticamente e então exibirá a interface de usuário do Raspbian (que se parece com o Windows). a primeira coisa que você verá é uma janela de boas-vindas, que o levará pelas etapas de configuração do RaspberryPi pela primeira vez. as janelas e etapas serão as seguintes:

1-Pressione próximo na primeira janela "Bem-vindo"

2-A próxima janela será para configurar sua localização. selecione seu país, idioma e fuso horário. depois disso, é altamente recomendável marcar a opção "Usar idioma inglês", pois esse será o idioma da interface do sistema operacional. VOCÊ DEVE VERIFICAR A "CAIXA DE LAYOUT DO TECLADO INGLÊS DOS EUA". PRECISAMOS DO TECLADO INGLÊS PARA FUNCIONAR!

3-Em seguida, você será solicitado a inserir uma senha para o seu raspberry, isso é importante para a segurança, mas vamos deixá-la inalterada para este projeto. observe que o nome de usuário e a senha padrão são:

nome de usuário: pi

senha: framboesa

4-A próxima janela conectará o raspberryPi à sua rede WiFi. selecione seu nome de wifi e digite sua senha de wifi

5-em seguida, você será solicitado a atualizar as bibliotecas e arquivos de sistema do raspberry pi. esta etapa levará muito tempo (talvez em horas), mas é uma etapa muito importante para cada vez que um novo pi de framboesa está sendo configurado.

6-Assim que a atualização for concluída, você será solicitado a reiniciar o sistema. faça isso agora.

Ótimo trabalho! Agora que temos um sistema atualizado, ainda precisamos fazer mais algumas coisas para configurar o sistema para funcionar, mas agora, vamos começar a usar a Linha LinuxCommand.

Etapa 4: 1-3: Usando a linha de comando para definir as configurações de Rpi

1-3: Usando a linha de comando para definir as configurações de Rpi
1-3: Usando a linha de comando para definir as configurações de Rpi
1-3: Usando a linha de comando para definir as configurações de Rpi
1-3: Usando a linha de comando para definir as configurações de Rpi
1-3: Usando a linha de comando para definir as configurações de Rpi
1-3: Usando a linha de comando para definir as configurações de Rpi

Assim que terminar de reinicializar a partir da atualização do sistema, o sistema mostrará a área de trabalho do usuário assim que terminar a inicialização. agora, se você olhar para o canto superior esquerdo da tela, você encontrará alguns botões, Um botão com o logotipo do raspberryPi que é o botão do menu Rpi, uma forma de globo que é o navegador de internet, um botão de pastas que é…..pastas e, finalmente, um botão com uma janela de tela preta, que é o botão mais importante em qualquer sistema Linux, a linha de comando. vá em frente e pressione esse botão, você verá uma janela preta aparecendo.

A linha de comando é como todos interagem e usam o sistema Linux, assim como o Windows tem sua própria linha de comando apenas em widows, não precisamos usá-la com muita frequência. no linux, é a coisa básica que todo usuário linux tem que aprender e dominar. a linha de comando pode ser usada por…. COMMANDS! o que você vê na janela preta é o prompt de comando esperando que o comando seja escrito pelo usuário e executado. neste guia daremos todo o comando que você precisa para realizar este projeto, então não se preocupe.

o primeiro comando do Linux que vamos usar é outro comando de configuração, observe que todos os comandos a partir de agora serão colocados dentro de uma caixa de código, para que você possa diferenciá-lo das etapas regulares. Traga o seu teclado, digite o seguinte e pressione Enter:

sudo raspi-config

Se você fizer isso corretamente, verá que a tela ficou azul, com uma caixinha cinza no meio (veja a imagem). vamos usar isso para fazer nossa configuração final antes de começar a codificar.

agora, você precisará usar as teclas de seta do teclado para navegar neste menu.

1-Vá para Opções de interface >> I2C >> SIM >> pressione Enter. isso é habilitar o protocolo de comunicação I2c para que possamos usar o RTC

2-Vá para opções avançadas >> Expandir sistema de arquivos.

e essa é toda a configuração de que você precisa nesta janela. na página principal, desça e pressione enter em "terminar" e "SIM" para reiniciar o sistema.

Assim que o sistema terminar de reinicializar, terminaremos a configuração! o dispositivo está pronto para os grandes passos! A próxima etapa será instalar o módulo RTC e usá-lo com o sistema.

Etapa 5: Capítulo 2: Montagem, configuração e uso do módulo RTC

Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC
Capítulo 2: Montagem, configuração e uso do módulo RTC

O módulo RTC (ou Real-Time Clock) é um pequeno dispositivo que tem um pouco de bateria, ele faz o que o nome indica, Clocking! então, quando você o desconecta para ligar o relógio, continua funcionando e não para. Por que nós precisamos disso? bem, o raspberry pi realmente não tem nenhum método de armazenamento de dados do relógio depois de desligado, ele depende da conexão com a internet na inicialização para atualizar a data e a hora, mas o problema é que nem sempre temos acesso à internet, e isso é por isso que precisamos do módulo RTC. o RTC atuará como um relógio para o raspberry pi, então assim que o Rpi for inicializado, ele pegará a data e a hora do RTC, que manterá a hora do RaspberryPi atualizada o tempo todo.

existem vários modelos e procura o RTC, existem o DS1307 e o DS3231. você pode usar qualquer módulo RTC que encontrar, desde que tenha comunicação de protocolo I2C (você pode indicar que pode encontrar os pinos SDA e SCL nos pinos do módulo.

como qualquer coisa neste guia, eu usei outros guias para atingir meu objetivo no projeto, este instrutível irá guiá-lo e dizer-lhe exatamente o que fazer para tornar este projeto, mas se você precisar modificar ou precisar de mais profundidade em qualquer um dos etapas, vou vincular o guia mais proveitoso no final de cada etapa.

Assim que tiver seu módulo RTC pronto (solde os pinos do cabeçote e coloque a bateria), você pode conectá-lo aos pinos do RapberryPi da seguinte maneira:

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

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

Vcc ============> PIN 1 (3,3V)

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

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

ou dependendo do módulo RTC que você tem, você pode montá-lo diretamente no RaspberryPi (certifique-se de que os pinos estão corretos !!! pois você pode danificar o Rpi / RTC se não)

Depois de conectar o RTC, vamos configurar o Raspberry.

Etapa 6: 2-1: Configuração do módulo

2-1: Configuração do Módulo
2-1: Configuração do Módulo
2-1: Configuração do Módulo
2-1: Configuração do Módulo

Antes de começar, vá para a linha de comando e digite:

encontro

Isso irá devolver a data e hora atuais no Raspberry, anote aquele comando muito útil e anote a data e hora atuais para que possamos verificar quando o módulo está funcionando ou não.

agora, vamos começar a configuração, digite o seguinte para atualizar as bibliotecas Rpi, uma linha por vez:

sudo apt-get update

sudo apt-get -y upgrade

uma vez feito isso, precisamos modificar os arquivos do sistema para habilitar o módulo i2c e adicionar RTC, para modificar um sistema de arquivos vamos usar um software chamado Nano. nano é um software leve integrado que é basicamente um editor de texto, igual ao das viúvas. portanto, qualquer comando que comece com nano seguido do nome do arquivo, irá abrir esse arquivo no editor de texto nano. você notou que também usamos algo chamado Sudo, em suma, sudo atua como uma garantia para o sistema linux que diz ao sistema que o usuário que fez esse comando é o proprietário do dispositivo, não outra pessoa, e dá privilégios como editar / excluindo para o usuário. por exemplo, se abríssemos um arquivo nano sem sudo, poderíamos visualizar esse arquivo, mas não poderíamos editá-lo ou excluí-lo.

agora, precisamos modificar o arquivo de módulos, podemos fazer isso digitando:

sudo nano / etc / modules

depois de fazer isso, você encontrará o conteúdo desse arquivo (veja a foto). use as teclas de seta para colocar o cursor no final do texto e adicione o seguinte:

snd-bcm2835

i2c-bcm2835 i2c-dev rtc-ds1307

pressione CTRL + S para salvar e CTRL + X para sair

Etapa 7: 2-2: Interface I2C

2-2: Interface I2C
2-2: Interface I2C

Agora que conectamos o RTC e habilitamos o i2c, vamos conectar tudo junto.

digite o seguinte no prompt de comando:

i2cdetect -y 1

você receberá uma matriz de espaços em branco, mas notará que há um número em algum lugar, esse número é o endereço do módulo RTC. no meu caso é 68. anote esse número. se você não vir aquele número de dois dígitos, significa que provavelmente você está conectado ao RTC de maneira errada.

agora, precisamos modificar o arquivo rc.local para que possamos habilitar o módulo RTC na inicialização e deixá-lo salvar a data e a hora no sistema. primeiro, abra o arquivo rc.local:

sudo nano /etc/rc.local

Antes da linha exit0, adicione o seguinte:

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

hwclock -s

onde 0x68 é o endereço i2c do seu dispositivo. quando terminar, pressione CTRL + S CTRL + X e reinicie o sistema:

sudo reboot

Etapa 8: 2-3: Testando o RTC

2-3: Testando o RTC
2-3: Testando o RTC

Assim que o sistema for reiniciado, podemos verificar se o RTC está funcionando ou não. Primeira corrida:

sudo hwclock -r

você receberá de volta a data e a hora no módulo RTC. se você receber algo mais, certifique-se de ter executado as etapas corretamente.

agora, para modificar a hora e a data no RTC, precisamos primeiro modificar a Data e a Hora no sistema, ENTÃO escrever as modificações no RTC. para fazer isso, execute:

sudo date -s "29 AGO 1997 13:00:00"

e, claro, altere a data e a hora de acordo com a sua hora e data local, antes de pressionar Enter. depois de obter a hora certa no Rpi, execute o seguinte para salvar a data e a hora no RTC:

sudo hwclock -w

aaaaand é isso! você pode verificar se ele está funcionando por hwclock -r e ver se a data no RTC está correta ou não, então desconecte o rpi da internet e então desligue-o por algum tempo e então ligue-o novamente e veja se ele está correto hora e data. Você Terminou!

O guia completo sobre como configurar o módulo RTC pode ser encontrado aqui

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

Etapa 9: Capítulo 3: Fazendo o Programa de Alarme Azan

Capítulo 3: Fazendo o Programa de Alarme Azan
Capítulo 3: Fazendo o Programa de Alarme Azan

fazer uma vigília é uma coisa, claro, podemos olhar para o relógio e os tempos de oração e ver quando chega a hora, mas não seria MUITO melhor se pudéssemos adicionar um alarme sonoro para nos notificar sobre os tempos de oração? AINDA MELHOR, fazemos aquele alarme como o som do AZAN! vamos ver como podemos fazer isso.

para nossa programação, usaremos o python como nossa linguagem de programação preferida, pois o python combina perfeitamente com o RaspberryPi. para criar um arquivo de código em python, fazemos o mesmo que abrir um arquivo de texto, mas agora o salvamos como.py. para executar o programa, precisamos do ambiente python instalado do raspbery, felizmente, o Raspbian vem com o python e o python3 pré-instalados! então tudo o que precisamos fazer é programar. neste guia, não vamos falar sobre o idioma e ensinar como ele funciona e as funções, mas vou te dar os códigos necessários para que você possa fazer o projeto.

para começar, precisamos de um arquivo de som do nosso som azan preferido (em. WAV), precisamos de dois arquivos, um para al-fajr azan e outro para azan regular. assim que conseguir isso coloque-o em um pendrive e copie-o na área de trabalho do raspberrypi.

agora que temos os arquivos, eu estava procurando uma maneira de tocar áudios de som no raspberryPi e para minha surpresa, não havia muitas maneiras de fazermos isso, mas encontrei esta resposta no stackoverflow que me deu o que eu precisava

stackoverflow.com/questions/20021457/playi…

Eu testei esse método e funcionou! então vamos ver como podemos implementar este método em nosso projeto …

Etapa 10: 3-1: Vamos tocar um som

3-1: Vamos tocar um som!
3-1: Vamos tocar um som!

primeiro, navegue até a área de trabalho por:

cd Desktop

em seguida, crie um novo arquivo de código Python:

sudo nano AzanPlay.py

isso fará com que um novo arquivo chamado AzanPlay com a extensão em um arquivo python.py, teremos uma tela preta vazia para nos permitir escrever nosso código. simplesmente anote essas linhas (tome cuidado para não alterar qualquer recuo ou espaço, pois isso é EXTREMAMENTE importante em python):

do misturador de importação pygame

mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () enquanto mixer.music.get_busy () == Verdadeiro: continuar

Onde / Desktop / é onde você coloca seus arquivos de som, e 'Adhan-Makkah.wav' é meu arquivo de áudio, que é a gravação de som Azan em Makkah.

agora, para testar nosso código, nós o executamos com python digitando:

python AzanPlay.py

e você terá o som tocando no seu LCD HDMI ou na porta AUX que está no Raspberrypi. se você não ouvir nos alto-falantes LCD, conecte um fone de ouvido no AUX e verifique.

Etapa 11: 3-2: Obtenha horários de oração

3-2: Obtenha horários de oração
3-2: Obtenha horários de oração

Como sabemos, os tempos de oração variam de um lugar para outro na terra, e mesmo para um local específico, difere ao longo dos anos, o que significa que precisamos encontrar uma maneira de manter nossos tempos de oração no sistema atualizados o tempo todo, e para isso, precisamos de funções e cálculos específicos e muito complexos para acertar. Felizmente, nosso irmão Hamid Zarrabi-Zadeh transformou todas as funções de que precisamos em uma função que podemos usar facilmente para obter a hora dependendo de nossa localização e hora atual, INCRÍVEL! você pode encontrar a biblioteca e os arquivos de origem em

praytimes.org/

Então, vamos usar esses arquivos incríveis para obter nossos momentos de oração e implementá-los no sistema. primeiro, baixe os códigos do site e coloque-os dentro de uma pasta / adhan / (precisamos dos códigos JS e Python).

agora, vamos para essa pasta e testar a biblioteca, e o que ela pode fazer:

cd adhan

lá, precisamos fazer um novo arquivo de teste em python para que possamos testar a função:

sudo nano testAd.py

dentro, escreva este código:

importar orações

de datetime import date tmm = praytimes. PrayTimes (). getTimes (date.today (), [LONGTITUDE, LATITUDE], GMT) print (tmm)

Antes de salvar o arquivo, você precisa alterar LATITUDE com seu local Latitude, o mesmo com LONGTITUDE, e alterar GMT para seu fuso horário. no meu caso, será:

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

imprimir (tmm)

Por fim, CTRL-S e CTRL-X e, em seguida, execute o código:

python testAd.py

finalmente, você receberá de volta seus momentos de oração de hoje, por sua localização.

{'isha': '18: 58 ',' asr ': '15: 22', 'pôr do sol': '17: 43 ',' dhuhr ': '12: 17', 'maghrib': '17: 43 ', 'imsak': '05: 23 ',' meia-noite ': '00: 17', 'nascer do sol': '06: 52 ',' fajr ': '05: 33'}

Excelente! agora que temos nosso tempo de oração e agora sabemos como tocar sons, vamos fundir esses dois códigos juntos em um código principal.

Etapa 12: 3-3: Fazendo o Código de Alarme Azan Final

ao terminar os dois códigos anteriores, aprendemos como obter os tempos de oração precisos de acordo com nossa localização e como tocar o som Azan. agora, vamos mesclar esses dois códigos em um código que usaremos como nosso projeto final, e esse código estará trabalhando em segundo plano, pois quando chegar a hora do Azan, ele tocará o som do Azan.

Eu escrevi todo o código, você pode copiá-lo e colá-lo e fazer suas próprias alterações conforme achar necessário. O código é:

tempo de importação

from pygame import mixer import string import praytimes from datetime import date while (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 () == Verdadeiro: continuar se currTime == DHUHR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan- Makkah.wav ') mixer.music.play () while mixer.music.get_busy () == True: continue se currTime == ASR: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () enquanto mixer.music.get_busy () == Verdadeiro: continuar se currTime == MAGHRIB: mixer.init () mixer.music.load (' / home / pi / Desktop / Adhan-Makkah.wav ') mixer.music.play () enquanto mixer.music.get_busy () == Verdadeiro: continuar se currTime == ISHA: mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-Makkah.wav') mixer.music.play () enquanto mixer.music.get_busy () == Verdadeiro: continuar

Se você olhar o código e compará-lo com o que fizemos anteriormente, verá que não fizemos nada de muito novo, primeiro incluímos nossas bibliotecas necessárias e depois abrimos um loop infinito. no loop, calculamos constantemente o tempo das orações com nossa localização e fuso horário, e armazenamos todo o resultado na variável tmm. então, armazenamos cada tempo de oração de tmm em uma variável independente. isso nos permitirá comparar os tempos. a seguir, pegamos o tempo do sistema e o armazenamos em uma variável independente. por último, continuamos comparando a hora do sistema com os tempos de oração, se a hora do sistema corresponder a qualquer um dos tempos de oração, ele tocará o som Azan.

Etapa 13: Capítulo 4: Implementando os mostradores do relógio

Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio
Capítulo 4: Implementando os mostradores de relógio

Para fazer o projeto parecer melhor, tive a ideia de adicionar mostradores de relógio ao LCD, para que pareça legal para o usuário (bem, melhor do que a linha de comando, pelo menos), então, contratei um designer para projetar vários mostradores para o relógio, deve estar vazio e sem dados, pois os dados devem ser adicionados através de HTML, tornando os designs do relógio como fundo, e os outros dados, como tempos de oração, podem ser adicionados como elementos HTML na parte superior do fundo.

Infelizmente, no momento em que escrevi este manual, meu conhecimento e experiência em HTML são muito limitados, então não irei discutir muitos detalhes porque sei com certeza que vou fazer as coisas da maneira errada, e não quer confundir as pessoas. mas se você tem pelo menos uma pequena experiência em JS e HTML, você deve saber como continuar a partir deste ponto. até agora fiz uma única cara (a azul). o plano é fazer 14 mostradores de relógio! 7 faces para todos os dias da semana e mais 7 como outro tema. já que o primeiro tema deve ser com Azkar rolando, e o outro tema deve ter GIFS islâmicos em vez do Azkar. independentemente, incluirei todos os designs neste instrutível para que você possa baixá-lo.

Etapa 14: Capítulo 5: Implementando uma interface de usuário

Capítulo 5: Implementando uma interface de usuário
Capítulo 5: Implementando uma interface de usuário

No último capítulo de nossa jornada, faremos algumas modificações opcionais para tornar o projeto ainda mais amigável, caso desejemos implementar o projeto em uma mesquita ou em qualquer lugar público. como dissemos antes, cada cidade tem seu próprio tempo para as orações, e para tornar este projeto acesso para uma veracidade mais ampla de pessoas, faremos uma interface de usuário para que possamos selecionar a cidade e o tema desejados assim que iniciarmos o projeto.

Para fazer isso, vamos usar uma biblioteca python GUI chamada "TKinter".

Este é o código que implementei para me dar a opção de escolher entre cinco cidades na Arábia Saudita, incluindo Makkah:

importar tkinter como 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. button1 = Botão (self, text = "Jeddah", height = 5, width = 80, command = self.open_jeddah1) self.button2 = Botão (self, text = "Makkah", height = 5, width = 80, command = self.open_makkah1) self.button3 = Botão (self, text = "Riyadh", height = 5, width = 80, command = self.open_riyadh1) self.button4 = Botão (self, text = "Madina", height = 5, largura = 80, comando = self.open_madina1) self.button5 = Botão (self, texto = "Qasim", altura = 5, largura = 80, comando = self.open_qasaim1) self.button1.grid (linha = 0, coluna = 1, expansão das colunas = 2, aderência = W + E + N + S) self.button2.grid (linha = 1, coluna = 1, expansão das colunas = 2, aderência = W + E + N + S) self.button3.grid (linha = 2, coluna = 1, expansão da coluna = 2, aderente = W + E + N + S) self.button4.grid (linha = 3, coluna = 1, expansão da coluna = 2, aderência = W + E + N + S) self.button5.grid (linha = 4, coluna = 1, coluna = 2, sticky = W + E + N + S) def open_jeddah1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/jeddah/Sunday1.html --start-fullscreen --no-sandbox" os.system (pedido) def open_makkah1 (self): pedido = "sudo chromium-browser /home/pi/Desktop/Cities/makkah/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (pedido) def open_riyadh1 (self): pedido = "sudo chromium-browser /home/pi/Desktop/Cities/riyadh/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (pedido) def open_madina1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/madina/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (pedido) def open_qasaim1 (self): order = "sudo chromium-browser /home/pi/Desktop/Cities/qasaim/Sunday1.html --start-fullscreen --no-sandbox -test-type" os.system (ordem) def main (): karl (). mainloop () if _name_ == '_main_': main ()

O código pode parecer grande, mas editá-lo é muito fácil. Basicamente, criamos uma nova janela, colocamos cinco botões de nomes e definimos cinco funções a serem chamadas a cada pressionamento de botão. assim que você pressionar o botão, o programa abrirá o arquivo HTML correspondente na pasta Cities, em que cada HTML de cidade tem as coordenadas da cidade quando obtém o tempo dos tempos de oração (). assim que você pressionar o botão, o código python executará um código linux no qual abrirá o arquivo HTML usando o navegador chromium, e você terá o mostrador do relógio pronto para ser exibido, com a opção de tela cheia ativada.

Etapa 15: (opcional): adicionar um switch de alto-falante

(Opcional): Adicionando um interruptor de alto-falante
(Opcional): Adicionando um interruptor de alto-falante
(Opcional): Adicionando uma chave de alto-falante
(Opcional): Adicionando uma chave de alto-falante

Como vimos, quando chega a hora da oração, o som Azan toca, e o som sai da saída de som padrão (saída HDMI ou AV) e como estamos colocando na saída HDMI, o som virá do LCD. mas, e se o som do nosso LCD não for suficiente? por exemplo, e se quisermos implementar isso dentro de uma mesquita real? com amplos alto-falantes externos? então podemos adicionar mais uma etapa MUITO fácil para fazer isso. para um sistema de som de alto-falante já construído, só precisamos LIGAR e DESLIGAR, e pegar o microfone já existente e colocá-lo próximo aos alto-falantes LCD.

Fazer isso é fácil. usaremos o microfone mesquita pré-existente que está conectado ao alto-falante, só precisaremos do raspberryPi para controlar a energia que liga e desliga todo o sistema de som. para fazer isso, vamos precisar usar um SSR: SOLID STATE RELAY. esses tipos de relés podem atuar como um interruptor, muito parecido com o relé azul médio, a diferença é que os SSRs podem suportar uma grande quantidade de amperagem CA através dele, o que não é aplicável nos azuis (geralmente no máximo 10A) e nas necessidades de SSRs apenas dois fios em vez de 3: DC + e DC- e é isso! na outra extremidade do SSR podemos conectar o cabo de alimentação do sistema de alto-falantes, dessa forma, quando damos tensão ao SSR, ele fecha o circuito AC do sistema de alto-falantes, ou desligamos a tensão para fazer um circuito aberto, desligando os alto-falantes.

há um porém, os pinos do RaspberryPi produzem 3,3 V, não 5 V que precisamos para controlar o SSR. portanto, precisamos de um transistor para receber o sinal do pino RPi e 5V do pino RPi 5v. para fazer isso, precisamos:

1-Relé de estado sólido (qualquer coisa acima de 25A é bom)

2-2n2222 transistor npn

Resistor de 3-220ohm

siga o circuito de fritagem para conexão.

agora no código, vamos adicionar algumas coisas que fazem isso funcionar. primeiro, antes do loop while, adicionaremos algumas linhas para inicializar os pinos GPIO:

Na seção de importação, adicione:

importar RPi. GPIO como GPIO

Antes do loop while, adicione:

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

Agora, no loop while, para cada comando play Azan, precisamos ligar o relé, esperar 10 segundos, terminar de tocar o Azan e então desligar o relé. só precisamos adicionar duas linhas, a primeira é:

GPIO.output (ledPin, GPIO. HIGH)

tempo.sono (10)

este deve ser adicionado após cada instrução if (IDENTAÇÃO É IMPORTANTE!), a outra linha é:

GPIO.output (ledPin, GPIO. LOW)

Este deve ser adicionado após a linha "continue". deve ser assim para cada vez do Azan:

if currTime == FAJR:

GPIO.output (ledPin, GPIO. HIGH) time.sleep (10) mixer.init () mixer.music.load ('/ home / pi / Desktop / Adhan-fajr.wav') mixer.music.play () enquanto mixer.music.get_busy () == True: continue GPIO.output (ledPin, GPIO. LOW)

Recomendado: