from machine import Pin
from time import sleep
from machine import Pin, ADC
from machine import Pin, I2C
from hcsr04 import HCSR04
from machine import Timer
from time import sleep
import sh1106
#---------------------------------------------------------------------------
led1 = Pin(12, Pin.OUT);led2 = Pin(14, Pin.OUT);led3 = Pin(25,Pin.OUT)
motion = Pin(13, Pin.IN, Pin.PULL_UP);
sensor = HCSR04(trigger_pin=27, echo_pin=26, 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
ldr = ADC(Pin(19))
ldr.atten(ADC.ATTN_11DB) #Full range: 3.3v
ldr.width(ADC.WIDTH_12BIT) # Resolutions 12 Bit
#---------------------------------------------------------------------------
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
illumi_ldr = 42.175*pow(volt_ldr,-3.145)
illumi_ldr = round(illumi_ldr,2)
distance = round(distance,2)
illumi = str(illumi_ldr)
dis = str(distance)
display.fill(0)
display.text('Natcha', 0, 5, 1)
display.text('65130041660', 0, 19, 1)
display.text('Illu =', 0, 30, 1)
display.text(illumi+'Lux', 50, 30, 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)
sleep(1)
led1.value(OFF)
sleep(1)