جدول المحتويات:
- الخطوة 1: الأجزاء التي استخدمتها:
- الخطوة الثانية: إعداد Raspberry Pi:
- الخطوة 3: مخطط الدائرة:
- الخطوة الرابعة: الجسد:
- الخطوة 5: البرنامج (شفرة المصدر):
- الخطوة 6: الانتهاء:
فيديو: جهاز تعقب COVID19 المكتبي مع ساعة! جهاز تعقب يعمل بالطاقة Raspberry Pi: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
نحن نعلم أننا يمكن أن نموت في أي وقت ، حتى أنني يمكن أن أموت أثناء كتابة هذا المنشور ، بعد كل شيء ، أنا أنا وأنت ، كلنا بشر. اهتز العالم كله بسبب جائحة COVID19. نحن نعرف كيف نمنع هذا ، لكن مهلا! نعرف كيف نصلي ولماذا نصلي ، هل نصليها يوميا؟ لا!! في الواقع ، نحن ننسى السبب الجذري لسبب قيامنا بالأشياء. لذلك ، نحن نعلم أن أسلوب الحياة الصحي يمكن أن ينقذنا ولكننا لا نفعل ذلك بشكل صحيح. لنأخذ حالة أخي الأصغر ، فهو يريد الخروج واللعب حتى في هذا الوقت. كان علي أن أفعل شيئًا لإبلاغ الجميع باستمرار بآخر حالات COVID19. لذلك ، قمت بعمل عرض مكتبي رقمي يعرض أحدث حالات COVID19 في الوقت الفعلي. نظرًا لأن هذه تحتوي على ساعة ، فيمكنني وضعها في مكان حيث يتجمع أو يأتي الجميع. سيرون الأرقام تتراكم ، مما سيثير الوعي فيهم ونأمل أن يكون الجميع واعيًا. كما أنني صانع وهواة ، فقد تبين أن هذا مشروع جيد للعمل عليه في جلسة الإغلاق هذه.
الخطوة 1: الأجزاء التي استخدمتها:
- Raspberry Pi 3 Model B (تمهيد باستخدام بطاقة sd)
- وحدة Raspberry Pi UPS (اختياري)
- شاشة ال سي دي اتش دي ام اي 7 بوصة
- كابل HDMI إلى HDMI (يأتي مع الشاشة)
- كبلات USB
- محول طاقة 5 فولت 2 أمبير (لتشغيل بي)
- لوح PVC [لون خشبي] (لعمل الجسم)
الخطوة الثانية: إعداد Raspberry Pi:
أعتقد أنك قمت بإعداد pi بشكل مثالي ، إلا إذا لم تقم بذلك -
- الحصول على بطاقة SD - أكثر من 8 جيجا بايت
- قم بتنزيل أحدث ملف iso raspbian من هنا.
- انسخ بطاقة SD باستخدام النقش
(لاحظ أنه يمكن للناس أن يقولوا شيئًا عن البرامج الأخرى التي تتطلب منك القيام ببعض عمليات الإعداد ، لكن etcher سهل الاستخدام للغاية وبسيط ولكنه فعال أيضًا.)
ما عليك سوى توصيل بطاقة SD بجهاز الكمبيوتر ، وتشغيل أداة الحفر ، وسترى أن بطاقة SD يتم تحديدها تلقائيًا بواسطة النقش ، ثم انقر لتحديد ملف أو صورة ISO التي تم تنزيلها ، ثم انسخها. بعد الكتابة والمعالجة الناجحة ، افصل بطاقة SD وقم بتوصيلها بجهاز pi ، قم بتشغيلها و VOILA !! انه حي.
الخطوة 3: مخطط الدائرة:
قم بتوصيل كل شيء وتشغيل raspbery pi ، إنه متصل فقط ، ولا شيء آخر.
سترى تمهيد باي.
الخطوة الرابعة: الجسد:
لقد قطعت لوح PVC وفقًا لحجم العرض ، ثم أضفته باستخدام البراغي. بعد ذلك قمت بتوصيل كل شيء بالأسلاك. أضيفت أخيرًا ورقة أخرى في الخلف لدعمها من السقوط (الورقة الزرقاء). إذا كان كل شيء على ما يرام ، يجب أن ترى تمهيد pi (الصورة الأخيرة)
الخطوة 5: البرنامج (شفرة المصدر):
البرنامج مكتوب بلغة python3. بالنسبة إلى واجهة المستخدم الرسومية (GUI) ، استخدمت PyQt5 ، ولاستخراج بيانات COVID19 في الوقت الفعلي ، استخدمت مكتبة COVID19Py. شكرًا للأشخاص الذين جعلوا واجهة برمجة التطبيقات متاحة لنا
هذا إلى حد كبير ، افتح الآن Terminal على raspberry pi وقم بتثبيت المكتبات (انسخ كل واحدة منها والصقها على محطة rpi).
تجاهل علامة $ أثناء النسخ
Pip3 $ قم بتثبيت pyqt5
يطلب تثبيت pip3 $ pip3 تثبيت covid19py
هذا كل شيء ، الآن قم بتنزيل الكود من هنا ، لقد قدمت الكود أدناه:
"" "* متتبع Realtime Covid19 الدولي والمحلي بالساعة *" "" "" "************** ************** ابق في المنزل ابق آمنًا. مباشر ، دع البث المباشر ******** ***** """
"""
الكاتب: أشرف منهاج mail: [email protected] الموقع: ashrafminhajfb.blogspot.com """
# استيراد المكتبات الضرورية
استيراد مكتبة PyQt5 #QT GUI للغة python3 من PyQt5. QtCore import Qt، QTimer #timer للتحديث من PyQt5. QtWidgets import * #import all from PyQt5. QtGui import QFont # for Fonts import sys #necessary for QT Applications #import os import COVID19Py # covid19 information -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) #if يصل المؤقت إلى الحد الأدنى - تحديث المكالمة self.ui () # واجهة المستخدم
تعريف واجهة المستخدم (ذاتي):
"" "قسم واجهة المستخدم" "self.setWindowTitle (" Covid19 International and 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، to_x، until_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" "")
"" أحدث بيانات _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 ("" "background-color: black؛ color: white؛ border-style: outset؛ border-width: 1 بكسل "")
# وفيات حول العالم
self.w_death = QLabel (ذاتي) 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" "") # رقم الوفاة 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: 1 بكسل "")
# في جميع أنحاء العالم الشفاء
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 ("" "لون الخلفية: أسود ؛ اللون: أبيض ؛ نمط الحدود: البداية ؛ عرض الحدود: 1 بكسل "" ")
"" "_ رمز البلد المحلي حسب البلد _""
#local - Country self.c = QLabel (self) self.c.setGeometry (170، 200، 400، 40) self.c.setText ("My Country: Bangladesh") self.c.setFont (QFont ('SansSerif' ، 18)) self.c.setStyleSheet ("" "background-color: black؛ color: white؛ border-style: outset؛ border-width: 1px" "") #local تأكيد الحالات 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 ("" "الخلفية -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 ("Deaths:") 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 ("" "لون الخلفية: أسود ؛ اللون: أبيض ؛ نمط الحدود: outset ؛ عرض الحدود: 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 "" ") #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 ("" "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 ("" "الخلفية- color: black؛ color: white؛ border-style: outset؛ border-width: 1px "" ") #label for weekday self.weekday = QLabel (self) self.weekday.setGeometry (5، 360، 110، 20) self.weekday.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 (): # إذا تم إيقاف المؤقت (بلغ الحد الأدنى) # بعد ثانية واحدة (تقريبًا) أو 1000 مللي ثانية
محاولة:
"" "حاول الحصول على البيانات ، وإلا قم بتشغيل الكود على أي حال" "" self.latest = self.covid.getLatest () #gte covid19 أحدث البيانات
# احصل على أحدث البيانات حسب رمز البلد "BD"-Bangladesh ، و "IN"-India ، إلخ
self.local = self.covid.getLocationByCountryCode ('BD'، timelines = False) #print (self.local) #print (self.latest)
إلا:
"" تعذر الحصول على البيانات طباعة "" "(" خطأ إنترنت !! ")
تمرير #ignore ، تشغيل على أي حال
self.timer.start (1000) # ابدأ الموقت
self.show () #show واجهة المستخدم الخاصة بنا
تحديث def (ذاتي):
"" "تحديث التسميات بالمعلومات" ""
"" "_ استخراج معلومات وقت وتاريخ تحديث الإعلان _" ""
# إعداد الساعة والتاريخ والوقت (تحديث القيم) # الحصول على القيم وتحديثها # لمعرفة المزيد ، اقرأ وثائق python datetime
self.dt = datetime.datetime.now () # الحصول على بيانات التاريخ والوقت
self.clock.setText (self.dt.strftime ('٪ X')) self.weekday.setText (self.dt.strftime ('٪ A')) self.date.setText (self.dt.strftime ('٪ x ')) "" "_update covid19 data_" "" #worldwide latest data self.w_cases_num.setText (str (self.latest ['irmed'])) self.w_death_num.setText (str (self.latest ['death')])) self.w_cured_num.setText (str (self.latest ['reced'])) #local latest data self.c_cured_num.setText (str (self.local [0] ['latest'] ['استرداد'])) self.c_death_num.setText (str (self.local [0] ['latest'] ['death'])) 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: الانتهاء:
بعد اختبار الكود وضعته في المكتب وخصصت له مصدر طاقة. بحيث يمكن أن تعمل أثناء الشحن. باستخدام عمليات التشغيل ، يمكن تشغيل هذا حتى في فصل الأحمال أيضًا ، وهذا يمنح بطاقة pi SD حماية مناسبة أيضًا.
لا يهم كيف أو من نحن ، علينا أن نموت. دعونا لا نفكر في نفسك ، فكر في العالم. لا يمكننا أن نعيش إلى الأبد إلا من خلال أفعالنا ، فليكن على هذا النحو.
موصى به:
جهاز متعدد يعمل بالطاقة من Arduino: 8 خطوات (مع صور)
المتر المتعدد المدعوم من Arduino: في هذا المشروع ، ستقوم ببناء مقياس الفولتميتر والأوميتر باستخدام وظيفة digitalRead في Arduino. ستكون قادرًا على الحصول على قراءة كل مللي ثانية تقريبًا ، وهي أكثر دقة بكثير من مقياس متعدد عادي. أخيرًا ، يمكن الوصول إلى البيانات
جهاز استشعار وقوف السيارة يعمل بالطاقة الشمسية: 8 خطوات (مع صور)
مستشعر وقوف السيارات LED الذي يعمل بالطاقة الشمسية: لا يحتوي المرآب الخاص بنا على الكثير من العمق ، ويحتوي على خزانات في النهاية ، مما يؤدي إلى تقليل العمق. سيارة زوجتي قصيرة بما يكفي لتناسبها ، لكنها قريبة. لقد صنعت هذا المستشعر لتبسيط عملية ركن السيارة ، ولضمان امتلاء السيارة
IOT123 - جهاز تعقب الطاقة الشمسية - إمالة / عمود ، إطار لوحة ، جهاز LDR MOUNTS RIG: 9 خطوات (بالصور)
IOT123 - تعقب الطاقة الشمسية - TILT / PAN ، PANEL FRAME ، LDR MOUNTS RIG: معظم تصميمات DIY لتتبع الطاقة الشمسية ثنائي المحور & quot؛ هناك & quot؛ تعتمد على 9G Micro Servo التي تم تصنيفها بشكل أقل من اللازم للتغلب على بضع خلايا شمسية ، ووحدة التحكم الدقيقة ، والبطارية ، والمبيت. يمكنك التصميم حول
RGB-IFY جهاز الكمبيوتر المكتبي الخاص بك: 5 خطوات (بالصور)
RGB-IFY جهاز الكمبيوتر المكتبي الخاص بك !: الأشياء التي نحتاجها لهذا المشروع: شريط LED 5 فولت 1 متر مع جهاز تحكم عن بعد (يمكن شراؤه هنا) سيستغرق هذا المشروع حوالي 15 دقيقة من وقتك
جهاز عرض جرافيتي يعمل بالطاقة الشمسية: 5 خطوات (مع صور)
جهاز عرض جرافيتي يعمل بالطاقة الشمسية: قرأت مؤخرًا هذا المقال المثير للاهتمام في مجلة Wired حول & quot؛ Light-Graffiti Hackers & quot ؛. تكمن مشكلة الرسومات الخفيفة في أنك بحاجة إلى مصدر طاقة لجعلها دائمة ، لذلك لا يمكنك عادةً وضعها في أي مكان تريده. لذلك أنا