PCMonitor – Monitoruj zasoby komputera na wyświetlaczu

PCMonitor – Monitoruj zasoby komputera na wyświetlaczu

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Witam, dzisiaj przedstawiam Wam mój pierwszy artykuł na majsterkowo.pl, a jest on poświęcony monitorowi zużycia zasobów komputera. Widżety takie jak np. conky nie są przydatne, gdy mamy otwartych wiele okien. Dlatego postanowiłem zbudować na bazie arduino, urządzenie o nazwie PCMonitor.


 

Co będzie potrzebne?

  1. Arduino (każdy model z USB. np.: Leonardo, Uno. Ja posiadam Arduino Leonardo z starter kitu ElektroPrzewodnik) http://botland.com.pl/zestawy-startowe-dla-arduino/1846-arduino-starterkit-electroprzewodnik-z-modulem-arduino-leonardo.html
  2. Wyświetlacz 16×2(wyświetla ogólne zużycie procesora i wolną pamięć ram) http://botland.com.pl/wyswietlacze-alfanumeryczne/223-wyswietlacz-lcd-2×16-znakow.html bądź 20×4(wyświetla datę, zużycie każdego rdzenia procesora, zużycie pamięci ram oraz ilość uruchomionych procesów) http://botland.com.pl/wyswietlacze-alfanumeryczne/1136-wyswietlacz-lcd-4×20-znakow-zielony.html
  3. (Opcjonalnie) Konwerter na I2C – pozwala podłączyć wyświetlacz na 4 kablach. Ja taki posiadam, ale program wspiera także wyświetlacze bez konwertera. http://botland.com.pl/konwertery-pozostale/2352-konwerter-i2c-dla-wyswietlacza-lcd-hd44780.html
Potrzebne części
Potrzebne części

Instalacja oprogramowania na Arduino i podłączenie wyświetlacza

Najpierw podłączamy wyświetlacz do Arduino. Jeśli posiadamy wyświetlacz bez konwertera, podłączamy go według tego schematu:

Schemat podłączenia wyświetlacza bez konwertera.
Schemat podłączenia wyświetlacza bez konwertera.

W moim przypadku posiadam konwerter I2C, więc podłączam cztery kabelki:

VCC do +5V

GND do GND

SDA do SDA

SCL do SCL

Podłączenie Wyświetlacza
Podłączenie Wyświetlacza
Podłączenie Wyświetlacza
Podłączenie Wyświetlacza

Gdzie w Arduino UNO są porty SDA i SCL?

Porty SDA i SCL są zmostkowane z pinami A4 i A5. Podłączając tam wyświetlacz bądź inne urządzenie działające na magistrali I2C,  tracimy możliwość użycia tych pinów do innych celów niż owa magistrala.

A4 – SDA

A5 – SCL

Jak znaleźć adres I2C?

Jeżeli posiadasz wyświetlacz z konwerterem, potrzebujesz znaleźć adres I2C.

Aby to zrobić, wgrywamy na nasze Arduino program i2c_scanner przy podłączonym wyświetlaczu.

    // --------------------------------------
    // i2c_scanner
//
    // Version 1
//    This program (or code that looks like it)
    //    can be found in many places.
//    For example on the Arduino.cc forum.
    //    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
    //     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
    //    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
    //    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
    //    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
    //    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
    //    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
    //
//
    // This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
    //

    #include <Wire.h>

     
void setup()
    {
Wire.begin();
     
Serial.begin(9600);
      Serial.println("\nI2C Scanner");
}
     

    void loop()
{
      byte error, address;
int nDevices;
     
Serial.println("Scanning...");
     
nDevices = 0;
      for(address = 1; address < 127; address++ )
{
        // The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
        // a device did acknowledge to the address.
Wire.beginTransmission(address);
        error = Wire.endTransmission();

        if (error == 0)
{
          Serial.print("I2C device found at address 0x");
if (address<16)
            Serial.print("0");
Serial.print(address,HEX);
          Serial.println("  !");

          nDevices++;
}
        else if (error==4)
{
          Serial.print("Unknow error at address 0x");
if (address<16)
            Serial.print("0");
Serial.println(address,HEX);
        }    
}
      if (nDevices == 0)
Serial.println("No I2C devices found\n");
      else
Serial.println("done\n");
     
delay(5000);           // wait 5 seconds for next scan
    }

 Program i2c_scanner nie jest mojego autorstwa! Pochodzi z www.arduino.cc

Po wgraniu programu otwieramy Serial Monitor i czekamy. Po chwili powinien pojawić się taki tekst:

I2C device found at address [adres]

Zapisujemy adres i przechodzimy do następnego kroku.

Pobieranie kodu do Arduino

Pobieramy paczkę zip z mojego github’a i wypakowujemy. https://github.com/fellfreelinux/pcmonitor

Jak pobrać z githuba.
Jak pobrać z githuba.
Wypakowywanie
Wypakowywanie

UWAGA! Jeśli używasz konwertera I2C, musisz wgrać bibliotekę NewLiquidCrystal. Biblioteka zastępuje orginalną bibliotekę LiquidCrystal i dodaje nowe funkcje. Bibliotekę pobieramy stąd i wypakowyjemy do folderu /librares/ znajdującego się w katalogu z Arduino IDE.

Następnie przechodzimy do wypakowanego folderu. Są tam dwa foldery. Pierwszy – Arduino i drugi – Server. Wchodzimy do Arduino i wgrywamy odpowiedni program na naszą płytkę.

pcmonitor164I2C.ino – Program do wyświetlaczy 16×2 pod magistralę i2C. Wymaga NewLiquidCrystal!

pcmonitor204I2C.ino – Program do wyświetlaczy 20×4 pod magistralę i2C. Wymaga NewLiquidCrystal!

pcmonitor164normal.ino – Program do wyświetlaczy 16×2.

pcmonitor204normal.ino – Program do wyświetlaczy 20×4.

W programach pod magistralę I2C trzeba zmienić adres! Zamień adres przy komentarzu na swój zdobyty przez i2c_scanner.

Jeśli wszystko poszło dobrze, to zabieramy za wgrywanie programu na komputer.


 

 

 

 

Instalacja PCMonitor Server

Napisałem prosty program na komputer (w python3, pyserial, psutil oraz GTK3) wysyłający dane do Arduino.

 

Instalacja na Windows.

Na początku pobieramy:

I instalujemy:

 

Python

Uruchamiamy instalator do momentu, kiedy ukaże się okno “Customize Python 3.4.3”. Wtedy zjeżdzamy na sam dół i klikamy na czerwony X przy “Add python.exe to Path”. Zmieniamy to na “Will be installed on local hard drive” i kontynuujemy instalację.

Python - instalacja
Python – instalacja

PsUtil

Tutaj nie ma żadnej filozofii. Postępujemy według instrukcji instalatora.

PsUtil - Instalacja
PsUtil – Instalacja

PySerial

Postępujemy jak z PsUtil.

 

PySerial - Instalacja
PySerial – Instalacja

PyGObject

Tutaj należy uważać, ponieważ potrzebujemy tylko paczkę GTK z PyGObject.

Uruchamiamy instalator. Przy pytaniu “Do you have portable python installation [—]” klikamy “Add Patch” i podajemy ścieżkę do python’a(u mnie C:\Python32\).

Pytanie
Pytanie

Przy następnym oknie (“Choose available GNOME/Freedesktop libraries”) znajdujemy i zaznaczamy “GTK+ 3.14.9” oraz kilkamy na Next.

Zaznaczamy GTK
Zaznaczamy GTK

W reszcie okien zostawiamy domyślne ustawienia i klikamy na Next.

 

Instalacja Programu PCMonitor Server

Wracamy do wypakowanego archiwum. Wchodzimy do folderu Server i naszym oczom ukażą się dwa pliki:

pcmonitor164GUI – Wersja dla wyświetlacza 16×2

pcmonitor204GUI – Wersja dla wyświetlacza 16×2

Zmieniamy nazwę właściwego pliku do naszego wyświetlacza na “pcmonitor” i ten plik wrzucamy na dysk C.

Wrzucamy program na dysk C
Wrzucamy program na dysk C

Następnie tworzymy skrót na pulpicie.

Tworzymy Skrót
Tworzymy Skrót

Otworzy się okno, do którego wpisujemy “\pcmonitor.py”

Ścieżka do programu.
Ścieżka do programu.

Wpisujemy nazwę, uruchamiamy i mamy działający program! Ustawiamy port COM Arduino i klikamy “Wystartuj Usługę”. Wszystko powinno działać.

Działa!
Działa!

 

 

Instalacja na Linux.

Dla Ubuntu i pochodnych otwieramy Centrum Oprogramowania i instalujemy:

  • python3
  • python-gobject
  • python-serial
  • python-psutil

Bądź instalujemy komendą:

sudo apt-get install python3 python-gobject python-serial python-psutil

Na Arch Linux instalujemy komendą:

sudo pacman -S python python-gobject python-serial python-psutil

Wracamy do wypakowanego archiwum. Wchodzimy do folderu Server i naszym oczom ukażą się dwa pliki:

pcmonitor164GUI.py – Wersja dla wyświetlacza 16×2

pcmonitor204GUI.py – Wersja dla wyświetlacza 16×2

Zmieniamy nazwę pliku właściwego do naszego wyświetlacza na “pcmonitor.py” i ten plik wrzucamy do naszego folderu domowego.

Uruchamiamy terminal i wpisujemy:

python3 ~/pcmonitor.py

…i uruchomił nam się nasz program :D! Ustawiamy port Arduino i klikamy “Wystartuj Usługę”. Wszystko powinno działać.

Działa!
Działa!

 

Teraz powinieneś posiadać działający monitor zużycia zasobów komputera i piękny mały programik do jego obsługi. Mam nadzieję że projekt się spodobał.

Gotowe
Gotowe

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 2/5 (głosów: 3)

Podobne posty

12 komentarzy do “PCMonitor – Monitoruj zasoby komputera na wyświetlaczu

Odpowiedz

anuluj

Masz uwagi?