from machine import I2C, Pin, Timer
from ssd1306 import SSD1306_I2C
i2c = I2C(sda=Pin(23), scl=Pin(19))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
sig = Pin(18, Pin.IN)
led = Pin(2, Pin.OUT, Pin.PULL_UP)
def irq(pin):
oled.fill(0)
oled.text('Human', 0, 0)
# 如果信号引脚为高电平说明检测到人,点亮LED,显示信息
if sig.value()==1:
led.on()
oled.text('Somebody Here', 0, 32)
# 信号引脚为低电平说明未检测到人,熄灭LED,显示信息
else:
led.off()
oled.text('Nobody Here', 0, 32)
oled.show()
# 初始化显示
irq(None)
# 上下边沿都触发,回调方法中判断是人进入检测范围还是离开检测范围
sig.irq(irq, Pin.IRQ_RISING|Pin.IRQ_FALLING)