Obsah:
- Krok 1: Díly, které jsem použil:
- Krok 2: Nastavení Raspberry Pi:
- Krok 3: Schéma zapojení:
- Krok 4: Tělo:
- Krok 5: Software (zdrojový kód):
- Krok 6: Dokončete:
Video: Desktop COVID19 Tracker s hodinami! Raspberry Pi Powered Tracker: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
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:
- 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:
Myslím, že jsi nastavil pí perfektně, pokud ne -
- získejte kartu SD - více než 8 GB
- stáhněte si nejnovější iso soubor raspbian odtud.
- 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í:
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:
Ř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:
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:
ESP8266 POV ventilátor s hodinami a aktualizací textu webové stránky: 8 kroků (s obrázky)
ESP8266 POV ventilátor s hodinami a aktualizací textu webové stránky: Jedná se o proměnnou rychlost, POV (Persistence Of Vision), ventilátor, který přerušovaně zobrazuje čas, a dvě textové zprávy, které lze aktualizovat „za běhu“. je také jednostránkový webový server, který vám umožňuje změnit dva textové
Hra s ručními nástěnnými hodinami: 14 kroků
Hra s ručními nástěnnými hodinami: Elektronické nástěnné hodiny (komerční značení křemenem) dnes nejsou ničím výjimečným. Dá se koupit v mnoha obchodech. V některých z nich jsou extrémně levné; s cenou asi 2 € (50Kč). Tato nízká cena může být motivací podívat se blíže na
Stolní organizér s LED maticovými hodinami a Bluetooth: 7 kroků
Stolní organizátor s LED maticovými hodinami a Bluetooth: Můj stůl byl velmi přeplněný a chtěl jsem mít pěkný organizátor, kde bych mohl uspořádat své tužky, štětce, hliněné nástroje atd. Podíval jsem se na mnoho organizátorů na trhu, ale žádný se mi nelíbil . Vydal jsem se navrhnout vlastní organizér stolu a tady
Úžasný projekt s nástěnnými hodinami: 11 kroků
Úžasný projekt s nástěnnými hodinami: Hii, příteli, tento blog bude úžasný, protože v tomto blogu vytvořím úžasný obvod s efektem LED pomocí starých nástěnných hodin. Začněme
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: 15 kroků (s obrázky)
Movie Tracker - Raspberry Pi Powered Theatrical Release Tracker: Movie Tracker je klapka ve tvaru, Raspberry Pi poháněný Release Tracker. Používá API TMDb k tisku plakátu, názvu, data vydání a přehledu nadcházejících filmů ve vašem regionu v určeném časovém intervalu (např. Filmová vydání tento týden) na