from machine import Pin, I2C
from time import sleep
import random
import lcd_api
import i2c_lcd
# I2C setup
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
# Try 0x3F first, if not working → change to 0x27
lcd = i2c_lcd.I2cLcd(i2c, 0x27, 2, 16)
# Startup message
lcd.putstr("MAX30102 Sim")
sleep(2)
lcd.clear()
def read_max30102():
red = random.randint(50000, 100000)
ir = random.randint(50000, 100000)
return red, ir
def calcul_bpm_spo2(red, ir):
bpm = random.randint(60, 100)
spo2 = round(random.uniform(95.0, 99.0), 1)
return bpm, spo2
while True:
red, ir = read_max30102()
bpm, spo2 = calcul_bpm_spo2(red, ir)
lcd.clear()
sleep(0.1)
lcd.move_to(0, 0)
lcd.putstr("BPM: {}".format(bpm))
lcd.move_to(0, 1)
lcd.putstr("SpO2: {}%".format(spo2))
sleep(1)