#ldr
from machine import Pin
import utime # For timing functions
# DHT22
from machine import I2C, Pin
from time import sleep
import time
from pico_i2c_lcd import I2cLcd
from dht import DHT22
pinEnable=machine.Pin(12,machine.Pin.OUT)
pinStep=machine.Pin(4,machine.Pin.OUT)
pinDir=machine.Pin(7,machine.Pin.OUT)
#ldr pin
DO_PIN = Pin(9, Pin.IN) # The Raspberry Pi Pico pin GPIO0 connected to the DO pin of the LDR module
pinEnable=0
pasosMotor=200
contador1 = 1
contador2 = 1
contasensor = 0
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
# direccion I2C
I2C_ADDR = i2c.scan()[0]
# crear objeto tipo lcd
dht = DHT22(Pin(5))
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
nome = input("Qual é o seu nome? ")
print("Ola", nome, "seja bem vindo! Escolha o número da opção:")
print("1 - Temperatura")
print("2 - Umidade")
print("3 - Temperatura e Umidade")
print("4 - Luminosidade")
print("5 - Nenhuma")
opcao = input("Opção: ")
# loop geral
while True:
dht.measure()
temp = dht.temperature()
hum = dht.humidity()
# escolha de opções
if opcao=="1":
# temperatura
if temp > 36:
while contador1 <=199:
pinDir.off()
for i in range(1,pasosMotor):
pinStep.on()
time.sleep_ms(10)
pinStep.off()
time.sleep_ms(10)
contador1 = contador1 + 1
contador2 = 1
print(nome, "a temperatura está acima de 36°C, a cobertura foi fechada")
elif temp < 30:
while contador2 <=199:
pinDir.on()
for i in range(1,pasosMotor):
pinStep.on()
time.sleep_ms(10)
pinStep.off()
time.sleep_ms(10)
contador2 = contador2 + 1
contador1 = 1
print(nome, "a temperatura baixou para menos de 30°C, a cobertura foi aberta")
# umidade
elif opcao == "2":
if hum > 40:
while contador1 <=199:
pinDir.off()
for i in range(1,pasosMotor):
pinStep.on()
time.sleep_ms(10)
pinStep.off()
time.sleep_ms(10)
contador1 = contador1 + 1
contador2 = 1
print(nome, "a umidade está acima de 40%, a bomba d'água foi desligada")
elif hum < 30:
while contador2 <=199:
pinDir.on()
for i in range(1,pasosMotor):
pinStep.on()
time.sleep_ms(10)
pinStep.off()
time.sleep_ms(10)
contador2 = contador2 + 1
contador1 = 1
print(nome, "a umidade abaixou para menos de 30%, a bomba d'água foi ligada")
# ainda não implementado
elif opcao == "3":
print("opção ainda não implementada")
# Sensor de luminosidade
elif opcao == "4":
while True:
light_state = DO_PIN.value() # Read the digital value from the pin
if light_state == 1:
print("Ambiente sem luz")
else:
print("Ambiente com luz")
utime.sleep(1) # Add a small delay to avoid spamming the output
contasensor = contasensor + 1
# Desativa todos os sensores
elif opcao =="5":
print("Não foi escolhido nenhuma das opções. Os sensores foram desativados")
lcd.clear()
lcd.putstr('Temp: ' + str(temp) + " C")
lcd.move_to(0,1)
lcd.putstr('Hum: ' + str(hum) + "%")
sleep(2)
lcd.clear()
lcd.putstr('REMIGIO')
sleep(2)