from machine import Pin, ADC, I2C
import ssd1306
import time
# Инициализация I2C для OLED дисплея
i2c = I2C(scl=Pin(22), sda=Pin(21))
# Параметры дисплея
SCREEN_WIDTH = 128 # Ширина дисплея в пикселях
SCREEN_HEIGHT = 64 # Высота дисплея в пикселях
# Инициализация дисплея
display = ssd1306.SSD1306_I2C(SCREEN_WIDTH, SCREEN_HEIGHT, i2c)
# Настройка пинов
CO2_SENSOR_PIN = 34 # Аналоговый вход для датчика CO2
LED_PIN = 15 # Пин для светодиода
CO2_THRESHOLD = 400 # Пороговое значение CO2
# Инициализация датчика CO2 (эмулируется потенциометром)
co2_sensor = ADC(Pin(CO2_SENSOR_PIN))
co2_sensor.atten(ADC.ATTN_11DB) # Установка диапазона 0-3.3V
# Инициализация светодиода
led = Pin(LED_PIN, Pin.OUT)
while True:
# Чтение значения с датчика
sensor_value = co2_sensor.read() # Чтение значения ADC (0-4095)
# Преобразование значения в уровень CO2 (упрощенно)
co2_level = int(sensor_value / 4095 * 1000) # Диапазон 0-1000 ppm
# Вывод значения на дисплей
display.fill(0) # Очистка дисплея
display.text("CO2 Level:", 0, 0)
display.text("{} ppm".format(co2_level), 0, 10)
display.show()
# Проверка порогового значения
if co2_level > CO2_THRESHOLD:
led.on() # Включаем светодиод
else:
led.off() # Выключаем светодиод
time.sleep(1) # Задержка перед следующим измерением