import network
import json
import urequests
from machine import Pin
import time
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf, sys
import utime
import ujson

# Función para conectar a WiFi
def conectaWifi(red, password):
    print("Conectando a WiFi", end="")
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(red, password)
    while not wlan.isconnected():
        print(".", end="")
        time.sleep(1)
    print("¡Conectado!")
    print("Datos de red:", wlan.ifconfig())

# Función para inicializar I2C
def init_i2c(scl_pin, sda_pin):
    i2c_dev = I2C(1, scl=Pin(scl_pin), sda=Pin(sda_pin), freq=200000)
    i2c_addr = [hex(ii) for ii in i2c_dev.scan()]
    if not i2c_addr:
        print('No se encontró la pantalla OLED')
        sys.exit()
    return i2c_dev

# Función para mostrar texto en la pantalla OLED
def display_text(oled, valor):
    if valor == 'Helicoptero':
        oled.text("Helicoptero", 5, 5)
    elif valor == 'Coches':
        oled.text("Coches", 5, 5)
    elif valor == 'Barcos':
        oled.text("Barcos", 5, 5)
    else:
        oled.text("Ningún vehiculo encontrado", 5, 5)
    
    oled.show()

# Conectar a WiFi
conectaWifi("David JSJSJ", "hola1234") # Ajusta el nombre y la contraseña de tu red WiFi

# Dimensiones de la pantalla OLED
pix_res_x = 128
pix_res_y = 64

# ... tu código previo ...

# Bucle principal
while True:
    # Solicitud de datos a Dweet.io
    url = "https://dweet.io:443/get/dweets/for/Equipo10_Seccion_3%C2%B07"
    consulta = urequests.get(url)
    json_response = ujson.loads(consulta.text)
    
    # Procesar la respuesta JSON
    if "with" in json_response and isinstance(json_response["with"], list):
        for data in json_response["with"]:
            content = data.get("content")
            if content:
                Helicoptero = content.get("Helicoptero")
                Coches = content.get("Coches")
                Barcos = content.get("Barcos")
                
                print("Valores - Helicoptero:", Helicoptero, "Coches:", Coches, "Barcos:", Barcos)                
                # Inicialización de la pantalla OLED y mostrar texto
                i2c_dev = init_i2c(scl_pin=27, sda_pin=26)
                oled = SSD1306_I2C(pix_res_x, pix_res_y, i2c_dev)
                
                # Mostrar texto en la pantalla OLED basado en los valores
                if Helicoptero == 1:
                    oled.text("Helicoptero", 5, 5)
                elif Coches == 1:
                    oled.text("Coches", 5, 5)
                elif Barcos == 1:
                    oled.text("Barcos", 5, 5)
                else:
                    oled.text("Ningun vehiculo", 5, 5)
                
                oled.show()
                
                # Otras acciones o lógica que desees realizar basado en los valores
                
    # Pausa antes de la próxima iteración del bucle
    time.sleep(1)