from machine import Pin, SoftI2C
from ssd1306 import SSD1306_I2C
from time import sleep
from hx711 import hx711
import utime
import random
# Initialize SoftI2C for OLED display
i2c = SoftI2C(scl=Pin(5), sda=Pin(4))
# Initialize SSD1306 OLED display
oled_width = 128
oled_height = 64
oled = SSD1306_I2C(oled_width, oled_height, i2c)
# Function to generate random pulse oximeter readings
def generate_pulse_oximeter_readings():
spo2 = random.randint(90, 100)
heart_rate = random.randint(60, 100)
return spo2, heart_rate
# Function to display pulse oximeter readings on OLED
def display_pulse_oximeter_readings(spo2, heart_rate):
oled.fill(0)
oled.text("SpO2: {}%".format(spo2), 0, 0)
oled.text("Heart Rate: {}bpm".format(heart_rate), 0, 10)
oled.show()
# Initializing the hx711 with pin 27 as clock pin, pin 21 as data pin
hx1 = hx711(Pin(21), Pin(27))
hx2 = hx711(Pin(19), Pin(22))
# Powering up
hx1.set_power(hx711.power.pwr_up)
hx2.set_power(hx711.power.pwr_up)
# Waiting for readings to settle
hx711.wait_settle(hx711.rate.rate_10)
# Main function
def main():
print('Starting combined simulation...')
while True:
val1 = hx1.get_value()
val2 = hx2.get_value()
print((val1/400), "kg")
print((val2/400), "kg")
spo2, heart_rate = generate_pulse_oximeter_readings()
display_pulse_oximeter_readings(spo2, heart_rate)
utime.sleep_ms(1000)
sleep(2) # Adjust frequency as needed
if __name__ == "__main__":
main()