Оглавление:
- Шаг 1: Детали, которые я использовал:
- Шаг 2: Настройте Raspberry Pi:
- Шаг 3: Принципиальная схема:
- Шаг 4: Тело:
- Шаг 5: Программное обеспечение (исходный код):
- Шаг 6: Завершение:
Видео: Настольный трекер COVID19 с часами! Трекер на базе Raspberry Pi: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Мы знаем, что можем умереть в любое время, даже я могу умереть, когда пишу этот пост, в конце концов, я, ты, все мы смертные. Весь мир потрясла пандемия COVID19. Мы знаем, как это предотвратить, но эй! мы знаем, как молиться и зачем молиться, делаем ли мы это ежедневно? Нет!! На самом деле мы забываем первопричину того, почему мы должны что-то делать. Итак, мы знаем, что гигиенический образ жизни может спасти нас, но мы не делаем этого должным образом. Рассмотрим случай с моим младшим братом, он хочет выйти и поиграть даже в это время. Мне нужно было что-то сделать, чтобы постоянно информировать всех о последних случаях COVID19. Итак, я сделал цифровой настольный дисплей, который показывает последние случаи COVID19 в режиме реального времени. Поскольку у этого есть часы, я могу поставить их в место, где все собираются или приходят. Они увидят, что числа складываются, что вызовет у них осознание, и, надеюсь, все будут в сознании. Кроме того, поскольку я производитель и любитель, оказалось, что над этим проектом стоит поработать во время этого сеанса блокировки.
Шаг 1: Детали, которые я использовал:
- Raspberry Pi 3 Model B (загружается с помощью SD-карты)
- Модуль ИБП Raspberry Pi (опционально)
- 7-дюймовый ЖК-экран HDMI
- Кабель HDMI-HDMI (идет в комплекте с экраном)
- USB-кабели
- Адаптер питания 5v 2A (для питания пи)
- Лист ПВХ [цвет дерева] (для изготовления корпуса)
Шаг 2: Настройте Raspberry Pi:
Думаю, вы установили пи идеально, если только вы не …
- получить SD-карту - более 8 ГБ
- Загрузите последний iso-файл raspbian отсюда.
- Запишите 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 подходящую защиту.
Независимо от того, как и кто мы, мы должны умереть. Не будем думать о себе, будем думать о мире. Мы можем жить вечно только своими поступками, пусть будет так.
Рекомендуемые:
Настольный органайзер со светодиодными матричными часами и Bluetooth: 7 шагов
Настольный органайзер со светодиодными матричными часами и Bluetooth: Мой стол был очень загроможден, и я хотел иметь хороший органайзер, в котором можно было бы расставить карандаши, кисти, глиняные инструменты и т. Д. Я посмотрел на многих органайзеров на рынке, но ни один из них не понравился . Я решил создать свой собственный настольный органайзер, и вот
Трекер звезд с «скотч-креплением» на базе Arduino для астрофотографии: 7 шагов (с изображениями)
Звездный трекер для астрофотографии на базе Arduino Scotch Mount: я узнал о Scotch Mount, когда был моложе, и сделал его вместе с отцом, когда мне было 16. Это недорогой и простой способ начать работу с астрофотографией, который охватывает основы до вас. погрузиться в сложные вопросы телескопа простого f
Movie Tracker - трекер театральных релизов на базе Raspberry Pi: 15 шагов (с изображениями)
Movie Tracker - Театральный трекер релизов на базе Raspberry Pi: Movie Tracker - это трекер релизов в форме хлопушки на базе Raspberry Pi. Он использует API TMDb для печати плаката, заголовка, даты выпуска и обзора предстоящих фильмов в вашем регионе в указанный промежуток времени (например, выпуск фильмов на этой неделе) в
Настольный усилитель с аудиовизуализацией, двоичными часами и FM-приемником: 8 шагов (с изображениями)
Настольный усилитель с аудиовизуализацией, двоичными часами и FM-приемником: мне нравятся усилители, и сегодня я поделюсь своим маломощным настольным усилителем, который я сделал недавно. Разработанный мною усилитель обладает некоторыми интересными особенностями. Он имеет встроенные двоичные часы и может отображать время и дату, а также может визуализировать звук, часто называемый звуком
Трекер производительности - на базе Raspberry Pi: 9 шагов (с изображениями)
Трекер продуктивности - Работает на Raspberry Pi: Трекер продуктивности - это волшебное зеркало, но вместо отображения времени, погоды и мотивирующей цитаты он отображает 4 вещи; процент времени, которое вы потратили на продуктивный материал на своем компьютере и телефоне в течение в тот день. (RescueTime) Йо