Cuprins:
- Pasul 1: Părțile pe care le-am folosit:
- Pasul 2: Configurați Raspberry Pi:
- Pasul 3: Diagrama circuitului:
- Pasul 4: Corpul:
- Pasul 5: Software-ul (cod sursă):
- Pasul 6: Finalizați:
Video: Desktop COVID19 Tracker cu ceas! Raspberry Pi Powered Tracker: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Știm că putem muri oricând, chiar și eu pot muri în timp ce scriu această postare, până la urmă, eu, tu, suntem cu toții muritori. Întreaga lume a zguduit din cauza pandemiei COVID19. Știm cum să prevenim acest lucru, dar hei! știm să ne rugăm și de ce să ne rugăm, o facem zilnic? Nu!! De fapt, uităm cauza principală a motivului pentru care ar trebui să facem lucruri. Deci, știm că un stil de viață igienic ne poate salva, dar nu o facem corect. Luați în considerare cazul fratelui meu mai mic, el vrea să iasă și să se joace chiar și în acest timp. A trebuit să fac ceva pentru a informa în mod constant pe toată lumea despre cele mai recente cazuri de COVID19. Așadar, am realizat un afișaj de birou digital care arată cele mai recente cazuri de COVID19 în timp real. Deoarece acesta are un ceas, îl pot pune într-un loc în care toată lumea se adună sau vine. Vor vedea cum numerele se adună, ceea ce va declanșa conștientizarea în ele și, sperăm, toată lumea va fi conștientă. De asemenea, fiind un producător și un hobby, acest lucru sa dovedit a fi un proiect bun la care să lucrez în această sesiune de blocare.
Pasul 1: Părțile pe care le-am folosit:
- Raspberry Pi 3 Model B (pornit cu card SD)
- Modul UPS Raspberry Pi (opțional)
- Ecran LCD HDMI de 7 inch
- Cablu HDMI la HDMI (vine cu ecranul)
- Cabluri USB
- Adaptor de alimentare 5v 2A (pentru alimentarea pi)
- Foaie din PVC [culoare lemn] (pentru a face corpul)
Pasul 2: Configurați Raspberry Pi:
Bănuiesc că ați configurat perfect pi-ul, cu excepția cazului în care nu ați făcut-o -
- obțineți un card SD - mai mult de 8 GB
- descărcați cel mai recent fișier iso raspbian de aici.
- Ardeți cardul SD folosind etcher
(Rețineți că oamenii pot spune despre un alt software care vă cere să faceți ceva de configurare, dar gravorul este foarte ușor de utilizat și, de asemenea, simplu, dar eficient.)
Conectați cardul SD la computer, rulați gravorul, veți vedea că cardul SD este selectat automat de gravor, apoi faceți clic pentru a selecta fișierul sau imaginea iso descărcată, apoi ardeți-l. După scrierea și procesarea cu succes, deconectați cardul SD și conectați-l la pi, alimentați-l și VOILA !! E viu.
Pasul 3: Diagrama circuitului:
Conectați totul și porniți raspbery pi, este doar conectarea, nimic altceva.
Veți vedea pornirea pi.
Pasul 4: Corpul:
Am tăiat o foaie de PVC în funcție de dimensiunea afișajului, apoi am adăugat-o folosind șuruburi. După aceea am conectat totul. În cele din urmă, a adăugat o altă foaie în spate pentru a sprijini căderea (foaie albastră). Dacă totul este în regulă, ar trebui să vedeți pornirea pi (ultima poză)
Pasul 5: Software-ul (cod sursă):
Programul este scris în python3. Pentru GUI (Graphical User Interface) am folosit PyQt5, iar pentru a extrage date COVID19 în timp real am folosit biblioteca COVID19Py. Mulțumim băieților care au făcut API-ul disponibil pentru noi
Cam asta este, deschideți acum Terminal pe raspberry pi și instalați biblioteci (copiați fiecare dintre ele și lipiți pe terminalul rpi).
Ignorați semnul $ în timp ce copiați
$ pip3 instalați pyqt5
$ pip3 solicită instalare $ pip3 instalează covid19py
Gata, acum descărcați codul de aici, am furnizat codul de mai jos:
"" "* În timp real Covid19 Tracker internațional și local cu ceas *" "" "" "************** Rămâneți acasă Rămâneți în siguranță. Live, permiteți Live ***** """
"""
autor: ashraf minhaj mail: [email protected] site: ashrafminhajfb.blogspot.com """
#import bibliotecile necesare
import PyQt5 #QT Library GUI for python3 from PyQt5. QtCore import Qt, QTimer #timer to update from PyQt5. QtWidgets import * #import everything from PyQt5. QtGui import QFont #for fonts import sys #necessary for QT applications # import os import COVID19Py # covid19 information -api import datetime # știi pentru ce este asta
clasa CoronaTracker (QWidget):
"" "clasa principală care conține totul" "" def _init _ (self): "" "inițializează lucrurile" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) # dacă temporizatorul atinge pragul - actualizare apel self.ui () #interfață utilizator
def ui (auto):
"" "Secțiunea interfață utilizator" "" self.setWindowTitle ("Covid19 International and Local Tracker") # self.setWindowFlags (Qt. CustomizeWindowHint) #hide bara de titlu self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) # conform rezoluției afișajului meu (x, y) / rpi
#eticheta principala
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: negru; color: alb; border-style: outset; border-width: 1px" "")
"" "_ ultimele date ale lumii_" ""
#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText („Lumea pe scurt”) self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "fundal-culoare: negru; culoare: albastru; border-style: outset; border-width: 1px" "")
# cazuri confirmate la nivel mondial
self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Cazuri:") 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: negru; color: alb; border-style: outset; border-width: 1px "" ")
# decese la nivel mondial
self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Moarte:") 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: negru; color: alb; border-style: outset; border-width: 1px "" ")
#worldwide vindecat
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: negru; culoare: cyan; border-style: outset; border-width: 1px" "")
#număr vindecat la nivel mondial
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: negru; culoare: alb; stil bordură: ieșire; lățime margine: 1 px "" ")
"" "_ Local-după țară Cod_" ""
#local - Țara self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText („Țara mea: 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 (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Cazuri:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "fundal -color: negru; culoare: portocaliu; border-style: outset; border-width: 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: negru; culoare: alb; border-style: outset; border-width: 1px" "")
# decese locale
self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Moarte:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "background-color: negru; culoare: roșu; border-style: outset; border-width: 1px" "")
# număr local de decese
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 ("" "fundal-culoare: negru; culoare: alb; 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: negru; 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 ("" "background-color: negru; culoare: alb; border-style: outset; border-width: 1px" "")
"" "_ Ora, data, ceasul_" ""
#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- culoare: negru; culoare: alb; stil de bordură: început; lățime de margine: 1px "" ") # etichetă pentru săptămână self.weekday = QLabel (auto) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "background-color: negru; culoare: alb; 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 ("" "fundal-culoare: negru; culoare: alb; border-style: outset; border-width: 1px" "")
#verificați temporizatorul dacă nu self.timer.isActive (): #dacă temporizatorul este oprit (a fost atins pragul) # După 1 secundă (aprox.) sau 1000ms
încerca:
"" "Încercați să obțineți date, altfel rulați codul oricum" "" self.latest = self.covid.getLatest () #gte covid19 ultimele date
#obțineți cele mai recente date după codul de țară 'BD' - Bangladesh, 'IN'-India etc.
self.local = self.covid.getLocationByCountryCode ('BD', timelines = False) #print (self.local) #print (self.latest)
cu exceptia:
"" "nu s-au putut obține date" "" tipărire ("Eroare Internet !!")
trece #ignore, aleargă oricum
self.timer.start (1000) #start cronometrul
self.show () #show Interfața noastră de utilizator
actualizare def (auto):
"" "actualizați etichetele cu informații" ""
"" "_Extragerea informațiilor despre ora și data actualizării anunțurilor_" ""
# configurați ceasul și data dată (actualizați valorile) # obțineți și actualizați valorile #pentru a afla mai multe citiți documentația python datetime
self.dt = datetime.datetime.now () #get date datetime
self.clock.setText (self.dt.strftime ('% X')) self.weekday.setText (self.dt.strftime ('% A')) self.date.setText (self.dt.strftime ('% x ')) "" "_ actualizare date covid19_" "" #worldwide latest data self.w_cases_num.setText (str (self.latest [' confirmat])) self.w_death_num.setText (str (self.latest
print („actualizare”)
întoarcere
def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #run aplicația dacă _name_ == '_main_': main ()
Pasul 6: Finalizați:
După testarea codului, l-am pus în birou și i-am dedicat o sursă de alimentare. Pentru a funcționa în timpul încărcării. Utilizând UPS-urile, acest lucru poate rula chiar și în cazul descărcării sarcinii, ceea ce oferă cardului SD ur pi o protecție adecvată.
Indiferent cum sau cine suntem, trebuie să murim. Să nu ne gândim la tine, să ne gândim la lume. Nu putem trăi veșnic decât prin faptele noastre, să fie așa.
Recomandat:
Cum să faci ceas analogic și ceas digital cu bandă LED folosind Arduino: 3 pași
Cum să faci ceas analogic și ceas digital cu bandă led folosind Arduino: Astăzi vom face un ceas analogic & Ceas digital cu Led Strip și modul MAX7219 Dot cu Arduino. Acesta va corecta ora cu fusul orar local. Ceasul analogic poate folosi o bandă cu LED mai lungă, deci poate fi agățat pe perete pentru a deveni un artist
Live Covid19 Tracker Utilizând ESP8266 și OLED - Tablou de bord Covid19 în timp real: 4 pași
Live Covid19 Tracker Utilizând ESP8266 și OLED | Tablou de bord Covid19 în timp real: accesați site-ul web Techtronic Harsh: http: //techtronicharsh.com Oriunde există un focar uriaș al virusului Corona de roman (COVID19). A devenit necesar să urmărim scenariul actual al COVID-19 în lume. Așadar, fiind acasă, acesta a fost
Ceas de pensionare / Count Up / Ceas Dn: 4 pași (cu imagini)
Ceas de pensionare / Count Up / Dn Clock: Am avut câteva dintre aceste afișaje cu matrice de puncte LED 8x8 în sertar și mă gândeam ce să fac cu ele. Inspirat de alte instructabile, mi-a venit ideea să construiesc un afișaj de numărătoare inversă / în sus pentru a număra înapoi până la o dată / oră viitoare și dacă timpul țintă p
Ceas cu alarmă extra puternic inspirat de bombă cu ceas cu doar 5 componente: 3 pași
Ceas cu alarmă extra puternic inspirat de Time Bomb cu doar 5 componente: Am creat acest ceas cu alarmă inspirat de Time Bomb ușor de realizat, care este garantat să vă trezească dimineața. Am folosit materiale simple în casă. Toate articolele utilizate sunt ușor disponibile și ieftine. Această alarmă inspirată de bomba cu ceas
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor