Amikor a Raspberry Pi-t asztali számítógépként használjuk, az elsődleges megjelenítő eszköz a hagyományos monitor. Azonban elképzelhető sok olyan alkalmazás, amikor a Pi valamilyen vezérlési, mérési feladatot lát el, az alkalmazott program automatikusan indul a gép bekapcsolásakor, és az adatok hálózaton keresztül érhetőek el. Az ilyen esetekben a Pi-re nem kapcsolunk hagyományos monitort, de nagyon hasznos lehet egy kisméretű, helyi kijelző, amin alap adatok jeleníthetők meg szervízcélból (pl. IP cím, CPU hőfok, memória használat, rendszeridő, stb.)

A fent vázolt feladatok megoldására kiválóan megfelelnek a kisméretű, I2C buszon kommunikáló kijelzők, mint pl. a miniatűr 128×32, vagy 128×64 pixeles 0.98”-os OLED, vagy a „hagyományos” 16×2-es karakteres LCD kijelzők. Ez utóbbi alapból nem ismeri az I2C kommunikációt, így a Pi-hez való illesztését egy MCP23017-es buszbővítőn keresztül tudjuk megoldani. Mindkét kijelzőnél mindössze négy vezetékre lesz szükségünk a csatlakoztatáshoz, ebből kettő a tápfeszültséget szolgáltatja, kettő pedig az adatátvitelt biztosítja.

OLED kijelző

OLED panel

A kijelző hátoldalán négy csatlakozás található, ezek a képen látható típusnál balról jobbra: adat, órajel, + táp, – táp.

A kijelző bekötése a Pi GPIO portjára az alábbi képen látható:

A Pi és az OLED kijelző összekötése után engedélyeznünk kell a Raspberry I2C kimenetét:

  • vagy a grafikus felületen keresztül: Beállítások / Raspberry Pi Configuration
  • terminál ablakban: sudo raspi-config / InterfacingOptions / I2C Enable

Az összekötés és a busz engedélyezése után ellenőrizzük le, hogy a Pi érzékeli-e a kijelzőt.

i2cdetect -y 1

Az alkalmazott OLED kijelzők alapértelmezett címe: “0x3c”, így a megfelelő működés esetén a parancs kiadása után a következő képernyőkép jelenik meg:

I2C detektálás eredménye

Amennyiben a Pi a megfelelő címen érzékeli a rákötött kijelzőt, következhet a szükséges Python library telepítése. Ehhez egy terminál ablakban gépeljük be a következő utasításokat:

Először telepítsük az Adafruit git repository-t:

sudo apt install -y git
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

Ezek után navigáljunk a library könyvtárába:

cd Adafruit_Python_SSD1306

Végül telepítsük a library-t:

sudo python3 setup.py install

Ha minden rendben lezajlott, akkor ezek után a kijelző már programozható. Tesztelésként töltsük be, vagy gépeljük be az alábbi programot:

#szükséges library-k importálása
import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
# Raspberry Pi pin configuration:
RST = None     # ez a tüske nincs használatban
# 128x32 display hardveres I2C:
disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)
# library inicializálás
disp.begin()
# display törlése
disp.clear()
disp.display()
# üres image betöltése
# '1'-es érték az 1-bit-es színmód beállítására
width = disp.width
height = disp.height
image = Image.new('1', (width, height))
# Get drawing object to draw on image.
draw = ImageDraw.Draw(image)
# Draw a black filled box to clear the image.
draw.rectangle((0,0,width,height), outline=0, fill=0)
# állandók definiálása az átméretezés könnyítésére 
padding = -2
top = padding
bottom = height-padding
x = 0
# fontkészlet betöltése
font = ImageFont.load_default()
# font = ImageFont.truetype('Netron.ttf', 8)
draw.text((x, top+0),"     Hello World", font=font, fill=255)
draw.text((x, top+8),"      malnapc.hu", font=font, fill=255)
draw.text((x, top+16),"     malnasuli.hu", font=font, fill=255)
draw.text((x, top+25)," ********************", font=font, fill=255)
# image megjelenítése
disp.image(image)
disp.display()

Amennyiben a program hibátlanul lefut, és a kijelző bekötése is rendben van, az alábbit fogjuk látni:

OLED panel teszt kijelzés

A forráskód letölthető:

Többféle OLED kijelző megvásárolható a MálnaPC Webshopjában!