Sadržaj:

Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: 6 koraka
Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: 6 koraka

Video: Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: 6 koraka

Video: Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker: 6 koraka
Video: HUNGRY SHARK WORLD EATS YOU ALIVE 2024, Juli
Anonim
Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker
Desktop COVID19 Tracker sa satom! Raspberry Pi Powered Tracker

Znamo da možemo umrijeti bilo kada, čak i ja mogu umrijeti dok pišem ovaj post, na kraju krajeva, ja, ja, svi smo smrtnici. Cijeli svijet se potresao zbog pandemije COVID19. Znamo kako to spriječiti, ali hej! znamo kako se moliti i zašto se molimo, radimo li to svakodnevno? Ne !! Zapravo, zaboravljamo osnovni uzrok zašto bismo trebali raditi neke stvari. Dakle, znamo da nas higijenski način života može spasiti, ali to ne činimo kako treba. Uzmimo u obzir slučaj mog mlađeg brata, koji želi izaći i igrati se čak i u ovo vrijeme. Morao sam učiniti nešto kako bih sve dosljedno informirao o najnovijim slučajevima COVID19. Stoga sam napravio digitalni radni sto koji prikazuje najnovije slučajeve COVID19 u stvarnom vremenu. Kako ovaj ima sat, mogu ga staviti na mjesto gdje se svi okupljaju ili dolaze. Vidjet će kako se zbrajaju brojevi, što će u njima izazvati svijest i nadamo se da će svi biti svjesni. Također, budući da sam stvaralac i hobist, pokazalo se da je ovo dobar projekt za rad na ovoj zaključanoj sesiji.

Korak 1: Dijelovi koje sam koristio:

Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
Dijelovi koje sam koristio
  • Raspberry Pi 3 Model B (pokrenuto pomoću SD kartice)
  • Raspberry Pi UPS modul (opcionalno)
  • 7 -inčni HDMI LCD ekran
  • HDMI na HDMI kabl (dolazi sa ekranom)
  • USB kablovi
  • 5v 2A adapter za napajanje (za napajanje pi)
  • PVC lim [drvena boja] (za izradu tijela)

Korak 2: Postavljanje Raspberry Pi:

Postavljanje Raspberry Pi
Postavljanje Raspberry Pi

Pretpostavljam da ste savršeno postavili pi, osim ako niste …

  1. nabavite SD karticu - više od 8 GB
  2. preuzmite najnoviju raspbian iso datoteku odavde.
  3. Narežite SD karticu pomoću bakropisa

(Imajte na umu da ljudi mogu reći nešto o drugom softveru za koji je potrebno da izvršite neke postavke, ali bakropis je super jednostavan za korištenje, a i jednostavan, ali i učinkovit.)

Samo priključite SD karticu na računar, pokrenite etcher, vidjet ćete da je SD kartica automatski odabrana, zatim kliknite da odaberete preuzetu iso datoteku ili sliku, a zatim je narežite. Nakon uspješnog pisanja i obrade, isključite SD karticu i spojite je na svoj pi, uključite je i VOILA !! Zivo je.

Korak 3: Dijagram kola:

Dijagram kola
Dijagram kola

Povežite sve i uključite raspbery pi, samo se povezuje, ništa drugo.

Vidjet ćete pi dizanje.

Korak 4: Tijelo:

Tijelo
Tijelo
Tijelo
Tijelo
Tijelo
Tijelo
Tijelo
Tijelo

Izrezao sam PVC ploču prema veličini zaslona, a zatim je dodao vijcima. Nakon toga sam sve povezao. Na kraju smo dodali još jedan list pozadi kako bi ga spriječili da padne (plavi list). Ako je sve u redu, trebali biste vidjeti pi dizanje (zadnja slika)

Korak 5: Softver (izvorni kod):

Program je napisan na python3. Za GUI (grafičko korisničko sučelje) koristio sam PyQt5, a za ekstrakciju podataka o COVID19 u stvarnom vremenu koristio sam biblioteku COVID19Py. Hvala momcima koji su nam API učinili dostupnim

To je otprilike to, sada otvorite Terminal na malini pi i instalirajte biblioteke (kopirajte svaku od njih i zalijepite na rpi terminal).

Zanemarite znak $ tokom kopiranja

$ pip3 instalirajte pyqt5

$ pip3 zahtjevi za instaliranje $ pip3 install covid19py

To je to, preuzmite kôd odavde, naveo sam kôd u nastavku:

"" "*Međunarodni i lokalni alat za praćenje u realnom vremenu Covid19 sa satom*" "" "" "************** Ostanite kod kuće Ostanite sigurni. Uživo, pustite uživo ******** ***** """

"""

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

#import neophodnih biblioteka

uvoz PyQt5 #QT GUI biblioteke za python3 iz PyQt5. QtCore uvoz Qt, QTimer #timer za ažuriranje sa PyQt5. QtWidgets uvoz * #importiraj sve iz PyQt5. QtGui uvoz QFont #za font font import #potrebno za uvoz QID19Py #informacije o covid19 -api datum i vreme uvoza #znate čemu ovo služi

klasa CoronaTracker (QWidget):

"" "glavna klasa koja sadrži sve" "" def _init _ (self): "" "inicijalizirati stvari" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #inicijalizirati self.timer = QTimer () #inicijalizirajte self.timer.timeout.connect (self.update) #ako tajmer dosegne prag - pozovite ažuriranje self.ui () #korisnički interfejs

def ui (self):

"" "Odjeljak korisničkog sučelja" "" self.setWindowTitle ("Međunarodni i lokalni alat za praćenje Covid19") #self.setWindowFlags (Qt. CustomizeWindowHint) #skrivanje naslovne trake self.setStyleSheet ("Boja pozadine: crna") self.setFixedSize (640, 480) #as po mom ekranu (x, y) /rpi rezolucija

#glavna oznaka

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_bel. setFont (QFont ('SansSerif', 20)) self.banner_label.setStyleSheet ("" "boja pozadine: crna; boja: bijela; stil ivice: izlaz; granica-širina: 1px" "")

"" "_ najnoviji podaci iz svijeta _" ""

#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("Svijet na prvi pogled") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "boja pozadine: crna; boja: plava; stil ivice: početak; granica širine: 1px" "")

#potvrđenih slučajeva širom svijeta

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Slučajevi:") self.w_cases.setFont (QFont ('SansSerif', 18)) self. w_cases.setStyleSheet ("" "boja pozadine: crna; boja: narandžasta; stil obruba: početak; granica širine: 1px" "") #broj predmeta 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 ("" "boja pozadine: crna; boja: bijela; stil ivice: izlaz; granica širine: 1px "" ")

#smrt širom svijeta

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Smrti:") self.w_death.setFont (QFont ('SansSerif', 18)) self. w_death.setStyleSheet ("" "boja pozadine: crna; boja: crvena; stil ivice: isticanje; širina granice: 1px" "") #smrtni broj 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 ("" "boja pozadine: crna; boja: bijela; stil obruba: izlaz; granica širine: 1px "" ")

#svetski izlečen

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Izliječeno:") self.w_cured.setFont (QFont ('SansSerif', 18)) self. w_cured.setStyleSheet ("" "boja pozadine: crna; boja: cijan; stil ivice: početak; granica širine: 1px" "")

#svetski izlečeni broj

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 ("" "boja pozadine: crna; boja: bijela; stil obruba: početak; širina ivice: 1px "" ")

"" "_ Lokalni pozivni broj zemlje _" ""

#local - Država self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Moja zemlja: Bangladeš") self.c.setFont (QFont ('SansSerif', 18)) self.c.setStyleSheet ("" "boja pozadine: crna; boja: bijela; stil obruba: početak; granica širine: 1px" "") #local confirm cases self.c_cases = QLabel (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Slučajevi:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "background -boja: crna; boja: narandžasta; stil obruba: početak; granica širine: 1px "" ") #lokalni broj slučajeva 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 ("" "boja pozadine: crna; boja: bijela; obrub-stil: izlaz; granica-širina: 1px" "")

#lokalna smrt

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Smrti:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "boja pozadine: crna; boja: crvena; stil ivice: početak; granica širine: 1px" "")

#lokalni broj umrlih

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 ("" "boja pozadine: crna; boja: bijela; stil obruba: početak; granica širine: 1px "" ") #local cured self.c_cured = QLabel (self) self.c_cured.setGeometry (5, 280, 100, 40) self.c_cured. setText ("Izliječeno:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "boja pozadine: crna; boja: cijan; granica stila: izlaz; granica širine: 1px "" ") #lokalni izliječeni broj 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 ("" "boja pozadine: crna; boja: bijela; stil obruba: početak; granica širine: 1px" "")

"" "_ Vrijeme, Datum, Sat _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- boja: crna; boja: bijela; rubni stil: početak; granica širine: 1px "" ") #oznaka za radni dan self.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "boja pozadine: crna; boja: bijela; stil obruba: izlaz; granica-širina: 1px" "") #datum 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 ("" "boja pozadine: crna; boja: bijela; stil ivice: početak; granica širine: 1px" "")

#provjerite tajmer ako nije self.timer.isActive (): #ako je tajmer zaustavljen (dosegnut prag) #Nakon 1 sekunde (približno) ili 1000ms

probaj:

"" "pokušajte dobiti podatke, inače pokrenite kôd" "" self.latest = self.covid.getLatest () #gte covid19 najnoviji podaci

#dobijete najnovije podatke po pozivu zemlje 'BD'-Bangladeš,' IN'-Indija itd

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

osim:

"" "nije moglo doći do podataka" "" print ("Internet greška !!")

položi #ignore, ipak trči

self.timer.start (1000) #pokretanje mjerača vremena

self.show () #prikaži naše korisničko sučelje

def update (self):

"" "ažurirajte oznake s informacijama" ""

"" "_Izvlačni oglas Ažuriranje vremena i datuma _" ""

#podesite sat i datum (vrednosti ažuriranja) #nabavite i ažurirajte vrednosti #da biste saznali više pročitajte python datumsku dokumentaciju

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

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('% x ')) "" "_ ažurirajte podatke covid19 _" "" #najnoviji podaci o svijetu self.w_cases_num.setText (str (self.latest [' potvrđeno '])) self.w_death_num.setText (str (self.latest [' deaths ')])) self.w_cured_num.setText (str (self.latest ['recovery']))) #local najnoviji podaci self.c_cured_num.setText (str (self.local [0] ['latest'] ['recovery'])) self.c_death_num.setText (str (self.local [0] ['najnovije'] ['smrti'])) self.c_cases_num.setText (str (self.local [0] ['najnovije'] ['potvrđeno']))

print ("ažuriranje")

povratak

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #pokrenite aplikaciju ako je _name_ == '_main_': main ()

Korak 6: Završite:

Završiti
Završiti

Nakon testiranja koda, stavio sam ga u radni stol i za njega posvetio izvor napajanja. Tako da može raditi i tijekom punjenja. Korištenjem prozora može se pokrenuti čak i pri smanjivanju opterećenja, što daje ur pi SD kartici odgovarajuću zaštitu.

Bez obzira na to kako i ko smo, moramo umrijeti. Ne razmišljajmo o sebi, razmišljajmo o svijetu. Možemo samo vječno živjeti kroz svoja djela, neka bude tako.

Preporučuje se: