カテゴリー
お知らせ

備忘録 0.96inch SSD1306 I2C Display

 これは自分のためのメモです。
 この備忘録を見られて真似されても結構ですが、動作の保証は出来かねます。
 また、真似られたことで不測の不具合が発生しましても、私は一切の責任を負いません。


[I2Cを使用できるようにconfigを変更する]
sudo raspi-config nonint do_i2c 0

[OSにi2c関連toolをインストールする]
sudo apt-get install i2c-tools

[python3用のSSD1306ライブラリーをpip3でインストール]
sudo pip3 install Adafruit-SSD1306
sudo pip3 install adafruit-circuitpython-ssd1306

[必要に応じSSD1306のサンプルプログラムをダウンロード]
git clone https://github.com/adafruit/Adafruit_Python_SSD1306


pi@raspberrypi:~ $ cat ssd1306test.py
import board
import digitalio
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306
from time import sleep
import ipget

DEVICE_ADR = 0x3C
DISP_WIDTH = 128
DISP_HEIGHT = 64

tempfile='/sys/class/thermal/thermal_zone0/temp'


def getTemp():
    with open(tempfile, 'r') as f:
        rdata = f.readline()
        t = float(rdata)/ 1000.0
    return t



RESET_PIN = digitalio.DigitalInOut(board.D4)
i2c = board.I2C()
oled = adafruit_ssd1306.SSD1306_I2C(DISP_WIDTH, DISP_HEIGHT, i2c, addr=DEVICE_ADR, reset=RESET_PIN)
# Clear display.
oled.fill(0)
oled.show()


# Load a font in 2 different sizes.
font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 28)
font2 = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 14)
font3 = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 12)

def main():
    image = Image.new("1", (oled.width, oled.height))
    draw = ImageDraw.Draw(image)

    target_ip = ipget.ipget()
#    print(target_ip.ipaddr("wlan0"))
    wlan_ip = target_ip.ipaddr("wlan0")

    t = getTemp()
    cputemp = 'cputemp = %.2f c' % (t)

    draw.text((0, 0), wlan_ip, font=font3, fill=255)
    draw.text((0, 15), cputemp, font=font3, fill=255)

    # Display image
    oled.image(image)
    oled.show()

    sleep(30)

    return

if __name__ == "__main__":
    while True:
        main()


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です