import machine
import ssd1306
import dht
import time
import neopixel
# Инициализация I2C шины
i2c = machine.SoftI2C(scl=machine.Pin(22), sda=machine.Pin(21))
# Инициализация дисплея
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# Инициализация датчика DHT22
d = dht.DHT22(machine.Pin(14))
# Пин для управления реле
relay_pin = machine.Pin(19, machine.Pin.OUT)
# Пин для управления сервоприводом
servo_pin1 = machine.Pin(18)
# Инициализация PWM для управления сервоприводом
servo = machine.PWM(servo_pin1, freq=50)
np = neopixel.NeoPixel(machine.Pin(12), 1)
while True:
# Считывание данных с датчика
d.measure()
temp = d.temperature()
hum = d.humidity()
# Очистка дисплея
oled.fill(0)
# Отображение данных на дисплее
oled.text("Temp: {} C".format(temp), 0, 0)
oled.text("Humidity: {}%".format(hum), 0, 20)
oled.show()
# Проверка температуры и управление реле, сервоприводом и Neopixel
if temp >= 40:
# Включение реле
relay_pin.on()
# Установка угла поворота сервопривода (зависит от конкретной реализации)
servo.duty(75) # Пример значения для сервопривода
# Установка цвета Neopixel в красный
np[0] = (255, 0, 0) # Красный цвет
np.write()
else:
# Выключение реле
relay_pin.off()
servo.duty(30) # Другое значение для сервопривода
# Установка цвета Neopixel в зеленый
np[0] = (0, 255, 0) # Зеленый цвет
np.write()
# Пауза перед следующим измерением
time.sleep(2)