Inhoudsopgave:

Desktop COVID19-tracker met klok! Raspberry Pi Powered Tracker - Ajarnpa
Desktop COVID19-tracker met klok! Raspberry Pi Powered Tracker - Ajarnpa

Video: Desktop COVID19-tracker met klok! Raspberry Pi Powered Tracker - Ajarnpa

Video: Desktop COVID19-tracker met klok! Raspberry Pi Powered Tracker - Ajarnpa
Video: Capitec Bank: Business case for technology to transition through metadata management maturity levels 2024, November
Anonim
Desktop COVID19-tracker met klok! Raspberry Pi aangedreven tracker
Desktop COVID19-tracker met klok! Raspberry Pi aangedreven tracker

We weten dat we elk moment kunnen sterven, zelfs ik kan sterven tijdens het schrijven van dit bericht, ik, jij, we zijn tenslotte allemaal stervelingen. De hele wereld schudde door de COVID19-pandemie. We weten hoe we dit kunnen voorkomen, maar hey! we weten hoe we moeten bidden en waarom we moeten bidden, doen we dat dagelijks? Nee!! Eigenlijk vergeten we de grondoorzaak van waarom we dingen zouden moeten doen. We weten dus dat een hygiënische levensstijl ons kan redden, maar we doen het niet goed. Denk aan het geval van mijn jongere broer, hij wil zelfs in deze tijd buiten spelen. Ik moest iets doen om iedereen consequent te informeren over de laatste gevallen van COVID19. Daarom heb ik een digitaal bureaudisplay gemaakt dat de laatste gevallen van COVID19 in realtime laat zien. Omdat dit een klok heeft, kan ik het op een plaats zetten waar iedereen samenkomt of komt. Ze zullen zien dat de cijfers optellen, wat bij hen bewustzijn zal opwekken en hopelijk zal iedereen bij bewustzijn zijn. Ook als maker en hobbyist bleek dit een goed project om aan te werken in deze lock-down sessie.

Stap 1: Onderdelen die ik heb gebruikt:

Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
Onderdelen die ik heb gebruikt
  • Raspberry Pi 3 Model B (opgestart met sd-kaart)
  • Raspberry Pi UPS-module (optioneel)
  • 7 inch HDMI LCD-scherm
  • HDMI naar HDMI kabel (deze wordt meegeleverd met het scherm)
  • USB-kabels
  • 5v 2A voedingsadapter (om de pi van stroom te voorzien)
  • PVC plaat [houten kleur] (om het lichaam te maken)

Stap 2: Stel Raspberry Pi in:

Raspberry Pi instellen
Raspberry Pi instellen

Ik denk dat je de pi perfect hebt ingesteld, tenzij je niet…

  1. koop een SD-kaart - meer dan 8 GB
  2. download het nieuwste raspbian iso-bestand van hier.
  3. Brand de SD-kaart met behulp van etser

(Merk op dat mensen iets kunnen zeggen over andere software waarvoor je wat setup-dingen moet doen, maar etcher is supergemakkelijk te gebruiken en eenvoudig maar ook effectief.)

Sluit gewoon uw SD-kaart aan op de pc, voer etcher uit, u zult zien dat de SD-kaart automatisch wordt geselecteerd door etcher, klik vervolgens om het gedownloade iso-bestand of afbeelding te selecteren en brand het vervolgens. Na succesvol schrijven en verwerken ontkoppel je de SD-kaart en sluit je hem aan op je pi, zet hem aan en VOILA!! Het leeft.

Stap 3: Schakelschema:

Schakelschema
Schakelschema

Sluit alles aan en zet de raspbery pi aan, het is gewoon verbinden, niets anders.

Je zult zien dat de pi opstart.

Stap 4: Het lichaam:

Het lichaam
Het lichaam
Het lichaam
Het lichaam
Het lichaam
Het lichaam
Het lichaam
Het lichaam

Ik heb een PVC-plaat op maat gesneden volgens de weergavegrootte en vervolgens met schroeven toegevoegd. Daarna heb ik alles aangesloten. Eindelijk nog een vel aan de achterkant toegevoegd om te voorkomen dat het valt (blauw vel). Als alles in orde is, zou je de pi moeten zien opstarten (laatste foto)

Stap 5: De software (broncode):

Het programma is geschreven in python3. Voor GUI (Graphical User Interface) gebruikte ik PyQt5 en om realtime COVID19-gegevens te extraheren, gebruikte ik de COVID19Py-bibliotheek. Dank aan de jongens die de API voor ons beschikbaar hebben gesteld

Dat is het zo'n beetje, open nu Terminal op raspberry pi en installeer bibliotheken (kopieer ze allemaal en plak ze op rpi-terminal).

Negeer $ teken tijdens het kopiëren

$ pip3 installeer pyqt5

$ pip3 installatieverzoeken$ pip3 installatie covid19py

Dat is het, download nu de code van hier, ik heb de onderstaande code verstrekt:

"""* Realtime Covid19 internationale en lokale tracker met klok *""" """ *************** Blijf thuis, blijf veilig. Leef, laat leven ******* ***** """

"""

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

#importeer benodigde bibliotheken

importeer PyQt5 #QT GUI-bibliotheek voor python3 uit PyQt5. QtCore importeer Qt, QTimer #timer om te updaten vanuit PyQt5. QtWidgets import * #importeer alles uit PyQt5. QtGui importeer QFont #for fonts import sys #noodzakelijk voor QT-applicaties #import os import COVID19Py #covid19 informatie -api import datetime #je weet waar dit voor is

klasse CoronaTracker (QWidget):

"""hoofdklasse die alles bevat""" def _init_(self): """initialiseer dingen""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #if timer bereikt drempel - bel update self.ui() #user interface

def ui(zelf):

"""Gebruikersinterfacesectie""" self.setWindowTitle("Covid19 International and Local Tracker") #self.setWindowFlags(Qt. CustomizeWindowHint) #hide titelbalk self.setStyleSheet("Achtergrondkleur: zwart") self.setFixedSize(640, 480) #volgens mijn scherm (x, y) /rpi resolutie

#hoofdlabel

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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

"""_worlds nieuwste gegevens_"""

#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(""" achtergrondkleur: zwart; kleur: blauw; randstijl: begin; randbreedte: 1px """)

#wereldwijd bevestigde gevallen

self.w_cases = QLabel(self) self.w_cases.setGeometry(5, 90, 100, 40) self.w_cases.setText("Cases:") self.w_cases.setFont(QFont('SansSerif', 18)) zelf. 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

#wereldwijde sterfgevallen

self.w_death = QLabel(self) self.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("Deaths:") self.w_death.setFont(QFont('SansSerif', 18)) zelf. w_death.setStyleSheet(""" achtergrondkleur: zwart; kleur: rood; randstijl: begin; grensbreedte: 1px """) #death nummer 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

#wereldwijd genezen

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(""" achtergrondkleur: zwart; kleur: cyaan; randstijl: begin; randbreedte: 1px """)

#wereldwijd genezen nummer

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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

"""_ Lokale code per land_"""

#local - Land self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("Mijn land: Bangladesh") self.c.setFont(QFont('SansSerif'), 18)) self.c.setStyleSheet(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """) #local confirm cases self.c_cases = QLabel(self) self.c_cases.setGeometry(5, 240, 400, 40) self.c_cases.setText("Cases:") self.c_cases.setFont(QFont('SansSerif', 18)) self.c_cases.setStyleSheet(""" background -kleur: zwart; kleur: oranje; randstijl: begin; randbreedte: 1px """) #local casesnummer 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

#lokale sterfgevallen

self.c_death = QLabel(self) self.c_death.setGeometry(350, 240, 100, 40) self.c_death.setText("Deaths:") self.c_death.setFont(QFont('SansSerif', 18)) zelf. c_death.setStyleSheet(""" achtergrondkleur: zwart; kleur: rood; randstijl: begin; randbreedte: 1px """)

#lokaal sterftecijfer

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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: cyaan; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

"""_Tijd, Datum, Klok_"""

#clock self.clock = QLabel(self) self.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- kleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """) #label for weekday self.weekday = QLabel(self) self.weekday.setGeometry(5, 360, 110, 20) self.weekday.setFont(QFont('SansSerif', 13)) self.weekday.setStyleSheet(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)

#controleer de timer indien niet self.timer.isActive(): #als timer is gestopt (drempelwaarde bereikt) #Na 1 seconde (ongeveer) of 1000 ms

proberen:

"""probeer gegevens op te halen, anders voer je de code toch uit""" self.latest = self.covid.getLatest() #gte covid19 nieuwste gegevens

#haal de laatste gegevens op per landcode 'BD'-Bangladesh, 'IN'-India enz

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

behalve:

"""kan geen gegevens ophalen""" print("Internetfout!!")

pas #negeren, toch rennen

zelf.timer.start(1000) #start de timer

self.show() #show onze gebruikersinterface

def update(zelf):

"""labels bijwerken met informatie"""

"""_ Uitpakken van advertentie-update tijd en datum informatie_"""

#klok en datumtijd instellen (waarden bijwerken) #waarden ophalen en bijwerken #voor meer informatie lees python datetime-documentatie

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-gegevens_""" #worldwide nieuwste gegevens self.w_cases_num.setText(str(self.latest['confirmed'])) self.w_death_num.setText(str(self.latest['deaths')])) self.w_cured_num.setText(str(self.latest['recovered'])) #local laatste gegevens self.c_cured_num.setText(str(self.local[0]['latest']['recovered'])) self.c_death_num.setText(str(self.local[0]['latest']['deaths'])) self.c_cases_num.setText(str(self.local[0]['latest']['bevestigd']))

print("update")

opbrengst

def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #voer de toepassing uit als _name_ == '_main_': main()

Stap 6: Eindig:

Afmaken
Afmaken

Na het testen van de code heb ik hem in het bureau geplaatst en er een stroombron voor gereserveerd. Zodat het kan werken tijdens het opladen. Door de ups te gebruiken, kan dit zelfs bij load-shedding worden uitgevoerd, dit geeft uw pi SD-kaart ook een geschikte bescherming.

Het maakt niet uit hoe of wie we zijn, we moeten sterven. Laten we niet aan jezelf denken, maar aan de wereld. We kunnen alleen eeuwig leven door onze daden, laat het zo zijn.

Aanbevolen: