Найти в Дзене

📡 Любовь с первого проекта: ESP8266 ESP-12E NodeMCU

Представьте себе: плата, как Arduino, но со встроенным Wi-Fi, и стоит как чашка кофе. А теперь знайте — это реальность. И это любовь с первого запуска. 💘 Это NodeMCU ESP8266 V3 — микроконтроллер с Wi-Fi, построенный на чипе ESP8266 ESP-12E. С ним вы сможете создать настоящие интернет-проекты: умный дом, уведомления, управление устройствами через браузер и многое другое. На борту уже есть: Создадим простейший веб-сервер на ESP8266, который позволит вам управлять светодиодом через браузер. Этот проект — отличный способ почувствовать магию IoT. 1. Откройте Arduino IDE → Файл → Параметры 2. Вставьте в поле дополнительных ссылок: http://arduino.esp8266.com/stable/package_esp8266com_index.json 3. Перейдите в Инструменты → Менеджер плат, найдите и установите esp8266 by ESP8266 Community 4. Выберите плату: NodeMCU 1.0 (ESP-12E Module) 5. Установите скорость порта: 115200 #include <ESP8266WiFi.h> const char* ssid = "ВАШ_SSID"; const char* password = "ВАШ_ПАРОЛЬ"; WiFiServer server(80); int
Оглавление

Представьте себе: плата, как Arduino, но со встроенным Wi-Fi, и стоит как чашка кофе.

А теперь знайте — это реальность. И это любовь с первого запуска. 💘

🤖 Что это за устройство?

Это NodeMCU ESP8266 V3 — микроконтроллер с Wi-Fi, построенный на чипе ESP8266 ESP-12E.

С ним вы сможете создать настоящие интернет-проекты: умный дом, уведомления, управление устройствами через браузер и многое другое.

На борту уже есть:

  • USB-интерфейс через чип CH340
  • Питание от microUSB
  • Пины, совместимые с Arduino
  • И главное — встроенный Wi-Fi

🔌 Первый проект: веб-кнопка для управления светодиодом

Создадим простейший веб-сервер на ESP8266, который позволит вам управлять светодиодом через браузер.

Этот проект — отличный способ почувствовать магию IoT.

📦 Что понадобится:

  • Плата NodeMCU ESP8266
  • microUSB кабель
  • Arduino IDE
  • Wi-Fi сеть
  • Любой браузер

⚙️ Подготовка Arduino IDE:

1. Откройте Arduino IDE → Файл → Параметры

Параметры
Параметры

2. Вставьте в поле дополнительных ссылок:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Ссылка
Ссылка

3. Перейдите в Инструменты → Менеджер плат, найдите и установите esp8266 by ESP8266 Community

4. Выберите плату: NodeMCU 1.0 (ESP-12E Module)

-3

5. Установите скорость порта: 115200

-4

💻 Пример кода:

#include <ESP8266WiFi.h>
const char* ssid = "ВАШ_SSID";
const char* password = "ВАШ_ПАРОЛЬ";
WiFiServer server(80);
int ledPin = D1;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("IP адрес: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (!client) return;
while (!client.available()) {
delay(1);
}
String request = client.readStringUntil('\r');
client.flush();
if (request.indexOf("/on") != -1) {
digitalWrite(ledPin, HIGH);
} else if (request.indexOf("/off") != -1) {
digitalWrite(ledPin, LOW);
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<h1>ESP8266 Web Server</h1>");
client.println("<p><a href=\"/on\">On</a></p>");
client.println("<p><a href=\"/off\">Off</a></p>");
}

🧠 Что делает этот код?

  • Подключается к вашей Wi-Fi сети
  • Запускает веб-сервер на порту 80
  • Позволяет управлять светодиодом через браузер (по IP, например http://192.168.1.42)
Выбор платы
Выбор платы

📖 Разбор кода построчно

🔹 Подключение библиотеки

#include <ESP8266WiFi.h>

📦 Подключаем библиотеку Wi-Fi для ESP8266. Она нужна для подключения к сети, запуска сервера и работы с интернетом.

🔹 Настройки Wi-Fi

const char* ssid = "ВАШ_SSID";
const char* password = "ВАШ_ПАРОЛЬ";

🔐 Замените на имя вашей Wi-Fi сети и пароль. Эти данные ESP использует для подключения к роутеру.

🔹 Запуск веб-сервера

WiFiServer server(80);

🌐 Создаём веб-сервер на порту 80 — это стандартный HTTP-порт. По сути, это как ваш личный мини-сайт.

🔹 Указываем пин светодиода

int ledPin = D1;

💡 Указываем, к какому пину подключён светодиод. На NodeMCU пины обозначаются D0, D1, D2 и т. д. — проще, чем номера GPIO.

🔹 Настройка платы

void setup() {

⚙️ Всё, что запускается при старте платы — пишем здесь.

Serial.begin(115200);

🖨️ Включаем монитор порта. Можно будет читать отладочную информацию (например, IP-адрес платы).

pinMode(ledPin, OUTPUT);

💡 Устанавливаем режим работы пина: светодиод — это выход (OUTPUT), а не вход.

WiFi.begin(ssid, password);

📶 Пытаемся подключиться к Wi-Fi. Это как если бы вы подключались со смартфона к домашней сети.

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

🔄 Ждём, пока подключение не установится. Каждые полсекунды выводим точку — чтобы видеть, что всё работает.

Serial.println("");
Serial.print("IP адрес: ");
Serial.println(WiFi.localIP());

🌐 Когда Wi-Fi подключён — выводим IP-адрес платы. Вы по нему сможете зайти на веб-страницу.

server.begin();

🚀 Запускаем веб-сервер. Теперь он слушает входящие запросы.

🔄 Основной цикл

void loop() {

♻️ Всё, что будет повторяться бесконечно, находится здесь.

WiFiClient client = server.available();
if (!client) return;

👂 Проверяем, подключился ли кто-нибудь к веб-серверу. Если нет — возвращаемся и ждём снова.

while (!client.available()) {
delay(1);
}

📡 Ждём, пока клиент (браузер) пришлёт данные — например, нажмёт на ссылку.

String request = client.readStringUntil('\r');
client.flush();

📨 Читаем, что именно запросил браузер (адрес, параметры и т.п.). Очищаем входящий поток.

if (request.indexOf("/on") != -1) {
digitalWrite(ledPin, HIGH);
}

🔘 Если пользователь зашёл на адрес .../on, включаем светодиод.

else if (request.indexOf("/off") != -1) {
digitalWrite(ledPin, LOW);
}

🔌 Если пользователь зашёл на адрес .../off, выключаем светодиод.

📤 Отправляем ответ браузеру:

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");

🧾 Это "шапка" веб-страницы. Сообщаем браузеру, что всё прошло успешно и мы отправим HTML.

client.println("<h1>ESP8266 Web Server</h1>");
client.println("<p><a href=\"/on\">On</a></p>");
client.println("<p><a href=\"/off\">Off</a></p>");

🌐 HTML-страница, которую пользователь увидит в браузере. Две ссылки — на включение и выключение светодиода.

✅ Всё работает!

Открываете IP в браузере (например, http://192.168.1.42) — и управляете светом через Wi-Fi.

Сайт
Сайт
Проект
Проект