Cuprins:

Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker: 6 pași
Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker: 6 pași

Video: Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker: 6 pași

Video: Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker: 6 pași
Video: 3000+ Common English Words with British Pronunciation 2024, Noiembrie
Anonim
Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker
Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker

Știm că putem muri oricând, chiar și eu pot muri în timp ce scriu această postare, până la urmă, eu, tu, suntem cu toții muritori. Întreaga lume a zguduit din cauza pandemiei COVID19. Știm cum să prevenim acest lucru, dar hei! știm să ne rugăm și de ce să ne rugăm, o facem zilnic? Nu!! De fapt, uităm cauza principală a motivului pentru care ar trebui să facem lucruri. Deci, știm că un stil de viață igienic ne poate salva, dar nu o facem corect. Luați în considerare cazul fratelui meu mai mic, el vrea să iasă și să se joace chiar și în acest timp. A trebuit să fac ceva pentru a informa în mod constant pe toată lumea despre cele mai recente cazuri de COVID19. Așadar, am realizat un afișaj de birou digital care arată cele mai recente cazuri de COVID19 în timp real. Deoarece acesta are un ceas, îl pot pune într-un loc în care toată lumea se adună sau vine. Vor vedea cum numerele se adună, ceea ce va declanșa conștientizarea în ele și, sperăm, toată lumea va fi conștientă. De asemenea, fiind un producător și un hobby, acest lucru sa dovedit a fi un proiect bun la care să lucrez în această sesiune de blocare.

Pasul 1: Părțile pe care le-am folosit:

Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
Piese pe care le-am folosit
  • Raspberry Pi 3 Model B (pornit cu card SD)
  • Modul UPS Raspberry Pi (opțional)
  • Ecran LCD HDMI de 7 inch
  • Cablu HDMI la HDMI (vine cu ecranul)
  • Cabluri USB
  • Adaptor de alimentare 5v 2A (pentru alimentarea pi)
  • Foaie din PVC [culoare lemn] (pentru a face corpul)

Pasul 2: Configurați Raspberry Pi:

Configurare Raspberry Pi
Configurare Raspberry Pi

Bănuiesc că ați configurat perfect pi-ul, cu excepția cazului în care nu ați făcut-o -

  1. obțineți un card SD - mai mult de 8 GB
  2. descărcați cel mai recent fișier iso raspbian de aici.
  3. Ardeți cardul SD folosind etcher

(Rețineți că oamenii pot spune despre un alt software care vă cere să faceți ceva de configurare, dar gravorul este foarte ușor de utilizat și, de asemenea, simplu, dar eficient.)

Conectați cardul SD la computer, rulați gravorul, veți vedea că cardul SD este selectat automat de gravor, apoi faceți clic pentru a selecta fișierul sau imaginea iso descărcată, apoi ardeți-l. După scrierea și procesarea cu succes, deconectați cardul SD și conectați-l la pi, alimentați-l și VOILA !! E viu.

Pasul 3: Diagrama circuitului:

Diagrama circuitului
Diagrama circuitului

Conectați totul și porniți raspbery pi, este doar conectarea, nimic altceva.

Veți vedea pornirea pi.

Pasul 4: Corpul:

Corpul
Corpul
Corpul
Corpul
Corpul
Corpul
Corpul
Corpul

Am tăiat o foaie de PVC în funcție de dimensiunea afișajului, apoi am adăugat-o folosind șuruburi. După aceea am conectat totul. În cele din urmă, a adăugat o altă foaie în spate pentru a sprijini căderea (foaie albastră). Dacă totul este în regulă, ar trebui să vedeți pornirea pi (ultima poză)

Pasul 5: Software-ul (cod sursă):

Programul este scris în python3. Pentru GUI (Graphical User Interface) am folosit PyQt5, iar pentru a extrage date COVID19 în timp real am folosit biblioteca COVID19Py. Mulțumim băieților care au făcut API-ul disponibil pentru noi

Cam asta este, deschideți acum Terminal pe raspberry pi și instalați biblioteci (copiați fiecare dintre ele și lipiți pe terminalul rpi).

Ignorați semnul $ în timp ce copiați

$ pip3 instalați pyqt5

$ pip3 solicită instalare $ pip3 instalează covid19py

Gata, acum descărcați codul de aici, am furnizat codul de mai jos:

"" "* În timp real Covid19 Tracker internațional și local cu ceas *" "" "" "************** Rămâneți acasă Rămâneți în siguranță. Live, permiteți Live ***** """

"""

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

#import bibliotecile necesare

import PyQt5 #QT Library GUI for python3 from PyQt5. QtCore import Qt, QTimer #timer to update from PyQt5. QtWidgets import * #import everything from PyQt5. QtGui import QFont #for fonts import sys #necessary for QT applications # import os import COVID19Py # covid19 information -api import datetime # știi pentru ce este asta

clasa CoronaTracker (QWidget):

"" "clasa principală care conține totul" "" def _init _ (self): "" "inițializează lucrurile" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) # dacă temporizatorul atinge pragul - actualizare apel self.ui () #interfață utilizator

def ui (auto):

"" "Secțiunea interfață utilizator" "" self.setWindowTitle ("Covid19 International and Local Tracker") # self.setWindowFlags (Qt. CustomizeWindowHint) #hide bara de titlu self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) # conform rezoluției afișajului meu (x, y) / rpi

#eticheta principala

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: negru; color: alb; border-style: outset; border-width: 1px" "")

"" "_ ultimele date ale lumii_" ""

#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText („Lumea pe scurt”) self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "fundal-culoare: negru; culoare: albastru; border-style: outset; border-width: 1px" "")

# cazuri confirmate la nivel mondial

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Cazuri:") 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: negru; color: alb; border-style: outset; border-width: 1px "" ")

# decese la nivel mondial

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Moarte:") 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: negru; color: alb; border-style: outset; border-width: 1px "" ")

#worldwide vindecat

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: negru; culoare: cyan; border-style: outset; border-width: 1px" "")

#număr vindecat la nivel mondial

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 ("" "background-color: negru; culoare: alb; stil bordură: ieșire; lățime margine: 1 px "" ")

"" "_ Local-după țară Cod_" ""

#local - Țara self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText („Țara mea: 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 ("Cazuri:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "fundal -color: negru; culoare: portocaliu; 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: negru; culoare: alb; border-style: outset; border-width: 1px" "")

# decese locale

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Moarte:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "background-color: negru; culoare: roșu; border-style: outset; border-width: 1px" "")

# număr local de decese

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 ("" "fundal-culoare: negru; culoare: alb; border-style: outset; border-width: 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: negru; color: cyan; border-style: outset; border-width: 1px "" ") #local cured number 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: negru; culoare: alb; border-style: outset; border-width: 1px" "")

"" "_ Ora, data, ceasul_" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- culoare: negru; culoare: alb; stil de bordură: început; lățime de margine: 1px "" ") # etichetă pentru săptămână self.weekday = QLabel (auto) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "background-color: negru; culoare: alb; 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 ("" "fundal-culoare: negru; culoare: alb; border-style: outset; border-width: 1px" "")

#verificați temporizatorul dacă nu self.timer.isActive (): #dacă temporizatorul este oprit (a fost atins pragul) # După 1 secundă (aprox.) sau 1000ms

încerca:

"" "Încercați să obțineți date, altfel rulați codul oricum" "" self.latest = self.covid.getLatest () #gte covid19 ultimele date

#obțineți cele mai recente date după codul de țară 'BD' - Bangladesh, 'IN'-India etc.

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

cu exceptia:

"" "nu s-au putut obține date" "" tipărire ("Eroare Internet !!")

trece #ignore, aleargă oricum

self.timer.start (1000) #start cronometrul

self.show () #show Interfața noastră de utilizator

actualizare def (auto):

"" "actualizați etichetele cu informații" ""

"" "_Extragerea informațiilor despre ora și data actualizării anunțurilor_" ""

# configurați ceasul și data dată (actualizați valorile) # obțineți și actualizați valorile #pentru a afla mai multe citiți documentația python datetime

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

self.clock.setText (self.dt.strftime ('% X')) self.weekday.setText (self.dt.strftime ('% A')) self.date.setText (self.dt.strftime ('% x ')) "" "_ actualizare date covid19_" "" #worldwide latest data self.w_cases_num.setText (str (self.latest [' confirmat])) self.w_death_num.setText (str (self.latest

print („actualizare”)

întoarcere

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #run aplicația dacă _name_ == '_main_': main ()

Pasul 6: Finalizați:

Termina
Termina

După testarea codului, l-am pus în birou și i-am dedicat o sursă de alimentare. Pentru a funcționa în timpul încărcării. Utilizând UPS-urile, acest lucru poate rula chiar și în cazul descărcării sarcinii, ceea ce oferă cardului SD ur pi o protecție adecvată.

Indiferent cum sau cine suntem, trebuie să murim. Să nu ne gândim la tine, să ne gândim la lume. Nu putem trăi veșnic decât prin faptele noastre, să fie așa.

Recomandat: