Оглавление:

Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов
Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов

Видео: Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов

Видео: Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов
Видео: 🦠 Мониторинг Covid-19 на ESP8266 (😷 Статистика по коронавирусу на Arduino) 2024, Ноябрь
Anonim
Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi
Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi

Мы знаем, что можем умереть в любое время, даже я могу умереть, когда пишу этот пост, в конце концов, я, ты, все мы смертные. Весь мир потрясла пандемия COVID19. Мы знаем, как это предотвратить, но эй! мы знаем, как молиться и зачем молиться, делаем ли мы это ежедневно? Нет!! На самом деле мы забываем первопричину того, почему мы должны что-то делать. Итак, мы знаем, что гигиенический образ жизни может спасти нас, но мы не делаем этого должным образом. Рассмотрим случай с моим младшим братом, он хочет выйти и поиграть даже в это время. Мне нужно было что-то сделать, чтобы постоянно информировать всех о последних случаях COVID19. Итак, я сделал цифровой настольный дисплей, который показывает последние случаи COVID19 в режиме реального времени. Поскольку у этого есть часы, я могу поставить их в место, где все собираются или приходят. Они увидят, что числа складываются, что вызовет у них осознание, и, надеюсь, все будут в сознании. Кроме того, поскольку я производитель и любитель, оказалось, что над этим проектом стоит поработать во время этого сеанса блокировки.

Шаг 1: Детали, которые я использовал:

Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
Части, которые я использовал
  • Raspberry Pi 3 Model B (загружается с помощью SD-карты)
  • Модуль ИБП Raspberry Pi (опционально)
  • 7-дюймовый ЖК-экран HDMI
  • Кабель HDMI-HDMI (идет в комплекте с экраном)
  • USB-кабели
  • Адаптер питания 5v 2A (для питания пи)
  • Лист ПВХ [цвет дерева] (для изготовления корпуса)

Шаг 2: Настройте Raspberry Pi:

Настройте Raspberry Pi
Настройте Raspberry Pi

Думаю, вы установили пи идеально, если только вы не …

  1. получить SD-карту - более 8 ГБ
  2. Загрузите последний iso-файл raspbian отсюда.
  3. Запишите SD-карту с помощью etcher

(Обратите внимание, что люди могут сказать что-то другое о другом программном обеспечении, которое требует от вас некоторой настройки, но etcher очень прост в использовании и прост, но также эффективен.)

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

Шаг 3: Принципиальная схема:

Принципиальная электрическая схема
Принципиальная электрическая схема

Подключите все и включите raspbery pi, он просто подключается, ничего больше.

Вы увидите загрузку pi.

Шаг 4: Тело:

Тело
Тело
Тело
Тело
Тело
Тело
Тело
Тело

Я вырезал лист ПВХ в соответствии с размером дисплея, а затем добавил его с помощью винтов. После этого я все подключил. Наконец добавили еще один лист сзади, чтобы он не упал (синий лист). Если все в порядке, вы должны увидеть загрузку pi (последнее изображение)

Шаг 5: Программное обеспечение (исходный код):

Программа написана на python3. Для графического интерфейса пользователя (GUI) я использовал PyQt5, а для извлечения данных COVID19 в реальном времени я использовал библиотеку COVID19Py. Спасибо ребятам, которые сделали API доступным для нас

Вот и все, теперь откройте терминал на raspberry pi и установите библиотеки (скопируйте каждую из них и вставьте на терминал rpi).

Игнорировать знак $ при копировании

$ pip3 установить pyqt5

Запросы на установку $ pip3 $ pip3 install covid19py

Вот и все, теперь загрузите код отсюда, я предоставил код ниже:

"" "* Международный и местный трекер Covid19 в реальном времени с часами *" "" "" "************** Оставайтесь дома Оставайтесь в безопасности. Живите, давайте жить ******** ***** """

"""

автор: ашраф минхадж почта: [email protected] сайт: ashrafminhajfb.blogspot.com """

# импортировать необходимые библиотеки

import PyQt5 #QT GUI Library для python3 из PyQt5. QtCore import Qt, QTimer #timer to update from PyQt5. QtWidgets import * #import all from PyQt5. QtGui import QFont # for fonts import sys # необходимый для приложений QT #import os import COVID19Py # информация о covid19 -api import datetime # вы знаете, для чего это

класс CoronaTracker (QWidget):

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

def ui (сам):

"" "Раздел пользовательского интерфейса" "" self.setWindowTitle ("Covid19 International and Local Tracker") # self.setWindowFlags (Qt. CustomizeWindowHint) #hide строка заголовка self.setStyleSheet ("Background-color: black") 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. setFont (QFont ('SansSerif', 20)) self.banner_label.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

"" "_worlds последние данные _" ""

#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 ("Cases:") 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 ("" "цвет фона: черный; цвет: белый; стиль границы: начало; ширина границы: 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" "") # число смерти 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 ("" "цвет фона: черный; цвет: белый; стиль границы: начало; ширина границы: 1px "" ")

#worldwide cured

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

"" "_ Местный - по коду страны _" ""

#local - Страна 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" "") # локальные случаи подтверждения self.c_cases = QLabel (self) self.c_cases.setGeometry (5, 240, 400, 40) self.c_cases.setText ("Cases:") self.c_cases.setFont (QFont ('SansSerif', 18)) self.c_cases.setStyleSheet ("" "фон -color: black; color: orange; border-style: outset; border-width: 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_cases_num.setStyleSheet ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

# местные смерти

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 ("" "цвет фона: черный; цвет: красный; стиль границы: исход; ширина границы: 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 ("" "цвет фона: черный; цвет: белый; стиль границы: начало; ширина границы: 1px "" ") #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 ("" "цвет фона: черный; цвет: голубой; стиль границы: начало; ширина границы: 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 ("" "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 ("" "background- color: black; color: white; border-style: outset; border-width: 1px "" ") # метка дня недели 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 ("" "background-color: black; color: white; border-style: outset; border-width: 1px" "")

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

пытаться:

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

# получить последние данные по коду страны "BD" - Бангладеш, "IN" - Индия и т. д.

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

Кроме:

"" "не удалось получить данные" "" печать ("Ошибка Интернета !!")

pass #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 ')) "" "_update covid19 data_" "" # самые свежие данные во всем мире 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 ['recovered'])) #local последние данные self.c_cured_num.setText (str (self.local [0] ['latest'] ['recovered'])) self.c_death_num.setText (str (self.local [0] ['последний'] ['смертельный'])) self.c_cases_num.setText (str (self.local [0] ['последний'] ['подтвержденный']))

печать ("обновление")

возвращение

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

Шаг 6: Завершение:

Заканчивать
Заканчивать

После тестирования кода я положил его на стол и выделил для него источник питания. Чтоб во время зарядки работала. Используя ИБП, это может работать даже при сбросе нагрузки, это также дает SD-карте ur pi подходящую защиту.

Независимо от того, как и кто мы, мы должны умереть. Не будем думать о себе, будем думать о мире. Мы можем жить вечно только своими поступками, пусть будет так.

Рекомендуемые: