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

Общие вопросы по Arduino IDE для ESP8266

Рубен

Member
Исходные данные: Arduino IDE 1.6.5
базовый скетч mDNS_Web_Server
Как не дожидаясь запроса от клиента
client = server.available();
if (!client)
{
return;
}
принудительно передавать клиенту данные, например по таймеру?
 

Vov@nishe

New member
Всех приветствую!!!
Пытаюсь скомпилировать базовый скетч WiFiWebServer. И сразу же выдает ошибку.
In file included from c:\documents and settings\свиржевский владимир\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:63:0,
from C:\Documents and Settings\Свиржевский Владимир\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/WiFiClient.h:28,
from C:\Documents and Settings\Свиржевский Владимир\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,
from WiFiWebServer.ino:10:
c:\documents and settings\свиржевский владимир\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\allocator.h:46:75: fatal error: bits/c++allocator.h: No such file or directory
[HASHTAG]#include[/HASHTAG] <bits/c++allocator.h> // Define the base class to std::allocator.
^
compilation terminated.
Ошибка компиляции.
Кто сталкивался может, подскажите как избавиться от этого.
 

Рубен

Member
Пытаюсь скомпилировать базовый скетч WiFiWebServer.
Кажется у меня такое было из-за больших размеров строковых переменных ил из-за большого объема. Если это так, то я разбивал строковые на несколько, чтобы их размер не превышал 1023 байта. Когда общий объем стал слишком большим и html страница загружалась не полностью, мне пришлось использовать PROGMEM, чтобы использовать другую область памяти.
 

Vov@nishe

New member
Кажется у меня такое было из-за больших размеров строковых переменных ил из-за большого объема. Если это так, то я разбивал строковые на несколько, чтобы их размер не превышал 1023 байта. Когда общий объем стал слишком большим и html страница загружалась не полностью, мне пришлось использовать PROGMEM, чтобы использовать другую область памяти.
Но как же так? Скетч не изменялся (взят из примеров), при выборе уно ошибки практически исчезают. А при выборе ESP8266 сразу выдает подобные ошибки.
 

pet

Member
подскажите пожалуйста А как подгружать страницу из памяти? можно ли загружать страницу как на Ардуино с SD библиотекой????
 

tretyakov_sa

Moderator
Команда форума
Всех приветствую!!!
Пытаюсь скомпилировать базовый скетч WiFiWebServer. И сразу же выдает ошибку.
In file included from c:\documents and settings\свиржевский владимир\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:63:0,
from C:\Documents and Settings\Свиржевский Владимир\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/WiFiClient.h:28,
from C:\Documents and Settings\Свиржевский Владимир\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,
from WiFiWebServer.ino:10:
c:\documents and settings\свиржевский владимир\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\allocator.h:46:75: fatal error: bits/c++allocator.h: No such file or directory
[HASHTAG]#include[/HASHTAG] <bits/c++allocator.h> // Define the base class to std::allocator.
^
compilation terminated.
Ошибка компиляции.
Кто сталкивался может, подскажите как избавиться от этого.
Доброго времени суток! Делаю первые шаги , и сразу нарвался на аналогичную ошибку при компиляции примера! Только у меня ардуино иде 1.6.7 . Может надо откатить версию?
 
Предлагаемый пример тоже не компилится
[SPOILstaryjdubER="ошибка компиляции"]
Arduino: 1.6.7 (Windows XP), Плата:"Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 4M (3M SPIFFS), ck, Disabled, None"

In file included from c:\documents and settings\staryjdub\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\memory:62:0,

from C:\Documents and Settings\staryjdub\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/WiFiClient.h:28,

from C:\Documents and Settings\staryjdub\Local Settings\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc1\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,

from C:\WINDOWS\Temp\Rar$DI01.500\R_Server_v2\R_Server_v2.ino:1:

c:\documents and settings\staryjdub\local settings\application data\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\bits\stl_algobase.h:59:28: fatal error: bits/c++config.h: No such file or directory

[HASHTAG]#include[/HASHTAG] <bits/c++config.h>

^

compilation terminated.

exit status 1
Ошибка компиляции.

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки

[/SPOILER]
 
Последнее редактирование:

UriUri

New member
Версия 1.6.7. Сегодня перестало всё компилиться. Даже пустые скетчи.
Хвостик ошибки:
exec: "/bin/xtensa-lx106-elf-g++": file does not exist
Куда пропал файл и где этот каталог bin должен быть не могу определить. Переустановка Aduino IDE, обновление плат и библиотек результата не дали. Помогите, у кого он стоит правильно.
 

Maxim Zhuravlev

New member
Добрый день,
прочитав тему, я уже уяснил, что мои сложности с морганием LED ленты в моменты изменения значения ШИМ на GPIO связаны скорее всего с загруженностью модуля при работе в сети.
Но как с этим бороться я так и не понял. Приложу сразу фрагмент программы, которая плавно меняет яркость ленты по команде из сети.
Эта процедура вызывается из каждого Loop().Помимо этой процедуры ESP слушает сеть.
В итоге, при получение команды по сети LED лента моргает до максимальной яркости на долю секунды.
Тоже самое происходит в момент выключения, то есть кода установленный ШИМ был на уровне допустим analogWrite(13, 5);
а мы выполняем analogWrite(13, 0);
Тоже самое свет моргает до максимума и выключается.
Подскажите, как поправить :-(

void light()
{
unsigned long DelayTime = millis() - motion_time;
unsigned long DelayTime1 = millis() - lastlight;
if (motion_state) {
if ((lightlevel != TargetLevel) && (DelayTime >= ScenaLightDelay) && (DelayTime1 > Light_On_Speed)) {
lastlight = millis();
if (lightlevel < TargetLevel) {
if (lightlevel < 6) {
lightlevel = 6;
Light_On = millis();
ex_i = 1;
}
ex_i = ex_i + 0,35;
lightlevel= lightlevel + int(ex_i);
if (lightlevel > TargetLevel) {
lightlevel = TargetLevel;
}
analogWrite(13, lightlevel);
}
if (lightlevel > TargetLevel) {
ex_i = ex_i - 0,35;
if (ex_i < 1)
{ex_i = 1;}
lightlevel= lightlevel - int(ex_i);
if (lightlevel < (LowLevel + 1)) {
lightlevel = LowLevel;
}
analogWrite(13, lightlevel);

}
}

}
else {
if ((lightlevel != LowLevel) && (DelayTime >= ScenaOffDelay) && (DelayTime1 > Light_Off_Speed)) {
lastlight = millis();
if (lightlevel < LowLevel) {
ex_i = ex_i + 0,35;
lightlevel= lightlevel + int(ex_i);
if (lightlevel > TargetLevel) {
lightlevel = TargetLevel;
}
analogWrite(13, lightlevel);

}
if ( lightlevel > LowLevel) {
ex_i = ex_i - 0,35;
if (ex_i < 1)
{ex_i = 1;}
lightlevel= lightlevel - int(ex_i);
if (lightlevel < (LowLevel + 6)) {
lightlevel = LowLevel;
}
analogWrite(13, lightlevel);

}
}


}
}
 

msg31

New member
Подскажите, как поправить :-(
Скорее всего никак, потому что ШИМ в данном случае программный, согласно описанию. Надо взводить аппаратный, но это в среде Ардуино в данном случае не сделать, потому что на этих таймерах наверняка всего понавешано.
 

Vitaly

Member
Тоже самое происходит в момент выключения, то есть кода установленный ШИМ был на уровне допустим analogWrite(13, 5);
а мы выполняем analogWrite(13, 0);
Тоже самое свет моргает до максимума и выключается.
на гитхабе ардуины в проблемах есть топик об этом, разработчики в курсе и планируют это исправить выносом шима в другую часть обработчика, чтобы он был приоритетнее связи

сроков не названо, требуется много изменений
 

Maxim Zhuravlev

New member
на гитхабе ардуины в проблемах есть топик об этом, разработчики в курсе и планируют это исправить выносом шима в другую часть обработчика, чтобы он был приоритетнее связи

сроков не названо, требуется много изменений
Спасибо, тогда буду ждать реализации. Все таки написать свою прошивку для меня задача нетривиальная. Хотя было бы крайне интересно, но реализовывать udp собственными руками, боюсь такой кривизны мир ещё не видел. Для этого нужно стать программистом :)
 

Рубен

Member
Не знаю где разместить, подправьте если надо.
Я написал маленькую программку для преобразования "чистых" html файлов в формат для строковых переменных в среде Arduino IDE.
Если кому потребно сие, то скачивайте.
 

Вложения

Последнее редактирование:

pet

Member
:)
Не знаю где разместить, подправьте если надо.
Я написал маленькую программку для преобразования "чистых" html файлов в формат для строковых переменных в среде Arduino IDE.
Если кому потребно сие, то скачивайте.
Да, это очень кстати, спасибо!:)

было бы лучше еслиб ещё можно было добавлять s += в начале)))
 
Последнее редактирование:

Рубен

Member
было бы лучше еслиб ещё можно было добавлять s += в начале)))
Добавлять и редактировать можно непосредственно в окне с текстом, а потом записывать файл. Я думал еще сделать разметку по числу байтов, но потом отказался от этой идеи, так как это просто делается в "блокноте". Обратите внимание, что можно не просто загружать файл, но и вставлять текст из Clipboard.
Есть маленький недочет: программа записывает ini файл, чтобы запомнить состояние программы на момент выхода из нее. Так вот, если у вас сама программа на выносном накопителе, то может быть проблема именно с записью ini файла. Располагайте программу на основных накопителях.
 
Сверху Снизу