Inhoudsopgave:
- Stap 1: Onderdelen die ik heb gebruikt:
- Stap 2: Stel Raspberry Pi in:
- Stap 3: Schakelschema:
- Stap 4: Het lichaam:
- Stap 5: De software (broncode):
- Stap 6: Eindig:
Video: Desktop COVID19-tracker met klok! Raspberry Pi Powered Tracker - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
We weten dat we elk moment kunnen sterven, zelfs ik kan sterven tijdens het schrijven van dit bericht, ik, jij, we zijn tenslotte allemaal stervelingen. De hele wereld schudde door de COVID19-pandemie. We weten hoe we dit kunnen voorkomen, maar hey! we weten hoe we moeten bidden en waarom we moeten bidden, doen we dat dagelijks? Nee!! Eigenlijk vergeten we de grondoorzaak van waarom we dingen zouden moeten doen. We weten dus dat een hygiënische levensstijl ons kan redden, maar we doen het niet goed. Denk aan het geval van mijn jongere broer, hij wil zelfs in deze tijd buiten spelen. Ik moest iets doen om iedereen consequent te informeren over de laatste gevallen van COVID19. Daarom heb ik een digitaal bureaudisplay gemaakt dat de laatste gevallen van COVID19 in realtime laat zien. Omdat dit een klok heeft, kan ik het op een plaats zetten waar iedereen samenkomt of komt. Ze zullen zien dat de cijfers optellen, wat bij hen bewustzijn zal opwekken en hopelijk zal iedereen bij bewustzijn zijn. Ook als maker en hobbyist bleek dit een goed project om aan te werken in deze lock-down sessie.
Stap 1: Onderdelen die ik heb gebruikt:
- Raspberry Pi 3 Model B (opgestart met sd-kaart)
- Raspberry Pi UPS-module (optioneel)
- 7 inch HDMI LCD-scherm
- HDMI naar HDMI kabel (deze wordt meegeleverd met het scherm)
- USB-kabels
- 5v 2A voedingsadapter (om de pi van stroom te voorzien)
- PVC plaat [houten kleur] (om het lichaam te maken)
Stap 2: Stel Raspberry Pi in:
Ik denk dat je de pi perfect hebt ingesteld, tenzij je niet…
- koop een SD-kaart - meer dan 8 GB
- download het nieuwste raspbian iso-bestand van hier.
- Brand de SD-kaart met behulp van etser
(Merk op dat mensen iets kunnen zeggen over andere software waarvoor je wat setup-dingen moet doen, maar etcher is supergemakkelijk te gebruiken en eenvoudig maar ook effectief.)
Sluit gewoon uw SD-kaart aan op de pc, voer etcher uit, u zult zien dat de SD-kaart automatisch wordt geselecteerd door etcher, klik vervolgens om het gedownloade iso-bestand of afbeelding te selecteren en brand het vervolgens. Na succesvol schrijven en verwerken ontkoppel je de SD-kaart en sluit je hem aan op je pi, zet hem aan en VOILA!! Het leeft.
Stap 3: Schakelschema:
Sluit alles aan en zet de raspbery pi aan, het is gewoon verbinden, niets anders.
Je zult zien dat de pi opstart.
Stap 4: Het lichaam:
Ik heb een PVC-plaat op maat gesneden volgens de weergavegrootte en vervolgens met schroeven toegevoegd. Daarna heb ik alles aangesloten. Eindelijk nog een vel aan de achterkant toegevoegd om te voorkomen dat het valt (blauw vel). Als alles in orde is, zou je de pi moeten zien opstarten (laatste foto)
Stap 5: De software (broncode):
Het programma is geschreven in python3. Voor GUI (Graphical User Interface) gebruikte ik PyQt5 en om realtime COVID19-gegevens te extraheren, gebruikte ik de COVID19Py-bibliotheek. Dank aan de jongens die de API voor ons beschikbaar hebben gesteld
Dat is het zo'n beetje, open nu Terminal op raspberry pi en installeer bibliotheken (kopieer ze allemaal en plak ze op rpi-terminal).
Negeer $ teken tijdens het kopiëren
$ pip3 installeer pyqt5
$ pip3 installatieverzoeken$ pip3 installatie covid19py
Dat is het, download nu de code van hier, ik heb de onderstaande code verstrekt:
"""* Realtime Covid19 internationale en lokale tracker met klok *""" """ *************** Blijf thuis, blijf veilig. Leef, laat leven ******* ***** """
"""
auteur: ashraf minhaj mail: [email protected] site: ashrafminhajfb.blogspot.com """
#importeer benodigde bibliotheken
importeer PyQt5 #QT GUI-bibliotheek voor python3 uit PyQt5. QtCore importeer Qt, QTimer #timer om te updaten vanuit PyQt5. QtWidgets import * #importeer alles uit PyQt5. QtGui importeer QFont #for fonts import sys #noodzakelijk voor QT-applicaties #import os import COVID19Py #covid19 informatie -api import datetime #je weet waar dit voor is
klasse CoronaTracker (QWidget):
"""hoofdklasse die alles bevat""" def _init_(self): """initialiseer dingen""" super()._init_() self.covid = COVID19Py. COVID19() #initialize self.timer = QTimer() #initialize self.timer.timeout.connect(self.update) #if timer bereikt drempel - bel update self.ui() #user interface
def ui(zelf):
"""Gebruikersinterfacesectie""" self.setWindowTitle("Covid19 International and Local Tracker") #self.setWindowFlags(Qt. CustomizeWindowHint) #hide titelbalk self.setStyleSheet("Achtergrondkleur: zwart") self.setFixedSize(640, 480) #volgens mijn scherm (x, y) /rpi resolutie
#hoofdlabel
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_label. setFont(QFont('SansSerif', 20)) self.banner_label.setStyleSheet(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
"""_worlds nieuwste gegevens_"""
#world label self.w = QLabel(self) self.w.setGeometry(200, 55, 400, 40) self.w.setText("World at a Glance") self.w.setFont(QFont('SansSerif', 18)) self.w.setStyleSheet(""" achtergrondkleur: zwart; kleur: blauw; randstijl: begin; randbreedte: 1px """)
#wereldwijd bevestigde gevallen
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)) zelf. 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
#wereldwijde sterfgevallen
self.w_death = QLabel(self) self.w_death.setGeometry(350, 90, 100, 40) self.w_death.setText("Deaths:") self.w_death.setFont(QFont('SansSerif', 18)) zelf. w_death.setStyleSheet(""" achtergrondkleur: zwart; kleur: rood; randstijl: begin; grensbreedte: 1px """) #death nummer 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
#wereldwijd genezen
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(""" achtergrondkleur: zwart; kleur: cyaan; randstijl: begin; randbreedte: 1px """)
#wereldwijd genezen nummer
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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
"""_ Lokale code per land_"""
#local - Land self.c = QLabel(self) self.c.setGeometry(170, 200, 400, 40) self.c.setText("Mijn land: Bangladesh") self.c.setFont(QFont('SansSerif'), 18)) self.c.setStyleSheet(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """) #local confirm cases 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(""" background -kleur: zwart; kleur: oranje; randstijl: begin; randbreedte: 1px """) #local casesnummer 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
#lokale sterfgevallen
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)) zelf. c_death.setStyleSheet(""" achtergrondkleur: zwart; kleur: rood; randstijl: begin; randbreedte: 1px """)
#lokaal sterftecijfer
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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: cyaan; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
"""_Tijd, Datum, Klok_"""
#clock self.clock = QLabel(self) self.clock.setGeometry(115, 340, 400, 70) self.clock.setFont(QFont('SansSerif', 60)) self.clock.setStyleSheet(""" background- kleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """) #label for weekday self.weekday = QLabel(self) self.weekday.setGeometry(5, 360, 110, 20) self.weekday.setFont(QFont('SansSerif', 13)) self.weekday.setStyleSheet(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 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(""" achtergrondkleur: zwart; kleur: wit; randstijl: begin; randbreedte: 1px """)
#controleer de timer indien niet self.timer.isActive(): #als timer is gestopt (drempelwaarde bereikt) #Na 1 seconde (ongeveer) of 1000 ms
proberen:
"""probeer gegevens op te halen, anders voer je de code toch uit""" self.latest = self.covid.getLatest() #gte covid19 nieuwste gegevens
#haal de laatste gegevens op per landcode 'BD'-Bangladesh, 'IN'-India enz
self.local = self.covid.getLocationByCountryCode('BD', timelines=False) #print(self.local) #print(self.latest)
behalve:
"""kan geen gegevens ophalen""" print("Internetfout!!")
pas #negeren, toch rennen
zelf.timer.start(1000) #start de timer
self.show() #show onze gebruikersinterface
def update(zelf):
"""labels bijwerken met informatie"""
"""_ Uitpakken van advertentie-update tijd en datum informatie_"""
#klok en datumtijd instellen (waarden bijwerken) #waarden ophalen en bijwerken #voor meer informatie lees python datetime-documentatie
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')) """_update covid19-gegevens_""" #worldwide nieuwste gegevens 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 laatste gegevens 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']['bevestigd']))
print("update")
opbrengst
def main(): app = QApplication(sys.argv) win = CoronaTracker() #instantiate sys.exit(app.exec()) #voer de toepassing uit als _name_ == '_main_': main()
Stap 6: Eindig:
Na het testen van de code heb ik hem in het bureau geplaatst en er een stroombron voor gereserveerd. Zodat het kan werken tijdens het opladen. Door de ups te gebruiken, kan dit zelfs bij load-shedding worden uitgevoerd, dit geeft uw pi SD-kaart ook een geschikte bescherming.
Het maakt niet uit hoe of wie we zijn, we moeten sterven. Laten we niet aan jezelf denken, maar aan de wereld. We kunnen alleen eeuwig leven door onze daden, laat het zo zijn.
Aanbevolen:
Gloeiende klok met luchtbellen; Mogelijk gemaakt door ESP8266: 7 stappen (met afbeeldingen)
Gloeiende klok met luchtbellen; Aangedreven door ESP8266: "gloeiende luchtbellenklok" geeft de tijd en enkele afbeeldingen weer door verlichte luchtbellen in vloeistof. In tegenstelling tot een led-matrixdisplay, geven langzaam zwevende, gloeiende luchtbellen me iets om te ontspannen. Begin jaren 90 stelde ik me "bubbeldisplay" voor. niet
KLOK MET ATMEGA 8: 7 stappen (met afbeeldingen)
KLOK MET ATMEGA 8: ATMEGA 8 is een van de goedkoopste microcontrollers, dus ik besloot er een klok van te maken. Het eerste wat ik tegenkwam is het weergeven van de tijd, dus het meest algemene is een 7-segmentweergave, maar ik kan niet alle tekst weergeven verwacht er maar weinig, dus ik besloot om met
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
IoT Desktop Klok en Thermometer: 5 Stappen
IoT Desktop Klok en Thermometer: Hallo, Deze instructie laat je zien hoe ik een desktop klok en thermometer heb gebouwd, zonder speciaal gereedschap. Deze bureauklok toont de huidige tijd, de temperatuur en de luchtvochtigheid. De klok is zeer nauwkeurig omdat deze is gesynchroniseerd met een tijd
Een klok maken van een klok: 11 stappen (met afbeeldingen)
Een klok maken van een klok: in deze Instructable neem ik een bestaande klok en creëer ik een betere klok. We gaan van de afbeelding links naar de afbeelding rechts. Voordat u op uw eigen klok begint, moet u weten dat het opnieuw in elkaar zetten een uitdaging kan zijn, aangezien de piv