Πίνακας περιεχομένων:

Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker: 6 βήματα
Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker: 6 βήματα

Βίντεο: Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker: 6 βήματα

Βίντεο: Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker: 6 βήματα
Βίντεο: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Νοέμβριος
Anonim
Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker
Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker

Γνωρίζουμε ότι μπορούμε να πεθάνουμε ανά πάσα στιγμή, ακόμα κι εγώ μπορεί να πεθάνω ενώ γράφω αυτήν την ανάρτηση, άλλωστε, εγώ, εσείς, όλοι είμαστε θνητοί. Όλος ο κόσμος συγκλονίστηκε λόγω της πανδημίας του COVID19. Ξέρουμε πώς να το αποτρέψουμε, αλλά γεια! ξέρουμε πώς να προσευχόμαστε και γιατί να προσευχόμαστε, το κάνουμε καθημερινά; Οχι!! Στην πραγματικότητα, ξεχνάμε τη βασική αιτία για τον οποίο πρέπει να κάνουμε πράγματα. Έτσι, γνωρίζουμε ότι ένας υγιεινός τρόπος ζωής μπορεί να μας σώσει, αλλά δεν το κάνουμε σωστά. Σκεφτείτε την περίπτωση του μικρότερου αδελφού μου, που θέλει να βγει και να παίξει ακόμα και αυτή την εποχή. Έπρεπε να κάνω κάτι για να ενημερώνω με συνέπεια όλους για τα τελευταία κρούσματα του COVID19. Έτσι, έφτιαξα μια οθόνη γραφικών που δείχνει τα τελευταία κρούσματα του COVID19 σε πραγματικό χρόνο. Καθώς αυτό έχει ρολόι, μπορώ να το βάλω σε ένα μέρος όπου όλοι μαζεύονται ή έρχονται. Θα δουν τους αριθμούς να αθροίζονται, κάτι που θα προκαλέσει ευαισθητοποίηση σε αυτούς και ελπίζουμε ότι όλοι θα έχουν συνείδηση. Επίσης, καθώς είμαι δημιουργός και χομπίστας, αυτό αποδείχθηκε ένα καλό έργο για να δουλέψω σε αυτήν την συνεδρία κλειδώματος.

Βήμα 1: Μέρη που έχω χρησιμοποιήσει:

Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
Μέρη που έχω χρησιμοποιήσει
  • Raspberry Pi 3 Model B (εκκίνηση με κάρτα sd)
  • Ενότητα Raspberry Pi UPS (προαιρετικό)
  • Οθόνη HDMI LCD 7 ιντσών
  • Καλώδιο HDMI σε HDMI (αυτό συνοδεύεται από την οθόνη)
  • Καλώδια USB
  • Προσαρμογέας ρεύματος 5v 2A (για τροφοδοσία του pi)
  • Φύλλο PVC [ξύλινο χρώμα] (για να φτιάξετε το σώμα)

Βήμα 2: Ρύθμιση Raspberry Pi:

Ρύθμιση Raspberry Pi
Ρύθμιση Raspberry Pi

Υποθέτω ότι έχετε ρυθμίσει το pi τέλεια, εκτός αν δεν το έχετε κάνει -

  1. αποκτήστε κάρτα SD - πάνω από 8 GB
  2. Κατεβάστε το τελευταίο αρχείο raspbian iso από εδώ.
  3. Κάψτε την κάρτα SD χρησιμοποιώντας etcher

(Σημειώστε ότι οι άνθρωποι μπορούν να πουν ένα άλλο λογισμικό που απαιτεί από εσάς να κάνετε κάποιες ρυθμίσεις, αλλά το etcher είναι εξαιρετικά εύκολο στη χρήση και απλό αλλά αποτελεσματικό επίσης.)

Απλώς συνδέστε την κάρτα SD στον υπολογιστή σας, εκτελέστε το etcher, θα δείτε ότι η κάρτα SD επιλέγεται αυτόματα από το etcher, στη συνέχεια κάντε κλικ για να επιλέξετε το αρχείο ή την εικόνα που έχει ληφθεί και, στη συνέχεια, εγγραφείτε. Μετά την επιτυχή εγγραφή και επεξεργασία αποσυνδέστε την κάρτα SD και συνδέστε την στο pi σας, ενεργοποιήστε την και VOILA !! Είναι ζωντανό.

Βήμα 3: Διάγραμμα κυκλώματος:

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Συνδέστε τα πάντα και ενεργοποιήστε το raspbery pi, απλώς συνδέεται, τίποτα άλλο.

Θα δείτε την εκκίνηση pi.

Βήμα 4: Το σώμα:

Το σώμα
Το σώμα
Το σώμα
Το σώμα
Το σώμα
Το σώμα
Το σώμα
Το σώμα

Έκοψα ένα φύλλο PVC σύμφωνα με το μέγεθος της οθόνης και μετά το πρόσθεσα χρησιμοποιώντας βίδες. Μετά από αυτό, τα έκανα όλα καλωδιωμένα. Επιτέλους πρόσθεσε ένα άλλο φύλλο στο πίσω μέρος για να το υποστηρίξει από την πτώση (μπλε φύλλο). Εάν όλα είναι εντάξει, θα πρέπει να δείτε την εκκίνηση pi (τελευταία εικόνα)

Βήμα 5: Το λογισμικό (πηγαίος κώδικας):

Το πρόγραμμα είναι γραμμένο σε python3. Για GUI (Γραφική διεπαφή χρήστη) χρησιμοποίησα το PyQt5 και για την εξαγωγή δεδομένων COVID19 σε πραγματικό χρόνο χρησιμοποίησα τη βιβλιοθήκη COVID19Py. Ευχαριστούμε τα παιδιά που έκαναν το API διαθέσιμο για εμάς

Αυτό είναι λίγο πολύ, ανοίξτε τώρα το Terminal στο raspberry pi και εγκαταστήστε βιβλιοθήκες (αντιγράψτε κάθε μία από αυτές και επικολλήστε στο τερματικό rpi).

Αγνοήστε το σύμβολο $ κατά την αντιγραφή

$ pip3 εγκατάσταση pyqt5

$ pip3 αιτήματα εγκατάστασης $ pip3 install covid19py

Αυτό ήταν όλο, τώρα κατεβάστε τον κωδικό από εδώ, έχω δώσει τον παρακάτω κώδικα:

"" "*Realtime Covid19 International and Local Tracker With Clock*" "" "" ****************************************************************************************************** ***** """

"""

συντάκτης: ashraf minhaj mail: [email protected] ιστότοπος: ashrafminhajfb.blogspot.com ""

#εισαγωγή απαραίτητων βιβλιοθηκών

εισαγωγή PyQt5 #QT GUI Library για python3 από PyQt5. QtCore εισαγωγή Qt, QTimer #timer για ενημέρωση από PyQt5. QtWidgets import * #import everything from PyQt5. QtGui import QFont #for fonts εισαγωγή sys #απαραίτητο για εφαρμογές QT #εισαγωγή os εισαγωγή COVID19Py #covid19 information -api import datetime #ξέρετε για ποιο λόγο είναι αυτό

κλάση CoronaTracker (QWidget):

"" "κύρια τάξη που περιέχει τα πάντα" "def _init _ (self):" "" αρχικοποίηση πραγμάτων "" "super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) #if χρονοδιακόπτης φτάσει στο κατώφλι - ενημέρωση κλήσης self.ui () #user interface

def ui (εαυτός):

