• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Сохранить данные вебформы в txt log

Azel14

New member
Доброго времени суток. Только начинаю знакомиться с программированием и модулем ESP8266 NodeMcu v3, и хочу попробовать решить следующую задачку.

Модуль создает открытую WiFi сеть. При подключении к ней, пользователь попадает на форму анкетирования (стр.1), где указывает ФИО, Дату и Телефон. Данные, которые он указал сохраняются на внутреннюю память устройства, к примеру в txt файл. После клика по кнопке отправить, открывается страничка с благодарностью (стр.2).

Если я правильно понял, то для реализации подобного мне необходимо создать WEB интерфейс и встроить в него DNS сервер, или я не в ту степь полез уже ?

От сюда несколько вопросов:
1. Поделитесь пожалуйста наводками, где почитать про реализацию подобного
2. Сколько таких строк влезет во внутреннюю память. К примеру по шаблону:

Иванов Иван Иванович | 16/12 | +79031234567
Петров Василий Семенович | 16/12 | +79651234567
Смирнов Петр Геннадьевич | 18/12 | +79659876543

3. Как потом вытащить с платы этот лог файл с данным из формы.

Спасибо всем, кто откликнулся.
 

Сергей_Ф

Moderator
Команда форума
необходимо создать WEB интерфейс и встроить в него DNS сервер
в ту сторону. Вместо DNS лучше посмотреть в сторону CaptivePortal - тогда сразу по подключению к сети откроется нужная страница.

1. Поделитесь пожалуйста наводками, где почитать про реализацию подобного
Да всё есть в примерах Ардуино ИДЕ, вроде. Тут нет ничего сложного.

2. Сколько таких строк влезет во внутреннюю память.
Если будете писать во встроенную память, то столько сколько отведёте под SPIFF. В килобайтах, естественно.

Как потом вытащить с платы этот лог файл с данным из формы.
Смотрите пример FSBrowser для загрузки файлов из SPIFF через Веб-интерфейс.

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

CodeNameHawk

Moderator
Команда форума
1. Поделитесь пожалуйста наводками, где почитать про реализацию подобного
2. Сколько таких строк влезет во внутреннюю память. К примеру по шаблону:
3. Как потом вытащить с платы этот лог файл с данным из формы.
1. Посмотрите пример в ArduinoIDE ESP8266WebServer.
2. Если писать в файловую систему, то не больше 3MBait.
3.Посмотрите пример в ArduinoIDE FSBrowser.
 

tretyakov_sa

Moderator
Команда форума
Получите данные с формы. Запишите в файл в режиме добавления.
 

Azel14

New member
Благодарю за наводку. Нагуглил и немного подредактировал код, чтобы был коннект без пароля:
Код:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char* ssid = "example";  // SSID сети

byte arduino_mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,170);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
ESP8266WebServer server(80);

void setup() {
  Serial.begin(9600);
  delay(100);

  Serial.println("Connecting to ");
  Serial.println(ssid);

  WiFi.softAP(ssid);   //сеть без пароля

  //check wi-fi is connected to wi-fi network
  while (WiFi.status() != WL_CONNECTED) {
  delay(1000);
  Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected..!");
  Serial.print("Got IP: ");
  Serial.println(WiFi.localIP());

  server.begin();
  Serial.println("HTTP server started");
}
void loop() {
  server.handleClient();
}
Ткните пожалуйста носом, как сюда интегрировать CaptivePortal ? Пока бегло посмотрел, с первого взгляда так и не понял, куда и что вставлять в код (((
 

Сергей_Ф

Moderator
Команда форума
@Azel14 вы примеры CaptivePortal и CaptivePortalAdvanced посмотрели? Будет проще, если возмете за основу их и будете добавлять в свой код в один из них.
 

svs2007m

Active member
Может хранение структурированных данных в облачном сервисе тоже вариант :)
 
Сверху Снизу