Inhaltsverzeichnis:
- Schritt 1: Teile, die ich verwendet habe:
- Schritt 2: Raspberry Pi einrichten:
- Schritt 3: Schaltplan:
- Schritt 4: Der Körper:
- Schritt 5: Die Software (Quellcode):
- Schritt 6: Fertig stellen:
Video: Desktop-COVID19-Tracker mit Uhr! Raspberry Pi betriebener Tracker - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
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:
- 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:
Ich schätze, du hast den Pi perfekt eingestellt, es sei denn, du hast -
- Holen Sie sich eine SD-Karte - mehr als 8 GB
- Laden Sie die neueste Raspbian-ISO-Datei von hier herunter.
- 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:
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:
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:
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:
Wort-Uhr: 5 Schritte
Wort-Uhr: Hallo zusammen! Dies wird mein erstes anweisbares sein und wenn Sie irgendwelche Ideen haben, wie es verbessert oder verständlicher gemacht werden kann, zögern Sie bitte nicht, mich zu kontaktieren! ist nicht meine idee! Ich habe viele der Thr gesehen
DIY, wie man eine cool aussehende Uhr macht – StickC – Einfach zu tun: 8 Schritte
DIY Wie man eine cool aussehende Uhr macht - StickC - Einfach zu machen: In diesem Tutorial lernen wir, wie man ESP32 M5Stack StickC mit Arduino IDE und Visuino programmiert, um eine Zeit auf dem LCD anzuzeigen und die Zeit auch mit den StickC-Tasten einzustellen
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt
YouTube Desktop Notifier: 11 Schritte (mit Bildern)
YouTube Desktop Notifier: Haben Sie Albträume, wenn Sie Ihre YouTube-Abonnenten verlieren? Wenn Sie dies tun, sind Sie nicht der einzige. Zum Glück habe ich diesen "YouTube Desktop Notifier" um mich über die Abonnenten- und Aufrufzahlen meiner Kanäle auf dem Laufenden zu halten. Dieses sehr einfache DIY-Projekt