Obsah:
- Krok 1: Použité diely:
- Krok 2: Nastavenie Raspberry Pi:
- Krok 3: Schéma zapojenia:
- Krok 4: Telo:
- Krok 5: Softvér (zdrojový kód):
- Krok 6: Dokončite:
Video: Stolový sledovač COVID19 s hodinami! Sledovač poháňaný Raspberry Pi: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
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:
- 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:
Myslím, že ste nastavili pi perfektne, pokiaľ nie -
- získajte kartu SD - viac ako 8 GB
- odtiaľto stiahnite najnovší iso súbor raspbian.
- 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:
Pripojte všetko a zapnite raspbery pi, iba sa pripája, nič iné.
Uvidíte zavedenie pi.
Krok 4: 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:
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:
Notebook Raspberry Pi poháňaný superkondenzátorom: 5 krokov
Notebook Raspberry Pi poháňaný superkondenzátorom: V závislosti od všeobecného záujmu o tento projekt môžem pridať ďalšie kroky atď., Ak to pomôže zjednodušiť akékoľvek mätúce komponenty. Vždy ma zaujímala, ako sa v priebehu rokov objavuje novšia kondenzátorová technológia a myslel som si, že to bude zábava t
Drevený LED herný displej poháňaný Raspberry Pi Zero: 11 krokov (s obrázkami)
Drevený LED herný displej poháňaný Raspberry Pi Zero: Tento projekt realizuje LED displej s rozlíšením 20 x 10 pixelov WS2812 s veľkosťou 78 x 35 cm, ktorý je možné ľahko nainštalovať do obývačky a hrať retro hry. Prvá verzia tejto matice bola postavená v roku 2016 a prestavaná mnohými ďalšími ľuďmi. Tento expe
Živý sledovač Covid19 pomocou ESP8266 a OLED - Panel v reálnom čase Covid19: 4 kroky
Živý sledovač Covid19 pomocou ESP8266 a OLED | Informačný panel Covid19 v reálnom čase: Navštívte drsnú webovú stránku Techtronic: http: //techtronicharsh.com Všade tam, kde dochádza k obrovskému vypuknutiu nového koronavírusu (COVID19). Bolo nevyhnutné sledovať aktuálny scenár COVID-19 vo svete. Keďže som doma, toto bol
Jedinečný model s hodinami poháňaný servomotormi Arduino: 5 krokov
Unikátny model hodín poháňaný servomotormi Arduino: S týmto návodom vám ukážem, ako vytvoriť hodiny pomocou nano a servomotorov Arduino. Na to budete potrebovať nasledujúce položky
Stolový gigapixelový mikroskop: 10 krokov (s obrázkami)
Stolový gigapixelový mikroskop: V optických mikroskopoch existuje zásadný kompromis medzi zorným poľom a rozlíšením: čím jemnejšie detaily, tým menšia je oblasť zobrazená mikroskopom. Jedným zo spôsobov, ako prekonať toto obmedzenie, je preložiť vzorku a získať obrázky