import machine
import network
import time
import webrepl
from machine import Pin, I2C
import ssd1306_rus
# 1. ЗАДЕРЖКА ПИТАНИЯ ДЛЯ СТАБИЛИЗАЦИИ
time.sleep(1)
# 2. УСТАНОВКА ЧАСТОТЫ ЯДРА (80 МГц)
machine.freq(80000000)
# 3. ИНИЦИАЛИЗАЦИЯ И СТАРТ ЭКРАНА (100 кГц)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
oled = ssd1306_rus.SSD1306_RUS(128, 32, i2c) # Высота строго 32 пикселя
oled.poweron()
oled.fill(0)
oled.text_rus("ЗАПУСК СИСТЕМЫ..", 0, 0)
oled.show()
time.sleep(0.5)
# 4. ПОДКЛЮЧЕНИЕ WI-FI И СТАТИЧЕСКИЙ IP
oled.fill(0)
oled.text_rus("ПОДКЛЮЧЕНИЕ WI-FI", 0, 0)
oled.show()
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Установка статического IP и надежного DNS 8.8.8.8 для облака
wlan.ifconfig(('192.168.1.150', '255.255.255.0', '192.168.1.1', '8.8.8.8'))
wlan.connect('network', '12345612')
# Ожидание сети максимум 10 секунд
timeout = 10
while not wlan.isconnected() and timeout > 0:
time.sleep(1)
timeout -= 1
oled.fill(0)
if wlan.isconnected():
oled.text_rus("СЕТЬ: ОК", 0, 0)
# ИСПРАВЛЕНО ПРИ ТЕСТИРОВАНИИ: выводим строго первый элемент (строку IP) на координату Y=16
oled.text_rus(wlan.ifconfig()[0], 0, 16)
oled.show()
time.sleep(1)
# 5. СТАРТ БЕСПРОВОДНОГО СЕРВЕРА ОБНОВЛЕНИЙ
webrepl.start()
else:
oled.text_rus("ОШИБКА WI-FI", 0, 0)
oled.text_rus("АВТОНОМНЫЙ РЕЖИМ", 0, 16)
oled.show()
time.sleep(2)
# 6. ОЧИСТКА ПАМЯТИ ПЕРЕД СТАРТОМ MAIN.PY
import gc
gc.collect()
oled.fill(0)
oled.text_rus("ЗАПУСК MAIN.PY...", 0, 0)
oled.show()
time.sleep(0.5)