from ntptime import settime
from network import WLAN, STA_IF
from time import sleep_ms, localtime, time
from requests import get
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
wifi = WLAN(STA_IF)
wifi.active(True) #liga
if not wifi.isconnected(): #estou conectado? se
wifi.connect("Wokwi-GUEST", '') #conecto aonde
while not wifi.isconnected():
sleep_ms(100) #tenta dnv se ñ conectar
print("Conectou!")
settime()
data_hora = localtime(time() - 3 * 3600) #fuso
tempo= 'https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m,relative_humidity_2m'
resposta = get(tempo, headers={'Host': "api.open-meteo.com"}) #acesso ao site
ano= data_hora[0]
mes= data_hora[1]
dia= data_hora[2]
hora= data_hora[3]
minuto= data_hora[4]
segundo= data_hora[5]
dados_site = resposta.json() #transforma num dicionario oq o site mandou
temperatura = dados_site['current']['temperature_2m']
umidade = dados_site['current']['relative_humidity_2m']
texto_temperatura = f"Temp:{temperatura}C"
texto_umidade = f"Umide:{umidade}%"
barramento = I2C(0, scl=Pin(22), sda=Pin(21)) #comunicação
display = SSD1306_I2C(128,64,barramento)
def exibirInformacoes():
data = f"{dia:02d}/{mes:02d}/{ano:04d}"
horario = f"{hora:02d}:{minuto:02d}:{segundo:02d}"
#Passar para o display
display.fill(0)
display.text(data, 0, 0)
display.text(horario, 0, 16)
display.text(texto_temperatura, 0, 32)
display.text(texto_umidade, 0, 48)
display.show()
hora_programada = 00
minuto_programado = 15
modo = 0
while True:
data_hora = localtime(time() - 3 * 3600)
ano= data_hora[0]
mes= data_hora[1]
dia= data_hora[2]
hora= data_hora[3]
minuto= data_hora[4]
segundo= data_hora[5]
resposta = get(tempo)
dados_site = resposta.json()
temperatura = dados_site['current']['temperature_2m']
umidade = dados_site['current']['relative_humidity_2m']
texto_temperatura = f"Temp:{temperatura}C"
texto_umidade = f"Umid:{umidade}%"
if modo == 0:
exibirInformacoes()
if hora == hora_programada and minuto == minuto_programado:
modo = 2
elif modo == 2:
display.fill(0)
display.text("O Sol nasceu", 16, 20)
display.text("na fazendinha", 12, 35)
display.show()
sleep_ms(5000)
modo = 0
sleep_ms(55000)