Turinys:

Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker: 6 žingsniai
Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker: 6 žingsniai

Video: Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker: 6 žingsniai

Video: Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker: 6 žingsniai
Video: COVID-19 and the Balkans: Navigating conspiracy theories and geopolitics 2024, Liepa
Anonim
Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker
Stalinis COVID19 stebėtojas su laikrodžiu! Raspberry Pi Powered Tracker

Mes žinome, kad galime mirti bet kada, net aš galiu mirti rašydamas šį įrašą, juk aš aš, tu, mes visi esame mirtingi. Visas pasaulis sukrėtė dėl COVID19 pandemijos. Mes žinome, kaip to išvengti, bet labas! mes žinome, kaip melstis ir kodėl melstis, ar tai darome kasdien? Ne !! Tiesą sakant, mes pamirštame pagrindinę priežastį, kodėl turėtume daryti dalykus. Taigi, mes žinome, kad higieniškas gyvenimo būdas gali mus išgelbėti, tačiau mes to nedarome tinkamai. Apsvarstykite mano jaunesniojo brolio atvejį, jis nori išeiti žaisti ir net šiuo metu. Turėjau ką nors padaryti, kad nuolat informuočiau visus apie naujausius COVID19 atvejus. Taigi, aš padariau skaitmeninį stalo ekraną, kuriame realiuoju laiku rodomi naujausi COVID19 atvejai. Kadangi tai turi laikrodį, galiu jį pastatyti į vietą, kur visi susirenka ar ateina. Jie matys, kaip skaičiai susilieja, o tai paskatins juos suvokti ir, tikiuosi, visi bus sąmoningi. Taip pat, nes esu kūrėjas ir mėgėjas, tai pasirodė esąs geras projektas, kurį reikia dirbti šioje uždarymo sesijoje.

1 žingsnis: Naudotos dalys:

Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
Dalys, kurias naudoju
  • „Raspberry Pi 3“modelis B (paleistas naudojant SD kortelę)
  • „Raspberry Pi“UPS modulis (neprivaloma)
  • 7 colių HDMI LCD ekranas
  • HDMI į HDMI kabelis (pateikiamas kartu su ekranu)
  • USB kabeliai
  • 5v 2A maitinimo adapteris (maitinti pi)
  • PVC lakštas [medinė spalva] (korpusui gaminti)

2 veiksmas: nustatykite „Raspberry Pi“:

„Raspberry Pi“sąranka
„Raspberry Pi“sąranka

Manau, kad puikiai nustatėte pi, nebent to nepadarėte -

  1. gauti SD kortelę - daugiau nei 8 GB
  2. atsisiųskite naujausią raspbian iso failą iš čia.
  3. Sudeginkite SD kortelę naudodami ėsdintuvą

(Atkreipkite dėmesį, kad žmonės gali pasakyti apie kitą programinę įrangą, kuriai reikia atlikti tam tikrą sąranką, tačiau ėsdintuvą naudoti yra labai paprasta ir paprasta, bet taip pat veiksminga.)

Tiesiog prijunkite SD kortelę prie kompiuterio, paleiskite „etcher“, pamatysite, kad etcher automatiškai pasirenka SD kortelę, tada spustelėkite, kad pasirinktumėte atsisiųstą iso failą ar vaizdą, tada įrašykite. Po sėkmingo rašymo ir apdorojimo atjunkite SD kortelę ir prijunkite ją prie „pi“, įjunkite ir įjunkite „VOILA“!! Tai gyva.

3 žingsnis: grandinės schema:

Grandinės schema
Grandinės schema

Prijunkite viską ir įjunkite raspbery pi, jis tik jungiasi, nieko daugiau.

Pamatysite „pi“paleidimą.

4 žingsnis: kūnas:

Kūnas
Kūnas
Kūnas
Kūnas
Kūnas
Kūnas
Kūnas
Kūnas

Aš supjaustiau PVC lakštą pagal ekrano dydį, tada pridėjau jį varžtais. Po to viską suvedžiau. Pagaliau gale pridėjo kitą lapą, kad jis nenukristų (mėlynas lapas). Jei viskas gerai, turėtumėte pamatyti pi paleidimą (paskutinė nuotrauka)

5 veiksmas: programinė įranga (šaltinio kodas):

Programa parašyta python3. GUI (grafinei vartotojo sąsajai) naudojau „PyQt5“, o realaus laiko COVID19 duomenims išgauti - „COVID19Py“biblioteką. Ačiū vaikinams, kurie mums suteikė API

Tai beveik viskas, dabar atidarykite terminalą raspberry pi ir įdiekite bibliotekas (nukopijuokite kiekvieną iš jų ir įklijuokite į rpi terminalą).

Kopijuodami nepaisykite $ ženklo

$ pip3 įdiegti pyqt5

$ pip3 install request $ pip3 install covid19py

Štai ir viskas, dabar atsisiųskite kodą iš čia, aš pateikiau kodą žemiau:

"" "*„ Covid19 “tarptautinis ir vietinis stebėtojas realiuoju laiku su laikrodžiu*" "" "" ************** ***** """

"""

autorius: ashraf minhaj paštas: [email protected] svetainė: ashrafminhajfb.blogspot.com """

#importuokite reikalingas bibliotekas

importuoti „PyQt5 #QT GUI Library“, skirtą „python3“, iš „PyQt5. QtCore“importuoti „Qt“, „QTimer“#timer atnaujinti iš „PyQt5. QtWidgets“importuoti * #importuoti viską iš „PyQt5. QtGui import QFont #for font import“sys #reikalingas QT programoms #import os import COVID19Py #covid19 informacija -api importavimo data #jūs žinote, kam tai skirta

„CoronaTracker“klasė („QWidget“):

"" "pagrindinė klasė, kurioje yra viskas" "" def _init _ (self): "" "inicijuoti dalykus" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #initialize self.timer.timeout.connect (self.update) #jei laikmatis pasiekia slenkstį - skambinkite atnaujindami self.ui () #vartotojo sąsaja

def ui (save):

"" "Vartotojo sąsajos skyrius" "" self.setWindowTitle ("Covid19 International and Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #hide antraštės juosta self.setStyleSheet ("Background-color: black") self.setFixedSize (640, 480) #pagal mano ekraną (x, y) /rpi raiška

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

"" "_pasaulio naujausi duomenys_" ""

#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText („Pasaulis iš pirmo žvilgsnio“) self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "fono spalva: juoda; spalva: mėlyna; kraštinės stilius: pradžia; kraštinės plotis: 1 taškas" "")

#visame pasaulyje patvirtinti atvejai

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Atvejai:") self.w_cases.setFont (QFont ('SansSerif', 18)) self. w_cases.setStyleSheet ("" "background-color: black; color: orange; border-style: outset; border-width: 1px" "") #bylų numeris 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: black; spalva: balta; border-style: outset; border-width: 1 taškas "" ")

#mirčių visame pasaulyje

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Deaths:") self.w_death.setFont (QFont ('SansSerif', 18)) self. w_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "") #mirties numeris 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: black; spalva: balta; border-style: outset; border-width: 1 taškas "" ")

#pasveikė visame pasaulyje

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 ("" "fono spalva: juoda; spalva: žalsvai mėlyna; border-style: outset; border-width: 1px" "")

#visame pasaulyje išgydytas skaičius

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 ("" "background-color: juoda; spalva: balta; kraštinės stilius: pradinis; kraštinės plotis: 1 taškas "" ")

"" "_ Vietinis pagal šalį kodas_" ""

#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Mano šalis: Bangladešas") self.c.setFont (QFont ('SansSerif', 18)) self.c.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "") #local patvirtinti atvejus self.c_cases = QLabel (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Atvejai:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "background -spalva: juoda; spalva: oranžinė; kraštinės stilius: pradinis; kraštinės plotis: 1 taškas "" ") #vietinių atvejų skaičius 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" "")

#vietos mirtys

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Deaths:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "fono spalva: juoda; spalva: raudona; kraštinės stilius: pradžia; kraštinės plotis: 1 taškas" "")

#vietinių mirčių skaičius

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 ("" "background-color: juoda; spalva: balta; kraštinės stilius: pradžia; kraštinės plotis: 1 taškas "" ") #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 ("" "fono spalva: juoda; spalva: žydra; border-style: outset; border-width: 1px "" ") #local cured number 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 ("" "fono spalva: juoda; spalva: balta; border-style: outset; border-width: 1px" "")

"" "_ Laikas, data, laikrodis_" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "background- spalva: juoda; spalva: balta; kraštinės stilius: pradžia; kraštinės plotis: 1 taškas "" ") #etiketė savaitės dienai 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 ("" "fono spalva: juoda; spalva: balta; border-style: outset; border-width: 1px" "")

#patikrinkite laikmatį, jei ne savarankiškai. timer.isActive (): #jei laikmatis sustabdytas (pasiekta riba) #po 1 sekundės (maždaug) arba 1000 ms

bandyti:

"" "pabandykite gauti duomenis, kitaip vis tiek paleiskite kodą" "" self.latest = self.covid.getLatest () #gte covid19 naujausi duomenys

#gauti naujausius duomenis pagal šalies kodą „BD“-Bangladešas, „IN“-Indija ir kt

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

išskyrus:

"" "nepavyko gauti duomenų" "" spausdinti ("Interneto klaida !!")

praeiti #ignore, vis tiek bėk

self.timer.start (1000) #paleiskite laikmatį

self.show () #show mūsų vartotojo sąsaja

def atnaujinimas (savarankiškai):

"" "atnaujinti etiketes su informacija" ""

"" "_ Ištraukti skelbimą Atnaujinti informaciją apie laiką ir datą_" ""

#nustatyti laikrodį ir datą (atnaujinti reikšmes)

self.dt = datetime.datetime.now () #get datetime duomenys

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('%) "])) self.w_cured_num.setText (str (self.latest ['susigrąžintas])) #local naujausi duomenys self.c_cured_num.setText (str (self.local [0] [' paskutinis '] [' susigrąžintas '])) self.c_death_num.setText (str (self.local [0] ['paskutinis'] ['mirčių'])) self.c_cases_num.setText (str (self.local [0] ['paskutinis'] ['patvirtintas')]))

spausdinti („atnaujinti“)

grįžti

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #paleiskite programą, jei _name_ == '_main_': main ()

6 žingsnis: Užbaikite:

Pabaigti
Pabaigti

Išbandęs kodą, įdėjau jį į stalą ir paskyriau jam maitinimo šaltinį. Kad jis galėtų veikti įkrovimo metu. Naudojant pakilimus, tai gali veikti net ir mažinant apkrovą, taip pat tinkama apsauga suteikiama „pi pi“SD kortelei.

Nesvarbu, kokie ir kokie mes esame, turime mirti. Negalvokime apie save, galvokime apie pasaulį. Amžinai galime gyventi tik savo darbais, tegul taip būna.

Rekomenduojamas: