สารบัญ:

ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: 6 ขั้นตอน
ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: 6 ขั้นตอน

วีดีโอ: ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: 6 ขั้นตอน

วีดีโอ: ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker: 6 ขั้นตอน
วีดีโอ: Now is The Best Time to Buy a Mid-Range GPU! Intel Xe News and More... 2024, กรกฎาคม
Anonim
ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker
ตัวติดตาม COVID19 บนเดสก์ท็อปพร้อมนาฬิกา! Raspberry Pi Powered Tracker

เรารู้ว่าเราสามารถตายได้ตลอดเวลา แม้ว่าฉันจะตายได้ในขณะที่เขียนโพสต์นี้ ฉันเอง คุณ เราทุกคนต่างก็เป็นมนุษย์ปุถุชน โลกทั้งใบสั่นสะเทือนเพราะการระบาดของ COVID19 เรารู้วิธีป้องกันสิ่งนี้ แต่เดี๋ยวก่อน! เรารู้วิธีสวดอ้อนวอนและทำไมต้องอธิษฐาน เราทำทุกวันหรือไม่? เลขที่!! อันที่จริง เราลืมต้นเหตุว่าทำไมเราจึงควรทำสิ่งต่างๆ เรารู้ดีว่าการใช้ชีวิตอย่างถูกสุขลักษณะสามารถช่วยเราได้ แต่เราไม่ได้ทำอย่างถูกต้อง พิจารณากรณีของน้องชายของฉันเขาต้องการที่จะออกไปเล่นแม้ในเวลานี้ ฉันต้องทำอะไรบางอย่างเพื่อแจ้งให้ทุกคนทราบอย่างสม่ำเสมอเกี่ยวกับกรณีล่าสุดของ COVID19 ดังนั้นฉันจึงสร้างจอแสดงผลตั้งโต๊ะแบบดิจิทัลที่แสดงกรณีล่าสุดของ COVID19 แบบเรียลไทม์ เนื่องจากมีนาฬิกาอยู่จึงสามารถนำไปวางไว้ในที่ที่ทุกคนมารวมกันหรือมา พวกเขาจะเห็นตัวเลขเพิ่มขึ้น ซึ่งจะกระตุ้นการรับรู้ในตัวพวกเขา และหวังว่าทุกคนจะมีสติสัมปชัญญะ นอกจากนี้ ในฐานะที่ฉันเป็นผู้ผลิตและผู้ชื่นชอบงานอดิเรก งานนี้กลับกลายเป็นโครงการที่ดีที่ต้องทำในช่วงล็อกดาวน์นี้

ขั้นตอนที่ 1: ชิ้นส่วนที่ฉันใช้:

อะไหล่ที่ฉันเคยใช้
อะไหล่ที่ฉันเคยใช้
อะไหล่ที่ฉันเคยใช้
อะไหล่ที่ฉันเคยใช้
ชิ้นส่วนที่ฉันใช้
ชิ้นส่วนที่ฉันใช้
อะไหล่ที่ฉันเคยใช้
อะไหล่ที่ฉันเคยใช้
  • Raspberry Pi 3 Model B (บูตโดยใช้การ์ด SD)
  • โมดูล UPS Raspberry Pi (อุปกรณ์เสริม)
  • หน้าจอ LCD HDMI ขนาด 7 นิ้ว
  • สาย HDMI เป็น HDMI (มาพร้อมหน้าจอ)
  • สาย USB
  • อะแดปเตอร์ไฟ 5v 2A (เพื่อจ่ายไฟให้กับ pi)
  • แผ่นพีวีซี [สีไม้] (เพื่อทำตัว)

ขั้นตอนที่ 2: ตั้งค่า Raspberry Pi:

ตั้งค่า Raspberry Pi
ตั้งค่า Raspberry Pi

ฉันเดาว่าคุณได้ตั้งค่า pi ไว้อย่างสมบูรณ์แล้ว เว้นแต่คุณยังไม่ได้ -

  1. รับการ์ด SD - มากกว่า 8 GB
  2. ดาวน์โหลดไฟล์ raspbian iso ล่าสุดจากที่นี่
  3. เบิร์นการ์ด SD โดยใช้เครื่องแกะสลัก

(โปรดทราบว่าผู้ใช้ทั่วไปสามารถพูดเกี่ยวกับซอฟต์แวร์อื่นซึ่งต้องการให้คุณทำการตั้งค่าบางอย่าง แต่ตัวแกะสลักนั้นใช้งานง่ายสุด ๆ และเรียบง่าย แต่มีประสิทธิภาพด้วย)

เพียงเสียบการ์ด SD ของคุณกับพีซี เรียกใช้ตัวแก้ไข คุณจะเห็นว่าการ์ด SD ถูกเลือกโดยอัตโนมัติโดยเครื่องมือแกะสลัก จากนั้นคลิกเพื่อเลือกไฟล์หรือรูปภาพ iso ที่ดาวน์โหลดมา จากนั้นจึงเบิร์น หลังจากประสบความสำเร็จในการเขียนและประมวลผลให้ถอดปลั๊กการ์ด SD และเชื่อมต่อกับ pi ของคุณ เปิดเครื่องและ VOILA!! มันยังมีชีวิตอยู่

ขั้นตอนที่ 3: แผนภาพวงจร:

แผนภูมิวงจรรวม
แผนภูมิวงจรรวม

เชื่อมต่อทุกอย่างและเปิดเครื่อง raspbery pi มันเป็นแค่การเชื่อมต่อ ไม่มีอะไรอื่น

คุณจะเห็นการบูต pi

ขั้นตอนที่ 4: ร่างกาย:

ร่างกาย
ร่างกาย
ร่างกาย
ร่างกาย
ร่างกาย
ร่างกาย
ร่างกาย
ร่างกาย

ฉันตัดแผ่นพีวีซีตามขนาดที่แสดง จากนั้นเพิ่มโดยใช้สกรู หลังจากนั้นฉันก็วางสายทุกอย่างขึ้น สุดท้ายก็เพิ่มแผ่นหลังอีกแผ่นเพื่อรองรับไม่ให้ล้ม (แผ่นสีฟ้า) ถ้าทุกอย่างโอเค จะเห็น pi boot (รูปสุดท้าย)

ขั้นตอนที่ 5: ซอฟต์แวร์ (ซอร์สโค้ด):

โปรแกรมเขียนด้วย python3 สำหรับ GUI (ส่วนต่อประสานกราฟิกกับผู้ใช้) ฉันใช้ PyQt5 และเพื่อดึงข้อมูล COVID19 แบบเรียลไทม์ ฉันใช้ห้องสมุด COVID19Py ขอบคุณพวกที่ทำให้ API พร้อมใช้งานสำหรับเรา

เกือบแล้ว ตอนนี้เปิด Terminal บน raspberry pi และติดตั้งไลบรารี่ (คัดลอกแต่ละอันแล้ววางบนเทอร์มินัล rpi)

ละเว้นเครื่องหมาย $ ขณะคัดลอก

$ pip3 ติดตั้ง pyqt5

$ pip3 ติดตั้งคำขอ$ pip3 ติดตั้ง covid19py

เพียงเท่านี้ ดาวน์โหลดรหัสจากที่นี่ ฉันได้ให้รหัสด้านล่าง:

"""* Realtime Covid19 International และ Local Tracker พร้อมนาฬิกา *""" """ ************** Stay Home Stay Safe. Live, let Live ******** ***** """

"""

ผู้แต่ง: ashraf minhaj mail: [email protected] เว็บไซต์: ashrafminhajfb.blogspot.com """

#นำเข้าห้องสมุดที่จำเป็น

นำเข้าไลบรารี PyQt5 #QT GUI สำหรับ python3 จาก PyQt5. QtCore นำเข้า Qt, QTimer #timer เพื่ออัปเดตจาก PyQt5. QtWidgets นำเข้า * #นำเข้าทุกอย่างจาก PyQt5. QtGui นำเข้า QFont #สำหรับแบบอักษรนำเข้า sys #จำเป็นสำหรับแอปพลิเคชัน QT #นำเข้าระบบปฏิบัติการ COVID19 #covid19 information -api นำเข้า datetime #you know what this is for

คลาส CoronaTracker (QWidget):

""" คลาสหลักที่มีทุกอย่าง""" def _init_(self): """initialize things""" 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 resolution

#ป้ายหลัก

self.banner_label = QLabel(ตัวเอง) 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(""" background-color: black; color: white; border-style: outset; border-width: 1px """)

"""_ข้อมูลล่าสุดของโลก_"""

#world label self.w = QLabel(ตัวเอง) self.w.setGeometry(200, 55, 400, 40) self.w.setText("World at a Glance") 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.w_cases.setGeometry(5, 90, 100, 40) self.w_cases.setText("กรณี:") self.w_cases.setFont(QFont('SansSerif', 18)) ตนเอง 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.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("ความตาย:") self.w_death.setFont(QFont('SansSerif', 18)) ตนเอง 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(""" สีพื้นหลัง: สีดำ; สี: สีขาว; สไตล์เส้นขอบ: เริ่มแรก; ความกว้างของเส้นขอบ: 1px """)

#รักษาหายทั่วโลก

self.w_cured = QLabel(ตัวเอง) self.w_cured.setGeometry(5, 140, 100, 40) self.w_cured.setText("Cured:") self.w_cured.setFont(QFont('SansSerif', 18)) ตนเอง w_cured.setStyleSheet(""" background-color: black; color: cyan; border-style: outset; border-width: 1px """)

#หมายเลขรักษาทั่วโลก

self.w_cured_num = QLabel (ตัวเอง) 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.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 ยืนยันกรณี self.c_cases = QLabel(ตัวเอง) 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 """) #local case number self.c_cases_num = QLabel(ตัวเอง) 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.c_death.setGeometry(350, 240, 100, 40) self.c_death.setText("ความตาย:") self.c_death.setFont(QFont('SansSerif', 18)) ตนเอง c_death.setStyleSheet(""" background-color: black; color: red; border-style: outset; border-width: 1px """)

#จำนวนผู้เสียชีวิตในพื้นที่

self.c_death_num = QLabel(ตัวเอง) 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.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 รักษาหมายเลข self.c_cured_num = QLabel(ตัวเอง) 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.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- สี: สีดำ; สี: สีขาว; สไตล์เส้นขอบ: เริ่มแรก; ความกว้างของเส้นขอบ: 1px """) #label สำหรับวันธรรมดา self.weekday = QLabel(ตัวเอง) 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.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(): #if ตัวจับเวลาหยุดลง (ถึงเกณฑ์) #หลังจาก 1 วินาที (โดยประมาณ) หรือ 1000ms

ลอง:

"""ลองรับข้อมูล มิฉะนั้นให้รันโค้ดต่อไป"" self.latest = self.covid.getLatest() #gte covid19 ข้อมูลล่าสุด

#get ข้อมูลล่าสุดตามรหัสประเทศ 'BD'-บังคลาเทศ, 'IN'-อินเดีย ฯลฯ

self.local = self.covid.getLocationByCountryCode('BD', ไทม์ไลน์=เท็จ) #print(self.local) #print(self.latest)

ยกเว้น:

"""ไม่สามารถรับข้อมูลได้""" print("อินเทอร์เน็ตผิดพลาด!!")

ผ่าน #ละเว้น วิ่งต่อไป

self.timer.start(1000) #เริ่มจับเวลา

self.show() #show อินเทอร์เฟซผู้ใช้ของเรา

อัปเดต def (ตัวเอง):

"""อัปเดตป้ายกำกับพร้อมข้อมูล"""

"""_แยกข้อมูลอัปเดตเวลาและวันที่_"""

#set up clock and date time (update values) #get and update values #เพื่อทราบข้อมูลเพิ่มเติม อ่านเอกสาร datetime ของ python

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

self.clock.setText(self.dt.strftime('%X')) self.weekday.setText(self.dt.strftime('%A')) self.date.setText(self.dt.strftime('%) x')) """_อัปเดตข้อมูล covid19_""" #worldwide ข้อมูลล่าสุด self.w_cases_num.setText(str(self.latest['confirmed'])) 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]['latest']['deaths'])) self.c_cases_num.setText(str(self.local[0]['latest']['confirmed']))

พิมพ์ ("กำลังปรับปรุง")

กลับ

def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #run the application if _name_ == '_main_': main()

ขั้นตอนที่ 6: เสร็จสิ้น:

เสร็จแล้ว
เสร็จแล้ว

หลังจากทดสอบโค้ดแล้ว ฉันวางมันไว้บนโต๊ะและทุ่มเทแหล่งพลังงานให้กับมัน เพื่อให้สามารถทำงานได้ในขณะที่ชาร์จ ด้วยการใช้ ups สิ่งนี้สามารถทำงานได้แม้ในการกำจัดโหลด สิ่งนี้ทำให้การ์ด pi SD ของคุณมีการป้องกันที่เหมาะสมเช่นกัน

ไม่ว่าเราจะเป็นใคร เราต้องตาย อย่าคิดไปเอง คิดแต่เรื่องโลก เราสามารถอยู่ได้ตลอดไปโดยการกระทำของเราปล่อยให้มันเป็นอย่างนั้น

แนะนำ: