Πίνακας περιεχομένων:
- Βήμα 1: Μέρη που έχω χρησιμοποιήσει:
- Βήμα 2: Ρύθμιση Raspberry Pi:
- Βήμα 3: Διάγραμμα κυκλώματος:
- Βήμα 4: Το σώμα:
- Βήμα 5: Το λογισμικό (πηγαίος κώδικας):
- Βήμα 6: Ολοκληρώστε:
Βίντεο: Επιτραπέζιος ιχνηλάτης COVID19 με ρολόι! Raspberry Pi Powered Tracker: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Γνωρίζουμε ότι μπορούμε να πεθάνουμε ανά πάσα στιγμή, ακόμα κι εγώ μπορεί να πεθάνω ενώ γράφω αυτήν την ανάρτηση, άλλωστε, εγώ, εσείς, όλοι είμαστε θνητοί. Όλος ο κόσμος συγκλονίστηκε λόγω της πανδημίας του 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:
Υποθέτω ότι έχετε ρυθμίσει το pi τέλεια, εκτός αν δεν το έχετε κάνει -
- αποκτήστε κάρτα SD - πάνω από 8 GB
- Κατεβάστε το τελευταίο αρχείο raspbian iso από εδώ.
- Κάψτε την κάρτα 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 μια κατάλληλη προστασία επίσης.
Ανεξάρτητα από το πώς ή ποιοι είμαστε, πρέπει να πεθάνουμε. Ας μην σκεφτόμαστε τον εαυτό μας, σκεφτόμαστε τον κόσμο. Μπορούμε μόνο να ζήσουμε για πάντα μέσω των πράξεών μας, ας είναι έτσι.
Συνιστάται:
Ηλιακός ιχνηλάτης: 4 βήματα
Solar Tracker: Αυτός είναι ένας ηλιακός ιχνηλάτης που έφτιαξα. Όταν σερφάρω στο διαδίκτυο πήρα πολλές ιδέες, αλλά σκέφτηκα να κάνω ένα φιλικό προς τον προϋπολογισμό έργο, οπότε εδώ είναι. Το έφτιαξα για αρχάριους που είναι νέοι στο arduino. Και ανέβασα ακόμη και τις εικόνες των κύριων προμηθειών
Ζωντανός ιχνηλάτης Covid19 χρησιμοποιώντας ESP8266 και OLED - Πραγματικός πίνακας ελέγχου Covid19 σε πραγματικό χρόνο: 4 βήματα
Ζωντανός ιχνηλάτης Covid19 χρησιμοποιώντας ESP8266 και OLED | Πραγματικός πίνακας ελέγχου Covid19 σε πραγματικό χρόνο: Επισκεφτείτε τον ιστότοπο Techtronic Harsh: http: //techtronicharsh.com Παντού υπάρχει μια τεράστια έξαρση του νέου κορονοϊού (COVID19). Έγινε αναγκαίο να παρακολουθούμε το τρέχον σενάριο του COVID-19 στον κόσμο. Έτσι, όταν ήμουν στο σπίτι, αυτό ήταν το
Ηλιακός ιχνηλάτης: 6 βήματα
Solar Tracker: Γεια σας, με λένε Jochem Forrez και σπουδάζω Multi Media and Communication Technology στο Howest (Kortrijk, Βέλγιο). Για το σχολείο έπρεπε να κάνουμε ένα έργο. Έφτιαξα έναν ηλιακό ιχνηλάτη (ηλιακό πάνελ που ακολουθεί τον ήλιο), το βρήκα πολύ ενδιαφέρον
Βελτιωμένος ιχνηλάτης καμπύλης ημιαγωγών με την αναλογική ανακάλυψη 2: 8 βήματα
Βελτιωμένος ιχνηλάτης καμπύλης ημιαγωγών με την αναλογική ανακάλυψη 2: Η αρχή της ανίχνευσης καμπυλών με το AD2 περιγράφεται στους ακόλουθους συνδέσμους παρακάτω: https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com/reference/instru … Εάν το μετρημένο ρεύμα είναι αρκετά υψηλό τότε είναι το accu
Επιτραπέζιος ενισχυτής με οπτικοποίηση ήχου, δυαδικό ρολόι & δέκτης FM: 8 βήματα (με εικόνες)
Επιτραπέζιος ενισχυτής με οπτικοποίηση ήχου, δυαδικό ρολόι και δέκτης FM: Μου αρέσουν οι ενισχυτές και σήμερα, θα μοιραστώ τον ενισχυτή γραφείου χαμηλής ισχύος που έφτιαξα πρόσφατα. Ο ενισχυτής που σχεδίασα έχει μερικά ενδιαφέροντα χαρακτηριστικά. Έχει ενσωματωμένο δυαδικό ρολόι και μπορεί να δώσει ώρα και ημερομηνία και μπορεί να απεικονίσει ήχο που συχνά ονομάζεται ήχος