Raspberry Pi Zero 2W: So lässt du dir Infos zu RAM und Speicherkapazität auf einem OLED-Display anzeigen

In diesem Beitrag lernst du mit dem Raspberry Pi Zero 2W ein SH1106 OLED Display anzusteuern und dabei Information zur RAM Auslastung anzuzeigen.

Obwohl nur 65 x 30 x 5 mm groß, hat der Raspberry Pi Zero 2 W eine ordentliche Portion Power zu bieten. So liegt der Arbeitsspeicher des Minicomputers bei satten 512 GB und mithilfe einer microSD-Karte kannst du zudem für eine üppige Gerätespeicherkapazität sorgen. Je nachdem, welche Art von Projekt du mit deinem Raspberry Pi realisierst, benötigst du allerdings auch eine große Menge Speicherplatz. Aktuelle Infos zu RAM und Gerätespeicher können daher sehr wertvoll sein. In diesem Tutorial zeigen wir dir, wie du dir entsprechende Details zu auf einem OLED-Screen anzeigen lassen kannst.

Das brauchst du für dein Vorhaben

Raspberry Pi Zero 2W, OLED Display ansteuern: So wird’s gemacht

  1. Im ersten Schritt kümmerst du dich um die Schaltung. Verbinde deinen Raspberry Pi mit dem OLED-Screen folgendermaßen:
Raspberry PiOLED sh1106
3.3 – 5vVCC
GNDGND
SCLSCL
SDASDA
  1. Anschließend installierst du das Betriebssystem Raspberry Pi OS auf deiner microSD Karte. Dabei gehst du folgendermaßen vor: Als erstes lädst du Raspberry Pi OS herunter und entpackst das Image auf deiner Festplatte. Im Anschluss überträgst du das Betriebssystem mithilfe der Software Etcher auf deine microSD Karte. Etcher ist ein Open Source Tool, das sich bei der Installation von Raspbian OS als sehr nützlich erweist. Daher ist es ratsam, die neueste Version im Vorfeld der Installation zu downloaden. Danach legst du die microSD Karte in deinen Rechner ein und startest Etcher. Klicke auf „Select Image“ und wähle anschließend den Ordner aus, in dem du das Image entpackt hast. Zum Schluss klickst du auf die microSD Karte und auf „Flash“, um mit der Installation zu beginnen.

SSH-Zugriff für Raspberry Pi Zero 2 W einrichten

  1. Als nächstes richtest du den SSH-Zugriff für deinen Raspberry Pi ein. Dabei gibt es verschiedene Vorgehensweisen – je nachdem, ob du Windows oder Linux nutzt.
    1. Sofern du Linux oder Mac als Betriebssystem nutzt, brauchst du keine weitere Software, um den SSH-Zugriff einzurichten. Wenn du eine Verbindung herstellen möchtest, musst du allerdings die Raspberry Pi IP und den Hostnamen kennen. Abgesehen davon genügt für das Prozedere dein Raspberry Pi Terminal. Hier erfährst du im Detail, wie du vorzugehen hast, um eine SSH-Verbindung herzustellen.
    2. Du verwendest als Betriebssystem Windows? In diesem Fall benötigst du das Tool PuTTY. Du musst dieses nicht einmal installieren, sondern lediglich downloaden. Wähle nach dem Herunterladen die exe-Datei aus und gib als Host „raspberrypi“ ein. Klicke anschließend auf „Open“. Du wirst nun dazu aufgefordert, einen Login-Namen und ein Passwort einzugeben. Als Standard sind der Benutzername „pi“ und das Passwort „raspberry“ voreingestellt. Am besten änderst du direkt das Passwort, um Gewissheit zu haben, dass keine unerwünschte Person auf den Desktop zugreifen kann. Um das Passwort zu ändern, lässt du einfach im Terminal den Befehl „sudo passwd“ ausführen. Bestätige das Passwort, nachdem du es geändert hast.
  2. Öffne anschließend ein Terminal und lass die folgenden Befehle ausführen:

„sudo apt-get update“

„sudo apt-get install -y i2c-tools “

„sudo apt-get install python3-dev libffi-dev libssl-dev python3-pil libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libopenjp2-7 libtiff5 -y“

„sudo apt-get install python3-rpi.gpio python3-pip -y“

„sudo -H pip3 install luma.oled“

