import network
import time
API_KEY = "1ZD1MFPTCHNL7GUT"
# Importando a classe Ambiente do módulo ambiente
from ambiente import Ambiente
obj_amb = Ambiente()
# Importando a classe Enviar do módulo enviar
from enviar import Enviar
obj_enviar = Enviar(API_KEY)
# Importando a classe Bomba do módulo bomba
from bomba import Bomba
obj_bomba = Bomba()
print("Connecting to WiFi", end="")
# Configurando a conexão WiFi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("Wokwi-GUEST", "")
while not wlan.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")
print(wlan.ifconfig())
temp = 0
umid = 0
bomba_ligada = False
def ambiente():
global temp
global umid
# Obtendo temperatura e umidade do objeto Ambiente
try:
temp = obj_amb.get_temperatura()
umid = obj_amb.get_umidade()
temp_umid = obj_amb.get_temp_umid()
print(f"Temperatura: {temp}")
print(f"Umidade: {umid}")
print(f"Temp e Umid: {temp_umid[0]} : {temp_umid[1]}")
except Exception as e:
print(f"Erro ao obter dados do ambiente: {e}")
def controla_bomba():
global temp
global bomba_ligada
try:
if temp > 35 and not bomba_ligada:
print("Ligando a bomba...") # Depuração
obj_bomba.acionamento(True)
bomba_ligada = True
print("Bomba ligada!")
elif temp <= 35 and bomba_ligada:
print("Desligando a bomba...") # Depuração
obj_bomba.acionamento(False)
bomba_ligada = False
print("Bomba desligada!")
except Exception as e:
print(f"Erro no controle da bomba: {e}")
def envia_thingspeak():
global temp
global umid
global bomba_ligada
# Enviando dados para o ThingSpeak
try:
# Converte o estado da bomba para um formato apropriado (0 ou 1)
bomba_estado = 1 if bomba_ligada else 0
print(f"Enviando dados para ThingSpeak: Temperatura={temp}, Umidade={umid}, Bomba={bomba_estado}")
# Enviando dados para o ThingSpeak
obj_enviar.post_enviar(temp, umid, bomba_estado)
# Informa que os dados foram enviados com sucesso
print("Dados enviados para ThingSpeak com sucesso.")
except Exception as e:
print(f"Erro ao enviar dados para ThingSpeak: {e}")
# Loop principal do programa
while True:
ambiente()
controla_bomba()
envia_thingspeak()
time.sleep(5)