from machine import Pin, I2C, time_pulse_us
from time import sleep
import ssd1306
import dht
dht = dht.DHT22(Pin(19))
b1 = Pin(32, Pin.IN)
b2 = Pin(35, Pin.IN)
b3 = Pin(34, Pin.IN)
salir = Pin(33, Pin.IN)
echo = (14, Pin.IN)
trig = (12, Pin.OUT)
# using default address 0x3C
i2c = I2C(sda=Pin(27), scl=Pin(26))
display = ssd1306.SSD1306_I2C(128, 64, i2c)
display.poweron() 
display.text('Bienvenidos al  ', 0, 0)
display.text('    menu   ', 0, 10)
display.text('................', 0, 20)
display.show()
sleep(3)
display.fill(0)
display.text('1. metricas dht ', 0, 0)
display.text('2. metricas HCRS', 0, 10)
display.text('3. Ultrasonido  ', 0, 20)
display.text('4. Salir        ', 0, 20)
display.show()
def opcion1():
  display.fill(0)
  display.text('-------DHT------', 0, 0)
  while(not salir.value()):
    dht.measure()
    display.fill(0)
    TEXTh='H: ' + str(dht.humidity())
    TEXTt='T: ' + str(dht.temperature())
    display.text(TEXTh, 0, 10)
    display.text(TEXTt, 0, 20)
    display.show()
    sleep(0.2)
  display.fill(0)
  display.text('1. metricas dht ', 0, 0)
  display.text('2. metricas HCRS', 0, 10)
  display.text('3. Ultrasonido  ', 0, 20)
  display.text('4. Salir        ', 0, 30)
  display.show()
def opcion3():
    sleep(0.1)
    trig.value(1)
    sleep(0.1)
    trig.value(0)
    tiempo = time_pulse_us(echo, 1, 30000)     
    distancia = (tiempo / 2) / 29.1  

    display.text(distancia, 0, 10)
    display.show()
    sleep(0.2)
    display.fill(0)
    display.text('1. metricas dht ', 0, 0)
    display.text('2. metricas HCRS', 0, 10)
    display.text('3. Ultrasonido  ', 0, 20)
    display.text('4. Salir        ', 0, 30)
    display.show()
while ( not salir.value() ):
  if(b1.value() == 1):
    opcion1()
  elif(b2.value() == 1):
    opcion2()
  elif(b3.value() == 1):
    opcion3()
display.fill(0)
display.text('Myrobotech', 0, 0)
display.text('Copyright 2023.', 0, 10)
display.text('Gracias', 0, 20)
display.text('chao', 0, 30)
display.show()