İçindekiler:

Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker: 6 Adım
Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker: 6 Adım

Video: Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker: 6 Adım

Video: Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker: 6 Adım
Video: SKR 1.4 - TMC2209 v1.2 2024, Temmuz
Anonim
Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker
Saatli Masaüstü COVID19 İzleyici! Raspberry Pi Powered Tracker

Her an ölebileceğimizi biliyoruz, ben bile bu yazıyı yazarken ölebilirim sonuçta ben ben sen, hepimiz ölümlüyüz. COVID19 salgını nedeniyle tüm dünya sallandı. Bunu nasıl önleyeceğimizi biliyoruz, ama hey! Nasıl dua edeceğimizi ve neden dua edeceğimizi biliyoruz, bunu her gün yapıyor muyuz? Numara!! Aslında, bir şeyleri neden yapmamız gerektiğinin temel nedenini unutuyoruz. Bu nedenle, hijyenik bir yaşam tarzının bizi kurtarabileceğini biliyoruz, ancak bunu gerektiği gibi yapmıyoruz. Küçük kardeşimin durumunu düşünün, bu zamanda bile dışarı çıkıp oynamak istiyor. Herkesi en son COVID19 vakaları hakkında sürekli olarak bilgilendirmek için bir şeyler yapmak zorundaydım. Bu yüzden, en son COVID19 vakalarını gerçek zamanlı olarak gösteren dijital bir masa ekranı yaptım. Bunun bir saati olduğu için herkesin toplandığı veya geldiği bir yere koyabilirim. Sayıların arttığını görecekler, bu da içlerinde farkındalığı tetikleyecek ve umarım herkes bilinçli olacaktır. Ayrıca bir yapımcı ve hobici olduğum için, bu, bu kilitleme oturumunda üzerinde çalışmak için iyi bir proje olduğu ortaya çıktı.

Adım 1: Kullandığım Parçalar:

Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
Kullandığım Parçalar
  • Raspberry Pi 3 Model B (sd kart kullanılarak başlatıldı)
  • Raspberry Pi UPS modülü (opsiyonel)
  • 7 inç HDMI LCD Ekran
  • HDMI - HDMI kablosu (bu, ekranla birlikte gelir)
  • USB kabloları
  • 5v 2A güç adaptörü (pi'ye güç sağlamak için)
  • PVC levha [ahşap rengi] (gövde yapmak için)

Adım 2: Raspberry Pi'yi Kurun:

Raspberry Pi'yi kurun
Raspberry Pi'yi kurun

Sanırım pi'yi mükemmel bir şekilde ayarladın, eğer yapmadıysan -

  1. bir SD kart alın - 8 GB'den fazla
  2. en son raspbian iso dosyasını buradan indirin.
  3. etcher kullanarak SD kartı yakmak

(İnsanların bazı kurulum işleri yapmanızı gerektiren diğer yazılımlar hakkında söyleyebileceklerini ancak etcher'ın kullanımı çok kolay ve basit ama etkilidir.)

Sadece SD kartınızı bilgisayara takın, etcher'ı çalıştırın, SD kartın etcher tarafından otomatik olarak seçildiğini göreceksiniz, ardından indirilen iso dosyasını veya imajını seçmek için tıklayın, ardından yazın. Başarılı yazma ve işlemden sonra SD kartı çıkarın ve pi'nize bağlayın, açın ve VOILA!! Yaşıyor.

Adım 3: Devre Şeması:

Devre şeması
Devre şeması

Her şeyi bağlayın ve ahududu pi'yi açın, sadece bağlanıyor, başka bir şey değil.

Pi'nin başladığını göreceksiniz.

Adım 4: Vücut:

Vücut
Vücut
Vücut
Vücut
Vücut
Vücut
Vücut
Vücut

PVC levhayı ekran boyutuna göre kesip vida ile ekledim. Ondan sonra her şeyi bağladım. Sonunda düşmesini önlemek için arkaya başka bir sayfa ekledi (mavi sayfa). Her şey yolundaysa, pi önyüklemesini görmelisiniz (son resim)

Adım 5: Yazılım (Kaynak Kodu):

Program python3 ile yazılmıştır. GUI (Grafik Kullanıcı Arayüzü) için PyQt5 kullandım ve gerçek zamanlı COVID19 verilerini çıkarmak için COVID19Py kitaplığını kullandım. API'yi bizim için kullanıma sunanlara teşekkürler

Bu kadar, şimdi ahududu pi'de Terminal'i açın ve kitaplıkları kurun (her birini kopyalayın ve rpi terminaline yapıştırın).

Kopyalarken $ işaretini yoksay

$ pip3 pyqt5 yükleyin

$ pip3 yükleme istekleri $ pip3 yükleme covid19py

İşte bu, şimdi kodu buradan indirin, aşağıdaki kodu verdim:

"""* Gerçek Zamanlı Covid19 Uluslararası ve Saatli Yerel Takipçi *""" """ ************** Evde Kal Güvende Kal. Yaşa, Yaşa ******** ***** """

"""

yazar: ashraf minhaj posta: [email protected] sitesi: ashrafminhajfb.blogspot.com """

#gerekli kitaplıkları içe aktar

PyQt5. QtCore'dan python3 için PyQt5 #QT GUI Kitaplığını içe aktar #covid19 bilgisi -api import datetime #bunun ne için olduğunu biliyorsun

sınıf CoronaTracker(QWidget):

"""her şeyi içeren ana sınıf""" def _init_(self): """şeyleri başlat"""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #zamanlayıcı eşiğe ulaşırsa - çağrı güncelleme self.ui() #user interface

tanım ui(kendi):

"""Kullanıcı Arayüzü bölümü""" self.setWindowTitle("Covid19 Uluslararası ve Yerel İzleyici") #self.setWindowFlags(Qt. CustomizeWindowHint) #hide başlık çubuğu self.setStyleSheet("Arka plan rengi: siyah") self.setFixedSize(640, 480) #görüntüme göre (x, y) /rpi çözünürlük

#ana etiket

self.banner_label = QLabel(self) self.banner_label.setGeometry(50, 5, 560, 50) #(x_origin, y_origin, Til_x, Til_y) self.banner_label.setText("CORONA Pandemi - COVID19 TRACKER") self.banner_label. setFont(QFont('SansSerif', 20)) self.banner_label.setStyleSheet(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

"""_dünyanın en son verileri_"""

#world label self.w = QLabel(self) self.w.setGeometry(200, 55, 400, 40) self.w.setText("Bir Bakışta Dünya") self.w.setFont(QFont('SansSerif', 18)) self.w.setStyleSheet(""" arka plan rengi: siyah; renk: mavi; kenarlık stili: başlangıç; kenarlık genişliği: 1 piksel """)

#dünya çapında onaylanmış vakalar

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(""" background-color: black; color: orange; border-style: outset; border-width: 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(""" background-color: siyah; color: white; border-style: outset; border-width: 1 piksel """)

#dünya çapında ölümler

self.w_death = QLabel(self) self.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("Ölümler:") self.w_death.setFont(QFont('SansSerif', 18)) self. w_death.setStyleSheet(""" background-color: black; color: red; border-style: outset; border-width: 1px """) #death number 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(""" background-color: siyah; color: white; border-style: outset; border-width: 1 piksel """)

#dünya çapında tedavi

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(""" arka plan rengi: siyah; renk: camgöbeği; kenarlık stili: başlangıç; sınır genişliği: 1 piksel """)

#dünya çapında tedavi edilen sayı

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(""" arka plan rengi: siyah; renk: beyaz; kenarlık stili: başlangıç; kenarlık genişliği: 1 piksel """)

"""_Yerel-Ülkeye göre Kod_"""

#local - Ülke self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("Ülkem: Bangladeş") self.c.setFont(QFont('SansSerif'), 18)) self.c.setStyleSheet(""" background-color: black; color: white; border-style: outset; border-width: 1px """) #local onay vakaları self.c_cases = QLabel(self) self.c_cases.setGeometry(5, 240, 400, 40) self.c_cases.setText("Vakalar:") self.c_cases.setFont(QFont('SansSerif', 18)) self.c_cases.setStyleSheet(""" arkaplan -color: black; color: orange; border-style: outset; border-width: 1px """) #local case 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

#yerel ölümler

self.c_death = QLabel(self) self.c_death.setGeometry(350, 240, 100, 40) self.c_death.setText("Ölümler:") self.c_death.setFont(QFont('SansSerif', 18)) self. c_death.setStyleSheet(""" arka plan rengi: siyah; renk: kırmızı; kenarlık stili: başlangıç; kenarlık genişliği: 1 piksel """)

#yerel ölüm sayısı

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(""" arka plan rengi: siyah; renk: beyaz; border-style: outset; border-width: 1px """) #local tedavi 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 """) #local tedavi edilen sayı 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(""" arka plan rengi: siyah; renk: beyaz; kenarlık stili: başlangıç; kenarlık genişliği: 1 piksel """)

"""_ Saat, Tarih, Saat_"""

#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 forweekday self.weekday = QLabel(self) self.weekday.setGeometry(5, 360, 110, 20) self.weekday.setFont(QFont('SansSerif', 13)) self.weekday.setStyleSheet(""" background-color: siyah; color: white; border-style: outset; border-width: 1px """) #date etiket 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(""" arka plan rengi: siyah; renk: beyaz; kenarlık stili: başlangıç; kenarlık genişliği: 1 piksel """)

#zamanlayıcıyı kontrol et yoksa self.timer.isActive(): #zamanlayıcı durdurulursa (eşiğe ulaşılır) #1 saniye (yaklaşık) veya 1000ms sonra

denemek:

"""veri almaya çalış, yoksa kodu yine de çalıştır""" self.latest = self.covid.getLatest() #gte covid19 son veriler

# 'BD'-Bangladeş, 'IN'-Hindistan vb. ülke koduna göre en son verileri alın

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

hariç:

"""veri alınamadı""" print("İnternet Hatası!")

#ignore'u geç, yine de koş

self.timer.start(1000) #zamanlayıcıyı başlat

self.show() #Kullanıcı Arayüzümüzü göster

def güncelleme (kendi kendine):

"""bilgi içeren etiketleri güncelle"""

"""_Ayıkla Reklam Güncelleme Saat ve Tarih Bilgisi_"""

#saati ve tarihi ayarlayın (değerleri güncelleyin) #değerleri alın ve güncelleyin #daha fazla bilgi için python tarih saat belgelerini okuyun

self.dt = datetime.datetime.now() #tarihsaat verilerini al

self.clock.setText(self.dt.strftime('%X')) self.weekday.setText(self.dt.strftime('%A')) self.date.setText(self.dt.strftime('%) x')) """_covid19 data güncelleme _""" #dünya çapında en son veriler 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['kurtarıldı'])) #local son veriler self.c_cured_num.setText(str(self.local[0]['latest']['kurtarıldı'])) self.c_death_num.setText(str(self.local[0]['son']['ölümler'])) self.c_cases_num.setText(str(self.local[0]['en son']['onaylandı')]))

print("güncelleniyor")

dönüş

def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #uygulamayı eğer _name_ == '_main_': main()

Adım 6: Bitirin:

Bitirmek
Bitirmek

Kodu test ettikten sonra masaya koydum ve ona bir güç kaynağı ayırdım. Böylece şarj olurken çalışabilir. Bu, yük atmada bile çalışabilen ups'leri kullanarak, pi SD kartınıza da uygun bir koruma sağlar.

Nasıl ve kim olursak olalım, ölmek zorundayız. Kendinizi değil, dünyayı düşünün. Sadece yaptıklarımız sayesinde sonsuza kadar yaşayabiliriz, bırakın öyle olsun.

Önerilen: