Mundarija:

Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi: 6 qadam
Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi: 6 qadam

Video: Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi: 6 qadam

Video: Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi: 6 qadam
Video: SKR 1.4 - TMC2209 v1.2 2024, Iyul
Anonim
Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi
Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi

Biz bilamizki, biz xohlagan vaqtda o'lishimiz mumkin, hatto men bu xabarni yozayotganda ham o'lishim mumkin, axir men, siz, biz hammamiz o'likmiz. COVID -19 pandemiyasi tufayli butun dunyo larzaga keldi. Biz buni qanday oldini olishni bilamiz, lekin salom! biz qanday ibodat qilishni va nima uchun ibodat qilishni bilamiz, buni har kuni qilamizmi? Yo'q !! Aslida, biz nima uchun nima qilishimiz kerakligining asosiy sababini unutamiz. Shunday qilib, gigienik turmush tarzi bizni qutqarishi mumkinligini bilamiz, lekin biz buni to'g'ri bajarmaymiz. Kichik akamning ishini ko'rib chiqing, u shu vaqtda ham tashqariga chiqishni va o'ynashni xohlaydi. Men hammaga COVID -19 ning so'nggi holatlari to'g'risida doimiy ravishda ma'lumot berish uchun biror narsa qilishim kerak edi. Shunday qilib, men COVID19 ning so'nggi holatlarini real vaqtda ko'rsatadigan raqamli stol ekranini yaratdim. Bu soat bor ekan, men uni hamma yig'iladigan yoki keladigan joyga qo'yishim mumkin. Ular raqamlarning qo'shilishini ko'rishadi, bu ularning xabardorligini oshiradi va umid qilamanki, hamma ongli bo'ladi. Men ishlab chiqaruvchi va havaskor bo'lganim uchun, bu blokirovka sessiyasida ishlash yaxshi loyiha bo'lib chiqdi.

1 -qadam: Men ishlatgan qismlar:

Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
Men ishlatgan qismlar
  • Raspberry Pi 3 Model B (sd -karta yordamida yuklangan)
  • Raspberry Pi UPS moduli (ixtiyoriy)
  • 7 dyuymli HDMI LCD displey
  • HDMI -HDMI kabeli (bu ekran bilan birga keladi)
  • USB kabellari
  • 5V 2A quvvat adapteri (pi quvvatlanishi uchun)
  • PVX varaq [yog'och rang] (tanani yasash uchun)

2 -qadam: Raspberry Pi -ni o'rnating:

Raspberry Pi -ni sozlash
Raspberry Pi -ni sozlash

O'ylaymanki, siz pi -ni juda yaxshi o'rnatgansiz, agar bo'lmasa -

  1. SD -kartani oling - 8 GB dan ortiq
  2. bu yerdan eng so'nggi raspbian iso faylini yuklab oling.
  3. Etcher yordamida SD -kartani yoqing

(E'tibor bering, odamlar boshqa dasturiy ta'minot haqida gapirishlari mumkin, bu esa sizdan sozlashni talab qiladi, lekin etcherdan foydalanish juda oson va sodda, lekin juda samarali.)

SD -kartangizni kompyuterga ulang, etcher -ni ishga tushiring, shunda siz SD -kartani etcher avtomatik ravishda tanlaganini ko'rasiz, so'ngra yuklangan izo fayl yoki tasvirni tanlash uchun bosing, keyin yoqib yuboring. Muvaffaqiyatli yozish va qayta ishlashdan so'ng, SD -kartani ajratib oling va uni pi -ga ulang, uni quvvatlantiring va VOILA !! Bu tirik.

3 -qadam: O'chirish diagrammasi:

O'chirish diagrammasi
O'chirish diagrammasi

Hamma narsani ulang va raspbery pi -ni yoqing, u shunchaki ulanadi, boshqa hech narsa yo'q.

Siz pi yuklanishini ko'rasiz.

4 -qadam: tanasi:

Tana
Tana
Tana
Tana
Tana
Tana
Tana
Tana

Men PVX varaqni displey o'lchamiga qarab kesib tashladim, keyin vintlar yordamida qo'shdim. Shundan so'ng men hamma narsani sim bilan bog'ladim. Oxir -oqibat, uning tushishiga yo'l qo'ymaslik uchun yana bir varaq qo'shildi (ko'k varaq). Agar hamma narsa tartibda bo'lsa, siz pi yuklanishini ko'rishingiz kerak (oxirgi rasm)

5 -qadam: Dasturiy ta'minot (manba kodi):

Dastur python3 da yozilgan. GUI (Grafik foydalanuvchi interfeysi) uchun men PyQt5 -dan foydalanardim va real vaqtda COVID19 ma'lumotlarini olish uchun men COVID19Py kutubxonasidan foydalandim. API -ni bizga taqdim etgan yigitlarga rahmat

Raspberry pi -da terminalni oching va kutubxonalarni o'rnating (ularning har birini nusxa ko'chiring va rpi terminaliga joylashtiring).

Nusxalash paytida $ belgisiga e'tibor bermang

$ pip3 pyqt5 ni o'rnating

$ pip3 o'rnatish so'rovi $ pip3 o'rnatish covid19py

Mana, kodni bu erdan yuklab oling, men quyidagi kodni berdim:

"" "*Haqiqiy vaqtda Covid19 xalqaro va mahalliy soat kuzatuvchisi*" "" "" ************** Xavfsiz qoling. Jonli, jonli bo'lsin ******** ***** """

"""

muallif: ashraf minhaj pochta: [email protected] sayti: ashrafminhajfb.blogspot.com """

#kerakli kutubxonalarni import qilish

PyQt5. QtCore dan Python3 uchun PyQt5 #QT GUI kutubxonasini import Qt, QTimer #taymerini PyQt5. QtWidgets -dan yangilash uchun import QT, QTimer #taymerini import qilish #covid19 ma'lumoti -api import datetime #bu nima uchun kerakligini bilasiz

CoronaTracker klassi (QWidget):

"" "hamma narsani o'z ichiga oluvchi asosiy sinf" "" def _init _ (o'zini): "" "narsalarni ishga tushirish" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #self.timer.timeout.connect -ni ishga tushiring (self.update) #agar taymer chegaraga yetsa - self.ui yangilanishini qo'ng'iroq qiling () #foydalanuvchi interfeysi

def ui (o'zini):

"" "Foydalanuvchi interfeysi bo'limi" "" self.setWindowTitle ("Covid19 International va Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #sarlavha satrini yashirish self.setStyleSheet ("Fon rangi: qora") self.setFixedSize (640, 480) #displeyim (x, y) /rpi o'lchamlari bo'yicha

#asosiy yorliq

self.banner_label = QLabel (self) self.banner_label.setGeometriya (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 rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel" "")

"" "_ dunyodagi so'nggi ma'lumotlar _" ""

#world yorlig'i self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("Bir qarashda dunyo") self.w.setFont (QFont ('SansSerif'), 18)) self.w.setStyleSheet ("" "fon rangi: qora; rang: ko'k; chegara uslubi: boshlanish; chegara kengligi: 1 piksel" "")

#butun dunyoda tasdiqlangan holatlar

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Vaziyatlar:") self.w_cases.setFont (QFont ('SansSerif', 18)) o'zini. w_cases.setStyleSheet ("" "fon rangi: qora; rang: to'q sariq; chegara uslubi: boshlanish; chegara kengligi: 1px" "") #korpuslar soni self.w_cases_num = QLabel (o'zini) o'zini.w_cases_num.setGeometriya (110), 90, 100, 40) self.w_cases_num.setFont (QFont ('SansSerif', 18)) self.w_cases_num.setStyleSheet ("" "fon rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel "" ")

#dunyo o'limlari

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("O'limlar:") self.w_death.setFont (QFont ('SansSerif', 18)) o'zini. w_death.setStyleSheet ("" "fon rangi: qora; rang: qizil; chegara uslubi: boshlanish; chegara kengligi: 1px" "") #o'lim raqami self.w_death_num = QLabel (o'zini) o'zini.w_death_num.setGeometriya (460), 90, 100, 40) self.w_death_num.setFont (QFont ('SansSerif', 18)) self.w_death_num.setStyleSheet ("" "fon rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel "" ")

#butun dunyo bo'ylab davolandi

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Davolangan:") self.w_cured.setFont (QFont ('SansSerif', 18)) o'zini. w_cured.setStyleSheet ("" "fon rangi: qora; rang: ko'k, chegara uslubi: boshlanish; chegara kengligi: 1 piksel" "")

#butun dunyo bo'ylab davolangan raqam

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 rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel "" ")

"" "_ Mahalliy-mamlakat kodi _" ""

#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Mening mamlakatim: Bangladesh") self.c.setFont (QFont ('SansSerif' '), 18)) self.c.setStyleSheet ("" "fon rangi: qora; rang: oq; chegara uslubi: boshlang'ich; chegara kengligi: 1 piksel" "") #mahalliy holatlarni tasdiqlash self.c_cases = QLabel (o'zini) 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) -rang: qora; rang: to'q sariq; chegara uslubi: boshlang'ich; chegara kengligi: 1px "" ") #mahalliy holatlar soni 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 rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel" "")

#mahalliy o'limlar

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("O'limlar:") self.c_death.setFont (QFont ('SansSerif', 18)) o'zini. c_death.setStyleSheet ("" "fon rangi: qora; rang: qizil; chegara uslubi: boshlanish; chegara kengligi: 1 piksel" "")

#mahalliy o'limlar soni

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 rangi: qora; rang: oq; chegara uslubi: boshlang'ich; chegara-kenglik: 1px "" ") #mahalliy tuzalib ketgan o'z-o'zidan. c_cured = QLabel (o'zini) o'z-o'zidan. setText ("Davolangan:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "fon rangi: qora; rang: ko'k; chegara uslubi: boshlanish; chegara kengligi): 1px "" ") #mahalliy tuzatilgan raqam 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 rangi: qora; rang: oq; chegara uslubi: boshi; chegara kengligi: 1 piksel" "")

"" "_ Vaqt, sana, soat _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "fon- rang: qora; rang: oq; chegara uslubi: boshlang'ich; chegara-kenglik: 1px "" ") #ish kuni o'zini belgilash.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) o'zini.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "fon rangi: qora; rang: oq; chegara uslubi: boshlanish; chegara kengligi: 1 piksel" "") #date 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 rangi: qora; rang: oq; chegara uslubi: boshlanish; chegara kengligi: 1 piksel" "")

#bo'lmasa, taymerni tekshiring.

harakat qilib ko'ring:

"" "ma'lumotlarni olishga harakat qiling, aks holda kodni ishlating" "" self.latest = self.covid.getLatest () #gte covid19 oxirgi ma'lumotlar

#BD-Bangladesh, IN-Hindiston va boshqalar mamlakat kodlari bo'yicha so'nggi ma'lumotlarni oling

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

bundan tashqari:

"" "ma'lumotlarni ololmadi" "" chop eting ("Internetda xato !!")

#ignore -dan o'ting, baribir yuguring

self.timer.start (1000) #taymerni boshlang

self.show () #shou bizning foydalanuvchi interfeysi

def yangilanishi (o'zini):

"" "yorliqlarni ma'lumot bilan yangilang" ""

"" "_E'lonni yangilash vaqti va sanasi haqida ma'lumot _" ""

#soat va sana vaqtini o'rnating (qiymatlarni yangilang) #qiymatlarni oling va yangilang #ko'proq bilish uchun python datetime hujjatlarini o'qing

self.dt = datetime.datetime.now () #datetime ma'lumotlarini olish

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('%) x ')) "" "_ covid19 ma'lumotlarini yangilash_" "" #jahon miqyosidagi so'nggi ma'lumotlar self.w_cases_num.setText (str (self.latest

chop etish ("yangilanmoqda")

qaytish

def main (): app = QApplication (sys.argv) win = CoronaTracker () #sys.exitni o'chirish (app.exec ()) #dasturni ishga tushirish _name_ == '_main_': main ()

6 -qadam: tugatish:

Yakunlash
Yakunlash

Kodni sinab ko'rganimdan so'ng, men uni stolga qo'ydim va unga quvvat manbasini ajratdim. Shunday qilib, u zaryad olayotganda ishlashi mumkin. UPS-ni ishlatganda, bu yukni tushirishda ham ishlashi mumkin, bu ur-SD-kartaga ham munosib himoya beradi.

Qanday bo'lmasin va kim bo'lishimizdan qat'i nazar, biz o'lishimiz kerak. Keling, o'zingiz haqida emas, dunyo haqida o'ylaylik. Biz faqat ishlarimiz orqali abadiy yashay olamiz, shunday bo'lsin.

Tavsiya: