Inhaltsverzeichnis:

Desktop-COVID19-Tracker mit Uhr! Raspberry Pi betriebener Tracker - Gunook
Desktop-COVID19-Tracker mit Uhr! Raspberry Pi betriebener Tracker - Gunook

Video: Desktop-COVID19-Tracker mit Uhr! Raspberry Pi betriebener Tracker - Gunook

Video: Desktop-COVID19-Tracker mit Uhr! Raspberry Pi betriebener Tracker - Gunook
Video: How to Make Coronavirus COVID 19 Live Data Tracker with ESP8266, E-paper Display #Covid19 #Counter 2024, November
Anonim
Desktop-COVID19-Tracker mit Uhr! Raspberry Pi-betriebener Tracker
Desktop-COVID19-Tracker mit Uhr! Raspberry Pi-betriebener Tracker

Wir wissen, dass wir jederzeit sterben können, sogar ich kann sterben, während ich diesen Beitrag schreibe, schließlich sind ich, du, wir alle Sterbliche. Die ganze Welt erschütterte wegen der COVID19-Pandemie. Wir wissen, wie man dies verhindert, aber hey! Wir wissen, wie man betet und warum man betet, tun wir es täglich? Nein!! Tatsächlich vergessen wir die Ursache dafür, warum wir Dinge tun sollten. Wir wissen also, dass ein hygienischer Lebensstil uns retten kann, aber wir machen es nicht richtig. Betrachten Sie den Fall meines jüngeren Bruders, er möchte auch in dieser Zeit ausgehen und spielen. Ich musste etwas tun, um alle konsequent über die neuesten Fälle von COVID19 zu informieren. Also habe ich eine digitale Schreibtischanzeige erstellt, die die neuesten Fälle von COVID19 in Echtzeit anzeigt. Da diese eine Uhr hat, kann ich sie an einem Ort platzieren, an dem sich alle versammeln oder kommen. Sie werden sehen, wie sich die Zahlen summieren, was in ihnen Bewusstsein auslöst und hoffentlich jeder bei Bewusstsein ist. Auch da ich ein Macher und Bastler bin, stellte sich heraus, dass dies ein gutes Projekt war, an dem man in dieser Lock-Down-Sitzung arbeiten kann.

Schritt 1: Teile, die ich verwendet habe:

Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
Teile die ich verwendet habe
  • Raspberry Pi 3 Model B (gebootet mit SD-Karte)
  • Raspberry Pi USV-Modul (optional)
  • 7-Zoll-HDMI-LCD-Bildschirm
  • HDMI-zu-HDMI-Kabel (dieses wird mit dem Bildschirm geliefert)
  • USB-Kabel
  • 5V 2A Netzteil (um den Pi mit Strom zu versorgen)
  • PVC-Platte [Holzfarbe] (um den Körper zu machen)

Schritt 2: Raspberry Pi einrichten:

Raspberry Pi einrichten
Raspberry Pi einrichten

Ich schätze, du hast den Pi perfekt eingestellt, es sei denn, du hast -

  1. Holen Sie sich eine SD-Karte - mehr als 8 GB
  2. Laden Sie die neueste Raspbian-ISO-Datei von hier herunter.
  3. Brennen Sie die SD-Karte mit dem Ätzer

(Beachten Sie, dass die Leute etwas über andere Software sagen können, bei der Sie einige Setup-Dinge durchführen müssen, aber Etcher ist super einfach zu bedienen und einfach, aber auch effektiv.)

Schließen Sie einfach Ihre SD-Karte an den PC an, führen Sie Etcher aus. Sie werden sehen, dass die SD-Karte automatisch von Etcher ausgewählt wird, dann klicken Sie, um die heruntergeladene ISO-Datei oder das heruntergeladene Bild auszuwählen, und brennen Sie es dann. Nach erfolgreichem Schreiben und Verarbeiten ziehen Sie die SD-Karte ab und verbinden Sie sie mit Ihrem Pi, schalten Sie sie ein und VOILA !! Es lebt.

Schritt 3: Schaltplan:

Schaltplan
Schaltplan

Schließen Sie alles an und schalten Sie den Raspberry Pi ein, er verbindet sich nur, sonst nichts.

Sie werden sehen, wie der Pi bootet.

Schritt 4: Der Körper:

Der Körper
Der Körper
Der Körper
Der Körper
Der Körper
Der Körper
Der Körper
Der Körper

Ich schneide eine PVC-Folie entsprechend der Displaygröße zu und füge sie dann mit Schrauben hinzu. Danach habe ich alles verkabelt. Zuletzt ein weiteres Blatt hinten hinzugefügt, um es vor dem Herunterfallen zu schützen (blaues Blatt). Wenn alles in Ordnung ist, sollten Sie das Booten des Pi sehen (letztes Bild)

Schritt 5: Die Software (Quellcode):

Das Programm ist in Python3 geschrieben. Für die GUI (Graphical User Interface) habe ich PyQt5 verwendet und zum Extrahieren von COVID19-Echtzeitdaten habe ich die COVID19Py-Bibliothek verwendet. Danke an die Jungs, die uns die API zur Verfügung gestellt haben

Das ist so ziemlich alles, jetzt öffnen Sie Terminal auf Raspberry Pi und installieren Sie Bibliotheken (kopieren Sie jede davon und fügen Sie sie in das rpi-Terminal ein).

Ignoriere das $-Zeichen beim Kopieren

$ pip3 installiere pyqt5

$ pip3 Installationsanfragen$ pip3 install covid19py

Das war's, jetzt laden Sie den Code von hier herunter, ich habe den folgenden Code bereitgestellt:

"""* Internationaler und lokaler Covid19-Echtzeit-Tracker mit Uhr *""" """ ************* Bleiben Sie zu Hause Bleiben Sie sicher. Live, let Live ******** ***** """

"""

Autor: Ashraf Minhaj Mail: [email protected] Website: Ashrafminhajfb.blogspot.com """

#notwendige Bibliotheken importieren

import PyQt5 #QT GUI Library for python3 from PyQt5. QtCore import Qt, QTimer #timer to update from PyQt5. QtWidgets import * #import all from PyQt5. QtGui import QFont #for fonts import sys #notwendig für QT-Anwendungen #import os import COVID19Py #covid19 information -api import datetime #du weißt wofür das ist

Klasse CoronaTracker(QWidget):

"""Hauptklasse, die alles enthält""" def _init_(self): """initialize things""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #wenn der Timer den Schwellenwert erreicht - Rufen Sie update self.ui() auf #Benutzeroberfläche

def ui (selbst):

"""User Interface section""" self.setWindowTitle("Covid19 International and Local Tracker") #self.setWindowFlags(Qt. CustomizeWindowHint) #hide title bar self.setStyleSheet("Hintergrundfarbe: schwarz") self.setFixedSize(640, 480) #gemäß meiner Anzeige (x, y) /rpi-Auflösung

#Hauptaufkleber

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 Pandemie - COVID19 TRACKER") self.banner_label. setFont(QFont('SansSerif', 20)) self.banner_label.setStyleSheet(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

"""_weltneueste Daten_"""

#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(""" Hintergrundfarbe: schwarz; Farbe: blau; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#weltweit bestätigte Fälle

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)) self. w_cases.setStyleSheet(""" Hintergrundfarbe: schwarz; Farbe: orange; Rahmenstil: Anfang; Rahmenbreite: 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#weltweite Todesfälle

self.w_death = QLabel(self) self.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("Todesfälle:") self.w_death.setFont(QFont('SansSerif', 18)) self. w_death.setStyleSheet(""" Hintergrundfarbe: schwarz; Farbe: rot; Rahmenstil: Anfang; Rahmenbreite: 1px """) #Todesnummer 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#weltweit geheilt

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(""" Hintergrundfarbe: Schwarz; Farbe: Cyan; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#weltweit geheilte 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

"""_Lokal-Nach Ländercode_"""

#local - Land self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("My Country: Bangladesh") self.c.setFont(QFont('SansSerif', 18)) self.c.setStyleSheet(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """) #local Fälle bestätigen 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 -color: schwarz; color: orange; border-style: outset; border-width: 1px """) #local case 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#lokale Todesfälle

self.c_death = QLabel(self) self.c_death.setGeometry(350, 240, 100, 40) self.c_death.setText("Todesfälle:") self.c_death.setFont(QFont('SansSerif', 18)) self. c_death.setStyleSheet(""" Hintergrundfarbe: schwarz; Farbe: rot; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#lokale Zahl der Todesopfer

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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 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(""" Hintergrundfarbe: schwarz; Farbe: cyan; Rahmenstil: Anfang; Rahmenbreite: 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

"""_Uhrzeit, Datum, Uhr_"""

#clock self.clock = QLabel(self) self.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- Farbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """) #label für Wochentag 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(""" Hintergrundfarbe: schwarz; Farbe: weiß; Rahmenstil: Anfang; Rahmenbreite: 1px """)

#timer überprüfen, wenn nicht self.timer.isActive(): #wenn der Timer gestoppt ist (Schwellenwert erreicht) #Nach 1 Sekunde (ca.) oder 1000ms

Versuchen:

"""versuchen Sie, Daten abzurufen, sonst führen Sie den Code trotzdem aus""" self.latest = self.covid.getLatest() #gte covid19 neueste Daten

#neueste Daten nach Ländercode 'BD'-Bangladesch, 'IN'-Indien usw. abrufen

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

außer:

"""Daten konnten nicht abgerufen werden""" print("Internetfehler!!")

pass #ignorieren, trotzdem laufen

self.timer.start(1000) #Starte den Timer

self.show() #zeige unsere Benutzeroberfläche

def update (selbst):

"""Labels mit Informationen aktualisieren"""

"""_Zeit- und Datumsinformationen zur Anzeigeaktualisierung extrahieren_"""

#Uhr- und Datumszeit einrichten (Werte aktualisieren) #Werte abrufen und aktualisieren #um mehr zu erfahren, lesen Sie die Python-Datetime-Dokumentation

self.dt = datetime.datetime.now() #datetime-Daten abrufen

self.clock.setText(self.dt.strftime('%X')) self.weekday.setText(self.dt.strftime('%A')) self.date.setText(self.dt.strftime('% x')) """_covid19-Daten aktualisieren_""" #weltweit neueste Daten 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 neueste Daten 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']['confirmed')]))

print("aktualisieren")

Rückkehr

def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #die Anwendung ausführen if _name_ == '_main_': main()

Schritt 6: Fertig stellen:

Zu Ende bringen
Zu Ende bringen

Nach dem Testen des Codes habe ich ihn in den Schreibtisch gelegt und ihm eine Stromquelle gewidmet. Damit es während des Ladevorgangs funktioniert. Durch die Verwendung der USV kann dies auch im Lastabwurf laufen, dies gibt auch unserer pi-SD-Karte einen geeigneten Schutz.

Egal wie oder wer wir sind, wir müssen sterben. Denken wir nicht an sich selbst, denken wir an die Welt. Wir können nur durch unsere Taten ewig leben, lass es so sein.

Empfohlen: