Spisu treści:

Pulpit COVID19 Tracker z zegarem! Zasilany tracker Raspberry Pi: 6 kroków
Pulpit COVID19 Tracker z zegarem! Zasilany tracker Raspberry Pi: 6 kroków

Wideo: Pulpit COVID19 Tracker z zegarem! Zasilany tracker Raspberry Pi: 6 kroków

Wideo: Pulpit COVID19 Tracker z zegarem! Zasilany tracker Raspberry Pi: 6 kroków
Wideo: Как понять, побеждаем ли мы COVID-19 2024, Lipiec
Anonim
Pulpit COVID19 Tracker z zegarem! Śledzenie zasilane Raspberry Pi
Pulpit COVID19 Tracker z zegarem! Śledzenie zasilane Raspberry Pi

Wiemy, że w każdej chwili możemy umrzeć, nawet ja mogę umrzeć pisząc ten post, przecież ja ja, ty, wszyscy jesteśmy śmiertelnikami. Cały świat zatrząsł się z powodu pandemii COVID19. Wiemy, jak temu zapobiec, ale hej! umiemy się modlić i po co się modlić, czy robimy to codziennie? Nie!! W rzeczywistości zapominamy o podstawowej przyczynie, dla której powinniśmy coś robić. Wiemy więc, że higieniczny styl życia może nas uratować, ale nie robimy tego właściwie. Rozważmy przypadek mojego młodszego brata, który nawet w tym czasie chce wyjść i pobawić się. Musiałem coś zrobić, aby konsekwentnie informować wszystkich o najnowszych przypadkach COVID19. Zrobiłem więc cyfrowy wyświetlacz biurkowy, który pokazuje najnowsze przypadki COVID19 w czasie rzeczywistym. Ponieważ ma zegar, mogę go umieścić w miejscu, w którym wszyscy się zbierają lub przychodzą. Zobaczą, że liczby się sumują, co wyzwoli w nich świadomość i miejmy nadzieję, że wszyscy będą świadomi. Ponieważ jestem twórcą i hobbystą, okazało się, że jest to dobry projekt do pracy w tej sesji blokowania.

Krok 1: Części, których użyłem:

Części, których użyłem
Części, których użyłem
Części, których użyłem
Części, których użyłem
Części, których użyłem
Części, których użyłem
Części, których użyłem
Części, których użyłem
  • Raspberry Pi 3 Model B (uruchamiany za pomocą karty SD)
  • Moduł UPS Raspberry Pi (opcjonalnie)
  • 7-calowy ekran LCD HDMI
  • Kabel HDMI do HDMI (dołączony do ekranu)
  • Kable USB
  • Zasilacz 5v 2A (do zasilania pi)
  • Blacha PCV [kolor drewna] (do wykonania korpusu)

Krok 2: Skonfiguruj Raspberry Pi:

Konfiguracja Raspberry Pi
Konfiguracja Raspberry Pi

Myślę, że ustawiłeś pi idealnie, chyba że nie -

  1. zdobądź kartę SD - ponad 8 GB
  2. pobierz najnowszy plik raspbian iso stąd.
  3. Wypal kartę SD za pomocą wytrawiacza

(Zauważ, że ludzie mogą powiedzieć coś o innym oprogramowaniu, które wymaga wykonania pewnej konfiguracji, ale wytrawiacz jest bardzo łatwy w użyciu i prosty, ale również skuteczny.)

Po prostu podłącz kartę SD do komputera, uruchom program Etcher, zobaczysz, że karta SD zostanie automatycznie wybrana przez program, a następnie kliknij, aby wybrać pobrany plik ISO lub obraz, a następnie nagraj go. Po udanym zapisie i przetworzeniu odłącz kartę SD i podłącz ją do swojego pi, włącz ją i VOILA!! To żyje.

Krok 3: Schemat obwodu:

Schemat obwodu
Schemat obwodu

Podłącz wszystko i włącz raspbery pi, to tylko połączenie, nic więcej.

Zobaczysz uruchamianie pi.

Krok 4: Ciało:

Ciało
Ciało
Ciało
Ciało
Ciało
Ciało
Ciało
Ciało

Przyciąłem arkusz PCV zgodnie z rozmiarem wyświetlacza, a następnie dodałem go za pomocą śrub. Potem wszystko podłączyłem. W końcu dodałem kolejny arkusz z tyłu, aby podtrzymać go przed upadkiem (niebieski arkusz). Jeśli wszystko jest w porządku, powinieneś zobaczyć bootowanie pi (ostatnie zdjęcie)

Krok 5: Oprogramowanie (kod źródłowy):

Program napisany jest w python3. Do GUI (Graphical User Interface) użyłem PyQt5, a do ekstrakcji danych COVID19 w czasie rzeczywistym użyłem biblioteki COVID19Py. Podziękowania dla chłopaków, którzy udostępnili nam API

To prawie wszystko, teraz otwórz Terminal na raspberry pi i zainstaluj biblioteki (skopiuj każdą z nich i wklej na terminalu rpi).

Ignoruj znak $ podczas kopiowania

$ pip3 zainstaluj pyqt5

$ pip3 prośby o instalację $ pip3 zainstaluj covid19py

To wszystko, teraz pobierz kod stąd, podałem kod poniżej:

"""* Międzynarodowy i lokalny lokalizator Covid19 w czasie rzeczywistym z zegarem *""" """ ************** Bądź bezpieczny w domu. Żyj, pozwól żyć ******** ***** """

"""

autor: ashraf minhaj poczta: [email protected] strona: ashrafminhajfb.blogspot.com """

#importuj potrzebne biblioteki

importuj bibliotekę GUI PyQt5 #QT dla python3 z PyQt5. QtCore importuj Qt, QTimer #timer do aktualizacji z PyQt5. QtWidgets import * #importuj wszystko z PyQt5. QtGui importuj QFont #dla czcionek sys #covid19 informacje -api import datetime #wiesz do czego to służy

klasa CoronaTracker(QWidget):

"""główna klasa, która zawiera wszystko""" def _init_(self): """inicjuj rzeczy""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #jeśli timer osiągnie próg - wywołaj aktualizację self.ui() #interfejs użytkownika

def ui(samo):

"""Sekcja interfejsu użytkownika""" self.setWindowTitle("Covid19 International and Local Tracker") #self.setWindowFlags(Qt. CustomizeWindowHint) #ukryj pasek tytułu self.setStyleSheet("Kolor tła: czarny") self.setFixedSize(640, 480) #zgodnie z moim wyświetlaczem (x, y) / rozdzielczość rpi

#główna etykieta

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: black; color: white; border-style: outset; border-width: 1px """)

"""_najnowsze dane na świecie_"""

#world label self.w = QLabel(self) self.w.setGeometry(200, 55, 400, 40) self.w.setText("Świat w skrócie") self.w.setFont(QFont('SansSerif', 18)) self.w.setStyleSheet(""" kolor-tła: czarny; kolor: niebieski; styl obramowania: początek; szerokość-obramowania: 1px """)

#potwierdzone przypadki na całym świecie

self.w_cases = QLabel(self) self.w_cases.setGeometry(5, 90, 100, 40) self.w_cases.setText("Przypadki:") self.w_cases.setFont(QFont('SansSerif', 18)) self. w_cases.setStyleSheet(""" background-color: black; color: orange; border-style: outset; border-width: 1px """) #case 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(""" kolor tła: czarny; kolor: biały; styl obramowania: początek; szerokość obramowania: 1 piksel """)

#zgony na całym świecie

self.w_death = QLabel(self) self.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("Zgony:") self.w_death.setFont(QFont('SansSerif', 18)) self. w_death.setStyleSheet(""" background-color: black; color: red; border-style: outset; border-width: 1px """) #numer śmierci 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(""" kolor tła: czarny; kolor: biały; styl obramowania: początek; szerokość obramowania: 1 piksel """)

#utwardzony na całym świecie

self.w_cured = QLabel(self) self.w_cured.setGeometry(5, 140, 100, 40) self.w_cured.setText("Wyleczony:") self.w_cured.setFont(QFont('SansSerif', 18)) self. w_cured.setStyleSheet(""" background-color: black; color: cyan; border-style: outset; border-width: 1px """)

#światowa liczba utwardzonych

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(""" kolor tła: czarny; kolor: biały; styl obramowania: początek; szerokość obramowania: 1 piksel """)

"""_Kod lokalny-według kraju_"""

