Índice:

Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: 6 etapas
Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: 6 etapas

Vídeo: Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: 6 etapas

Vídeo: Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: 6 etapas
Vídeo: VAPE EXPLODINDO (NÃO É CLICKBAIT) 2024, Novembro
Anonim
Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker
Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker

Sabemos que podemos morrer a qualquer hora, até eu posso morrer enquanto escrevo este post, afinal, eu eu, você, todos somos mortais. O mundo inteiro tremeu por causa da pandemia COVID19. Nós sabemos como prevenir isso, mas hey! sabemos orar e por que orar, fazemos isso diariamente? Não!! Na verdade, esquecemos a causa raiz de por que devemos fazer as coisas. Portanto, sabemos que um estilo de vida higiênico pode nos salvar, mas não o fazemos corretamente. Considere o caso do meu irmão mais novo, ele quer sair e brincar mesmo nesta época. Tive que fazer algo para informar a todos de forma consistente sobre os últimos casos de COVID19. Então, fiz um display digital de mesa que mostra os últimos cases do COVID19 em tempo real. Como isso tem um relógio, posso colocá-lo em um lugar onde todos se reúnam ou venham. Eles verão a soma dos números, o que irá desencadear a consciência neles e, com sorte, todos estarão conscientes. Além disso, como eu sou um criador e um hobby, este acabou sendo um bom projeto para trabalhar nesta sessão de bloqueio.

Etapa 1: Peças que usei:

Peças que usei
Peças que usei
Peças que usei
Peças que usei
Peças que usei
Peças que usei
Peças que usei
Peças que usei
  • Raspberry Pi 3 Modelo B (inicializado com cartão SD)
  • Módulo UPS Raspberry Pi (opcional)
  • Tela LCD HDMI de 7 polegadas
  • Cabo HDMI para HDMI (vem com a tela)
  • Cabos USB
  • Adaptador de energia 5v 2A (para alimentar o pi)
  • Folha de PVC [cor de madeira] (para fazer o corpo)

Etapa 2: configurar o Raspberry Pi:

Configuração do Raspberry Pi
Configuração do Raspberry Pi

Eu acho que você configurou o pi perfeitamente, a menos que você não tenha -

  1. obter um cartão SD - mais de 8 GB
  2. baixe o arquivo iso do raspbian mais recente aqui.
  3. Grave o cartão SD usando etcher

(Observe que as pessoas podem dizer algo sobre outro software que requer que você faça alguma configuração, mas o etcher é super fácil de usar e simples, mas também eficaz.)

Apenas conecte seu cartão SD ao PC, execute o etcher, você verá que o cartão SD é automaticamente selecionado pelo etcher, então clique para selecionar o arquivo iso baixado ou imagem, então queime-o. Depois de gravar e processar com sucesso, desconecte o cartão SD e conecte-o ao seu pi, ligue-o e VOILA !! Está vivo.

Etapa 3: Diagrama de circuito:

Diagrama de circuito
Diagrama de circuito

Conecte tudo e ligue o raspbery pi, é só conectar, nada mais.

Você verá o pi inicializando.

Etapa 4: o corpo:

O corpo
O corpo
O corpo
O corpo
O corpo
O corpo
O corpo
O corpo

Cortei uma folha de PVC de acordo com o tamanho da tela e a adicionei usando parafusos. Depois disso, conectei tudo. Por fim, adicionou outra folha nas costas para evitar que caísse (folha azul). Se tudo estiver bem, você deverá ver o pi inicializando (última foto)

Etapa 5: O software (código-fonte):

O programa foi escrito em python3. Para GUI (Graphical User Interface) usei PyQt5 e para extrair dados COVID19 em tempo real usei a biblioteca COVID19Py. Obrigado aos caras que disponibilizaram a API para nós

É basicamente isso, agora abra o Terminal no raspberry pi e instale as bibliotecas (copie cada uma delas e cole no terminal rpi).

Ignorar o sinal $ ao copiar

$ pip3 install pyqt5

$ pip3 install solicita $ pip3 install covid19py

É isso, agora baixe o código aqui, forneci o código abaixo:

"" "* Realtime Covid19 International and Local Tracker With Clock *" "" "" "************** Stay Home Stay Safe. Live, let Live ******** ***** """

"""

autor: ashraf minhaj e-mail: [email protected] site: ashrafminhajfb.blogspot.com """

#import bibliotecas necessárias

import PyQt5 #QT GUI Library para python3 de PyQt5. QtCore import Qt, QTimer #timer para atualizar de PyQt5. QtWidgets import * #import tudo de PyQt5. QtGui import QFont #for fonts import sys #necessary for QT applications #import os import COVID19Py # covid19 information -api import datetime # você sabe para que serve

classe CoronaTracker (QWidget):

"" "classe principal que contém tudo" "" def _init _ (self): "" "inicializar coisas" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) #if timer atinge o limite - chame update self.ui () # interface do usuário

def ui (self):

"" "Seção da interface do usuário" "" self.setWindowTitle ("Covid19 International and Local Tracker") # self.setWindowFlags (Qt. CustomizeWindowHint) #hide title bar self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) #de acordo com minha tela (x, y) / resolução rpi

#Rótulo principal

self.banner_label = QLabel (self) self.banner_label.setGeometry (50, 5, 560, 50) # (x_origin, y_origin, till_x, till_y) self.banner_label.setText ("CORONA Pandemic - COVID19 TRACKER") self.banner_label. setFont (QFont ('SansSerif', 20)) self.banner_label.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

"" "_dados mais recentes do mundo_" ""

#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("World at a Glance") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "background-color: black; color: blue; border-style: outset; border-width: 1px" "")

#casos confirmados em todo o mundo

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Casos:") self.w_cases.setFont (QFont ('SansSerif', 18)) self. w_cases.setStyleSheet ("" "background-color: black; color: orange; border-style: outset; border-width: 1px" "") #cases number self.w_cases_num = QLabel (self) self.w_cases_num.setGeometry (110, 90, 100, 40) self.w_cases_num.setFont (QFont ('SansSerif', 18)) self.w_cases_num.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px "" ")

# mortes em todo o mundo

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Mortes:") self.w_death.setFont (QFont ('SansSerif', 18)) self. w_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "") #death number self.w_death_num = QLabel (self) self.w_death_num.setGeometry (460, 90, 100, 40) self.w_death_num.setFont (QFont ('SansSerif', 18)) self.w_death_num.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px "" ")

#worldwide curado

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Cured:") self.w_cured.setFont (QFont ('SansSerif', 18)) self. w_cured.setStyleSheet ("" "background-color: black; color: cyan; border-style: outset; border-width: 1px" "")

# número mundial curado

self.w_cured_num = QLabel (self) self.w_cured_num.setGeometry (110, 140, 100, 40) self.w_cured_num.setFont (QFont ('SansSerif', 18)) self.w_cured_num.setStyleSheet ("" "cor de fundo: preto; cor: branco; estilo da borda: início; largura da borda: 1 px "" ")

"" "_ Código local por país_" ""

#local - País self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Meu País: Bangladesh") self.c.setFont (QFont ('SansSerif', 18)) self.c.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "") #local confirm cases self.c_cases = QLabel (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Casos:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "background -color: black; color: orange; border-style: outset; border-width: 1px "" ") #local cases number self.c_cases_num = QLabel (self) self.c_cases_num.setGeometry (110, 240, 100, 40) self.c_cases_num.setFont (QFont ('SansSerif', 18)) self.c_cases_num.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

#local mortes

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Mortes:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "")

#local número de mortes

self.c_death_num = QLabel (self) self.c_death_num.setGeometry (460, 240, 100, 40) self.c_death_num.setFont (QFont ('SansSerif', 18)) self.c_death_num.setStyleSheet ("" "background-color: preto; cor: branco; estilo da borda: início; largura da borda: 1px "" ") #local cured self.c_cured = QLabel (self) self.c_cured.setGeometry (5, 280, 100, 40) self.c_cured. setText ("Cured:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "background-color: black; color: cyan; border-style: outset; border-width: 1px "" ") # número curado local self.c_cured_num = QLabel (self) self.c_cured_num.setGeometry (110, 280, 100, 40) self.c_cured_num.setFont (QFont ('SansSerif', 18)) self.c_cured_num.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

"" "_Hora, data, relógio_" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- color: black; color: white; border-style: outset; border-width: 1px "" ") #label for weekday self.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "") #date label self.date = QLabel (self) self.date.setGeometry (510, 360, 110, 20) # self.clock.setText ("22:49:00") self.date.setFont (QFont ('SansSerif', 13)) self.date.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

#verifique o cronômetro se não for self.timer.isActive (): #se o cronômetro for interrompido (limite atingido) # Após 1 segundo (aprox.) ou 1000 ms

Experimente:

"" "tente obter dados, caso contrário execute o código de qualquer maneira" "" self.latest = self.covid.getLatest () #gte covid19 dados mais recentes

#obter os dados mais recentes por código de país 'BD'-Bangladesh,' IN'-Índia etc.

self.local = self.covid.getLocationByCountryCode ('BD', timelines = False) #print (self.local) #print (self.latest)

exceto:

"" "não foi possível obter os dados" "" print ("Internet Error !!")

passe #ignore, execute mesmo assim

self.timer.start (1000) # iniciar o cronômetro

self.show () #show nossa interface de usuário

def update (self):

"" "atualizar rótulos com informações" ""

"" "_Extrair informações sobre hora e data de atualização do anúncio_" ""

# configurar relógio e data e hora (atualizar valores) # obter e atualizar valores #para saber mais leia a documentação de data e hora do Python

self.dt = datetime.datetime.now () #get datetime data

self.clock.setText (self.dt.strftime ('% X')) self.weekday.setText (self.dt.strftime ('% A')) self.date.setText (self.dt.strftime ('% x ')) "" "_update covid19 data_" "" #worldwide dados mais recentes self.w_cases_num.setText (str (self.latest [' confirmado '])) self.w_death_num.setText (str (self.latest [' mortes '])) self.w_cured_num.setText (str (self.latest ['recuperado'])) #local dados mais recentes self.c_cured_num.setText (str (self.local [0] ['mais recente'] ['recuperado'])) self.c_death_num.setText (str (self.local [0] ['mais recente'] ['mortes'])) self.c_cases_num.setText (str (self.local [0] ['mais recente'] ['confirmado']))

imprimir ("atualizando")

Retorna

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #run the application if _name_ == '_main_': main ()

Etapa 6: Concluir:

Terminar
Terminar

Depois de testar o código, coloquei-o na mesa e dediquei uma fonte de alimentação para ele. Para que possa funcionar durante o carregamento. Usando os no-break, isso pode funcionar até mesmo na redução de carga também, isso dá ao seu cartão SD pi uma proteção adequada também.

Não importa como ou quem somos, temos que morrer. Não vamos pensar em você, pense no mundo. Só podemos viver para sempre por meio de nossas ações, deixe que seja assim.

Recomendado: