ESP8266:Примеры/Скачивание содержимого веб-страницы с помощью модуля ESP-01

Материал из Онлайн справочника
Перейти к: навигация, поиск

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


Ambox content.png Черновик


Скачивание содержимого веб-страницы с помощью модуля ESP-01

В этом примере демонстрируется скачивание содержимого веб-страницы с помощью модуля ESP-01 и вывод содержимого в монитор последовательного порта.

Для выполнения этого примера вам необходимо:

  • Установить аддон ESP8266 для IDE Arduino;
  • Собрать схему и подключить конвертер USB FTDI к компьютеру, но не подключайте пока перемычку идущую на вывод VCC модуля ESP-01;
  • Вставить код программы в Arduino IDE;
  • Выбрать в меню Иструменты->Порт: соответствующий COM-порт;
  • Выбрать в меню "Инструменты->Плата" плату "Generic ESP8266 Module";
  • Нажать кнопку "Загрузка";
  • Подключить перемычку идущую на вывод VCC модуля ESP-01. Т.к. вывод GPIO0 подключен к земле, модуль при включении перейдет в режим загрузки;
  • Дождаться загрузки;
  • Открыть монитор порта и наблюдать за выходными данными;
  • Примечание: Если после загрузки скетча и открытия монитора порта, модуль не может подключиться и вы видите много "." просто отключите и подключите обратно перемычку идущую на вывод VCC модуля ESP-01.
  • Примечание: Если вы перезагрузили модуль и обнаружили в мониторе порта иероглифы, а сам модуль отказывается подключаться, проверьте отключили ли вы перемычку идущую от GPIO0 к земле(желательно подключить GPIO0 через 10кОм резистор к 3.3В). Отключите перемычку и снова перезагрузите модуль.

Необходимые компоненты

  • Один модуль с ESP-01;
  • Источник питания 3,3 В;
  • Один конвертер USB/TTL на базе чипа FT232RL от FTDI

Схема

Esp-01 download web page 1.png


Pinout ESP8266.jpg

Код

  1. #include <ESP8266WiFi.h>                                                                                  // Импортируем библиотеку ESP8266WiFi
  2.  
  3. const char* ssid     = "ваша точка доступа";                                                              // Укажите здесь в кавычках название вашей точки доступа
  4. const char* password = "пароль вашей точки доступа";                                                      // Укажите здесь в кавычках пароль вашей точки доступа
  5.  
  6. const char* host = "www.example.com";                                                                     // Впишите сюда любой адрес сайта(можно оставить и этот)
  7.  
  8. void setup()
  9. {
  10. Serial.begin(115200);                                                                                     // Инициализация последовательного порта
  11.  
  12. // Подключение к WiFi точке доступа
  13. Serial.print("Connecting to ");
  14. Serial.println(ssid);
  15. WiFi.begin(ssid, password);
  16.  
  17. while (WiFi.status() != WL_CONNECTED)
  18. {
  19.     delay(500);
  20.     Serial.print(".");
  21. }
  22.  
  23. Serial.println("");
  24. Serial.println("WiFi connected");
  25. Serial.println("IP address: ");
  26. Serial.println(WiFi.localIP());
  27. }
  28.  
  29. int value = 0;
  30. void loop()
  31. {
  32. Serial.print("Connecting to ");
  33. Serial.println(host);
  34.  
  35. WiFiClient client;                                                                                        // Класс WiFiClient используется для создания подключения по TCP
  36. const int httpPort = 80;
  37. if (!client.connect(host, httpPort)) {
  38.     Serial.println("connection failed");                                                                  // Если сайт недоступен
  39.     return;                                                                                               // Прерываем данную итерацию цикла
  40. }
  41.  
  42. client.print(String("GET /") + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); // Отправляем HTTP запрос на сервер
  43. delay(10);
  44.  
  45. // Читаем все строки ответа сервера и выводим их в монитор
  46. while(client.available())
  47. {
  48.     String line = client.readStringUntil('\r');
  49.     Serial.print(line);
  50. }
  51.  
  52. Serial.println();
  53. Serial.println("closing connection");
  54. delay(5000);                                                                                              // Задержка 5 секунд  
  55. }

См.также

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