from machine import Pin
import time
import _thread
#---------------------------- PINES USADOS Y CREACIÓN DE OBJETOS -----------------
#Pines usados para el relay que prende las bombas.
BOMBA_DE_AGUA_CISTERNA = Pin(12,Pin.OUT)
BOMBA_DE_AGUA_TANQUE = Pin(13,Pin.OUT)
#Pines de señal de detercción de agua
#Sensor de nivel que va en la cisterna del inodoro y se activa
#cuando detecta que el tanque no esta lleno totalmente
SENSOR_NIVEL_AGUA_CISTERNA = Pin(25, Pin.IN, Pin.PULL_UP)
#Detecta que el agua en el tanque numero 1 esta en su nivel
#minimo, en pocas palabras que no hay agua
SENSOR_AGUA_TANQUE_1_VACIO = Pin(26, Pin.IN, Pin.PULL_UP)
#Detecta que el tanque numero 1 se encuentra lleno de agua
#en su totalidad
SENSOR_AGUA_TANQUE_1_LLENO = Pin(27, Pin.IN, Pin.PULL_UP)
#Detecta que el tanque numero 2 (El de la lavadora) se encuentra
#totalmente vacio, no es necesario un sensor de tanque lleno ya
#que al llenarse sale al desague inmediatamente.
SENSOR_AGUA_TANQUE_2_VACIO = Pin(14, Pin.IN, Pin.PULL_UP)
#------------------------------Esquema de trabajo básico----------------------------
#prender bomba cisterna si se detecta que cisterna no esta llena (SENSOR_NIVEL_AGUA_CISTERNA) y galon de almacenaje tiene agua (SENSOR_AGUA_TANQUE_1_VACIO)
#prender bomba galon si el galon no esta lleno (SENSOR_AGUA_TANQUE_1_LLENO) y la ducha si tiene agua (
#------------------------------------INICIO DEL CODIGO------------------------------
def nivel_cisterna():
while True:
#Activar bomba de llenado de cisterna
"""Esta sentencia if activa y desactiva la bomba de agua que llena el tanque de la cisterna del baño, cuando
detecta que el tanque de la cisterna (SENSOR_NIVEL_AGUA_CISTERNA) se encuentra vacio procede a validar si hay
agua en el tanque de almacenamiento (SENSOR_AGUA_TANQUE_1_VACIO), si hay agua prende la bomba hasta que """
if SENSOR_NIVEL_AGUA_CISTERNA.value() == 0: # Cisterna sin agua, es necesario llenar
if SENSOR_AGUA_TANQUE_1_VACIO.value() == 0: #
######print##### ("bomba apagada, no hay agua almacenada en el tanque")
BOMBA_DE_AGUA_CISTERNA.value(0)
time.sleep(3)
else:
######print##### ("bomba encendida, llenando cisterna")
BOMBA_DE_AGUA_CISTERNA.value(1)
time.sleep(3)
else:
######print##### ("bomba apagada, cisterna llena")
BOMBA_DE_AGUA_CISTERNA.value(0)
time.sleep(3)
#Activar bomba de llenado de galon
_thread.start_new_thread(nivel_cisterna,()) #se ejecuta la tarea sensorTemperatura
def nivel_tanque():
while True:
if SENSOR_AGUA_TANQUE_1_LLENO.value() == 0:
######print##### (_1_LLENO.value())
######print##### ("tanque de almacenamiento o esta totalmente lleno")
if SENSOR_AGUA_TANQUE_2_VACIO.value() == 0:
######print##### ("bomba apagada, no hay agua en la ducha para recolectar")
BOMBA_DE_AGUA_TANQUE.value(0)
time.sleep(3)
else:
######print##### ("bomba encendida, hay agua en la ducha, llenando tanques")
######print##### (SENSOR_AGUA_TANQUE_1_LLENO.value())
BOMBA_DE_AGUA_TANQUE.value(1)
time.sleep(3)
else:
######print##### ("bomba apagada, tanque esta totalmente lleno")
BOMBA_DE_AGUA_TANQUE.value(0)
time.sleep(3)
_thread.start_new_thread(nivel_tanque,()) #se ejecuta la nivel_tanque
#interruptor 0 arriba 1 abajo
#SENSOR_NIVEL_AGUA_CISTERNA =
#cisterna llena - motor apagado =0
#cisterna vacia - motor encendido =1
#SENSOR_AGUA_TANQUE_1_VACIO
#galon esta vacio = 0
#galon esta vacio = 1
#SENSOR_AGUA_TANQUE_2_VACIO = ducha apagada =0
#SENSOR_AGUA_TANQUE_1_LLENO = galon esta lleno =