from machine import Pin, I2C
from machine import ADC
import ssd1306
from time import sleep
import framebuf
from images import (logo)
import machine
import dht
class LDR:
def __init__(self, pin, min_value=0,max_value=100):
if min_value >= max_value:
raise Exception('Valor minimo es mayor o igual al valor maximo')
self.adc = ADC(Pin(pin))
self.adc.atten(ADC.ATTN_11DB)
self.min_value = min_value
self.max_value = max_value
def read(self):
return self.adc.read()
def value(self):
return (self.max_value - self.min_value) * self.read() / 4095
# ESP32 Pin assignment
i2c = machine.SoftI2C(scl=machine.Pin(22),sda=machine.Pin(21))
ldr = LDR(34)
pin04 = dht.DHT22(Pin(4))
pin04.measure()
temperatura=pin04.temperature()
humedad=pin04.humidity()
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
buffers = bytearray(logo)
fbuf = framebuf.FrameBuffer(buffers,64,64,framebuf.MONO_HLSB)
value = ldr.value()
oled.text('Ramon Angel', 10, 10)
oled.text('Sanita Leon', 10, 20)
oled.text('Jared Garcia', 10, 30)
oled.show()
sleep(1)
oled.fill(0)
oled.blit(fbuf,0,0)
oled.show()
sleep(1)
oled.fill(0)
oled.text('Elabore un ', 0, 0)
oled.text('programa', 0, 10)
oled.text('que mida el', 0, 20)
oled.text('porcentaje de',0, 30)
oled.text('luminosidad, ',0, 40)
oled.text('humedad y temperatura', 0, 50)
oled.show()
oled.fill(0)
sleep(1)
oled.fill(0)
oled.text('en grados', 0, 0)
oled.text('centigrados en', 0, 10)
oled.text('la pantalla OLED', 0, 20)
oled.show()
sleep(1)
while True:
pin04.measure()
temperatura=pin04.temperature()
humedad=pin04.humidity()
value = ldr.value()
oled.fill(0)
oled.text('Luminosidad:', 0, 0)
oled.text(str(value), 0, 10)
oled.text('Humedad:', 0, 20)
oled.text(str(humedad), 0, 30)
oled.text('Temperatura:', 0, 40)
oled.text(str(temperatura)+"C ", 0, 50)
oled.show()
sleep(3)