import machine
import ssd1306
import mpu6050
from utime import sleep
from machine import Pin,ADC
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
# pin configuration
pin_pb=Pin(26,Pin.IN)
pin_led=Pin(16,Pin.OUT)
pin_slsw=Pin(33,Pin.IN)
pin_green=Pin(0,Pin.OUT)
pin_dp1= Pin(25, Pin.IN)
pin_blue=Pin(2,Pin.OUT)
sda = machine.Pin(21)
scl = machine.Pin(22)
pin_pm=ADC(Pin(35))
pin_ms=ADC(Pin(34))
pin_red=Pin(4,Pin.OUT)
oled_width= 128
oled_height= 64
i2c = machine.SoftI2C(sda=sda, scl=scl, freq=10000)
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
lcd = I2cLcd(i2c, 0x27, 2, 16)
mpu = mpu6050.MPU6050(i2c)
# main routine
def main():
while True:
# Subroutine here
sub_pb()
sub_slsw()
sub_dp1()
lcd_i2c()
oled_i2c()
mpu_i2c()
# subroutine
def sub_pb():
val_pb=pin_pb.value()
print("pb:",val_pb)
if val_pb ==1:
pin_led.on()
else:
pin_led.off()
def sub_slsw():
val_slsw=pin_slsw.value()
print("slsw:",val_slsw)
if val_slsw ==1:
pin_green.on()
else:
pin_green.off()
def sub_dp1():
val_dp1=pin_dp1.value()
print("dp1",val_dp1)
if val_dp1 ==1:
pin_blue.on()
else:
pin_blue.off()
def lcd_i2c():
val_pm=pin_pm.read()
lcd.move_to(0, 0)
display_text = "value: " + str("{:.1f}".format(val_pm))
lcd.putstr(display_text)
def oled_i2c():
val_ms=pin_ms.read()
#print(val_ms)
if val_ms==4095:
oled.fill(0)
oled.text("name:", 0, 2)
oled.text("fathibaqy", 0, 10)
oled.text("ID:", 0, 25)
oled.text("2022610436", 0, 35)
oled.show()
else:
sleep(10)
def mpu_i2c():
accel_data=mpu.read_accel_data()
#print(",Accel:"+ str(accel_data[0]))
if accel_data[0] > 1.5:
pin_red.on()
else:
pin_red.off()
# Main function
if __name__ == '__main__':
main()