Tag Archives: I2C

OLED display to Raspberry Pi

Today I played with an OLED Display. I bought it from Amazon for $14 which is 0.96 Inch I2C and SPI Serial 128 x 64. It needs only 4 wires to connect to Raspberry Pi. This display is a monochrome (blue) – hence the price.

 i2cdetect -y 1

Showed the display detected on the I2C bus

Couple of lines of code from GitHUB – show IP address and the time. Graphics also can be drawn – lines, circles, rectangles, ellipses etc. even displaying .png files.

oledoled_1

#!/usr/bin/env python # # !!! Needs psutil (+ dependencies) installing: # $ sudo apt-get install python-dev # $ sudo pip install psutil # import os import sys if os.name != 'posix': sys.exit('platform not supported') import psutil from datetime import datetime from oled.device import ssd1306, sh1106 from oled.render import canvas from PIL import ImageDraw, ImageFont f = os.popen('/sbin/ifconfig wlan0 | grep "inet\ addr" | cut -d: -f2 | cut -d" " -f1') your_ip=f.read() from time import gmtime,localtime, strftime t = strftime("%Y-%m-%d %H:%M:%S", localtime()) def stats(oled): font = ImageFont.load_default() font3 = ImageFont.truetype('/root/oled/fonts/C&C Red Alert [INET].ttf', 18) font4 = ImageFont.truetype('/root/oled/fonts/C&C Red Alert [INET].ttf', 22) with canvas(oled) as draw: draw.text((0, 26), your_ip, font=font4, fill=255) draw.text((0, 48), t, font=font3, fill=255) def main(): oled = ssd1306(port=1, address=0x3C) stats(oled) if __name__ == "__main__": main() read more