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

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

Display, Raspberry Pi
2 Mai 2022

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
Raspberry Pi Zero 2W OLED Display Der Aufbau
  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.
  2. 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.
  3. Ö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“

  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.
  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)
  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.
Cronjob Config Raspberry Pi Zero 2W OLED Display

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

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 3

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Kommentare

  1. So weit so gut: gerne würde auch ich einmal mit einem Raspberry Pi Zero 2 W an den Start gehen… es hat nur so eine gewisse Ironie wenn der 2 W hier angepriesen wird, aber seit langer Zeit hier und woanders nicht (mehr) lieferbar ist… auch die sofortige Registrierung im “Maker Club” ändert daran scheinbar nichts, schade aber dennoch sehr bruachbare Infos.
    Beste Grüße aus Köln,
    Oliver

Hinterlasse ein Kommentar

XHTML: Sie können diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>