树莓派iic驱动OLED 显示当前日期和时间

 1 #!/usr/bin/env python  
 2   
 3 import time  
 4 import datetime as datetime  
 5 from luma.core.interface.serial import i2c, spi  
 6 from luma.core.render import canvas  
 7 from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106
 8 from PIL import ImageDraw, Image,ImageFont  
 9   
10 device = sh1106(port=1, address=0x3C)  
11 font = ImageFont.load_default()  
12 fontYear = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf', 18)  
13 font2 = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf', 16)  
14   
15 def Show(d,fullDt):     
16       
17     y =  fullDt.strftime('%Y-')  
18     dt = fullDt.strftime('%m-%d')  
19     tm = fullDt.strftime('%H:%M:%S')    
20   
21     with canvas(d) as draw:          
22         draw.text((40, 0), "TIME", font=fontYear,fill=255)  
23         draw.text((10, 22), y, font=font2, fill=255)  
24         draw.text((60, 22), dt, font=font2, fill=255)  
25         draw.text((20, 44), tm, font=font2, fill=255)
26   
27 def main():  
28     nowDt = datetime.datetime.now() + datetime.timedelta(hours=8)  
29     while True:  
30         Show(device,nowDt)  
31         nowDt = nowDt + datetime.timedelta(seconds=1)  
32         time.sleep(1)  
33   
34 if __name__ == "__main__":  
35     main()  

 环境配置:

sudo apt-get install -y python-smbus  
sudo apt-get install -y i2c-tools  

运行一下

 sudo i2cdetect -y 1

正常情况下默认在0x3C处有标注,这就说明接线成功了。

sudo apt-get install libfreetype6-dev libjpeg-dev build-essential  

安装python3相关

sudo apt-get install python3-dev python3-pip  
sudo -H pip3 install --upgrade luma.oled  

 

原文地址:https://www.cnblogs.com/duanjinjie/p/9121933.html