Мазмуну:

Жумуш үстөлү COVID19 Саат менен! Raspberry Pi Powered Tracker: 6 кадам
Жумуш үстөлү COVID19 Саат менен! Raspberry Pi Powered Tracker: 6 кадам

Video: Жумуш үстөлү COVID19 Саат менен! Raspberry Pi Powered Tracker: 6 кадам

Video: Жумуш үстөлү COVID19 Саат менен! Raspberry Pi Powered Tracker: 6 кадам
Video: Садыр Жапаров совершил малый хадж в Мекке 2024, Ноябрь
Anonim
Жумуш үстөлү COVID19 Саат менен! Raspberry Pi менен иштөөчү трекер
Жумуш үстөлү COVID19 Саат менен! Raspberry Pi менен иштөөчү трекер

Биз каалаган убакта өлө аларыбызды билем, бул постту жазып жатканда мен да өлүшүм мүмкүн, акыры мен, сен, биз баарыбыз өлөбүз. Бүткүл дүйнө COVID19 пандемиясынан улам титиреп кетти. Биз муну кантип алдын алууну билебиз, бирок эй! биз тиленүүнү жана эмне үчүн тиленүүнү билебиз, биз муну күн сайын жасайбызбы? Жок!! Чынында, биз эмне үчүн эмне кылышыбыз керек экенин түпкү себебин унутуп калабыз. Ошентип, биз билебиз, гигиеналык жашоо образы бизди куткарат, бирок биз муну туура жасай албайбыз. Инимдин маселесин карап көрөлү, ал ушул убакта да сыртка чыгып ойногусу келет. Бардыгына COVID19дун акыркы учурлары жөнүндө ырааттуу маалымат берүү үчүн бир нерсе кылышым керек болчу. Ошентип, мен реалдуу убакытта COVID19дун акыркы учурларын көрсөтүүчү экрандын столун жасадым. Бул саат болгондон кийин, мен аны баары чогулган же келген жерге коё алам. Алар сандардын кошулганын көрүшөт, бул алардын аң -сезимин жогорулатат жана үмүт ар бир адам аң -сезимдүү болот. Ошондой эле мен жаратуучу жана хоббист болгондуктан, бул блокировка сессиясында иштөө үчүн жакшы долбоор болуп чыкты.

1 -кадам: Мен колдонгон бөлүктөр:

Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
Мен колдонгон бөлүктөр
  • Raspberry Pi 3 Model B (SD карта менен жүктөлгөн)
  • Raspberry Pi UPS модулу (милдеттүү эмес)
  • 7 дюймдук HDMI LCD экраны
  • HDMI - HDMI кабели (бул экран менен келет)
  • USB кабелдери
  • 5v 2A кубат адаптери (пи үчүн)
  • ПВХ барагы [жыгач түсү] (корпусту жасоо үчүн)

2 -кадам: Raspberry Pi орнотуу:

Raspberry Pi орнотуу
Raspberry Pi орнотуу

Менин оюмча, сиз пиди эң сонун орноттуңуз, эгер сизде жок болсо -

  1. SD картасын алуу - 8 ГБ ашык
  2. бул жерден акыркы raspbian iso файлын жүктөп алыңыз.
  3. SD картасын etcher менен өрттөңүз

(Көңүл бургула, адамдар башка программалык камсыздоо жөнүндө айта алышат, бул сизден кандайдыр бир жөндөөлөрдү талап кылат, бирок этчерди колдонуу оңой жана жөнөкөй, бирок эффективдүү.)

SD картаңызды компьютерге туташтырыңыз, etcherди иштетиңиз, сиз SD картаны этчер тарабынан автоматтык түрдө тандалып алынганын көрөсүз, анан жүктөлгөн изо файлды же сүрөттү тандоо үчүн чыкылдатып, анан күйгүзүңүз. SD картасын ийгиликтүү жазуудан жана иштетүүдөн кийин, аны пиңизге туташтырыңыз, аны кубаттаңыз жана VOILA !! Бул тирүү.

3 -кадам: Райондук диаграмма:

Райондук диаграмма
Райондук диаграмма

Баарын туташтырып, малина пи күйгүзүңүз, ал жөн эле туташып турат, башка эч нерсе жок.

Сиз pi жүктөлүп жатканын көрөсүз.

4 -кадам: Дене:

Дене
Дене
Дене
Дене
Дене
Дене
Дене
Дене

Мен PVC баракты дисплейдин өлчөмүнө жараша кесип, анан бурамалар менен кошуп койгом. Андан кийин мен баарын зым менен байланыштырдым. Акыры кулап кетпеши үчүн дагы бир барак кошулду (көк барак). Эгерде баары ойдогудай болсо, pi жүктөлүшүн көрүшүңүз керек (акыркы сүрөт)

5 -кадам: Программалык камсыздоо (Булак коду):

Программа python3 тилинде жазылган. GUI (Графикалык колдонуучу интерфейси) үчүн мен PyQt5ти колдондум, ал эми реалдуу убакытта COVID19 маалыматын алуу үчүн мен COVID19Py китепканасын колдондум. API'ни биз үчүн жеткиликтүү кылган балдарга рахмат

Бул абдан жакшы, азыр терминалды малина пи боюнча ачыңыз жана китепканаларды орнотуңуз (алардын ар бирин көчүрүп, rpi терминалына чаптаңыз).

Көчүрүү учурунда $ белгисин этибарга албаңыз

$ pip3 pyqt5 орнотуу

$ pip3 орнотуу сурамдары $ pip3 covid19py орнотуу

Болду, эми бул жерден кодду жүктөп алыңыз, мен төмөндөгү кодду бердим:

"" "*Realtime Covid19 эл аралык жана жергиликтүү трекер саат менен" "" "" "************** Үйдө аман -эсен болуңуз. Жашаңыз, Жашаңыз ******** ***** """

"""

автор: ashraf minhaj почта: [email protected] сайт: ashrafminhajfb.blogspot.com """

#керектүү китепканаларды импорттоо

PyQt5. QtCore python3 үчүн PyQt5. QtCore импорттоо PyQt5. QtCore импорту PyQt5. QtWidgets'тен жаңыртуу үчүн QTimer #timer импорттоо #covid19 маалыматы -api import datetime #бул эмне үчүн экенин билесиз

класс CoronaTracker (QWidget):

"" "бардыгын камтыган негизги класс" "" _ _ _ (өзүн): "" "нерселерди баштоо" "" супер ()._ init _ () self.covid = COVID19Py. COVID19 () #initialize self.timer = QTimer () #баштоо self.timer.timeout.connect (self.update) #эгерде таймер чегине жетсе - self.ui жаңыртуусун чалуу () #колдонуучу интерфейси

def ui (өзүн):

"" "Колдонуучу интерфейси бөлүмү" "" self.setWindowTitle ("Covid19 International жана Local Tracker") #self.setWindowFlags (Qt. CustomizeWindowHint) #титул тилкесин өзүн жашыруу self.setStyleSheet ("Фондун түсү: кара") self.setFixedSize (640, 480) #менин дисплейим боюнча (x, y) /rpi токтому боюнча

#Негизги белги

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 ("" "фон-түс: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px" "")

"" "_ дүйнөсүнүн акыркы маалыматы _" ""

#world энбелгиси self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("Бир Караганда Дүйнө") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "фон түсү: кара; түс: көк; чек стили: баштоо; чек-туурасы: 1px" "")

#дүйнө жүзү боюнча тастыкталган учурлар

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)) өзүн. w_cases.setStyleSheet ("" "фон-түсү: кара; түсү: кызгылт сары; чек-стиль: баштоо; чек-туурасы: 1px" "") #корпустардын саны self.w_cases_num = QLabel (өзүн) self.w_cases_num.setGeometry (110), 90, 100, 40) self.w_cases_num.setFont (QFont ('SansSerif', 18)) өзүнчө: 1px "" ")

#дүйнө жүзү боюнча өлүм

self.w_death = QLabel (self) self.w_death.setGeometry (350, 90, 100, 40) self.w_death.setText ("Өлүмдөр:") self.w_death.setFont (QFont ('SansSerif', 18)) өзүн. w_death.setStyleSheet ("" "фон-түс: кара; түс: кызыл; чек ара стили: баштоо; чек-туурасы: 1px" "") #өлүм саны self.w_death_num = QLabel (өзүн) self.w_death_num.setGeometry (460, 90, 100, 40) self.w_death_num.setFont (QFont ('SansSerif', 18)) өзүнчө: 1px "" ")

#дүйнө жүзү боюнча дарыланат

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Айыктырылган:") self.w_cured.setFont (QFont ('SansSerif', 18)) өзүн. w_cured.setStyleSheet ("" "фон-түсү: кара; түсү: көгүш; чек-стиль: баштоо; чек-туурасы: 1px" "")

#дүйнө жүзү боюнча айыккан номер

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 ("" "фон түсү: кара; түс: ак; чек ара стили: баштоо; чек-туурасы: 1px "" ")

"" "_ Жергиликтүү-өлкө коду _" ""

#local - Country self.c = QLabel (self) self.c.setGeometry (170, 200, 400, 40) self.c.setText ("Менин өлкөм: Бангладеш") self.c.setFont (QFont ('SansSerif'), 18)) self.c.setStyleSheet ("" "фон-түсү: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px" "") #жергиликтүү учурларды ырастоо self.c_cases = QLabel (өзүн) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Cases:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "фону -түс: кара; түс: кызгылт сары; чек стили: баштоо; чек-туурасы: 1px "" ") #локалдык иштер саны self.c_cases_num = QLabel (өзүн) өзүн.c_cases_num.setGeometry (110, 240, 100, 40) self.c_cases_num.setFont (QFont ('SansSerif', 18)) self.c_cases_num.setStyleSheet ("" "фон-түс: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1 пиксель" "")

#жергиликтүү өлүмдөр

self.c_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Өлүмдөр:") self.c_death.setFont (QFont ('SansSerif', 18)) өзүн. c_death.setStyleSheet ("" "фон түсү: кара; түс: кызыл; чек ара стили: баштоо; чек арасы: 1 пиксель" "")

#жергиликтүү өлүм саны

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 ("" "фон түсү: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px "" ") #локалдык айыктырылган self.c_cured = QLabel (өзүн) self.c_cured.setGeometry (5, 280, 100, 40) self.c_cured. setText ("Айыктырылган:") self.c_cured.setFont (QFont ('SansSerif', 18)) self.c_cured.setStyleSheet ("" "фон түсү: кара; түс: көк; чек стили: баштоо; чек-туурасы: 1px "" ") #жергиликтүү тазаланган номер 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 ("" "фон-түс: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px" "")

"" "_ Убакыт, күн, саат _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "фон- түс: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px "" ") #иш күнү өзүнчө белгилөө.weekday.setFont (QFont ('SansSerif', 13)) self.weekday.setStyleSheet ("" "фон-түс: кара; түс: ак; чек-стиль: баштоо; чек-туурасы: 1px" "") #датасы 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 ("" "фон түсү: кара; түс: ак; чек стили: баштоо; чек-туурасы: 1px" "")

#таймерди текшериңиз, эгерде self.timer.isActive (): #эгерде таймер токтоп калса (чегине жеткенде) #1 секунддан кийин (болжол менен) же 1000 мс

аракет кыл:

"" "маалыматтарды алууга аракет кылыңыз, болбосо баары бир кодду иштетиңиз" "" self.latest = self.covid.getLatest () #gte covid19 акыркы маалыматтар

#BD'-Бангладеш, 'IN'-Индия ж

self.local = self.covid.getLocationByCountryCode ('BD', хронологиялар = False) #басуу (self.local) #басуу (self.latest)

тышкары:

"" "маалымат ала алган жок" "" басып чыгаруу ("Интернет катасы !!")

#ignore өтүңүз, баары бир чуркаңыз

self.timer.start (1000) #таймерди баштоо

self.show () #биздин колдонуучу интерфейсин көрсөтөт

def update (өзүн өзү):

"" "энбелгилерин маалымат менен жаңыртуу" ""

"" "_Чыгаруу жарнакты жаңыртуу убактысы жана датасы жөнүндө маалымат _" ""

#саатты жана убакытты жөндөө (баалуулуктарды жаңыртуу) #баалуулуктарды алуу жана жаңыртуу #көбүрөөк билүү үчүн python datetime документтерин окуңуз

self.dt = datetime.datetime.now () #datetime маалыматтарын алуу

self.clock.setText (self.dt.strftime ('%X')) self.weekday.setText (self.dt.strftime ('%A')) self.date.setText (self.dt.strftime ('%) x ')) "" "_ covid19 маалыматтарын жаңыртуу _" "" #дүйнө жүзү боюнча акыркы маалыматтар self.w_cases_num.setText (str (self.latest

басып чыгаруу ("жаңыртуу")

кайтуу

def main (): app = QApplication (sys.argv) win = CoronaTracker () #sys.exitти жокко чыгаруу (app.exec ()) #_name_ == '_main_' болсо, колдонмону иштетүү: main ()

6 -кадам: Бүтүрүү:

Бүтүрүү
Бүтүрүү

Кодду текшергенден кийин мен аны столго койдум жана ал үчүн кубат булагын бөлдүм. Ошентип, ал кубатталып жатканда иштей алат. UPSти колдонуу менен, ал жүктү түшүрүүдө да иштей алат, бул ur pi картасына ылайыктуу коргоону берет.

Канчалык же ким экенибизге карабай, биз өлүшүбүз керек. Өзүбүздү ойлобой, дүйнө жөнүндө ойлонолу. Биз кылган иштерибиз аркылуу гана түбөлүк жашай алабыз, ушундай болсун.

Сунушталууда: