Bouwen van een Cross-Platform-System-Monitor met Ubidots (1 / 3 stap)

Stap 1: Het schrijven van het script

Laten we beginnen. Ons doel is het creëren van een programma dat gebruikmaakt van de gegevensbron "Monitor" verslag waarden van drie variabelen: cpu_percent (procent van de CPU in gebruik), mem_percent (procent van RAM in gebruik), en disk_percent (procent van de vaste schijf in gebruik). Als u wilt geven het programma een extra smaak, wij zoeken voor deze variabelen en de gegevensbron met de naam, en ze alleen maken als nodig.

Het eerste deel van een Python programma is de keet lijn en een beschrijving van het programma in een docstring. Voorzien van een goede is beschrijving gezonde praktijk.

 #!/usr/bin/python""" Monitoring Statistics via UbidotsThis script sends CPU, Memory, and Disk Usage statistics toUbidots for visualization and insights. This script is crossplatform and will work on Windows, Linux, and OS X. """ 

Wij importeren vier modules. Wij nemen enkel de gethostname() functie van de socket-module, en gewoon de argv variabele van de sys-module.

 from socket import gethostnamefrom sys import argv import psutil import ubidots 

Laten we nu definiëren de belangrijkste methode. Het programma duurt één opdrachtregelargument, en zal zij de Ubidots API-sleutel. De laatste regel hieronder instantieert een ApiClient exemplaar dat we voor de rest van het programma gebruiken zullen.

 def main(): """Main routine for the script.""" if len(argv) != 2: print "Usage: %s API_KEY" % argv[0] return api = ubidots.ApiClient(argv[1]) 

Nu zullen we het schrijven van code om te zoeken naar de gegevensbron dat overeenkomt met de gewenste naam van onze gegevensbron: "Monitor." Als er geen dergelijke gegevensbron bestaat, nemen we de tijd om het te maken.

 ds_name = gethostname() + " Monitor" ds = None for cur_ds in api.get_datasources(): if cur_ds.name == ds_name: ds = cur_ds break if ds is None: ds = api.create_datasource({"name": ds_name}) 

Met onze ds-variabele gemaakt, wij zal nu volgen een vergelijkbaar patroon van het zoeken en maken als deze niet wordt gevonden voor elk van de variabelen. Buiten uw belangrijkste functie, door deze helper functie te definiëren:

 def get_var_by_name(var_name, ds): """Search for a variable in a data source. If found, returns the variable. If not found, returns None.""" for var in ds.get_variables(): if var.name == var_name: return var return None 

Terug in de main functie:

 var_cpu = get_var_by_name("cpu_percent", ds) var_mem = get_var_by_name("mem_percent", ds) var_disk = get_var_by_name("disk_percent", ds) if var_cpu is None: var_cpu = ds.create_variable({"name": "cpu_percent", "unit": "%"}) if var_mem is None: var_mem = ds.create_variable({"name": "mem_percent", "unit": "%"}) if var_disk is None: var_disk = ds.create_variable({"name": "disk_percent", "unit": "%"}) 

Nu aan het einde van onze belangrijkste functie, zullen we passende aanroepen van functies in de module psutil om de waarde te slaan. De onderstaande code kijkt naar alle fysieke partities beschikbaar, en het eerste verslag op kiest.

 # Utilize the psutil module to send values to Ubidots. first_mnt = psutil.disk_partitions(all=False)[0].mountpoint var_cpu.save_value({"value": psutil.cpu_percent(interval=1)}) var_mem.save_value({"value": psutil.virtual_memory().percent}) var_disk.save_value({"value": psutil.disk_usage(first_mnt).percent}) 

Gerelateerde Artikelen

Bouwen van een eenvoudige macht stroomonderbreking Monitor

Bouwen van een eenvoudige macht stroomonderbreking Monitor

Hallo, en welkom op mijn Instructable voor het bouwen van een goedkope, eenvoudige, enigszins bruikbare macht stroomonderbreking monitor! Als u hier bent, komt dit waarschijnlijk omdat, zoals ik, je woont in een gebied dat de ervaringen van de occasi
Hoe het bouwen van een goedkope werkbank voor houtbewerking met behulp van een mal van Kreg HD, met VIDEO tutorial

Hoe het bouwen van een goedkope werkbank voor houtbewerking met behulp van een mal van Kreg HD, met VIDEO tutorial

Gratis plannen zijn ook hierna beschikbaar in Imperial en Metric.Stap 1: Zie volledige Video Tutorial Video hier.Warren uit één hout Tools toont hoe het bouwen van een goedkope en makkelijke eiland houtbewerking werkbank met hond gaatjes, gewrichten
Bouwen van een hout draaibank werken bankje met laden met behulp van gerecycled vintage hout

Bouwen van een hout draaibank werken bankje met laden met behulp van gerecycled vintage hout

dus ik heb alle mijn hout draaien ongewenste laatste tijd opslaan problemen, het leek alsof al die kleine stukjes te in de rommel verdwalen waren, ik had behoefte aan een opslagoplossing en ik nodig een snelle maar ik niet zomaar iets ik hield wilde
Hoe om te bouwen van een tijdelijke baksteen Pizza houtoven met goedkope, gemakkelijk om materialen vinden

Hoe om te bouwen van een tijdelijke baksteen Pizza houtoven met goedkope, gemakkelijk om materialen vinden

als u net als DIY projecten (en pizza projecten), check mijn site, mikesenese.com/DOIT en volg mij opDeze pizza oven is enkel ongeveer zo eenvoudig om te bouwen als stapelen blokken, maar creëert een zeer effectieve hout gestookte oven met een geboge
Bouwen van een parabolische zonne-Warmwaterboiler 123D met

Bouwen van een parabolische zonne-Warmwaterboiler 123D met

voor dit project heb ik uiteengezet te maken van de zonne-equivalent van de warm water kraan op een koffiezetapparaat: een zonne-on demand warm water kachel.  Ik was geïnspireerd door de functionaliteit van een nieuwe software genaamd 123D-Make, dat
Bouwen van een ultieme buiten Gelbrander compleet met aangepaste Cap steen: De ManPit

Bouwen van een ultieme buiten Gelbrander compleet met aangepaste Cap steen: De ManPit

Overzicht:In de stappen vooruit leert u om te bouwen van een grote brand put thats esthetisch evenals eenvoudig te bouwen en last but zeker not least vrij gemakkelijk op uw portemonnee, in feite de projectkosten van dit me minder dan 100 dollar. Ik w
LinKit een Gas IoT: (LPG) monitor met Ubidots

LinKit een Gas IoT: (LPG) monitor met Ubidots

Deze instructables is een continuatioan van mijn linkit een IoT Tutorial serie. Hier kunt u mijn vorige linkit een tutorial.Ditmaal zal ik MQ 2 Sensor gebruik op te sporen niveau van Gas (LPG) en stuur de gegevens naar Ubidots platform via Wifi-verbi
Bouwen van een kat strooisel vak ventilator met Arduino

Bouwen van een kat strooisel vak ventilator met Arduino

een schuilplaats kat kattenbak is een geweldige manier om uw appartement eruit een verblijfsvergunning voor volwassenen in plaats van crazy cat dames. Een verborgen strooisel vak in een kast, onder een gootsteen, of ingebouwd in sommige andere meubel
Hoe te installeren en bouwen van een zelf opgenomen zoutwater Aquarium met ingebouwde toevluchtsoord

Hoe te installeren en bouwen van een zelf opgenomen zoutwater Aquarium met ingebouwde toevluchtsoord

dus aangezien ik momenteel gaan studeren en in een slaapzaal leven, heb ik besloten dat ik zou een kleine desktop aquarium heb omdat ik niet kon een grote 70gal-aquarium. Heb ik besloten om te gaan met een 10-gallon zelf opgenomen eenheid alleen ther
Bouwen van een dubbele verstelbare power supply met gebruikte laptop laders

Bouwen van een dubbele verstelbare power supply met gebruikte laptop laders

De laatste jaren ik zijn gericht op Arduino projecten waar een USB stekker met 5V output bijna de enige macht is leveren dat ik nodig had. Toen ik een project een paar maanden geleden voor het genereren van audio golven met een Arduino begon ik een d
Bouwen van een discrete USB Air Conditioner met een Brita Pitcher

Bouwen van een discrete USB Air Conditioner met een Brita Pitcher

afgelopen zomer, het Bureau AC gestopt met werken. Dit is Los Angeles en buitentemperaturen waren meer dan 100 graden. Ik moest iets doen om te gaan met de hitte. Dan had ik een Eureka-moment. Ik kan mijn eigen AC-eenheid maken. Maar het probleem was
Bouwen van een eenvoudige projectie toegewezen Display met Pixel toegewezen LEDs

Bouwen van een eenvoudige projectie toegewezen Display met Pixel toegewezen LEDs

Als de ontwerper van een Printplaat die meestal LED controlesystemen behandelt, geaccumuleerde ik hebben nogal een stash van LED-strip, bars, pucks en andere bedrijven-controllers die we voor clients, optredens of evaluaties gekocht hebben. Zo nu en
Bouwen van een goedkope TV of Monitor Mount

Bouwen van een goedkope TV of Monitor Mount

dit is een gids voor het maken van een werkende mount voor elke monitor of tv die een greep op de achterzijde heeft. Alles wat die je nodig hebt voor dit nagenoeg vrij project zijn een paar stukjes schroot hout, een stokje, sommige houtschroeven en e
Het bouwen van een halve Smart, DIY boot met Arduino en sommige andere sensoren

Het bouwen van een halve Smart, DIY boot met Arduino en sommige andere sensoren

ik dit off van voor de bouw van een waterfles boot, met sommige toevoegingen voor het obstakel te vermijden en licht-geleide controle gebaseerd. Ik gebruikte Arduino als een microcontroller, een ultrasone sensor op de voorzijde, een paar eenvoudige s