Mündəricat:

Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker: 6 addım
Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker: 6 addım

Video: Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker: 6 addım

Video: Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker: 6 addım
Video: SKR 1.4 - TMC2209 v1.2 2024, Noyabr
Anonim
Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker
Saatlı Masaüstü COVID19 İzləyicisi! Raspberry Pi Powered Tracker

Bilirik ki, hər an ölə bilərik, hətta bu yazını yazarkən mən də ölə bilərəm, axı mən, sən, hamımız fani. COVID -19 pandemiyası səbəbindən bütün dünya sarsıldı. Bunun qarşısını necə alacağımızı bilirik, amma hey! namaz qılmağı və niyə dua etməyi bilirik, hər gün edirikmi? Yox!! Əslində, bir şey etməməyimizin səbəbini unuduruq. Beləliklə, gigiyenik bir həyat tərzinin bizi xilas edə biləcəyini bilirik, amma bunu düzgün etmirik. Kiçik qardaşımın vəziyyətini nəzərdən keçirin, hətta bu vaxtda çıxıb oynamaq istəyir. Hamıya ardıcıl olaraq son COVID19 hadisələri haqqında məlumat vermək üçün bir şey etməliydim. Beləliklə, ən son COVID19 hadisələrini real vaxtda göstərən bir rəqəmsal masa ekranı hazırladım. Bunun saatı olduğu üçün onu hər kəsin toplaşdığı və ya gəldiyi yerə qoya bilərəm. Nömrələrin toplandığını görəcəklər ki, bu da onlarda məlumatlılığa səbəb olacaq və inşallah hər kəs şüurlu olacaq. Həm də bir istehsalçı və həvəskar olduğum üçün, bu kilidləmə sessiyasında işləmək üçün yaxşı bir layihə olduğu ortaya çıxdı.

Addım 1: İstifadə etdiyim hissələr:

İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
İstifadə etdiyim hissələr
  • Raspberry Pi 3 Model B (sd kart istifadə edərək açıldı)
  • Raspberry Pi UPS modulu (isteğe bağlı)
  • 7 düymlük HDMI LCD Ekran
  • HDMI - HDMI kabeli (bu ekranla gəlir)
  • USB kabellər
  • 5v 2A güc adapteri (pi -ni gücləndirmək üçün)
  • PVC təbəqə [taxta rəng] (bədəni düzəltmək üçün)

Addım 2: Raspberry Pi qurun:

Raspberry Pi qurmaq
Raspberry Pi qurmaq

Deyəsən, pi -ni mükəmməl qurmusunuz, əgər etməsəniz -

  1. bir SD kart əldə edin - 8 GB -dan çox
  2. ən son raspbian iso faylını buradan yükləyin.
  3. Etcher istifadə edərək SD kartı yandırın

(Diqqət yetirin ki, insanlar bir şey qurmağı tələb edən başqa bir proqram haqqında deyə bilər, amma etcherin istifadəsi çox sadə və sadə, lakin çox təsirlidir.)

Sadəcə SD kartınızı kompüterə bağlayın, etcher işlədin, SD kartın avtomatik olaraq etcher tərəfindən seçildiyini görəcəksiniz, sonra yüklənmiş iso faylını və ya şəkli seçmək üçün vurun, sonra yandırın. Uğurlu yazma və emaldan sonra SD kartı ayırın və pi -yə qoşun, gücə və VOILA -ya qoşun !! O canlıdır.

Addım 3: Dövrə Şeması:

Dövrə Diaqramı
Dövrə Diaqramı

Hər şeyi birləşdirin və moruq pi -ni işə salın, sadəcə birləşdirir, başqa heç nə.

Pi açılışını görəcəksiniz.

Addım 4: Bədən:

Bədən
Bədən
Bədən
Bədən
Bədən
Bədən
Bədən
Bədən

Ekran ölçüsünə görə bir PVC təbəqə kəsdim, sonra vintlər istifadə edərək əlavə etdim. Bundan sonra hər şeyi bağladım. Nəhayət düşməməsi üçün arxasına başqa bir təbəqə əlavə etdi (mavi təbəqə). Hər şey qaydasındadırsa, pi açılışını görməlisiniz (son şəkil)

Addım 5: Proqram təminatı (Mənbə Kodu):

Proqram python3 -də yazılmışdır. GUI (Qrafik İstifadəçi İnterfeysi) üçün PyQt5 istifadə etdim və real vaxt COVID19 məlumatlarını çıxarmaq üçün COVID19Py kitabxanasından istifadə etdim. API -ni bizim üçün əlçatan edən uşaqlara təşəkkür edirik

Bu çox vacibdir, indi moruq pi -də Terminalı açın və kitabxanaları quraşdırın (hər birini kopyalayın və rpi terminalına yapışdırın).

Kopyalayarkən $ işarəsinə məhəl qoymayın

$ pip3 pyqt5 quraşdırın

$ pip3 yükləmə tələbləri $ pip3 quraşdırma covid19py

Budur, indi kodu buradan yükləyin, aşağıdakı kodu verdim:

"" "*Realtime Covid19 Saatlı Beynəlxalq və Yerli İzləyici*" "" "" ************** Evdə Qalın Təhlükəsiz qalın. Yaşayın, Yaşasın ******** ***** """

"""

müəllif: ashraf minhaj mail: [email protected] site: ashrafminhajfb.blogspot.com """

#lazımlı kitabxanaları idxal edin

PyQt5 -dən Python3 üçün PyQt5 #QT GUI Kitabxanasını idxal edin Qt, QTimer #timer PyQt5 -dən yeniləmək üçün Qt, QTimer #timer idxal edin * #hər şeyi PyQt5 -dən idxal edin. QtGui idxal QFont #şriftlər idxal etmək üçün sys #QT tətbiqləri üçün lazımlıdır #idxal os idxal COVID19Py #covid19 məlumatı -api import datetime #bunun nə üçün olduğunu bilirsiniz

sinif CoronaTracker (QWidget):

"" "hər şeyi ehtiva edən əsas sinif" "" _ _ _ (özünü): "" "işləri başlat" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #self.timer.timeout.connect (self.update) başlayın #timer eşikə çatdıqda - self.ui yeniləməsinə zəng edin () #istifadəçi interfeysi

def ui (özünü):

"" "İstifadəçi Arayüzü bölməsi" "" self.setWindowTitle ("Covid19 Beynəlxalq və Yerli İzləyicisi") #self.setWindowFlags (Qt. CustomizeWindowHint) #başlıq çubuğunu gizlə self.setStyleSheet ("Arxa fon rəngi: qara") self.setFixedSize (640, 480) #göstəricim (x, y) /rpi qətnaməsinə görə

#əsas etiket

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 ("" "fon rəngi: qara; rəng: ağ; sərhəd tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

"" "_ dünyanın son məlumatları _" ""

#world etiketi self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("Bir baxışda Dünya") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "fon rəngi: qara; rəng: mavi; haşiyə tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

#dünyada təsdiqlənmiş hallar

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Davalar:") self.w_cases.setFont (QFont ('SansSerif', 18)) özünü. w_cases.setStyleSheet ("" "fon rəngi: qara; rəng: narıncı; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1px" "") #kassa nömrəsi self.w_cases_num = QLabel (özünü) self.w_cases_num.setGeometry (110), 90, 100, 40) self.w_cases_num.setFont (QFont ('SansSerif', 18)) self.w_cases_num.setStyleSheet ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1 piksel "" ")

#dünya ölümü

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Ölümlər:") self.w_death.setFont (QFont ('SansSerif', 18)) özünü. w_death.setStyleSheet ("" "fon rəngi: qara; rəng: qırmızı; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1px" "") #ölüm sayı self.w_death_num = QLabel (öz) özünü.w_death_num.setGeometri (460), 90, 100, 40) self.w_death_num.setFont (QFont ('SansSerif', 18)) self.w_death_num.setStyleSheet ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1 piksel "" ")

#dünya müalicəsi

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Müalicə:") self.w_cured.setFont (QFont ('SansSerif', 18)) özünü. w_cured.setStyleSheet ("" "fon rəngi: qara; rəng: mavi; sərhəd tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

#dünya miqyasında müalicə olunan nömrə

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 ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd eni: 1 piksel "" ")

"" "_ Yerli Ölkə Kodu _" ""

#local - Ölkə özünü.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Mənim Ölkəm: Banqladeş") self.c.setFont (QFont ('SansSerif'), 18)) self.c.setStyleSheet ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1 piksel" "") #yerli halları təsdiqləyin self.c_cases = QLabel (özünü) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Cases:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "fon -rəng: qara; rəng: narıncı; haşiyə tərzi: başlanğıc; sərhəd genişliyi: 1px "" ") #yerli halların sayı 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 ("" "fon rəngi: qara; rəng: ağ; sərhəd tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

#yerli ölümlər

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Ölümlər:") self.c_death.setFont (QFont ('SansSerif', 18)) özünü. c_death.setStyleSheet ("" "fon rəngi: qara; rəng: qırmızı; haşiyə tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

#yerli ölüm sayı

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 ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; haşiyə genişliyi: 1px "" ") #yerli müalicə öz-özünə setText ("Cured:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "fon rəngi: qara; rəng: mavi; sərhəd tərzi: başlanğıc; sərhəd genişliyi: 1px "" ") #yerli müalicə nömrəsi 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 ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

"" "_ Zaman, Tarix, Saat _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "fon- rəng: qara; rəng: ağ; haşiyə tərzi: başlanğıc; haşiyə genişliyi: 1px "" ") #iş günü üçün etiket.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) özünü.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "fon rəngi: qara; rəng: ağ; sərhəd tərzi: başlanğıc; sərhəd eni: 1 piksel" "") #tarix 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 ("" "fon rəngi: qara; rəng: ağ; haşiyə tərzi: başlanğıc; sərhəd eni: 1 piksel" "")

#self.timer.isActive () deyilsə, zamanlayıcıyı yoxlayın: #əgər taymer dayandırılıbsa (eşikə çatılıb) #1 saniyədən sonra (təxminən) və ya 1000 ms

cəhd edin:

"" "məlumat əldə etməyə çalışın, əks halda kodu işə salın" "" self.latest = self.covid.getLatest () #gte covid19 ən son məlumatlar

#BD'-Banqladeş, 'IN'-Hindistan və s ölkə kodu ilə ən son məlumatları əldə edin

self.local = self.covid.getLocationByCountryCode ('BD', zaman çizelgeleri = Yanlış) #print (self.local) #print (self.latest)

istisna olmaqla:

"" "məlumat əldə edə bilmədi" "" çap et ("İnternet Xətası !!")

#ignore keç, hər halda qaç

self.timer.start (1000) #taymerə başla

self.show () #İstifadəçi İnterfeysimizi göstərin

def yeniləməsi (özünü):

"" "məlumatları olan etiketləri yeniləyin" ""

"" "_Elanın Yeniləmə Zamanı və Tarix Məlumatı çıxarın _" ""

#saat və tarix vaxtını təyin edin (dəyərləri yeniləyin) #dəyərləri alın və yeniləyin #daha çox bilmək üçün python datetime sənədlərini oxuyun

self.dt = datetime.datetime.now () #datetime məlumatlarını əldə edin

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('%) x ')) "" "_ covid19 məlumatlarını yeniləyin_" "" #dünya miqyasında ən son məlumatlar self.w_cases_num.setText (str (self.latest [' təsdiqləndi '])) self.w_death_num.setText (str (öz -özünə ən son [' ölümlər '')])) self.w_cured_num.setText (str (self.latest ['bərpa' '))) #yerli son məlumatlar self.c_cured_num.setText (str (self.local [0] [' ən son '] [' bərpa '])) self.c_death_num.setText (str (self.local [0] ['ən son'] ['ölümlər'])) self.c_cases_num.setText (str (self.local [0] ['ən son'] ['təsdiqləndi' ')]))

çap ("yenilənir")

qayıt

def main (): app = QApplication (sys.argv) win = CoronaTracker () #sys.exit (app.exec ()) #instipi _name_ == '_main_' olarsa çalıştırın: main ()

Addım 6: Bitirin:

Bitirmək
Bitirmək

Kodu sınadıqdan sonra onu masaya qoydum və bunun üçün bir enerji mənbəyi ayırdım. Beləliklə, şarj edərkən işləyə bilər. Yüksəkliklərdən istifadə edərək, hətta yük atma zamanı da işləyə bilər, bu da ur pi SD kartına uyğun bir qoruma verir.

Necə və kim olmağımızdan asılı olmayaraq ölməliyik. Gəlin özünüzü düşünməyək, dünya haqqında düşünək. Yalnız əməllərimizlə əbədi yaşaya bilərik, qoy belə olsun.

Tövsiyə: