Страница 17 из 119
Re: Arduino Mega Server для esp8266
Добавлено: Пн июн 20, 2016 9:19 pm
relict
nick7zmail писал(а):У меня в среде 1.6.9 так и не удалось скомпилить...
Тоже ругался на какие-то функции, связанные с временем...
А кто-нибудь собрал с последним sdk(версия библиотек для esp - 2.2.0)?
Если между 2.0.0 и 2.1.0 есть разница в памяти, то, может и для 2.2.0 она будет в лучшую сторону?
Замени библиотеку Time.
Time.zip
В
arduino_mega_server_esp8266.ino 38 строка
То, о чём
Alex-у писал
SPbDima.
Разница в размере скетча и памяти.
Arduino 1.6.5 ESP 2.1.0
Sketch uses 298 791 bytes (28%) of program storage space. Maximum is 1 044 464 bytes.
Global variables use 43 332 bytes (52%) of dynamic memory, leaving 38 588 bytes for local variables. Maximum is 81 920 bytes.
Arduino 1.6.9 ESP 2.2.0
Скетч использует 293 425 байт (28%) памяти устройства. Всего доступно 1 044 464 байт.
Глобальные переменные используют 42 164 байт (51%) динамической памяти, оставляя 39 756 байт для локальных переменных. Максимум: 81 920 байт.
Только скомпилировал, кто бы попробовал на железе.
Re: Arduino Mega Server для esp8266
Добавлено: Пн июн 20, 2016 11:01 pm
nick7zmail
relict писал(а):
Замени библиотеку Time.
Time.zip
Только скомпилировал, кто бы попробовал на железе.
Спасибо. Теперь и в 1.6.9 компилится))
Железку лень заводить...завтра вечером буду пробовать.
UPD: не удержался...залил таки...
Ардуино 1.6.9, версия библиотек esp 2.2.0, переименована библиотека Time.h (из сообщения выше), скомпилилось без предупреждений.
Памяти - на первый запуск стало больше, но при открытом интерфейсе она поджирается чем-то до состояния предыдущей заливки (с 67% примерно до 55-56%)...не знаю с чем связано. Подключена библиотека wifi connect manager, возможно из-за нее.
Re: Arduino Mega Server для esp8266
Добавлено: Вт июн 21, 2016 12:07 am
relict
nick7zmail писал(а):Памяти - на первый запуск стало больше, но при открытом интерфейсе она поджирается чем-то до состояния предыдущей заливки (с 67% примерно до 55-56%)...не знаю с чем связано. Подключена библиотека wifi connect manager, возможно из-за нее.
Надо на дефолтной прошивке проверить.
В 1.6.5 поменял библиотеку Time, в скетче заменил #include <Time.h> на #include <TimeLib.h>, компилируется зараза и без ошибок.
Может будем пересаживаться на новый велосипед, ну не верю я, что у
Alex-а на компе XP установлена. Чего плохого в использовании актуальных версий ПО ?
1.6.5
Код: Выделить всё
AMS for ESP8266 started...
Modul Hardware...
SDK version: 1.5.1(e67da894)
Boot version: 31
Boot mode: 1
Reset info: Fatal exception:0 flag:6 (EXT_SYS_RST) epc1:0x00000000 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
CPU freq: 80 MHz
Free memory: 36448 (78%)
Flash speed: 40 MHz
Flash mode: 0
Flash size: 4194304
SPIFFS size: 3145892
Program size: 1048412
Sketch size: 302940
Free for sketch: 745472
started
Modul Wi-Fi...
Connecting to KEENETIC_GIGA
......
WiFi connected
IP address: 192.168.1.13
started
Modul SPIFFS...
Total files: 141
Total size: 2039037
started
Modul Random... started
Modul EEPROM...
Name: ESP8266
started
Modul NTP...
Local port: 2390
started
Modul RTC...
Set time provider
sending NTP packet...
No packet yet
started
1970-01-01 00:00:05 Modul HTTP...
1970-01-01 00:00:05 HTTP port: 8080
1970-01-01 00:00:05 started
1970-01-01 00:00:05 Modul Server... started
GLOBAL Init DONE (5s)
AMS WORK
1970-01-01 00:00:05 : 33088 (71%) 33088
sending NTP packet...
packet received, length=48
Unix time = 1466468417
2016-06-21 00:20:35 : 33048 (71%) -40
2016-06-21 00:21:35 : 33048 (71%) 0
2016-06-21 00:22:35 : 33048 (71%) 0
2016-06-21 00:23:35 : 33048 (71%) 0 // открыл браузер
2016-06-21 00:24:35 : 29080 (62%) -3968
2016-06-21 00:25:37 : 28720 (62%) -360
2016-06-21 00:26:38 : 30584 (66%) 1864
2016-06-21 00:27:37 : 32568 (70%) 1984
2016-06-21 00:28:37 : 32568 (70%) 0 // закрыл браузер
2016-06-21 00:29:37 : 32568 (70%) 0
2016-06-21 00:30:37 : 32568 (70%) 0
2016-06-21 00:31:37 : 32568 (70%) 0
1.6.9
Код: Выделить всё
AMS for ESP8266 started...
Modul Hardware...
SDK version: 1.5.2(7eee54f4)
Boot version: 31
Boot mode: 1
Reset info: Fatal exception:0 flag:6 (EXT_SYS_RST) epc1:0x00000000 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
CPU freq: 80 MHz
Free memory: 37728 (81%)
Flash speed: 40 MHz
Flash mode: 0
Flash size: 4194304
SPIFFS size: 3147164
Program size: 1047140
Sketch size: 297572
Free for sketch: 749568
started
Modul Wi-Fi...
Connecting to KEENETIC_GIGA
.
WiFi connected
IP address: 192.168.1.13
started
Modul SPIFFS...
Total files: 141
Total size: 2039037
started
Modul Random... started
Modul EEPROM...
Name: ESP8266
started
Modul NTP...
Local port: 2390
started
Modul RTC...
Set time provider
sending NTP packet...
packet received, length=48
Unix time = 1466469393
started
2016-06-21 00:36:33 Modul HTTP...
2016-06-21 00:36:33 HTTP port: 8080
2016-06-21 00:36:33 started
2016-06-21 00:36:33 Modul Server... started
GLOBAL Init DONE (2s)
AMS WORK
2016-06-21 00:36:33 : 34608 (74%) 34608
2016-06-21 00:37:30 : 34608 (74%) 0
2016-06-21 00:38:30 : 34608 (74%) 0
2016-06-21 00:39:30 : 34608 (74%) 0 // открыл браузер
2016-06-21 00:40:30 : 30792 (66%) -3816
2016-06-21 00:41:30 : 30792 (66%) 0
2016-06-21 00:42:30 : 34128 (73%) 3336
2016-06-21 00:43:30 : 34128 (73%) 0
2016-06-21 00:44:30 : 34128 (73%) 0 // закрыл браузер
2016-06-21 00:45:30 : 34128 (73%) 0
2016-06-21 00:46:30 : 34128 (73%) 0
2016-06-21 00:47:30 : 34128 (73%) 0
Re: Arduino Mega Server для esp8266
Добавлено: Вт июн 21, 2016 2:23 pm
nick7zmail
Появилась идея...классная, но чтоб реализовать - много чего переписать придется...есть для нее более простой вариант, но не факт что реализуемый.
В связи с чем вопрос - Из самого модуля как-то можно перехватить serial.print-ы, или инициализировать виртуальный серийный порт?
Было бы неплохо если бы модуль вел свой лог, на подобии сериал порта, только в файл...и этот файл выводить на страничке. Можно было бы дебажить не цепляясь к компу.
Re: Arduino Mega Server для esp8266
Добавлено: Вт июн 21, 2016 4:49 pm
SPbDima
1. По поводу заголовочного файла time.h. По моему мнению, в Arduino IDE 1.6.9 разработчики накосячили ища подключаемые в скетче библиотеки в каталоге с системными файлами(файлы необходимые для работы IDE). Поэтому я бы не рекомендовал использовать данную версию, т.к. могут быть и другие пересечения по именам, что может привести к фатальным последствиям, таким как неработающий функционал, сбои и при попытке подключения новой библиотеки невозможность откомпилировать скетч если не будет аналога типа: time.h ->timelib.h, а заниматься переименованием библиотеки глупое занятие.
2. Alex, если есть возможность, предоставляй к скачиванию дистрибутив IDE у себя на сайте(для всех ОС), т.к. ты пишешь о необходимости использования IDE определенной версии которой нет (уже) на сайте разработчика. И что делать? (Arduino 1.6.5 r2 для osX нет на сайте разработчика)
3. По поводу перехвата serial. такие доработки должен делать только Alex, из-за невозможности простого портирования доработки(нужно переписывать все файлы), а если делать только для себя, то переворачивать все файлы после каждой новой версии AMS быстро надоест. Идея nick7zmail здравая, я о ней тоже задумывался. Возможно, оптимальный вариант был бы в виде создания функции для вывода получаемых функцией данный в зависимости от настроек, либо в файл, либо в serial.
Re: Arduino Mega Server для esp8266
Добавлено: Вт июн 21, 2016 5:01 pm
SPbDima
По поводу первого запуска AMS. Alex, зачем использовать не удобную утилиту для первичной заливки страниц на сервер, если можно файл edit.htm создать в скетче и при отсутствии файла index, либо при ошибке 404 выдавать пользователю страницу для загрузки файлов.
Re: Arduino Mega Server для esp8266
Добавлено: Вт июн 21, 2016 6:38 pm
relict
SPbDima писал(а):По поводу заголовочного файла time.h. По моему мнению, в Arduino IDE 1.6.9 разработчики накосячили ища (поиск) подключаемые(include) в скетче библиотеки в каталоге с системными файлами(файлами необходимыми для работы IDE). Поэтому я бы не рекомендовал использовать данную версию, т.к. могут быть и другие пересечения по именам, что может привести к фатальным последствиям, таким как неработающий функционал, сбои и при попытке подключения новой библиотеки невозможность откомпилировать скетч если не будет аналога типа: time.h ->timelib.h, а заниматься переименованием библиотеки глупое занятие.
Ничего не понял

.
UPD о фатальности последствий.
Сравнение библиотеки
Alex-а и той, что выложил(скачана с
гита)
Time&TimeLib.PNG
Re: Arduino Mega Server для esp8266
Добавлено: Ср июн 22, 2016 5:08 pm
SPbDima
Alex, а функцию handleFileList в файле http.ino сам писал? Там ошибка (или недоделка) в использовании переменной isDir, т.к. она всегда false
Код: Выделить всё
void handleFileList() {
if (!HTTP.hasArg("dir")) {
HTTP.send(500, "text/plain", "BAD ARGS");
return;
}
String path = HTTP.arg("dir");
Dir dir = SPIFFS.openDir(path);
path = String();
String output = "[";
while (dir.next()) {
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false; <---- установили
output += "{\"type\":\"";
output += (isDir) ? "dir" : "file"; <---- применили, а где изменили?
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
}
output += "]";
HTTP.send(200, "text/json", output);
}
*** Сообщение запрещено. Сообщение похоже на спам. ***
Re: Arduino Mega Server для esp8266
Добавлено: Ср июн 22, 2016 5:09 pm
SPbDima
Alex, а функцию handleFileList в файле http.ino сам писал? Там ошибка (или недоделка) в использовании переменной isDir, т.к. она всегда false
Код: Выделить всё
void handleFileList() {
if (!HTTP.hasArg("dir")) {
HTTP.send(500, "text/plain", "BAD ARGS");
return;
}
String path = HTTP.arg("dir");
Dir dir = SPIFFS.openDir(path);
path = String();
String output = "[";
while (dir.next()) {
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false; <---- установили
output += "{\"type\":\"";
output += (isDir) ? "dir" : "file"; <---- применили, а где изменили?
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
}
output += "]";
HTTP.send(200, "text/json", output);
}
*** Сообщение запрещено. Сообщение похоже на спам. ***
Re: Arduino Mega Server для esp8266
Добавлено: Ср июн 22, 2016 5:11 pm
SPbDima
Alex, а функцию handleFileList в файле http.ino сам писал? Там ошибка (или недоделка) в использовании переменной isDir, т.к. она всегда false
Код: Выделить всё
void handleFileList() {
if (!HTTP.hasArg("dir")) {
HTTP.send(500, "text/plain", "BAD ARGS");
return;
}
String path = HTTP.arg("dir");
Dir dir = SPIFFS.openDir(path);
path = String();
String output = "[";
while (dir.next()) {
File entry = dir.openFile("r");
if (output != "[") output += ',';
bool isDir = false; <---- установили
output += "{\"type\":\"";
output += (isDir) ? "dir" : "file"; <---- применили, а где изменили?
output += "\",\"name\":\"";
output += String(entry.name()).substring(1);
output += "\"}";
entry.close();
}
output += "]";
HTTP.send(200, "text/json", output);
}
*** Сообщение запрещено. Сообщение похоже на спам. ***