import network
import urequests
import time
from machine import Pin, I2C
import ssd1306
# Configuração do OLED
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
SSID = "Wokwi-GUEST"
PASSWORD = ""
SERVIDOR_IP = "192.168.0.187" # IP do Flask
# Conectar ao Wi-Fi
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect(SSID, PASSWORD)
while not sta_if.isconnected():
time.sleep(1)
print("Conectado ao Wi-Fi!")
def baixar_imagem():
""" Baixa a imagem PBM do Flask """
try:
resposta = urequests.get(f"http://{SERVIDOR_IP}:5000/personagem/imagem")
pbm_data = resposta.content
resposta.close()
return pbm_data
except:
print("Erro ao baixar a imagem!")
return None
def exibir_imagem(pbm_data):
""" Exibe a imagem PBM na tela OLED """
if pbm_data:
linhas = pbm_data.split(b'\n')
pbm_pixels = b''.join(linhas[3:])
oled.fill(0)
for y in range(32):
for x in range(32):
if pbm_pixels[y * 4 + x // 8] & (128 >> (x % 8)):
oled.pixel(x, y, 1)
oled.show()
pbm_data = baixar_imagem()
if pbm_data:
exibir_imagem(pbm_data)