from machine import Pin, ADC, time_pulse_us
from dht import DHT22
import utime
import time
# Definicion de Pin
PIN_TRIG = 26
PIN_ECHO = 25
LOWLED = 18
MIDLED = 19
HIGHLED = 23
MOTOR = 27
# Configuracion de sensor ultrasonico
pin_trig = Pin(PIN_TRIG, Pin.OUT)
pin_echo = Pin(PIN_ECHO, Pin.IN)
# Configuracion para motor y LED.
low_led = Pin(LOWLED, Pin.OUT)
mid_led = Pin(MIDLED, Pin.OUT)
high_led = Pin(HIGHLED, Pin.OUT)
motor = Pin(MOTOR, Pin.OUT)
# Inicializacion de Led y motor
low_led.value(1)
mid_led.value(1)
high_led.value(1)
motor.value(0)
# Configuracion de pH sensor
ph = ADC(Pin(35))
ph.atten(ADC.ATTN_11DB)
ph.width(ADC.WIDTH_12BIT)
# configuracion de DHT22 sensor
sensorDHT = DHT22(Pin(15))
def get_distance():
pin_trig.value(1)
time.sleep_us(10)
pin_trig.value(0)
duration = time_pulse_us(pin_echo, 1)
distance = duration / 58.0
return distance
try:
while True:
# Obtener medicion de distancia.
distance = get_distance()
print(f"Distancia en Cm: {distance}")
level = distance
# Control de LEDS y el motor segun la distancia.
if level < 100:
low_led.value(0)
motor.value(1)
high_led.value(1)
mid_led.value(1)
print("Motor encendido...")
elif 200 < level < 400:
low_led.value(1)
high_led.value(1)
mid_led.value(0)
elif level >= 400:
high_led.value(0)
mid_led.value(1)
low_led.value(1)
motor.value(0)
# Obtener mediciones de PH, temperatura.
sensorDHT.measure()
temp = sensorDHT.temperature()
hum = sensorDHT.humidity()
medicion = float(ph.read())
phTOT = round(medicion * 14 / 4096, 2)
print(f"T = {temp:02}°C H = {hum:02}% el objeto tiene una PH de {phTOT} grados de acidez")
# Duerme un segundo antes de la siguiente iteración del ciclo.
time.sleep(1)
except KeyboardInterrupt:
pass