Sommario:

Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi: 6 passaggi
Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi: 6 passaggi

Video: Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi: 6 passaggi

Video: Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi: 6 passaggi
Video: 3000+ Common English Words with British Pronunciation 2024, Dicembre
Anonim
Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi
Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi

Sappiamo che possiamo morire in qualsiasi momento, anche io posso morire mentre scrivo questo post, dopotutto io, tu, siamo tutti mortali. Il mondo intero ha tremato a causa della pandemia di COVID19. Sappiamo come prevenirlo, ma ehi! sappiamo pregare e perché pregare, lo facciamo tutti i giorni? No!! In realtà, dimentichiamo la causa principale del perché dovremmo fare le cose. Quindi, sappiamo che uno stile di vita igienico può salvarci, ma non lo facciamo correttamente. Consideriamo il caso di mio fratello minore, vuole uscire e giocare anche in questo periodo. Dovevo fare qualcosa per informare costantemente tutti sugli ultimi casi di COVID19. Quindi, ho realizzato un display da tavolo digitale che mostra gli ultimi casi di COVID19 in tempo reale. Poiché questo ha un orologio, posso metterlo in un posto dove tutti si riuniscono o vengono. Vedranno che i numeri si sommano, il che attiverà la consapevolezza in loro e, si spera, tutti saranno consapevoli. Inoltre, poiché sono un creatore e un hobbista, questo si è rivelato un buon progetto su cui lavorare in questa sessione di blocco.

Passaggio 1: parti che ho usato:

Parti che ho usato
Parti che ho usato
Parti che ho usato
Parti che ho usato
Parti che ho usato
Parti che ho usato
Parti che ho usato
Parti che ho usato
  • Raspberry Pi 3 Modello B (avviato tramite scheda SD)
  • Modulo UPS Raspberry Pi (opzionale)
  • Schermo LCD HDMI da 7 pollici
  • Cavo da HDMI a HDMI (fornito con lo schermo)
  • Cavi USB
  • Adattatore di alimentazione 5v 2A (per alimentare il pi)
  • Foglio in PVC [colore legno] (per realizzare il corpo)

Passaggio 2: imposta Raspberry Pi:

Configura Raspberry Pi
Configura Raspberry Pi

Immagino che tu abbia impostato il pi perfettamente, a meno che tu non l'abbia…

  1. ottenere una scheda SD - più di 8 GB
  2. scarica l'ultimo file iso di raspbian da qui.
  3. Masterizza la scheda SD usando Etcher

(Nota che le persone possono dire qualcosa su altri software che richiedono di fare alcune cose di installazione, ma l'etch è super facile da usare e semplice ma anche efficace.)

Basta collegare la scheda SD al PC, eseguire etchr, vedrai che la scheda SD viene selezionata automaticamente da etchr, quindi fai clic per selezionare il file iso o l'immagine scaricata, quindi masterizzala. Dopo aver scritto ed elaborato con successo, scollega la scheda SD e collegala al tuo pi, alimentalo e VOILA !! È vivo.

Passaggio 3: Schema del circuito:

Schema elettrico
Schema elettrico

Collega tutto e accendi il raspbery pi, si sta solo connettendo, nient'altro.

Vedrai il pi avvio.

Fase 4: Il corpo:

Il corpo
Il corpo
Il corpo
Il corpo
Il corpo
Il corpo
Il corpo
Il corpo

Ho tagliato un foglio di PVC in base alle dimensioni del display, quindi l'ho aggiunto utilizzando le viti. Dopo di che ho cablato tutto. Alla fine ha aggiunto un altro foglio sul retro per sostenerlo dalla caduta (foglio blu). Se tutto è a posto, dovresti vedere il pi boot (ultima immagine)

Passaggio 5: il software (codice sorgente):

Il programma è scritto in python3. Per la GUI (Graphical User Interface) ho usato PyQt5 e per estrarre i dati COVID19 in tempo reale ho usato la libreria COVID19Py. Grazie ai ragazzi che hanno reso disponibile l'API per noi

È praticamente tutto, ora apri Terminale su raspberry pi e installa le librerie (copia ognuna di esse e incollala sul terminale rpi).

Ignora il segno $ durante la copia

$ pip3 installa pyqt5

$ pip3 richieste di installazione $ pip3 installa covid19py

Questo è tutto, ora scarica il codice da qui, ho fornito il codice qui sotto:

"""* Tracker internazionale e locale Covid19 in tempo reale con orologio *""" """ ************** Resta a casa Resta al sicuro. Vivi, lascia vivere ******** ***** """

"""

autore: ashraf minhaj mail: [email protected] sito: ashrafminhajfb.blogspot.com """

#importare le librerie necessarie

import PyQt5 #QT GUI Library per python3 da PyQt5. QtCore import Qt, QTimer #timer per aggiornare da PyQt5. QtWidgets import * #import tutto da PyQt5. QtGui import QFont #for font import sys #necessary for QT applications #import os import COVID19Py #covid19 information -api import datetime #sai a cosa serve

classe CoronaTracker (QWidget):

"""classe principale che contiene tutto""" def _init_(self): """inizializzare le cose""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #se il timer raggiunge la soglia - chiama update self.ui() #interfaccia utente

def ui(self):

"""Sezione interfaccia utente""" self.setWindowTitle("Covid19 Tracker internazionale e locale") #self.setWindowFlags(Qt. CustomizeWindowHint) #hide barra del titolo self.setStyleSheet("Colore di sfondo: nero") self.setFixedSize(640, 480) #secondo il mio display (x, y) /risoluzione rpi

#etichetta principale

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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

"""_ultimi dati mondiali_"""

#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(""" background-color: black; color: blue; border-style: outset; border-width: 1px """)

#casi confermati in tutto il mondo

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(""" 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

#morti nel mondo

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)) self. w_death.setStyleSheet(""" background-color: black; color: red; border-style: outset; border-width: 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

#curato in tutto il mondo

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(""" background-color: nero; color: cyan; border-style: outset; border-width: 1px """)

#numero guarito nel mondo

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: nero; colore: bianco; stile bordo: inizio; larghezza bordo: 1px """)

"""_Codice locale per paese_"""

#local - Paese self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("Il mio Paese: Bangladesh") self.c.setFont(QFont('SansSerif', 18)) self.c.setStyleSheet(""" background-color: black; color: white; border-style: outset; border-width: 1px """) #local conferma casi 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(""" sfondo -colore: nero; colore: arancione; stile bordo: inizio; larghezza bordo: 1px """) #numero casi locali 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

#decessi locali

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)) self. c_death.setStyleSheet(""" background-color: nero; color: red; border-style: outset; border-width: 1px """)

#numero locale dei decessi

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: black; color: white; border-style: outset; border-width: 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 curato numero 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(""" background-color: nero; color: white; border-style: outset; border-width: 1px """)

"""_Ora, data, orologio_"""

#clock self.clock = QLabel(self) self.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- color: black; color: white; border-style: outset; border-width: 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; 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

#controlla il timer if not self.timer.isActive(): #se il timer è fermo (soglia raggiunta) #Dopo 1 secondo (circa) o 1000ms

Tentativo:

"""prova a ottenere i dati, altrimenti esegui comunque il codice""" self.latest = self.covid.getLatest() #gte covid19 ultimi dati

#ottieni gli ultimi dati per codice paese "BD"-Bangladesh, "IN"-India ecc

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

tranne:

"""Impossibile ottenere i dati""" print("Errore Internet!!")

passa #ignora, corri comunque

self.timer.start(1000) #avvia il timer

self.show() #mostra la nostra interfaccia utente

def aggiornamento (auto):

"""aggiorna le etichette con le informazioni"""

"""_Estrai informazioni su data e ora di aggiornamento dell'annuncio_"""

#imposta l'orologio e la data (aggiorna i valori) #ottieni e aggiorna i valori #per saperne di più leggi la documentazione di python datetime

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')) """_aggiorna i dati covid19_""" #ultimi dati mondiali 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 ultimi dati 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("aggiornamento")

Restituzione

def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #esegui l'applicazione if _name_ == '_main_': main()

Passaggio 6: finire:

Finisci
Finisci

Dopo aver testato il codice, l'ho inserito nella scrivania e gli ho dedicato una fonte di alimentazione. In modo che possa funzionare durante la ricarica. Usando gli ups questo può funzionare anche in load-shedding, questo dà anche alla tua scheda SD una protezione adeguata.

Non importa come o chi siamo, dobbiamo morire. Non pensiamo a te stesso, pensa al mondo. Possiamo vivere per sempre solo attraverso le nostre azioni, lascia che sia così.

Consigliato: