Считать html с памяти esp8266

Тема в разделе "ESP8266, ESP32", создана пользователем bonny, 18 окт 2020.

  1. bonny

    bonny Нерд

    Привет, делаю "Умный дом" из набора Интернет вещей для матрёшки.
    Нет SD ридера.
    Я подумал может залить в WI-FI модуль на ESP8266 в память html страницу с примера.
    Как его открыть подскажите. Чтобы esp уже выводила с файла, а не ардуино передавала страницу посимвольно...

    Добавил в Arduino IDE ESP8266FS-0.5.0 b загрузил html файл.
    Для Arduino UNO:
    Код (C++):
    #include <SoftwareSerial.h>

    #define RELAY_PIN A4

    void setup() {
      Serial.begin(115200);
      pinMode(RELAY_PIN, OUTPUT);
    }

    void loop() {
      String command = Serial.readStringUntil('\n');
      command.trim();

      if (command == "On") {
        digitalWrite(RELAY_PIN, HIGH);
      } else if (command == "Off") {
        digitalWrite(RELAY_PIN, LOW);
      }
    }
     
    Для WI-FI модуля:
    Код (C++):

    #include<ESP8266WiFi.h>
    #include<WiFiClient.h>
    #include<ESP8266WebServer.h>
    #include"FS.h"
    #define WIFI_SSID "freetime" // Указываем SSID и пароль Wi-Fi сети, с которой будем выходить в интернет
    #define WIFI_PASSWORD ""
    ESP8266WebServer server(80);
    File htmlFile;
    String page;
    // Заведём функции handleOn() и handleOff().
    // Они будут обрабатывать нажатия кнопок включения и выключения света в браузере.
    voidhandleRoot(){
    server.send(200,"text/html", page);
    }
    voidhandleOn(){
    Serial.println("Relay On");
    server.send(200,"text/plain","turnOn");
    }
    voidhandleOff(){
    Serial.println("Relay Off");
    server.send(200,"text/plain","turnOff");
    }
    voidsetup(void){
    Serial.begin(115200);
    SPIFFS.begin();// Инициализируем SPIFFS для работы с файловой системой
    WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
    while(WiFi.status()!= WL_CONNECTED)delay(500);
    Serial.println();
    Serial.println(WiFi.localIP());// Выводим в консоль IP адрес
    // Если на сервер приходит запрос на включение или выключение реле, вызываем соответствующую функцию
    server.on("/", handleRoot);// Дублирование главной страницы
    server.on("/home.html", handleRoot);// Главная
    server.on("/turnOn", handleOn);
    server.on("/turnOff", handleOff);
    htmlFile = SPIFFS.open("/home.html","r");// Открываем html файл для чтения
    if(!htmlFile) Serial.println("Html file open failed!");// Выводим ошибку чтения файлы, если файла нет
    server.begin();// Запускаем сервер
    while(htmlFile.available()){// Записываем в page код из html файла построчно
    String fileLine = htmlFile.readStringUntil('\n');
    page += fileLine;
    }
    htmlFile.close();// Закрываем файл с esp8266
    }
    voidloop(){
    server.handleClient();
    }
     
     
    Последнее редактирование: 18 окт 2020
  2. bonny

    bonny Нерд

    Подкорректировал код. Страница подгружается. Напишите, если что-то стоит подкорректировать...