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ő
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:
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:
A forráskód letölthető:
Többféle OLED kijelző megvásárolható a MálnaPC Webshopjában!