Пример использования
# main.py
import network
import time
import _thread # Многопоточность
import esp32 # Доступ к функциям ESP32 (например, температура чипа)
# Импорт клиентской библиотеки MicroComm для ESP32
from microcomm_esp32 import MicrocommClient
# --- Настройки Wi-Fi ---
WIFI_SSID = "" # Имя вашей Wi-Fi точки
WIFI_PASSWORD = "" # Пароль точки доступа
# Функция подключения к Wi-Fi
def connect_wifi():
sta_if = network.WLAN(network.STA_IF) # Режим клиента (не точка доступа)
if not sta_if.isconnected():
print("Connecting to Wi-Fi...")
sta_if.active(True) # Включаем Wi-Fi
sta_if.connect(WIFI_SSID, WIFI_PASSWORD) # Подключаемся
while not sta_if.isconnected():
pass # Ждём подключения
print("Connected to Wi-Fi")
print("Network config:", sta_if.ifconfig()) # Показываем IP-адрес
# --- Инициализация MicroComm Client ---
mc = MicrocommClient(
uuid="12eba392-cd68-4433-a7a4-d5f2472d6255", # Уникальный ID устройства (узнайте в личном кабинете)
debug=True # Выводит подробные логи (удобно при настройке)
)
# --- Регистрация команды: WRITE_MESSAGE ---
@mc.register_command(
name="WRITE_MESSAGE", # Имя команды
description="Написать сообщение", # Описание команды
param_specs={ # Описание ожидаемых параметров
"message": {
"type": "str",
"required": True,
"description": "Текст сообщения для вывода"
}
},
)
def write_message(execution):
message = execution.params.get("message")
if not message:
execution.error("Не указан параметр 'message'") # Отправляем ошибку
return
print(f"Your message: {message}")
execution.success(payload={
"your_extra_data": "hello world" # Можно вернуть данные
})
# --- Регистрация команды: TEST_ERROR ---
@mc.register_command("TEST_ERROR", "Тест ошибки")
def error(execution):
x += 1 # Ошибка: переменная x не определена
execution.success() # Этот код не выполнится
# --- Регистрация команды: GET_TEMP ---
@mc.register_command("GET_TEMP", "Возвращает температуру процессора")
def temp(execution):
# Чтение температуры с встроенного сенсора ESP32 (в градусах Цельсия)
temp = esp32.mcu_temperature()
execution.success(payload={
"temp": temp, # Отправляем значение
})
# --- Запуск программы ---
connect_wifi() # Подключаемся к Wi-Fi
# Запускаем цикл обмена данными с сервером в отдельном потоке
# Это позволяет устройству одновременно слушать команды и выполнять свою логику
_thread.start_new_thread(mc.exchange_data_loop, ())
# Основной цикл устройства (может выполнять свои задачи)
while True:
print("Main loop")
time.sleep(5) # Например, опрос датчиков, управление реле и т.д.