I2C-Bus aktivieren

  1. Nun aktivierst du den I2C-Bus. Dazu lässt du in einem Terminal den Befehl „sudo raspi-config“ ausführen. Im Anschluss klickst du auf „Interfacing Options“, dann auf „I2C“ und schließlich auf „Yes“.
  2. Über den Befehl „ sudo i2cdetect -y 1“ erhältst du die I2C Adresse des Displays.

Code speichern und ausführen

  1. Als nächstes speicherst du den Code und lässt ihn ausführen. Zu diesem Zweck erstellst du eine Python-Datei, indem du den Befehl „sudo nano script.py“ ins Terminal eingibst. Danach fügst du den Code ein. Führe den Befehl „python3 script.py“ aus, um den Code ausführen zu lassen bzw. zu testen.
#blog.berrybase.de

from luma.core.interface.serial import i2c
from luma.core.render import canvas
from luma.oled.device import sh1106, ssd1306
from PIL import ImageFont, ImageDraw, Image

import time
import psutil

serial = i2c(port=1, address=0x3C)
device = sh1106(serial)

oled_font = ImageFont.truetype('arial.ttf', 12)

while True:
    #Calculate memory information
    memory = psutil.virtual_memory()
    #Convert Bytes to MB (Bytes -> KB -> MB)
    available = round(memory.available/1024.0/1024.0,1)
    totalm = round(memory.total/1024.0/1024.0,1)
    mem_info = str(available) + 'MB free / ' + str(totalm) + 'MB total ( ' + str(memory.percent) + '% )'

    # Calculate disk information
    disk = psutil.disk_usage('/')
    # Convert Bytes to GB (Bytes -> KB -> MB -> GB)
    free = round(disk.free/1024.0/1024.0/1024.0,1)
    totald = round(disk.total/1024.0/1024.0/1024.0,1)
    disk_info = str(free) + 'GB free / ' + str(totald) + 'GB total ( ' + str(disk.percent) + '% )'

    
    with canvas(device) as draw:
        draw.text((10, 1 ),"Ram & Disk infos", font = oled_font, fill = "white")
        draw.text((1, 13),"Free Ram ="       , font = oled_font, fill = "white")
        draw.text((78,13),str(available)     , font = oled_font, fill = "white")
        draw.text((115,13),"M"               , font = oled_font, fill = "white")
        draw.text((1, 26),"Total Ram ="      , font = oled_font, fill = "white") 
        draw.text((78,26),str(totalm)        , font = oled_font, fill = "white")
        draw.text((115,26),"M"               , font = oled_font, fill = "white")
        draw.text((1, 39),"Free Disk="       , font = oled_font, fill = "white")
        draw.text((78,39),str(free)          , font = oled_font, fill = "white")
        draw.text((115,39),"G"               , font = oled_font, fill = "white")
        draw.text((1, 52),"Total Disk="      , font = oled_font, fill = "white")
        draw.text((78,52),str(totald)        , font = oled_font, fill = "white")
        draw.text((115,52),"G"               , font = oled_font, fill = "white")
    time.sleep(2)

Cronjob Einrichten

  1. Um das Script nach dem Booten automatisch starten zu lassen, musst du noch einen Cronjob einrichten. Dazu lässt du den Befehl „crontab -e“ ausführen.
  2. Füge an der passenden Stelle (siehe Abbildung unten) „@reboot python3 /home/pi/script.py &“ ein, speichere das Script und schließe das Programm. Nach einem kurzen Neustart wird das Script automatisch ausgeführt.

Für weitere spannende Raspberry Pi Tutorials schaue einfach hier vorbei!

Fazit

Nach diesem hilfreichen Leitfaden hast du gesehen, wie einfach und lohnend es sein kann, deinen Raspberry Pi Zero 2 W mit einem OLED-Display auszustatten, um wichtige Informationen wie RAM-Auslastung und Speicherkapazität im Auge zu behalten. Egal, ob du ein erfahrener Bastler oder ein neugieriger Anfänger bist, du kannst dieses Projekt mit ein wenig Geduld und Kreativität erfolgreich umsetzen. Erinnere dich daran, dass jeder kleine Schritt, den du machst, deine Fähigkeiten erweitert und dir ermöglicht, noch größere und komplexere Projekte in Angriff zu nehmen. Also, lass dich nicht entmutigen, falls etwas nicht sofort klappt. Experimentieren, Lernen und Anpassen ist der Kern des DIY-Spirits. Viel Erfolg und Spaß beim Basteln!

Die mobile Version verlassen