from machine import Pin
from time import sleep
from machine import ADC, Pin
import dht
from machine import Pin
from time import sleep
import time
sensor = HCSR04(trigger_pin=5, echo_pin=18, echo_timeout_us=10000)
i2c = I2C(scl=Pin(22), sda=Pin(21), freq=400000)
display = sh1106.SH1106_I2C(128, 64, i2c, Pin(16), 0x3c)
tim0 = Timer(0)
ON = 1
OFF = 0
led1 = Pin(13,Pin.OUT);led2 = Pin(12,Pin.OUT);led3 = Pin(14,Pin.OUT)
ldr = ADC(Pin(34))
ldr.atten(ADC.ATTN_11DB) #Full range: 3.3v
ldr.width(ADC.WIDTH_12BIT) # Resolutions 12 Bit
sensor = dht.DHT22(Pin(15))
while True:
try:
sleep(2)
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
temp_f = temp*(9/5)+32.0
print('Temperature: %3.1f C' %temp)
print('Temperature_F: %3.1f F' %temp_f)
print('Humidity: %3.1f C' %hum)
except OSError as e:
print('Failed to read sensor.')
def mycallback1(timer):
global data_ldr,volt_ldr,inlumi_ldr,distance,illumi,dis
distance = sensor.distance_cm()
data_ldr = ldr.read()
volt_ldr = (3.3/4095)*data_ldr
distance = round(distance,2)
dis = str(distance)
display.fill(0)
display.text('Home Automation', 0, 5, 1)
display.text('Dist =', 0, 40, 1)
display.text(dis+'cm', 50, 40, 1)
display.show()
tim0.init(period=1000, mode=Timer.PERIODIC, callback=mycallback1)
while True:
led1.value(ON)