Съдържание:

Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker: 6 стъпки
Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker: 6 стъпки

Видео: Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker: 6 стъпки

Видео: Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker: 6 стъпки
Видео: CS50 2015 – первая неделя 2024, Юли
Anonim
Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker
Настолен проследяващ COVID19 с часовник! Raspberry Pi Powered Tracker

Знаем, че можем да умрем по всяко време, дори аз мога да умра, докато пиша този пост, в края на краищата аз, аз, ти, всички сме смъртни. Целият свят се разтърси заради пандемията от COVID19. Знаем как да предотвратим това, но хей! знаем как да се молим и защо да се молим, правим ли го ежедневно? Не!! Всъщност ние забравяме първопричината защо трябва да правим нещата. Знаем, че хигиеничният начин на живот може да ни спаси, но не го правим правилно. Помислете за случая с по -малкия ми брат, той иска да излезе и да играе дори през това време. Трябваше да направя нещо, за да информирам последователно всички за последните случаи на COVID19. И така, направих цифров дисплей на бюрото, който показва най -новите случаи на COVID19 в реално време. Тъй като това има часовник, тогава мога да го поставя на място, където всички се събират или идват. Те ще видят, че числата се събират, което ще предизвика съзнание у тях и се надяваме, че всички ще бъдат в съзнание. Освен това, тъй като съм създател и любител, това се оказа добър проект, върху който да работя в тази заключителна сесия.

Стъпка 1: Части, които съм използвал:

Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
Части, които съм използвал
  • Raspberry Pi 3 Модел B (зарежда се с SD карта)
  • UPS модул Raspberry Pi (по избор)
  • 7 -инчов HDMI LCD екран
  • HDMI към HDMI кабел (идва с екрана)
  • USB кабели
  • 5v 2A захранващ адаптер (за захранване на pi)
  • PVC лист [дървен цвят] (за изработка на тялото)

Стъпка 2: Настройка на Raspberry Pi:

Настройка на Raspberry Pi
Настройка на Raspberry Pi

Предполагам, че сте настроили перфектно пи, освен ако не сте …

  1. вземете SD карта - повече от 8 GB
  2. изтеглете последния raspbian iso файл от тук.
  3. Запишете SD картата с помощта на офорт

(Обърнете внимание, че хората могат да кажат нещо за друг софтуер, който изисква от вас да направите някои настройки, но гравировката е супер лесна за използване и проста, но и ефективна.)

Просто включете вашата SD карта към компютър, стартирайте etcher, ще видите SD картата се избира автоматично от etcher, след това щракнете, за да изберете изтегления iso файл или изображение, след което го запишете. След успешно писане и обработка изключете SD картата и я свържете към вашето pi, включете я и VOILA !! Живо е.

Стъпка 3: Електрическа схема:

Електрическа схема
Електрическа схема

Свържете всичко и включете raspbery pi, той просто се свързва, нищо друго.

Ще видите пи зареждане.

Стъпка 4: Тялото:

Тялото
Тялото
Тялото
Тялото
Тялото
Тялото
Тялото
Тялото

Нарязах PVC лист според размера на дисплея, след което го добавих с помощта на винтове. След това свързах всичко. Най -накрая добави още един лист отзад, за да го предпази от падане (син лист). Ако всичко е наред, трябва да видите пи зареждане (последна снимка)

Стъпка 5: Софтуерът (изходен код):

Програмата е написана на python3. За GUI (графичен потребителски интерфейс) използвах PyQt5, а за извличане на данни от COVID19 в реално време използвах библиотеката COVID19Py. Благодарим на момчетата, които ни предоставиха приложния програмен интерфейс ([Похвален екип на COVID19Py]). Вижте doc в pypi.

Това е почти всичко, сега отворете Terminal на raspberry pi и инсталирайте библиотеки (копирайте всяка от тях и поставете в rpi терминал).

Игнорирайте знака $, докато копирате

$ pip3 инсталирайте pyqt5

$ pip3 искания за инсталиране $ pip3 инсталиране на covid19py

Това е всичко, сега изтеглете кода от тук, предоставих кода по -долу:

"" "*Международен и местен проследяващ Covid19 в реално време с часовник*" "" "" "************** Останете вкъщи, останете в безопасност. На живо, оставете на живо ******** ***** """

"""

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

#импортирайте необходимите библиотеки

импортиране на PyQt5 #QT GUI библиотека за python3 от PyQt5. QtCore импортиране на Qt, QTimer #timer за актуализиране от PyQt5. QtWidgets импортиране * #импортиране на всичко от PyQt5. QtGui импортиране на QFont #за шрифтове импортиране на система #необходимо за импортиране os импортиране на COVID19Py #информация за covid19 -api дата за импортиране #знаете за какво служи това

клас CoronaTracker (QWidget):

"" "основният клас, който съдържа всичко" "" def _init _ (self): "" "инициализира нещата" "" super ()._ init _ () self.covid = COVID19Py. COVID19 () #инициализира self.timer = QTimer () #inicialize self.timer.timeout.connect (self.update) #ако таймерът достигне прага - повикване актуализация self.ui () #потребителски интерфейс

def ui (себе си):

"" "Раздел на потребителския интерфейс" "" self.setWindowTitle ("Международен и локален тракер на Covid19") #self.setWindowFlags (Qt. CustomizeWindowHint) #скриване на заглавната лента self.setStyleSheet ("Цвят на фона: черен") self.setFixedSize (640, 480) #as според моя дисплей (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_bel. setFont (QFont ('SansSerif', 20)) self.banner_label.setStyleSheet ("" "цвят на фона: черен; цвят: бял; стил на рамка: изход; граница-ширина: 1px" "")

"" "_ последните данни на света _" ""

#world label self.w = QLabel (self) self.w.setGeometry (200, 55, 400, 40) self.w.setText ("Светът с един поглед") self.w.setFont (QFont ('SansSerif', 18)) self.w.setStyleSheet ("" "background-color: black; color: blue; border-style: outset; border-width: 1px" ""))

#потвърдени в целия свят случаи

self.w_cases = QLabel (self) self.w_cases.setGeometry (5, 90, 100, 40) self.w_cases.setText ("Случаи:") self.w_cases.setFont (QFont ('SansSerif', 18)) self. w_cases.setStyleSheet ("" "background-color: black; color: orange; border-style: outset; border-width: 1px" "") #cases number 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; color: white; border-style: outset; border-width: 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)) self. w_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "") #death number 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; color: white; border-style: outset; border-width: 1px "" ")

#цял свят излекуван

self.w_cured = QLabel (self) self.w_cured.setGeometry (5, 140, 100, 40) self.w_cured.setText ("Излекувано" w_cured.setStyleSheet ("" "background-color: black; color: cyan; border-style: outset; border-width: 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 ("" "background-color: черно; цвят: бяло; стил на границата: изход; граница-ширина: 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 ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "") #local confirm cases self.c_cases = QLabel (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Случаи:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "фон -цвет: черен; цвят: оранжев; стил на рамка: изход; граница-ширина: 1px "" ") #номер на местни случаи 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_death = QLabel (self) self.c_death.setGeometry (350, 240, 100, 40) self.c_death.setText ("Смърт:") self.c_death.setFont (QFont ('SansSerif', 18)) self. c_death.setStyleSheet ("" "background-color: black; color: red; border-style: outset; border-width: 1px" "")

#брой на местните смъртни случаи

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: черен; цвят: бял; стил на рамка: изход; граница-ширина: 1px "" ") #локално излекувано self.c_cured = QLabel (само) self.c_cured.setGeometry (5, 280, 100, 40) self.c_cured. setText ("Излекувано": 1px "" ") #локално излекувано число.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" ""))

"" "_ Час, дата, часовник _" ""

#clock self.clock = QLabel (self) self.clock.setGeometry (115, 340, 400, 70) self.clock.setFont (QFont ('SansSerif', 60)) self.clock.setStyleSheet ("" "фон- цвят: черен; цвят: бял; стил на границата: изход; граница-ширина: 1px "" ") #етикет за седмицата self.weekday = QLabel (self) self.weekday.setGeometry (5, 360, 110, 20) self.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 ("" "background-color: black; color: white; border-style: outset; border-width: 1px" ""))

#проверете таймера, ако не self.timer.isActive (): #ако таймерът е спрян (достигнат праг) #След 1 секунда (приблизително) или 1000ms

опитвам:

"" "опитайте да получите данни, иначе стартирайте кода така или иначе" "" self.latest = self.covid.getLatest () #gte covid19 най -новите данни

#получете най-новите данни по код на държава „BD'-Бангладеш,„ IN “-Индия и др

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

с изключение:

"" "не можа да получи данни" "" печат ("Интернет грешка !!")

преминете #ignore, бягайте така или иначе

self.timer.start (1000) #стартиране на таймера

self.show () #покажете нашия потребителски интерфейс

def update (self):

"" "актуализира етикети с информация" ""

"" "_Извлечете информация за часа и датата на актуализиране на рекламата _" ""

#настройте часовник и дата час (актуализирайте стойностите) #получете и актуализирайте стойности #за да научите повече прочетете документацията за дата и час на python

self.dt = datetime.datetime.now () #get datatime data

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 [' потвърдено ']))) self.w_death_num.setText (str (self.latest [' deaths ')])) self.w_cured_num.setText (str (self.latest ['възстановен']))) #local последните данни self.c_cured_num.setText (str (self.local [0] ['latest'] ['възстановен'])) self.c_death_num.setText (str (self.local [0] ['latest'] ['deaths'])) self.c_cases_num.setText (str (self.local [0] ['latest'] ['потвърдено']))

печат ("актуализиране")

връщане

def main (): app = QApplication (sys.argv) win = CoronaTracker () #instantiate sys.exit (app.exec ()) #стартирайте приложението, ако _name_ == '_main_': main ()

Стъпка 6: Завършете:

Довърши
Довърши

След като тествах кода, го поставих в бюрото и отделих източник на захранване за него. За да може да работи по време на зареждане. Чрез използване на прозорци това може да работи дори при разтоварване, това също дава подходяща защита на ur pi SD картата.

Без значение как и кои сме, трябва да умрем. Нека не мислим за себе си, мислим за света. Можем да живеем вечно само чрез делата си, нека бъде така.

Препоръчано: