Mundarija:
- 1 -qadam: Men ishlatgan qismlar:
- 2 -qadam: Raspberry Pi -ni o'rnating:
- 3 -qadam: O'chirish diagrammasi:
- 4 -qadam: tanasi:
- 5 -qadam: Dasturiy ta'minot (manba kodi):
- 6 -qadam: tugatish:
Video: Ish stoli COVID19 Tracker soat bilan! Raspberry Pi bilan ishlaydigan kuzatuvchi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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:
- 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:
O'ylaymanki, siz pi -ni juda yaxshi o'rnatgansiz, agar bo'lmasa -
- SD -kartani oling - 8 GB dan ortiq
- bu yerdan eng so'nggi raspbian iso faylini yuklab oling.
- 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:
Hamma narsani ulang va raspbery pi -ni yoqing, u shunchaki ulanadi, boshqa hech narsa yo'q.
Siz pi yuklanishini ko'rasiz.
4 -qadam: tanasi:
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:
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:
Nutq uchun matn ARMbasic bilan ishlaydigan UChip va boshqa ARMbasic bilan ishlaydigan SBC -ni bosing: 3 qadam
Nutq uchun matn ARMbasic bilan ishlaydigan UChip va boshqa ARMbasic bilan ishlaydigan SBC -ni bosing: Kirish: Xayrli kun. Mening ismim Tod. Men aerokosmik va mudofaa sohasidagi professionalman, lekin u ham yuragida g'ayratli. Ilhom: BBS, 8-bitli mikrokontrollerlar, Kaypro/Commodore/Tandy/TI-994A shaxsiy kompyuterlari davridan kelib chiqqan holda, R
Samytronix Pi: DIY Raspberry Pi ish stoli kompyuter (kirish mumkin GPIO bilan): 13 qadam (rasmlar bilan)
Samytronix Pi: DIY Raspberry Pi ish stoli kompyuteri (kirish mumkin GPIO bilan): Ushbu loyihada biz Raspberry Pi ish stoli kompyuterini yaratamiz, uni men Samytronix Pi deb atayman. Bu ish stoli kompyuteri asosan 3 mm lazerli kesilgan akril varaqdan qilingan. Samytronix Pi HD monitor, karnay va eng muhimi kirish bilan jihozlangan
Ish stoli qurilmasi - sozlanadigan ish stoli yordamchisi: 7 qadam (rasmlar bilan)
Ish stoli qurilmasi - sozlanadigan ish stoli yordamchisi: Ish stoli qurilmasi - bu shaxsiy shaxsiy ish stoli yordamchisi bo'lib, u internetdan yuklab olingan har xil ma'lumotlarni ko'rsatishi mumkin. Bu qurilma men o'qituvchi tomonidan boshqariladigan Berri kollejidagi CRT 420 - Maxsus mavzular sinfiga mo'ljallangan va qurilgan
Ovozli vizualizatsiya, sensorli tugmalar va NFC bilan ish stoli Bluetooth dinamik: 24 qadam (rasmlar bilan)
Ovozli vizualizatsiya, sensorli tugmalar va NFC bilan ish stoli Bluetooth dinamik: Salom! Bu yo'riqnomada men sensorli tugmalar va NFC bilan ajoyib ovozli vizualizatsiyaga ega bo'lgan bu Bluetooth ish stoli dinamikini qanday yaratganimni ko'rsataman. NFC yoqilgan qurilmalar bilan osongina tegish mumkin. Hech qanday jismoniy tugma yo'q
Ish stoli kompyuter va 3D skaneri Arduino bilan: 12 qadam (rasmlar bilan)
Ish stoli kompyuter tomografiyasi va 3D skaneri Arduino yordamida: kompyuter tomografiyasi (KT) yoki kompyuter aksiyali tomografiyasi (CAT) ko'pincha tanani tasvirlash bilan bog'liq, chunki bu klinisyenlarga hech qanday jarrohlik amaliyotisiz bemorning anatomik tuzilishini ko'rishga imkon beradi. Insonning ichki qiyofasini tasavvur qilish uchun