import time
import machine
import utime
from machine import RTC,I2C
import ssd1306
import micropython
import esp
import gc
import ubinascii
import sys
try:
import urequests as requests
except:
import requests
bStartup = True
gc.collect()
esp.osdebug(None)
displayActive = False
oled_width = 128
oled_height = 32
i2c = I2C(0,scl=machine.Pin(21),sda=machine.Pin(22))
display=ssd1306.SSD1306_I2C(oled_width,oled_height,i2c)
oled=ssd1306.SSD1306_I2C(oled_width,oled_height,i2c)
display.fill(0)
display.text("Init...",12,10)
display.show()
displayActive = True
def scroll_screen_in_out(screen):
for i in range (0, (oled_width+1)*2, 1):
for line in screen:
display.text(line[2], -oled_width+i, line[1])
display.show()
if i!= oled_width:
display.fill(0)
def scroll_in_screen_v(screen):
for i in range (0, (oled_height+1), 1):
for line in screen:
oled.text(line[2], line[0], -oled_height+i+line[1])
oled.show()
if i!= oled_height:
oled.fill(0)
def scroll_in_screen_vu(screen):
for i in range (0, (oled_height+1), 1):
for line in screen:
iPos= oled_height-i+line[1]
oled.text(line[2], line[0], iPos)
oled.show()
if i!= 0:
oled.fill(0)
def scroll_out_screen_d(speed):
for i in range ((oled_height+1)/speed):
for j in range (oled_width):
oled.pixel(j, i, 0)
oled.scroll(0,speed)
oled.show()
def scroll_out_screen_u(speed):
for i in range ((oled_height+1)/speed):
for j in range (oled_width):
oled.pixel(j, i, 0)
oled.scroll(0,speed)
oled.show()
def run():
bStartup = True
now = utime.localtime()
ts = "{:02d}/{:02d}/{} {:02d}:{:02d}:{:02d}".format(now[2],now[1],now[0],now[3],now[4],now[5])
screen1_row1 = "Screen 1 R1"
screen1_row2 = "Screen 1 R2"
screen2_row1 = "Screen 2 R1"
screen2_row2 = "Screen 2 R2"
screen3_row1 = "Screen 3 R1"
screen3_row2 = "Screen 3 R2"
screen4_row1 = "Screen 4 R1"
screen4_row2 = "Screen 4 R2"
screen1 = [[0, 12 , screen1_row1], [0, 22, screen1_row2]]
screen2 = [[10, 12, screen2_row1], [10, 22, screen2_row2]]
screen3 = [[10, 12, screen3_row1], [10, 22, screen3_row2]]
screen4 = [[10, 12, screen4_row1], [10, 22, screen4_row2]]
while True:
scroll_out_screen_u(2)
scroll_in_screen_v(screen1)
utime.sleep(1)
scroll_out_screen_d(2)
scroll_in_screen_v(screen2)
utime.sleep(1)
scroll_out_screen_u(2)
scroll_in_screen_v(screen3)
utime.sleep(1)
scroll_out_screen_d(2)
scroll_in_screen_v(screen4)
utime.sleep(1)
if __name__ == '__main__':
try:
run()
oled.poweroff()
except KeyboardInterrupt:
if displayActive:
oled.poweroff()
except Exception as e:
print ("Encountered error ", e.args, "...rebooting")
sys.print_exception(e)