"" "Ενότητα διεπαφής χρήστη" "" self.setWindowTitle ("Covid19 International and Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #hide bar title self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) #όπως ανά οθόνη μου (x, y) /rpi ανάλυση

#κύρια ετικέτα

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 ("" "φόντο-χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή

"" "_ τελευταία δεδομένα κόσμου _" ""

#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 ("" "φόντο-χρώμα: μαύρο; χρώμα: μπλε; στυλ περιγράμματος: αρχή; πλάτος περιγράμματος: 1px" "")

#παγκόσμια επιβεβαιωμένα κρούσματα

εαυτός w_cases.setStyleSheet ("" "φόντο-χρώμα: μαύρο; χρώμα: πορτοκαλί; περίγραμμα-στυλ: αρχή; περίγραμμα-πλάτος: 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 ("" "φόντο-χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή: 1px "" ")

#παγκόσμιοι θάνατοι

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Θάνατοι:") self.w_death.setFont (QFont ("SansSerif", 18)) εαυτός w_death.setStyleSheet ("" "φόντο-χρώμα: μαύρο; χρώμα: κόκκινο; περίγραμμα-στυλ: αρχή; περίγραμμα-πλάτος: 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 ("" "φόντο-χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή: 1px "" ")

#παγκοσμίως θεραπεύεται

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 ("" "φόντο-χρώμα: μαύρο; χρώμα: κυανό; στυλ περιγράμματος: αρχή; πλάτος περιγράμματος: 1px" "")

#παγκόσμιος θεραπευμένος αριθμός

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: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή; πλάτος περιγράμματος: 1px "" ")

"" _ Τοπικός-Ανά χώρα Κωδικός _ ""

#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Η χώρα μου: Μπαγκλαντές") self.c.setFont (QFont ('SansSerif', 18)) self.c.setStyleSheet ("" "background-color: black; color: white self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Περιπτώσεις:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "background -χρώμα: μαύρο; χρώμα: πορτοκαλί; περίγραμμα-στυλ: αρχή; περιθώριο-πλάτος: 1px "" ") #τοπικές θήκες αριθ. self.c_cases_num.setFont (QFont ('SansSerif', 18)) self.c_cases_num.setStyleSheet ("" "background-color: black: color: white; color: white

#τοπικοί θάνατοι

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Θάνατοι:") self.c_death.setFont (QFont ("SansSerif", 18)) εαυτός c_death.setStyleSheet ("" "φόντο-χρώμα: μαύρο; χρώμα: κόκκινο; περίγραμμα-στυλ: αρχή; πλάτος περιγράμματος: 1px" "")

#τοπικός αριθμός θανάτων

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 ("" "background-color: μαύρο; χρώμα: λευκό; περίγραμμα-στυλ: αρχή; περίγραμμα-πλάτος: 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: black; 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 ("" "φόντο-χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή; πλάτος περιγράμματος: 1px" "")

"" _ imeρα, Ημερομηνία, Ρολόι _ ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή; περίγραμμα πλάτος: 1px "" ") #label for weekday 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: white-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 ("" "φόντο-χρώμα: μαύρο; χρώμα: λευκό; περίγραμμα στυλ: αρχή

#ελέγξτε το χρονόμετρο αν όχι self.timer.isActive (): #εάν ο χρονοδιακόπτης έχει σταματήσει (έφτασε το όριο) #Μετά από 1 δευτερόλεπτο (περίπου) ή 1000ms

προσπαθήστε:

"" "προσπαθήστε να λάβετε δεδομένα, αλλιώς εκτελέστε τον κώδικα" "self.latest = self.covid.getLatest () #gte covid19 πιο πρόσφατα δεδομένα

#λάβετε τα τελευταία δεδομένα με κωδικό χώρας 'BD' -Μπαγκλαντές, 'IN'-Ινδία κ.λπ

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

εκτός:

"" "Δεν ήταν δυνατή η λήψη δεδομένων" "" εκτύπωσης ("Σφάλμα Διαδικτύου !!")

περάστε #ignore, τρέξτε ούτως ή άλλως

self.timer.start (1000) #ξεκινήστε το χρονόμετρο

self.show () #εμφάνιση της διεπαφής χρήστη μας

def update (self):

"" "ενημέρωση ετικετών με πληροφορίες""

"" "_Απόσπαση διαφήμισης Ενημέρωση ώρας και ημερομηνίας _""

#ρύθμιση ώρας και ώρας ημερομηνίας (τιμές ενημέρωσης) #λήψη και ενημέρωση τιμών #για να μάθετε περισσότερα ανάγνωση τεκμηρίωσης ημερομηνίας python

self.dt = datetime.datetime.now () #λήψη δεδομένων datetime

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('% x ')) "" "_ επικαιροποίηση δεδομένων covid19 _" "" #παγκόσμια τελευταία δεδομένα self.w_cases_num.setText (str (self.latest [' confirmed])) self.w_death_num.setText (str (self.latest ['death'])) self.w_cured_num.setText (str (self.latest ['ανακτώνται'])) #τοπικά τελευταία δεδομένα self.c_cured_num.setText (str (self.local [0] ['latest'] ['recovered'])) self.c_death_num.setText (str (self.local [0] ['τελευταία'] ['θάνατοι'])) self.c_cases_num.setText (str (self.local [0] ['τελευταία'] ['επιβεβαιώθηκε']))

εκτύπωση ("ενημέρωση")

ΕΠΙΣΤΡΟΦΗ

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #εκτελέστε την εφαρμογή εάν _name_ == '_main_': main ()

Βήμα 6: Ολοκληρώστε:

Τελειώνω
Τελειώνω

Αφού δοκίμασα τον κώδικα, τον έβαλα στο γραφείο και του αφιέρωσα μια πηγή ενέργειας. Για να μπορεί να λειτουργεί κατά τη φόρτιση. Χρησιμοποιώντας τα ups, αυτό μπορεί να λειτουργήσει ακόμη και σε μείωση φορτίου, αυτό δίνει στην κάρτα ur pi SD μια κατάλληλη προστασία επίσης.

Ανεξάρτητα από το πώς ή ποιοι είμαστε, πρέπει να πεθάνουμε. Ας μην σκεφτόμαστε τον εαυτό μας, σκεφτόμαστε τον κόσμο. Μπορούμε μόνο να ζήσουμε για πάντα μέσω των πράξεών μας, ας είναι έτσι.

Συνιστάται: