Obsah:

Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků
Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků

Video: Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků

Video: Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků
Video: BTT SKR2 -Klipper Firmware Install 2024, Červenec
Anonim
Desktop COVID19 Tracker s hodinami! Tracker s pohonem Raspberry Pi
Desktop COVID19 Tracker s hodinami! Tracker s pohonem Raspberry Pi

Víme, že můžeme zemřít kdykoli, dokonce i já mohu zemřít při psaní tohoto příspěvku, koneckonců já, já, vy, všichni jsme smrtelníci. Celý svět se otřásl kvůli pandemii COVID19. Víme, jak tomu zabránit, ale hej! víme, jak se modlit a proč se modlit, děláme to denně? Ne!! Ve skutečnosti zapomínáme na hlavní příčinu toho, proč bychom měli věci dělat. Víme tedy, že nás může zachránit hygienický životní styl, přestože to neděláme správně. Vezměme si případ mého mladšího bratra, který chce jít hrát i v této době. Měl jsem co dělat, abych všechny důsledně informoval o nejnovějších případech COVID19. Vytvořil jsem tedy stolní displej, který zobrazuje nejnovější případy COVID19 v reálném čase. Protože má hodiny, mohu je dát na místo, kde se všichni shromažďují nebo přicházejí. Uvidí, jak se čísla sčítají, což v nich spustí povědomí a snad bude každý při vědomí. Protože jsem také tvůrcem a fandou, ukázalo se, že je to dobrý projekt, na kterém je možné v této blokovací relaci zapracovat.

Krok 1: Díly, které jsem použil:

Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
Díly, které jsem použil
  • Raspberry Pi 3 Model B (spuštěno pomocí karty SD)
  • Modul UPS Raspberry Pi (volitelně)
  • 7palcová HDMI LCD obrazovka
  • Kabel HDMI na HDMI (dodává se s obrazovkou)
  • USB kabely
  • Napájecí adaptér 5v 2A (pro napájení pí)
  • PVC plech [dřevěná barva] (na výrobu korpusu)

Krok 2: Nastavení Raspberry Pi:

Nastavení Raspberry Pi
Nastavení Raspberry Pi

Myslím, že jsi nastavil pí perfektně, pokud ne -

  1. získejte kartu SD - více než 8 GB
  2. stáhněte si nejnovější iso soubor raspbian odtud.
  3. Vypalte kartu SD pomocí leptače

(Všimněte si, že lidé mohou říci o jiném softwaru, který vyžaduje, abyste provedli nějaké nastavení, ale etcher je velmi snadno použitelný a jednoduchý, ale také účinný.)

Stačí připojit SD kartu k počítači, spustit etcher, uvidíte, že karta SD je automaticky vybrána etcherem, poté kliknutím vyberte stažený iso soubor nebo obrázek a poté jej vypalte. Po úspěšném zápisu a zpracování odpojte SD kartu a připojte ji k vašemu pí, napájejte ji a VOILA !! Je to živé.

Krok 3: Schéma zapojení:

Kruhový diagram
Kruhový diagram

Připojte vše a zapněte raspbery pi, je to jen připojení, nic jiného.

Uvidíte bootování pi.

Krok 4: Tělo:

Tělo
Tělo
Tělo
Tělo
Tělo
Tělo
Tělo
Tělo

Řezal jsem PVC fólii podle velikosti displeje a poté ji přidal pomocí šroubů. Poté jsem vše zapojil. Nakonec přidal další list na zadní straně, aby byl chráněn před pádem (modrý list). Pokud je vše v pořádku, měli byste vidět pi boot (poslední obrázek)

Krok 5: Software (zdrojový kód):

Program je napsán v pythonu3. Pro GUI (grafické uživatelské rozhraní) jsem použil PyQt5 a pro extrakci dat COVID19 v reálném čase jsem použil knihovnu COVID19Py. Díky klukům, kteří nám API zpřístupnili

To je skoro vše, nyní otevřete Terminál na Raspberry Pi a nainstalujte knihovny (každou zkopírujte a vložte na terminál rpi).

Při kopírování ignorujte znak $

$ pip3 nainstalujte pyqt5

$ pip3 install requests $ pip3 install covid19py

To je vše, nyní si stáhněte kód odtud, níže uvedený kód jsem poskytl:

"" "*Mezinárodní a místní měřič Covid19 v reálném čase s hodinami*" "" "" "************** Zůstaňte doma Zůstaňte v bezpečí. Žijte, nechte žít ******** ***** """

"""

autor: ashraf minhaj mail: [email protected] web: ashrafminhajfb.blogspot.com """

#importujte potřebné knihovny

importovat knihovnu GUI PyQt5 #QT pro python3 z PyQt5. QtCore importovat Qt, QTimer #timer aktualizovat z PyQt5. QtWidgets importovat * #importovat vše z PyQt5. QtGui import QFont #pro fonty importovat sys #potřebné pro aplikace QT #import os import COVID19Py #covid19 information -api import datetime #víte, k čemu to je

třída CoronaTracker (QWidget):

"" "hlavní třída, která obsahuje vše" "" def _init _ (self): "" "" inicializace věcí "" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) #pokud časovač dosáhne prahové hodnoty - volání aktualizace self.ui () #uživatelské rozhraní

def ui (self):

"" "Sekce uživatelského rozhraní" "" self.setWindowTitle ("Covid19 International and Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #hide title bar self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) #na můj displej (x, y) /rpi rozlišení

#hlavní štítek

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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "")

"" "_ nejnovější data světa _" ""

#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 ("" "barva pozadí: černá; barva: modrá; styl ohraničení: začátek; šířka ohraničení: 1px" "")

#celosvětově potvrzené případy

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 ("" "barva pozadí: černá; barva: oranžová; styl ohraničení: začátek; šířka okraje: 1px" "") #cases číslo 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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka okraje: 1px "" ")

#úmrtí po celém světě

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 ("" "barva pozadí: černá; barva: červená; styl ohraničení: začátek; šířka okraje: 1px" "") #číslo smrti 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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka okraje: 1px "" ")

#celosvětově vyléčen

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 ("" "barva pozadí: černá; barva: azurová; styl ohraničení: začátek; šířka ohraničení: 1px" "")

#celosvětově vyléčené číslo

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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px "" ")

"" "_ Místní kód země _" ""

#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("My Country: Bangladesh") self.c.setFont (QFont ('SansSerif', 18)) self.c.setStyleSheet ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "") #lokální případy potvrzení 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 ("" "pozadí -color: black; color: orange; 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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "")

#místní úmrtí

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 ("" "barva pozadí: černá; barva: červená; styl ohraničení: začátek; šířka ohraničení: 1px" "")

#místní číslo úmrtí

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 ("" "barva pozadí: 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 ("Vytvrzeno:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "barva pozadí: černá; barva: azurová; styl ohraničení: začátek; šířka okraje: 1px "" ") #lokálně vyléčené číslo 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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "")

"" "_ Čas, datum, hodiny _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "pozadí- barva: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px "" ") #štítek pro všední den self.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "") #datum 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 ("" "barva pozadí: černá; barva: bílá; styl ohraničení: začátek; šířka ohraničení: 1px" "")

#zkontrolujte časovač, pokud není vlastní. časovač. je aktivní (): #je -li časovač zastaven (dosažen práh) #po 1 sekundě (přibližně) nebo 1000 ms

Snaž se:

"" "zkuste získat data, jinak spusťte kód stejně" "" self.latest = self.covid.getLatest () #gte covid19 nejnovější data

#získejte nejnovější data podle kódu země „BD“-Bangladéš, „IN“-Indie atd

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

až na:

"" "Nelze získat data" "" "(" Chyba Internetu !! ")

projděte #ignore, stejně běžte

self.timer.start (1000) #spusťte časovač

self.show () #ukažte naše uživatelské rozhraní

def aktualizace (vlastní):

"" "aktualizovat štítky informacemi" ""

"" "_ Extrahovat reklamu Aktualizovat čas a datum _" ""

#nastavte hodiny a datum a čas (aktualizujte hodnoty) #získejte a aktualizujte hodnoty #abyste věděli více, přečtěte si dokumentaci python datetime

self.dt = datetime.datetime.now () #získejte data a data

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('% x ')) "" "_])) self.w_cured_num.setText (str (self.latest ['obnoveno'])) #local nejnovější data self.c_cured_num.setText (str (self.local [0] ['nejnovější'] ['obnoveno'])) self.c_death_num.setText (str (self.local [0] ['latest'] ['deaths'])) self.c_cases_num.setText (str (self.local [0] ['latest'] ['potvrzeno'])))

tisk ("aktualizace")

vrátit se

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #spustit aplikaci, pokud _name_ == '_main_': main ()

Krok 6: Dokončete:

Dokončit
Dokončit

Po otestování kódu jsem ho vložil do stolu a vyhradil mu zdroj energie. Aby to mohlo fungovat i při nabíjení. Použitím upů to může běžet i při snižování zátěže, což také poskytuje vhodnou ochranu vaší SD karty SD.

Bez ohledu na to, kdo nebo kdo jsme, musíme zemřít. Nemysleme na sebe, ale na svět. Věčně můžeme žít jen díky svým činům, ať to tak je.

Doporučuje: