WIFI модуль на ESP8266. Как мне wifi настроить и TCP-подключение без AT команд?
Чтобы настроить Wi-Fi и работать с TCP-соединением на ESP8266 без использования AT-команд, нужно программировать сам микроконтроллер напрямую — то есть прошить в него свою программу (скетч) на C++ через Arduino IDE, PlatformIO, ESP-IDF или другие среды.
Самый простой и популярный способ — использовать Arduino Core for ESP8266. Ниже полный рабочий пример: подключение к Wi-Fi как клиент (station) и создание TCP-клиента (например, подключение к серверу по IP и порту).
1. Установка Arduino IDE + ESP8266
Открой Arduino IDE → Файл → Настройки
В поле «Дополнительные ссылки для менеджера плат» добавь:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
Инструменты → Плата → Менеджер плат → ищи «esp8266» → установи последнюю версию.
Выбери свою плату (NodeMCU 1.0, Wemos D1 mini и т.д.) и порт.
2. Пример кода: Wi-Fi + TCP-клиент (без AT-команд)
#include <ESP8266WiFi.h>
// ================= НАСТРОЙКИ =================
const char* ssid = "ТВОЯ_ТОЧКА_ДОСТУПА";
const char* password = "ТВОЙ_ПАРОЛЬ";
const char* server_ip = "192.168.1.100"; // IP сервера, к которому подключаемся
const uint16_t server_port = 12345; // порт сервера
// =============================================
WiFiClient client; // Это и есть наш TCP-клиент
void setup() {
Serial.begin(115200);
delay(10);
// Подключаемся к Wi-Fi
Serial.println();
Serial.print("Подключение к ");
Serial.println(ssid);
WiFi.mode(WIFI_STA); // режим клиента (Station)
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Wi-Fi подключён!");
Serial.print("IP адрес: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Пытаемся подключиться к TCP-серверу каждые 10 секунд
if (!client.connected()) {
Serial.println("Пытаемся подключиться к серверу...");
if (client.connect(server_ip, server_port)) {
Serial.println("Подключено к серверу!");
client.println("Привет от ESP8266!"); // отправляем что-нибудь
} else {
Serial.println("Не удалось подключиться :(");
delay(5000);
return;
}
}
// Если есть данные от сервера — читаем
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// Отправляем данные раз в 5 секунд (пример)
static uint32_t lastSend = 0;
if (millis() - lastSend > 5000) {
lastSend = millis();
if (client.connected()) {
client.printf("Время работы: %lu мс\n", millis());
}
}
delay(10);
}
3. Если нужен TCP-сервер (чтобы ESP8266 принимал подключения)
#include <ESP8266WiFi.h>
const char* ssid = "ТВОЯ_ТОЧКА";
const char* password = "ПАРОЛЬ";
WiFiServer server(12345); // сервер на порту 12345
WiFiClient client;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
Serial.println(WiFi.localIP());
server.begin();
server.setNoDelay(true);
}
void loop() {
if (!client.connected()) {
client = server.available(); // ждём нового клиента
if (client) {
Serial.println("Новый клиент подключился");
}
}
if (client && client.connected()) {
if (client.available()) {
String line = client.readStringUntil('\n');
Serial.println("Получено: " + line);
client.println("Эхо: " + line);
}
}
} 4. Полезные функции (Arduino ESP8266)

5. Альтернативы Arduino
Если захочется больше производительности и гибкости:
PlatformIO + Arduino core (то же самое, но удобнее)
ESP-IDF (официальный фреймворк Espressif, на чистом C)
MicroPython / CircuitPython — можно писать на Python без AT-команд
Но для 95 % задач Arduino core — самый быстрый и простой старт.
Заливай скетч, открывай Serial Monitor на 115200 — и всё будет работать без единой AT-команды. Удачи! 🚀