Taula de continguts:
- Pas 1: parts que he fet servir:
- Pas 2: configureu Raspberry Pi:
- Pas 3: diagrama del circuit:
- Pas 4: el cos:
- Pas 5: el programari (codi font):
- Pas 6: finalitzeu:
Vídeo: Rastrejador d'escriptori COVID19 amb rellotge. Raspberry Pi Powered Tracker: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Sabem que podem morir en qualsevol moment, fins i tot jo puc morir mentre escric aquest post, al cap i a la fi, jo jo, vosaltres, tots som mortals. El món sencer va sacsejar a causa de la pandèmia COVID19. Sabem com evitar-ho, però vaja! sabem resar i per què pregar, ho fem diàriament? No!! De fet, oblidem la causa fonamental de per què hem de fer les coses. Per tant, sabem que un estil de vida higiènic ens pot estalviar, però no ho fem correctament. Penseu en el cas del meu germà petit, que vol sortir a jugar fins i tot en aquest moment. Vaig haver de fer alguna cosa per informar constantment a tothom sobre els últims casos de COVID19. Per tant, vaig fer una pantalla digital que mostra els últims casos de COVID19 en temps real. Com que té un rellotge, el puc posar en un lloc on tothom es reuneixi o vingui. Veuran que s’afegeixen les xifres, cosa que farà que es coneguin i esperem que tothom en sigui conscient. A més, ja que sóc un creador i aficionat, va resultar ser un bon projecte per treballar en aquesta sessió de bloqueig.
Pas 1: parts que he fet servir:
- Raspberry Pi 3 Model B (arrencada amb targeta sd)
- Mòdul UPS Raspberry Pi (opcional)
- Pantalla LCD HDMI de 7 polzades
- Cable HDMI a HDMI (ve amb la pantalla)
- Cables USB
- Adaptador d'alimentació 5v 2A (per alimentar el pi)
- Làmina de PVC [color de fusta] (per fer el cos)
Pas 2: configureu Raspberry Pi:
Suposo que heu configurat el pi perfectament, tret que no ho hàgiu fet …
- obtenir una targeta SD: més de 8 GB
- descarregueu l’últim fitxer iso raspbian des d’aquí.
- Graveu la targeta SD amb gravador
(Tingueu en compte que la gent pot dir-ne un altre sobre programari que requereixi que feu una mica de configuració, però el gravador és molt fàcil d'utilitzar i senzill però eficaç també.)
Només cal que connecteu la targeta SD al PC, que executeu etcher; veureu que la targeta SD és seleccionada automàticament per etcher i, a continuació, feu clic per seleccionar el fitxer iso o la imatge descarregats i després gravar-la. Després d'escriure i processar correctament, desconnecteu la targeta SD i connecteu-la al vostre pi, alimenteu-la i VOILA. Està viu.
Pas 3: diagrama del circuit:
Connecteu-ho tot i engegueu el raspbery pi, només es connecta, res més.
Veureu l’arrencada del pi.
Pas 4: el cos:
He tallat una làmina de PVC segons la mida de la pantalla, i després l’he afegit amb cargols. Després d'això, ho vaig connectar tot. Per fi va afegir un altre full al darrere per evitar que caigués (full blau). Si tot està bé, hauríeu de veure l'arrencada del pi (última imatge)
Pas 5: el programari (codi font):
El programa està escrit en python3. Per a la interfície gràfica d’usuari (GUI) he utilitzat PyQt5 i per extreure dades COVID19 en temps real he utilitzat la biblioteca COVID19Py. Gràcies als nois que ens van fer disposar l'API
Això és gairebé tot, ara obriu Terminal a raspberry pi i instal·leu biblioteques (copieu cadascuna d’elles i enganxeu-les al terminal rpi).
Ignoreu el signe $ mentre copieu
$ pip3 instal·la pyqt5
$ pip3 sol·licita la instal·lació $ pip3 install covid19py
Això és tot, ara descarregueu el codi des d'aquí, he proporcionat el codi següent:
"" "* Seguidor local i internacional de Covid19 amb rellotge en temps real *" "" "" "************** Mantingueu-vos a casa estigueu segurs. En directe, deixeu en directe ******** ***** """
"""
autor: ashraf minhaj correu electrònic: [email protected] lloc: ashrafminhajfb.blogspot.com """
#importar les biblioteques necessàries
importa PyQt5 #QT Biblioteca GUI per a python3 des de PyQt5. QtCore importa Qt, QTimer #timer per actualitzar des de PyQt5. QtWidgets import * #import tot des de PyQt5. QtGui importa QFont #for fonts import sys #necessary for QT applications # import os import COVID19Py # covid19 information -api import datetime #sabeu per a què serveix
classe CoronaTracker (QWidget):
"" "classe principal que ho conté tot" "" def _init _ (self): "" "inicialitza les coses" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) # si el temporitzador arriba al llindar - actualització de trucada self.ui () #interfície d'usuari
def ui (auto):
"" "Secció de la interfície d'usuari" "" self.setWindowTitle ("Covid19 International and Local Tracker") # self.setWindowFlags (Qt. CustomizeWindowHint) #hide barra de títol self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) # segons la meva resolució de pantalla (x, y) / rpi
#etiqueta principal
self.banner_label = QLabel (auto) 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" "")
"" "_ dades més recents del món_" ""
#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("El món a simple vista") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "background-color: black; color: blue; border-style: outset; border-width: 1px" "")
# casos confirmats a tot el món
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: 1 px "" ")
# morts a tot el món
self.w_death = QLabel (auto) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Defuncions:") 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: 1 px "" ")
#worldwide curat
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: black; color: cyan; border-style: outset; border-width: 1px" "")
número curat #worldwide
self.w_cured_num = QLabel (auto) self.w_cured_num.setGeometry (110, 140, 100, 40) self.w_cured_num.setFont (QFont ('SansSerif', 18)) self.w_cured_num.setStyleSheet ("" "color de fons: negre; color: blanc; estil de vora: sortida; amplada de vora: 1 px "" ")
"" "_ Local per país Codi_" ""
#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("El meu país: Bangladesh") self.c.setFont (QFont ('SansSerif'), 18)) self.c.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "") #local confirm cases self.c_cases = QLabel (auto) 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: negre; color: taronja; estil de vora: inici; amplada de vora: 1px "" ") #local cases 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 ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")
# morts locals
self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Defuncions:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "")
# nombre local de morts
self.c_death_num = QLabel (auto) self.c_death_num.setGeometry (460, 240, 100, 40) self.c_death_num.setFont (QFont ('SansSerif', 18)) self.c_death_num.setStyleSheet ("" "color de fons: negre; color: blanc; 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 curated 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 ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")
"" "_ Hora, data, rellotge_" ""
#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- color: negre; color: blanc; estil de vora: inici; amplada de vora: 1 px "" ") #label for weekday self.weekday = QLabel (auto) 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 (auto) 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" "")
#Comproveu el temporitzador si no self.timer.isActive (): #si el temporitzador està aturat (s'arriba al llindar) #Après 1 segon (aprox.) o 1000 ms
provar:
"" Intenteu obtenir dades; en cas contrari, executeu el codi "" "self.latest = self.covid.getLatest () #gte covid19 últimes dades
#obtingueu les dades més recents per codi de país "BD" - Bangladesh, "IN" - Índia, etc.
self.local = self.covid.getLocationByCountryCode ('BD', timelines = False) #print (self.local) #print (self.latest)
excepte:
"" "No s'han pogut imprimir les dades" "" ("Error d'Internet !!")
passa #ignore, corre igualment
self.timer.start (1000) #start el temporitzador
self.show () #show la nostra interfície d'usuari
actualització per defecte (auto):
"" "Actualitza etiquetes amb informació" ""
"" "_Extreure informació sobre data i hora d'actualització_" ""
# configurar el rellotge i la data (valors d'actualització) #obtenir i actualitzar valors #per saber més llegiu la documentació de Python datetime
self.dt = datetime.datetime.now () #get dades de data
self.clock.setText (self.dt.strftime ('% X')) self.weekday.setText (self.dt.strftime ('% A')) self.date.setText (self.dt.strftime ('% x ')) "" "_actualització covid19 dades_" "" #worldwide últimes dades self.w_cases_num.setText (str (self.latest [' confirmat])) self.w_death_num.setText (str (self.latest ['décès')])) self.w_cured_num.setText (str (self.latest ['recovery'])) #local latest data self.c_cured_num.setText (str (self.local [0] ['latest'] ['recovery'])) self.c_death_num.setText (str (self.local [0] ['latest'] ['décès'])) self.c_cases_num.setText (str (self.local [0] ['latest'] ['confirmat')]))
imprimir ("actualitzar")
tornar
def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #executa l'aplicació si _name_ == '_main_': main ()
Pas 6: finalitzeu:
Després de provar el codi, el vaig posar a l'escriptori i li vaig dedicar una font d'energia. Perquè funcioni mentre es carrega. Si utilitzeu els canvis, això pot funcionar fins i tot en la reducció de càrrega, això també proporciona a la targeta SD ur pi una protecció adequada.
Independentment de com o qui siguem, hem de morir. No pensem en tu mateix, pensem en el món. Només podem viure per sempre a través de les nostres accions, que sigui així.
Recomanat:
Organitzador d'escriptori amb rellotge LED Matrix i Bluetooth: 7 passos
Organitzador d’escriptori amb rellotge LED Matrix i Bluetooth: el meu escriptori estava molt desordenat i volia tenir un bon organitzador on poder disposar els meus llapis, pinzells, eines de fang, etc. Vaig mirar molts organitzadors del mercat, però no m’agradaven cap d’ells. . Em vaig proposar dissenyar el meu propi organitzador d'escriptori i aquí
El dispositiu d'escriptori: un assistent d'escriptori personalitzable: 7 passos (amb imatges)
El dispositiu d'escriptori: un assistent d'escriptori personalitzable: el dispositiu d'escriptori és un petit assistent personal d'escriptori que pot mostrar tota la informació descarregada d'Internet. Aquest dispositiu el vaig dissenyar i construir per a la classe CRT 420 - Temes especials de Berry College, dirigida per l’instructor
Rastrejador de pel·lícules: seguiment de llançaments teatrals amb tecnologia Raspberry Pi: 15 passos (amb imatges)
Rastrejador de pel·lícules: Rastrejador de llançaments teatralitzats amb tecnologia Raspberry Pi: Rastrejador de pel·lícules és un rastrejador de llançaments alimentat per Raspberry Pi en forma de claqueta. Utilitza l'API TMDb per imprimir el pòster, el títol, la data de llançament i la visió general de les properes pel·lícules de la vostra regió, en un interval de temps especificat (per exemple, estrenes de pel·lícules aquesta setmana) el
Amplificador d'escriptori amb visualització d'àudio, rellotge binari i receptor FM: 8 passos (amb imatges)
Amplificador d'escriptori amb visualització d'àudio, rellotge binari i receptor FM: m'agraden els amplificadors i avui compartiré el meu amplificador d'escriptori de baixa potència que he fabricat recentment. L’amplificador que he dissenyat té algunes funcions interessants. Té un rellotge binari integrat i pot donar hora i data i pot visualitzar àudio sovint anomenat àudio
Sistema d'escriptori fàcil d'escriptori: 4 passos
Sistema de radar d'escriptori fàcil: bé, doncs (jo) visqueu en una part dels Estats Units on hi ha molta neu i tempestes. (Jo) necessiteu un sistema de radar fàcil d'utilitzar al meu equip que s'actualitzarà i serà més fàcil que carregar una pàgina meteorològica en línia. Vostè (jo) mira en línia i troba alguns SIG