Уроки робототехники — 4DUK

8 занятий: от реле до голосового управления

Подход

Уроки построены на реальной архитектуре 4DUK: ученики собирают схемы, отправляют UDP-пакеты и видят, как устройства реагируют. Никаких симуляторов — только реальное железо и локальная сеть.

Степаныч, давай охолаживай: лучший урок — когда лампочка включается от пакета, который ученик сам отправил.

Программа

  1. Знакомство с UDP. Что такое broadcast, порт 9009, пакет. Смотрим пакеты в Wireshark.
  2. ESP01 + реле. Собираем схему, подключаем к Wi-Fi, отправляем первую команду device:.
  3. Кнопка и devstate. Добавляем кнопку, отправляем devstate: при нажатии.
  4. Devping и keep-alive. Настраиваем отправку devping: каждые 180 секунд.
  5. Cold start. Отправляем devstate: при включении. Пассивная авто-регистрация.
  6. JSONB-дерево. Знакомимся с описанием устройств: native/standard функции.
  7. Интеграция с Алисой. Настраиваем навык, отправляем команду голосом.
  8. Муксис. Собираем колонку на SU-03T + ESP, управляем голосом без интернета.

Что нужно для занятий

Готовый код для урока 2

#include <ESP8266WiFi.h>
#include <WiFiUDP.h>

const char* ssid = "SCHOOL_WIFI";
const char* password = "SCHOOL_PASS";
WiFiUDP udp;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  udp.begin(0);
  pinMode(0, OUTPUT); // реле на GPIO0
}

void loop() {
  // Получаем команду
  int sz = udp.parsePacket();
  if (sz) {
    char buf[128];
    udp.read(buf, sz);
    buf[sz] = '\0';
    if (strstr(buf, "value:1")) digitalWrite(0, HIGH);
    if (strstr(buf, "value:0")) digitalWrite(0, LOW);
  }
}