import machine
import dht
import time
# Define Pins
DHTPIN = 15
ECG_PIN = 34
SPO2_PIN = 35
# Initialize DHT22 sensor
dht_sensor = dht.DHT22(machine.Pin(DHTPIN))
# Initialize ADC for ECG and SPO2
ecg = machine.ADC(machine.Pin(ECG_PIN))
spo2 = machine.ADC(machine.Pin(SPO2_PIN))
# Set attenuation for full 0-3.3V range
ecg.atten(machine.ADC.ATTN_11DB)
spo2.atten(machine.ADC.ATTN_11DB)
while True:
try:
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
except OSError:
temperature = None
humidity = None
print("Failed to read from DHT sensor")
ecg_signal = ecg.read()
spo2_signal = spo2.read()
# Simulated BPM and SpO2 calculations
bpm = int((spo2_signal - 0) * (100 - 60) / (4095 - 0) + 60)
spo2_percent = int((spo2_signal - 0) * (100 - 90) / (4095 - 0) + 90)
# Output
if temperature is not None and humidity is not None:
print(f"Temp: {temperature:.2f} C, Humidity: {humidity:.2f} %, ", end='')
print(f"ECG: {ecg_signal}, BPM: {bpm}, SpO2: {spo2_percent}")
time.sleep(3)