#local - Kraj self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("Mój kraj: Bangladesz") self.c.setFont(QFont('SansSerif'), 18)) self.c.setStyleSheet(""" background-color: black; color: white; border-style: outset; border-width: 1px """) #local potwierdzaj przypadki self.c_cases = QLabel(self) self.c_cases.setGeometry(5, 240, 400, 40) self.c_cases.setText("Przypadki:") self.c_cases.setFont(QFont('SansSerif', 18)) self.c_cases.setStyleSheet(""" background -color: black; color: orange; border-style: outset; border-width: 1px """) #lokalny numer sprawy 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: black; color: white; border-style: outset; border-width: 1px """)

#lokalne zgony

self.c_death = QLabel(self) self.c_death.setGeometry(350, 240, 100, 40) self.c_death.setText("Zgony:") self.c_death.setFont(QFont('SansSerif', 18)) self. c_death.setStyleSheet(""" kolor tła: czarny; kolor: czerwony; styl obramowania: początek; szerokość obramowania: 1px """)

#lokalna liczba zgonów

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(""" kolor tła: 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("Cured:") self.c_cured.setFont(QFont('SansSerif', 18)) self.c_cured.setStyleSheet(""" background-color: black; color: cyan; border-style: outset; border-width: 1px """) #lokalna liczba wyleczonych 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(""" kolor tła: czarny; kolor: biały; styl obramowania: początek; szerokość obramowania: 1px """)

"""_Godzina, data, zegar_"""

#clock self.clock = QLabel(self) self.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- color: black; color: white; border-style: outset; border-width: 1px """) #label for weekday self.weekday = QLabel(self) self.weekday.setGeometry(5, 360, 110, 20) self.weekday.setFont(QFont('SansSerif', 13)) self.weekday.setStyleSheet(""" background-color: black; color: white; 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(""" kolor tła: czarny; kolor: biały; styl obramowania: początek; szerokość obramowania: 1px """)

#sprawdź timer, jeśli nie self.timer.isActive(): #jeśli timer jest zatrzymany (osiągnięto próg) #Po 1 sekundzie (około) lub 1000ms

próbować:

"""spróbuj uzyskać dane, w przeciwnym razie uruchom kod mimo to""" self.latest = self.covid.getLatest() #gte covid19 najnowsze dane

#otrzymaj najnowsze dane według kodu kraju „BD”-Bangladesz, „IN”-Indie itp

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

z wyjątkiem:

"""nie można pobrać danych""" print("Błąd Internetu!!")

przejść #ignoruj, biegnij mimo to

self.timer.start(1000) #uruchom timer

self.show() #pokaż nasz interfejs użytkownika

aktualizacja definicji (własna):

"""zaktualizuj etykiety informacjami"""

"""_Wyodrębnij informacje o godzinie i dacie aktualizacji reklamy _"""

#ustaw zegar i datę i godzinę (aktualizuj wartości) #pobierz i zaktualizuj wartości #aby dowiedzieć się więcej przeczytaj dokumentację python datetime

self.dt = datetime.datetime.now() #pobierz dane daty i godziny

self.clock.setText(self.dt.strftime('%X')) self.weekday.setText(self.dt.strftime('%A')) self.date.setText(self.dt.strftime('%) x')) """_update covid19 data_""" #worldwide najnowsze dane self.w_cases_num.setText(str(self.latest['confirmed'])) self.w_death_num.setText(str(self.latest['deaths'])) self.w_cured_num.setText(str(self.latest['recovered'])) #lokalne najnowsze dane self.c_cured_num.setText(str(self.local[0]['latest']['recovered'])) self.c_death_num.setText(str(self.local[0]['latest']['deaths'])) self.c_cases_num.setText(str(self.local[0]['latest']['confirmed']))

print("aktualizacja")

powrót

def main(): app = QApplication(sys.argv) win = CoronaTracker() #Instantiate sys.exit(app.exec()) #uruchom aplikację if _name_ == '_main_': main()

Krok 6: Zakończ:

Dokończyć
Dokończyć

Po przetestowaniu kodu umieściłem go na biurku i przeznaczyłem dla niego źródło zasilania. Aby mógł działać podczas ładowania. Korzystając z ups, które mogą działać nawet przy zrzucaniu obciążenia, zapewnia to również odpowiednią ochronę karty SD pi.

Bez względu na to jak i kim jesteśmy, musimy umrzeć. Nie myślmy o sobie, myślmy o świecie. Możemy żyć wiecznie tylko naszymi czynami, niech tak będzie.

Zalecana: