Obsah:

Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov
Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov

Video: Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov

Video: Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov
Video: Часы G Shock до 100 долларов-15 лучших часов Casio G Shock до 100 дол... 2024, Júl
Anonim
Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi
Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi

Vieme, že môžeme zomrieť kedykoľvek, dokonca aj ja môžem zomrieť pri písaní tohto príspevku, koniec koncov, ja ja, vy, všetci sme smrteľníci. Celý svet sa otriasol kvôli pandémii COVID19. Vieme, ako tomu zabrániť, ale hej! vieme, ako sa modliť a prečo sa modliť, robíme to denne? Nie !! V skutočnosti zabúdame na hlavnú príčinu, prečo by sme mali veci robiť. Vieme teda, že hygienický životný štýl nás môže zachrániť, aj keď to nerobíme poriadne. Uvažujme o prípade môjho mladšieho brata, ktorý chce ísť von a hrať aj v tejto dobe. Mal som čo robiť, aby som všetkých dôsledne informoval o najnovších prípadoch COVID19. Vytvoril som teda digitálny stolový displej, ktorý v reálnom čase zobrazuje najnovšie prípady ochorenia COVID19. Keďže majú hodiny, môžem ich dať na miesto, kde sa všetci stretnú alebo prídu. Uvidí, ako sa čísla sčítajú, čo v nich spustí povedomie a dúfajme, že každý bude pri vedomí. Keďže som tiež tvorcom a fanúšikom, ukázalo sa, že je to dobrý projekt, na ktorom je možné počas tejto blokovacej relácie zapracovať.

Krok 1: Použité diely:

Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
Časti, ktoré som použil
  • Raspberry Pi 3 Model B (spustený pomocou karty SD)
  • Modul UPS Raspberry Pi (voliteľné)
  • 7 palcový HDMI LCD displej
  • Kábel HDMI na HDMI (dodáva sa s obrazovkou)
  • USB káble
  • Napájací adaptér 5v 2A (na napájanie pí)
  • PVC plech [drevená farba] (na výrobu korpusu)

Krok 2: Nastavenie Raspberry Pi:

Nastavenie Raspberry Pi
Nastavenie Raspberry Pi

Myslím, že ste nastavili pi perfektne, pokiaľ nie -

  1. získajte kartu SD - viac ako 8 GB
  2. odtiaľto stiahnite najnovší iso súbor raspbian.
  3. Vypálte kartu SD pomocou leptača

(Všimnite si toho, že ľudia môžu hovoriť o inom softvéri, ktorý vyžaduje, aby ste urobili nejaké nastavenia, ale etcher je veľmi ľahko použiteľný a jednoduchý, ale tiež efektívny.)

Jednoducho zapojte kartu SD do počítača, spustite program etcher, uvidíte, že karta SD je automaticky vybraná nástrojom etcher, potom kliknutím vyberte stiahnutý súbor alebo obrázok iso a potom ho napaľujte. Po úspešnom zápise a spracovaní odpojte SD kartu a pripojte ju k svojmu pí, napájajte a VOILA !! Je nažive.

Krok 3: Schéma zapojenia:

Schéma zapojenia
Schéma zapojenia

Pripojte všetko a zapnite raspbery pi, iba sa pripája, nič iné.

Uvidíte zavedenie pi.

Krok 4: Telo:

Telo
Telo
Telo
Telo
Telo
Telo
Telo
Telo

Rezal som PVC fóliu podľa veľkosti displeja a potom som ju pridal pomocou skrutiek. Potom som všetko zapojil. Nakoniec pridal ďalší list vzadu, aby bol chránený pred pádom (modrý list). Ak je všetko v poriadku, mali by ste vidieť bootovanie pi (posledný obrázok)

Krok 5: Softvér (zdrojový kód):

Program je napísaný v jazyku python3. Pre GUI (grafické užívateľské rozhranie) som použil PyQt5 a na extrahovanie údajov COVID19 v reálnom čase som použil knižnicu COVID19Py. Ďakujeme chlapcom, ktorí nám sprístupnili API

To je skoro všetko, teraz otvorte Terminál na Raspberry Pi a nainštalujte si knižnice (každú z nich skopírujte a prilepte na terminál rpi).

Pri kopírovaní ignorujte znak $

$ pip3 nainštalovať pyqt5

$ pip3 install požaduje $ pip3 install covid19py

To je všetko, teraz si stiahnite kód odtiaľto, poskytol som kód nižšie:

"" "*Medzinárodný a miestny sledovač Covid19 s hodinami v reálnom čase*" "" "" ************** Zostaňte doma Zostaňte v bezpečí. Žite, nechajte žiť ******** ***** """

"""

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

#importujte potrebné knižnice

importovať knižnicu GUI PyQt5 #QT pre python3 z PyQt5. QtCore import Qt, QTimer #timer aktualizovať z PyQt5. QtWidgets import * #importovať všetko z PyQt5. QtGui import QFont #pre fonty import sys #potrebné pre aplikácie QT #import os import COVID19Py #covid19 information -api import datetime #Viete, na čo to je

trieda CoronaTracker (QWidget):

"" "hlavná trieda, ktorá obsahuje všetko" "" def _init _ (self): "" "" inicializácia vecí "" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) #ak časovač dosiahne prah - aktualizácia hovoru self.ui () #používateľské rozhranie

def ui (seba):

"" "Sekcia používateľského rozhrania" "" self.setWindowTitle ("Covid19 International and Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #hide title bar self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) #ako na mojom displeji (x, y) /rpi rozlíšenie

#hlavný štítok

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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1 px" "")

"" "_svetové dá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 ("" "farba pozadia: čierna; farba: modrá; štýl ohraničenia: začiatok; šírka orámovania: 1 px" "")

#celosvetovo potvrdené prí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 ("" "farba pozadia: čierna; farba: oranžová; štýl ohraničenia: začiatok; šírka-orámovania: 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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka šírky: 1px "" ")

#úmrtia na celom svete

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 ("" "farba pozadia: čierna; farba: červená; štýl ohraničenia: začiatok; šírka orámovania: 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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka šírky: 1px "" ")

#worldwide vylieč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 ("" "farba pozadia: čierna; farba: azúrová; štýl ohraničenia: začiatok; šírka orámovania: 1px" "")

#celosvetovo vylieč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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1px "" ")

"" "_ Kód miestnej krajiny _" ""

#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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1 px" "")) #miestne prípady potvrdenia 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 ("" "pozadie -color: black; color: orange; style-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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1px" "")

#miestne úmrtia

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 ("" "farba pozadia: čierna; farba: červená; štýl ohraničenia: začiatok; šírka orámovania: 1px" "")

#miestne číslo úmrtia

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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1px "" ") #local cured self.c_cured = QLabel (self) self.c_cured.setGeometry (5, 280, 100, 40) self.c_cured. setText ("Vytvrdené:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "farba pozadia: čierna; farba: azúrová; štýl ohraničenia: začiatok; šírka orámovania: 1px "" ") #miestne vylieč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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1px" "")

"" "_ Čas, dátum, hodiny _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "pozadie- farba: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1px "" ") #štítok pre deň v týždni self.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) self.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 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 ("" "farba pozadia: čierna; farba: biela; štýl ohraničenia: začiatok; šírka orámovania: 1 px" "")

#skontrolujte časovač, ak nie je self.timer.isActive (): #ak je časovač zastavený (dosiahnutý prah) #po 1 sekunde (približne) alebo 1000 ms

skús:

"" "pokúste sa získať údaje, v opačnom prípade spustite kód" "" "self.latest = self.covid.getLatest () #gte covid19 najnovšie údaje

#Získajte najnovšie údaje podľa kódu krajiny „BD“-Bangladéš, „IN“-India atď

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

okrem:

"" "Nedarilo sa získať údaje" "" "(" Chyba internetu !! ")

prejdi #ignore, aj tak uteč

self.timer.start (1000) #spustite časovač

self.show () #show our User Interface

def aktualizácia (vlastná):

"" "aktualizovať štítky pomocou informácií" ""

"" "_

#nastavenie hodín a dátumu a času (aktualizácia hodnôt) #získať a aktualizovať hodnoty #ak chcete vedieť viac, prečítajte si dokumentáciu python datetime

self.dt = datetime.datetime.now () #získať údaje dátumu a času

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 ['obnovené'])) #local najnovšie údaje self.c_cured_num.setText (str (self.local [0] ['najnovší'] ['obnovený'])) self.c_death_num.setText (str (self.local [0] ['latest'] ['deaths'])) self.c_cases_num.setText (str (self.local [0] ['latest'] ['potvrdené']))

tlač („aktualizácia“)

vrátiť sa

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #spustite aplikáciu, ak _name_ == '_main_': main ()

Krok 6: Dokončite:

Dokončiť
Dokončiť

Po otestovaní kódu som ho vložil na stôl a vyhradil som mu zdroj energie. Aby to mohlo fungovať aj pri nabíjaní. Použitím ups to môže fungovať aj pri znižovaní zaťaženia, čo tiež poskytuje vhodnú ochranu vašej SD karte SD.

Bez ohľadu na to, kto alebo kto sme, musíme zomrieť. Nemyslime na seba, ale na svet. Večne môžeme žiť iba vďaka svojim skutkom, nech to tak je.

Odporúča: