ESP8266:Примеры/Веб-сервер с помощью ESP8266 и IDE Arduino: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показано 5 промежуточных версий 2 участников)
Строка 2: Строка 2:
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Веб-сервер с помощью ESP8266 и IDE Arduino<ref>[https://randomnerdtutorials.com/esp8266-web-server-with-arduino-ide/ randomnerdtutorials.com - ESP8266 Web Server with Arduino IDE]</ref>=
=Веб-сервер с помощью ESP8266 и IDE Arduino<ref>[https://randomnerdtutorials.com/esp8266-web-server-with-arduino-ide/ randomnerdtutorials.com - ESP8266 Web Server with Arduino IDE]</ref>=


Если вы плохо знакомы с модулем [[ESP8266]], сначала почитайте [http://randomnerdtutorials.com/esp8266 эту статью], а эта статья рассказывает о том, как создать автономный веб-сервер на базе ESP8266, умеющий переключать два светодиода.
Если вы плохо знакомы с модулем [[ESP8266]]{{Admitad|Товар=ESP8266}}, сначала почитайте [http://randomnerdtutorials.com/esp8266 эту статью], а эта статья рассказывает о том, как создать автономный [[веб-сервер]] на базе [[ESP8266]], умеющий переключать два светодиода.
 
Для начала посмотрите это видео:
 
[Видео]


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


Программатор [[FTDI]] и [[ESP8266]] подключаются друг к другу очень просто. Вам лишь нужно настроить между ними последовательную коммуникацию, чтобы загрузить код.
Программатор [[FTDI]] и [[ESP8266]]{{Admitad|Товар=ESP8266}} подключаются друг к другу очень просто. Вам лишь нужно настроить между ними последовательную коммуникацию, чтобы загрузить код.


[[File:Flashing-Firmware-FTDI-Programmer_ESP8266 Web Server with Arduino IDE_1.png|center]]
[[File:Flashing-Firmware-FTDI-Programmer_ESP8266 Web Server with Arduino IDE_1.png|center]]
Строка 21: Строка 15:
==Загрузка кода на ESP8266==
==Загрузка кода на ESP8266==


Сначала убедитесь, что в '''IDE Arduino''' установлен аддон для [[ESP8266]]. Если не установлен, то о том, как это сделать, можно почитать [http://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/ тут].
Сначала убедитесь, что в '''IDE Arduino''' установлен аддон для [[ESP8266]]{{Admitad|Товар=ESP8266}}. Если не установлен, то о том, как это сделать, можно почитать [http://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/ тут].


Кликните в '''IDE Arduino''' на '''Инструменты > Плата > Generic ESP8266 Module (Tools > Board > Generic ESP8266 Module)'''.
Кликните в '''IDE Arduino''' на '''Инструменты > Плата > Generic ESP8266 Module (Tools > Board > Generic ESP8266 Module)'''.
Строка 27: Строка 21:
[[File:Arduino-IDE-select-esp8266_ESP8266 Web Server with Arduino IDE_2.png|center]]
[[File:Arduino-IDE-select-esp8266_ESP8266 Web Server with Arduino IDE_2.png|center]]


Скопируйте скетч ниже в '''IDE Arduino'''. Впишите собственные [[SSID]] и пароль к [[SSID]]. Отредактировав скетч, загрузите его на [[ESP8266]]. Если с загрузкой скетча возникла какая-то проблема, поищите ее решение в [http://randomnerdtutorials.com/esp8266-troubleshooting-guide/ этой статье].
Скопируйте скетч ниже в '''IDE Arduino'''. Впишите собственные [[SSID]] и пароль к [[SSID]]. Отредактировав скетч, загрузите его на [[ESP8266]]{{Admitad|Товар=ESP8266}}. Если с загрузкой скетча возникла какая-то проблема, поищите ее решение в [http://randomnerdtutorials.com/esp8266-troubleshooting-guide/ этой статье].


<syntaxhighlight lang="lua" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="lua" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
/*********
/*********
   Автор – Руи Сантос (Rui Santos)
   Автор – Руи Сантос (Rui Santos)
Строка 118: Строка 112:
==IP-адрес ESP8266==
==IP-адрес ESP8266==


Откройте монитор порта '''IDE Arduino''' на скорости '''115200 бод'''. Подключите '''GPIO'''-контакт '''0''' на [[ESP8266]] к '''VCC''', чтобы сбросить модуль.  
Откройте монитор порта '''IDE Arduino''' на скорости '''115200 бод'''. Подключите '''GPIO'''-контакт '''0''' на [[ESP8266]]{{Admitad|Товар=ESP8266}} к '''VCC''', чтобы сбросить модуль.  


Спустя несколько секунд в мониторе порта должен появиться [[IP]]-адрес [[ESP8266]]. В моем случае это '''«192.168.1.70»'''.
Спустя несколько секунд в мониторе порта должен появиться [[IP]]-адрес [[ESP8266]]{{Admitad|Товар=ESP8266}}. В моем случае это '''«192.168.1.70»'''.


[[File:esp-ip-address_ESP8266 Web Server with Arduino IDE_3.png|center]]
[[File:esp-ip-address_ESP8266 Web Server with Arduino IDE_3.png|center]]
Строка 132: Строка 126:
==Демонстрация==
==Демонстрация==


Чтобы проверить, работает ли проект, откройте браузер на любом устройстве, подключенном к тому же роутеру, что и [[ESP8266]]. Впишите туда [[IP]]-адрес [[ESP8266]] и нажмите {{клавиша|Enter}}.
Чтобы проверить, работает ли проект, откройте браузер на любом устройстве, подключенном к тому же роутеру, что и [[ESP8266]]{{Admitad|Товар=ESP8266}}. Впишите туда [[IP]]-адрес [[ESP8266]]{{Admitad|Товар=ESP8266}} и нажмите {{клавиша|Enter}}.


[[File:ESP8266 Web Server with Arduino IDE_web_5.png|center]]
[[File:ESP8266 Web Server with Arduino IDE_web_5.png|center]]


Теперь, нажимая на кнопки '''ON''' и '''OFF''', вы можете дистанционно включать/выключать светодиоды, подключенные к [[ESP8266]].
Теперь, нажимая на кнопки '''ON''' и '''OFF''', вы можете дистанционно включать/выключать светодиоды, подключенные к [[ESP8266]]{{Admitad|Товар=ESP8266}}.


=См.также=
=См.также=
Строка 143: Строка 137:


<references />
<references />
{{Навигационная таблица/Портал/ESP8266}}


[[Категория:ESP8266]]
[[Категория:ESP8266]]

Текущая версия от 12:33, 18 июня 2023

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


Веб-сервер с помощью 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).

См.также

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