Sommario:
- Passaggio 1: parti che ho usato:
- Passaggio 2: imposta Raspberry Pi:
- Passaggio 3: Schema del circuito:
- Fase 4: Il corpo:
- Passaggio 5: il software (codice sorgente):
- Passaggio 6: finire:
Video: Tracker COVID19 desktop con orologio! Tracker alimentato Raspberry Pi: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 09:59
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:
- 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:
Immagino che tu abbia impostato il pi perfettamente, a meno che tu non l'abbia…
- ottenere una scheda SD - più di 8 GB
- scarica l'ultimo file iso di raspbian da qui.
- 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:
Collega tutto e accendi il raspbery pi, si sta solo connettendo, nient'altro.
Vedrai il pi avvio.
Fase 4: 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:
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:
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED - Dashboard Covid19 in tempo reale: 4 passaggi
Tracker Covid19 in tempo reale che utilizza ESP8266 e OLED | Dashboard Covid19 in tempo reale: visita il sito Web Techtronic Harsh: http://techtronicharsh.com Ovunque c'è un enorme focolaio del Novel Corona Virus (COVID19). È diventato necessario tenere d'occhio l'attuale scenario di COVID-19 nel mondo. Quindi, essendo a casa, questo è stato il p
Orologio per il pensionamento / Orologio con conteggio su/giù: 4 passaggi (con immagini)
Orologio per la pensione / Orologio per conteggio su/giro: avevo alcuni di questi display a matrice di punti a LED 8x8 nel cassetto e stavo pensando a cosa farne. Ispirato da altre istruzioni, ho avuto l'idea di costruire un display per il conto alla rovescia per il conto alla rovescia per una data/ora futura e se il tempo target p
Creare un orologio con M5stick C usando Arduino IDE - Orologio in tempo reale RTC con M5stack M5stick-C: 4 passaggi
Creare un orologio con M5stick C usando Arduino IDE | Orologio in tempo reale RTC con M5stack M5stick-C: Ciao ragazzi in questo tutorial impareremo come creare un orologio con la scheda di sviluppo m5stick-C di m5stack usando Arduino IDE. Quindi m5stick visualizzerà data, ora e amp; settimana del mese sul display
Movie Tracker - Tracker di uscita teatrale alimentato da Raspberry Pi: 15 passaggi (con immagini)
Movie Tracker - Tracker di rilascio teatrale alimentato da Raspberry Pi: Movie Tracker è un tracker di rilascio a forma di ciak, alimentato da Raspberry Pi. Utilizza l'API TMDb per stampare il poster, il titolo, la data di uscita e la panoramica dei film in uscita nella tua regione, in un intervallo di tempo specificato (ad es. film in uscita questa settimana) su
TheSUN, orologio da parete di design alimentato da Arduino: 6 passaggi (con immagini)
TheSUN, Arduino Powered Design Wall Clock: Ciao di nuovo Instructables-folks!:-P a causa di problemi di spedizione non sono stato in grado di continuare il mio progetto ABTW, quindi ho deciso di mostrarvi un'altra, la mia più recente creazione. Penso che molti di noi, come me, come quelle simpatiche strisce LED indirizzabili (chiamate anche NEOP