Monitor zasobów komputera przy użyciu HD44780

Pracujący wyświetlacz zasobów komputera

Poniższy projekt pokaże w prostych krokach jak własnoręcznie możesz stworzyć wyświetlacz statystyk komputera.

Do projektu potrzebujesz:

  • Linuksa
  • Bardzo podstawowe zrozumienie skryptów bashowych
  • Raspberry z Raspbianem
  • Połączenie sieciowe pomiędzy Raspberry a komputerem który chcesz monitorować
  • Mała płytka stykowa
  • Wyświetlacz typu HD44780
  • Lutownica z cyną
  • Przewody męsko-żeńskie do płytek stykowych 2.54 cm
  • Piny 2.54 cm
  • Dwa potencjometry liniowe (100kΩ i 300Ω)
  • 100Ω rezystor węglowy
  • Parę Jumper links

Aby zaspokoić ciekawość, mój wyświetla:

  • Piewsza linia
    1. Wykres użycia każdego z 8 rdzeni procesora
    2. Temperatura procesora
  • Druga linia
    1. Wykres użycia GPU
    2. Wykres użycia pamięci karty graficznej
    3. Wykres użycia pamięci video
    4. Wykres utylizacji magistrali PCIe
    5. Literki GMVP symbolizujące kolejność powyżej wspomnianych elementów
    6. Temperatura GPU

Elektronika

Potrzebny asortyment

Pierwszą rzecz do wykonania, to przylutowanie pinów do wyświetlacza, to jedyny przypadek, gdzie lutowanie będzie potrzebne.
Lutowanie jest konieczne aby łatwo przymocować wyświetlacz do płytki stykowej.

Poniższe elementy są powszechnie dostępne za w niewielkich cenach, oprócz naturalnie Raspberry

Montaż proponuje wykonać według poniższego schematu:

Schemat połączeń fizycznych Schemat połączeń logicznych

Schemat wygląda bardziej skomplikowanie niż jest w istocie.
Projekt wykonany w programie Fritzing można pobrać Tutaj.

Potencjometry trzeba będzie wyregulować, potencjometr 300Ω służy do regulacji podświetlenia, natomiast potencjometr 100kΩ służy do regulacji kontrastu. Należy je wyregulować według swoich preferencji

Oprogramowanie

Zajmiemy się teraz oprogramowaniem potrzebnym aby wyświetlić statystykę

Najpierw należy pobrać bibliotekę do procesora BCM2835, można to zrobić z tej strony. Bibliotekę ten proponuje ulokować w standardowych katalogach na raspberry:
Nagłówek (rozszerzenie .h) - /usr/local/include/
Bibliotekę statyczną (rozszerzenie .a) - /usr/local/lib/

Następnie należy pobrać i skompilować mój kod źródłowy napisany w C, dostępny tutaj.
Kompulacja wymaga jedynie wykonania polecenia make na raspberry.

Opis zastosowania:

NAZWA
    LCD - Wysyła polecenia do wyświetlacza HD44780

SKŁADNIA
    LCD [-b] [BARINIT/Ciąg znaków]

OPIS
    Aby zainicjalizować wyświetlacz, należy wywołać polecenie bez argumentów

    BARINIT
        Polecenie programujące wyświetlacz w znaki reprezentujące procenty.
        
    Ciąg znaków
        Ciąg znaków do wyświelenia.
        
    -b      
        Włącza obsługę wyświetlania procentów w postaci znaku w ciągu znaków np.: 50%
 

Instalacja

W poprzednich krokach skompilowaliśmy program do komunikacji z wyświetlaczem, należy jedynie pobrać status komputera i przekazać go wyświelaczowi

Pobieranie danych

Aby co określony interwał pobierać dane z innego komputera do wyświetlenia, proponuje wykorzystać prosty skrypt bashowy, opierający się na wykorzystaniu narzędzia netcat

#!/bin/bash
LCD_PROG=/usr/bin/LCD
SERVER='10.3.0.5'
PORT='8748'


while :
do
 STRING=`nc $SERVER $PORT`
# echo $STRING
 if [ $? -ne 0 ]
 then
  ${LCD_PROG} DISCONECTED
 else
  ${LCD_PROG} -b "${STRING}"
 fi
 sleep 10
done
Poniższy program powinien naturalnie zostać uruchomiony na raspberry

Wysyłanie danych

Niestety nie pomogę Tobie przy podawaniu danych, sam musisz zdecydować jakie dane chcesz wyświetlać
W czym mogę Ci pomóc to pokazać jak łatwo można opublikować dane na danym porcie
Użyjemy do tego serwera xidetd
W pliku konfiguracyjnym serwera /etc/inet.conf, na naszym komputerze z którego dane mają zostać pobrane należy umieścić linie

8748/tcp        stream  tcp     nowait  exampleuser   /home/exampleuser/bin/script.sh
Przykładowa ścieżka /home/exampleuser/bin/script.sh powinna wskazywać na skrypt który zwraca zawartość do wyświetlenia.
Należy podać też użytkownika który dany skrypt uruchamia, w przykładzie: exampleuser

Uwaga! należy nadłożyć starań, aby nie stworzyć luki w zabezpieczeniach podaną metodą publikacji danych

Wykończenie

Teraz czas na najłatwiejszą część, wykończenie.

Ja swój wyświetlacz pomalowałem tylko na czarno, lecz istnieje wiele opcji, można samemu postarać się wytrawić płytkę, stworzyć odpowiednią obudowę, a nawet zaprojektować cały układ nie wymagający korzystania z raspberry, wybór należy do Ciebie
Moje Raspberry i tak cały czas mam podłączone, gdyż dostarcza mi potrzebnych usług, więc opcji tej nie rozważam.