สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เรารู้ว่าเราสามารถตายได้ตลอดเวลา แม้ว่าฉันจะตายได้ในขณะที่เขียนโพสต์นี้ ฉันเอง คุณ เราทุกคนต่างก็เป็นมนุษย์ปุถุชน โลกทั้งใบสั่นสะเทือนเพราะการระบาดของ 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:
ฉันเดาว่าคุณได้ตั้งค่า pi ไว้อย่างสมบูรณ์แล้ว เว้นแต่คุณยังไม่ได้ -
- รับการ์ด SD - มากกว่า 8 GB
- ดาวน์โหลดไฟล์ raspbian iso ล่าสุดจากที่นี่
- เบิร์นการ์ด 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 ของคุณมีการป้องกันที่เหมาะสมเช่นกัน
ไม่ว่าเราจะเป็นใคร เราต้องตาย อย่าคิดไปเอง คิดแต่เรื่องโลก เราสามารถอยู่ได้ตลอดไปโดยการกระทำของเราปล่อยให้มันเป็นอย่างนั้น