ESP8266:Примеры/Веб-сервер с помощью ESP8266 и IDE Arduino

Материал из Онлайн справочника
Версия от 12:33, 18 июня 2023; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Веб-сервер с помощью ESP8266 и IDE Arduino[1]

Если вы плохо знакомы с модулем ESP8266(Купить ESP8266 на Aliexpress), сначала почитайте эту статью, а эта статья рассказывает о том, как создать автономный веб-сервер на базе ESP8266, умеющий переключать два светодиода.

Схема для загрузки кода на ESP8266

Программатор FTDI и ESP8266(Купить ESP8266 на Aliexpress) подключаются друг к другу очень просто. Вам лишь нужно настроить между ними последовательную коммуникацию, чтобы загрузить код.

Загрузка кода на ESP8266

Сначала убедитесь, что в IDE Arduino установлен аддон для ESP8266(Купить ESP8266 на Aliexpress). Если не установлен, то о том, как это сделать, можно почитать тут.

Кликните в IDE Arduino на Инструменты > Плата > Generic ESP8266 Module (Tools > Board > Generic ESP8266 Module).

Скопируйте скетч ниже в IDE Arduino. Впишите собственные SSID и пароль к SSID. Отредактировав скетч, загрузите его на ESP8266(Купить ESP8266 на Aliexpress). Если с загрузкой скетча возникла какая-то проблема, поищите ее решение в этой статье.

/*********
  Автор  Руи Сантос (Rui Santos)
  Более подробно о проекте на: http://randomnerdtutorials.com  
*********/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

MDNSResponder mdns;

// впишите сюда данные, соответствующие вашей сети: 
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

ESP8266WebServer server(80);

String webPage = "";

int gpio0_pin = 0;
int gpio2_pin = 2;

void setup(void){
  webPage += "<h1>ESP8266 Web Server</h1><p>Socket #1 <a href=\"socket1On\"><button>ON</button></a>&nbsp;<a href=\"socket1Off\"><button>OFF</button></a></p>";
  webPage += "<p>Socket #2 <a href=\"socket2On\"><button>ON</button></a>&nbsp;<a href=\"socket2Off\"><button>OFF</button></a></p>";
  
  // подготавливаем GPIO-контакты:
  pinMode(gpio0_pin, OUTPUT);
  digitalWrite(gpio0_pin, LOW);
  pinMode(gpio2_pin, OUTPUT);
  digitalWrite(gpio2_pin, LOW);
  
  delay(1000);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.println("");

  // ждем соединения:
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");  //  "Подключились к "
  Serial.println(ssid);
  Serial.print("IP address: ");  //  "IP-адрес: "
  Serial.println(WiFi.localIP());
  
  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
               //  "Запущен MDNSresponder"
  }
  
  server.on("/", [](){
    server.send(200, "text/html", webPage);
  });
  server.on("/socket1On", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio0_pin, HIGH);
    delay(1000);
  });
  server.on("/socket1Off", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio0_pin, LOW);
    delay(1000); 
  });
  server.on("/socket2On", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio2_pin, HIGH);
    delay(1000);
  });
  server.on("/socket2Off", [](){
    server.send(200, "text/html", webPage);
    digitalWrite(gpio2_pin, LOW);
    delay(1000); 
  });
  server.begin();
  Serial.println("HTTP server started");
}
 
void loop(void){
  server.handleClient();
}

IP-адрес ESP8266

Откройте монитор порта IDE Arduino на скорости 115200 бод. Подключите GPIO-контакт 0 на ESP8266(Купить ESP8266 на Aliexpress) к VCC, чтобы сбросить модуль.

Спустя несколько секунд в мониторе порта должен появиться IP-адрес ESP8266(Купить ESP8266 на Aliexpress). В моем случае это «192.168.1.70».

Схема для проекта

Теперь построим цепь с веб-сервером, управляющим двумя светодиодами.

Демонстрация

Чтобы проверить, работает ли проект, откройте браузер на любом устройстве, подключенном к тому же роутеру, что и ESP8266(Купить ESP8266 на Aliexpress). Впишите туда IP-адрес ESP8266(Купить ESP8266 на Aliexpress) и нажмите  ↵ Enter .

Теперь, нажимая на кнопки ON и OFF, вы можете дистанционно включать/выключать светодиоды, подключенные к ESP8266(Купить ESP8266 на Aliexpress).

См.также

Внешние ссылки