• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

Stew890

New member
Скорее всего, там подразумевается, что в ESP8266 залита AT-based прошивка. В любом случае, ESP8266 вообще без прошивки (можно залить специальную пустую прошивку) работать точно не будет ни с Arduino ни без.
То есть если залью стандартную at прошивку в esp , заливать скетч не надо будет , и он будет данные получать (от ардуинки) по tx rx ?
 

qwertyhp

New member
Итак, правильно ли я понял:
1. После подключения к Wi-Fi сети, имеющей выход в Интернет, ведущее устройство присваивает WeMos IP, который и отображается в мониторе последовательного порта (если ориентироваться на приведенный мной код)
2. Присвоенный WeMos'у IP имеет смысл только в сети, созданной ведущим устройством; за ее пределами WeMos не отображается и не находится
3. Я не смогу управлять устройствами, подключенными к WeMos и используя его IP, из любой точки Вселенной, где есть Интернет, т.к. я буду вне сети ведущего устройства
4. А КАК управлять устройствами, подключенными к WeMos, из любой точки Вселенной, где есть Интернет?
 

Сергей_Ф

Moderator
Команда форума
@qwertyhp
1. Примерно так, только выход в Интернет в данном случае не при чём.
2. Зависит от сети и присвоевонного ip
3. См. Ответы
4. Подключить esp с "белым" ip, пробросить или открыть порт к esp, общаться через публичный или собственный броккер mqtt. Это несколько вариантов.

Почитайте Яндекс
 

AVL

Member
Всем привет!
Пробую скомпилировать любой, даже пустой скетч и получаю такую ошибку:
Arduino: 1.6.12 (Windows XP), Плата:"Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 4M (1M SPIFFS), ck, Disabled, None"

C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries C:\ARDUINO\libraries -fqbn=esp8266:esp8266:generic:CpuFrequency=80,FlashFreq=40,FlashMode=dio,UploadSpeed=115200,FlashSize=4M1M,ResetMethod=ck,Debug=Disabled,DebugLevel=None____ -ide-version=10612 -build-path C:\DOCUME~1\Admin\LOCALS~1\Temp\arduino_build_747769 -warnings=none -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.esptool.path=C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages\esp8266\tools\esptool\0.4.9 -prefs=runtime.tools.mkspiffs.path=C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages\esp8266\tools\mkspiffs\0.1.2 -prefs=runtime.tools.xtensa-lx106-elf-gcc.path=C:\Documents and Settings\Admin\Local Settings\Application Data\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2 -verbose C:\DOCUME~1\Admin\LOCALS~1\Temp\arduino_modified_sketch_386422\Blink.ino

Плата generic (платформа esp8266, пакет esp8266) неизвестна

Ошибка компиляции для платы Generic ESP8266 Module.

ЕСП подключён через обычный ЮСБ-КОМ Пролифик адаптер, а не через плату Ардуино. Этим Пролификом ЕСП шъётся без проблем внешним флешером.
Может компилятор таки платы Ардуино требует? Или это абсурд. Помогите, пожалуйста.
Спасибо!

http://ipic.su/img/img7/fs/kiss_36kb.1489857410.png
 

Сергей_Ф

Moderator
Команда форума
@AVL компилятору по барабану чем Вы шьете. А Вы точно установили поддержку плат esp8266? Может неудачно встало?
 

Сергей_Ф

Moderator
Команда форума
@AVL я видел, потому и странно. Кроме как глюк во время установки, больше мыслей нет. Попробуйте всё же переустановить.
 

krepton85

Member
@AVL, кстати если вы игрались(меняли их) с версиями пакета для поддержки esp8266, то обязательно нужно сначало удалить текущую версию и только потом ставить новую, поверх текущей нельзя.
 

VicSpectator

New member
Доброго времени суток.
Работаю потихоньку с ESP-07, тестировал TCP-клиента и web-server. Понравилось. Но тестировалось оно отдельно. Решил скрестить в одной прошивке. С ходу не заработало. Вспомнил, что где-то писали про ограничение количества клиентов для ESP. Собственно, вопрос: возможна ли работа одного чипа ESP в режиме TCP-клиента и web-server одновременно?
 

AVL

Member
Удачно запустил компиляцию на самом новом релизе Ардуино 1.8.1.
Танцы с бубном такие:
копировать хедер файлы

**************************************************
FROM
c:\Documents and Settings\Admin\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\xtensa-lx106-elf\bits\

>>>>>>>TO>>>>>>>

c:\Documents and Settings\Admin\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\
**************************************************
 

Slacky

Member
Добрый день.

Пните в нужную сторону.

Есть платка Wemos D1 mini. Скачал пример работы с SD. Все работает. Пытаюсь писать свой скетч. Раскидал по разным файлам, типа
main.ino
setup.ino
sd.ino
и т.д.

Все глобальное объявлено в main.ino. Так вот в другом файле, например sd.ino ругается на отсутствие глобальной переменной и класса SD.что-то.

В чем может быть проблема?

Arduino IDE 1.8.2

Спасибо.
 

Сергей_Ф

Moderator
Команда форума
Все глобальное объявлено в main.ino. Так вот в другом файле, например sd.ino ругается на отсутствие глобальной переменной и класса SD.что-то.
В том, что sd.ino ничего не знает про main.ino и о том, что там объявлено. А мы не знаем кто и на что у вас ругается.
[off]"Доктор у меня что-то болит."
"Сейчас я Вам выпишу какие-то таблетки".[/off]
 

Slacky

Member
В том, что sd.ino ничего не знает про main.ino и о том, что там объявлено.
А как ему об этом сказать? Просто примеры смотрел, нигде ничего не объявлено явно, просто раскидано по разным файлам в одной директории и все. Правда я такие примеры не компилил ...
 

Сергей_Ф

Moderator
Команда форума
@Slacky А Вы мой оффтоп прочитайте еще раз. Может станет понятнее. Мои экстрасенсорные способности на сегодня ушли спать.
 

Slacky

Member
@Сергей_Ф я понимаю о чем Вы, но поверьте, там смотреть не на что. Там кода на 10 строк.

Это типа main.ino

Код:
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <SD.h>

#define DEBUG true

bool SD_OK;

const int chipSelect = D0; // use D0 for Wemos D1 Mini
File root;


void loop () {
  root.println();
}
А это типа setup.ino

Код:
void setup() {

  if (DEBUG) {
    Serial.begin(115200);
    Serial.println("\r\nBegin func 'setup' ...");
  }

  if (!InitSD()) {
    SD_OK = false;
  } else {
    SD_OK = true;
    root = SD.open("/");
    root.rewindDirectory();
  }

  if (DEBUG) {
    if (SD_OK) Serial.println("SD OK.");
    else Serial.println("SD False.");
  }
}
Ну и в логах видим

Код:
C:\Users\Slacky\Google Drive\Arduino\Waterlog\setup.ino: In function 'void setup()':

setup:3: error: 'DEBUG' was not declared in this scope

   if (DEBUG) {

       ^

setup:9: error: 'SD_OK' was not declared in this scope

     SD_OK = false;

     ^

setup:11: error: 'SD_OK' was not declared in this scope

     SD_OK = true;

     ^

setup:12: error: 'root' was not declared in this scope

     root = SD.open("/");

     ^

setup:12: error: 'SD' was not declared in this scope

     root = SD.open("/");

            ^

setup:16: error: 'DEBUG' was not declared in this scope

   if (DEBUG) {

       ^

setup:17: error: 'SD_OK' was not declared in this scope

     if (SD_OK) Serial.println("SD OK.");

         ^
Еще раз хотел отметить - что это я не сам придумал, а просто видел в примерах. ДА и не охота все в один файл пихать ...

Спасибо.
 

VicSpectator

New member
@Slacky, Я сам недавно в среде ардуино при написании кода под один из АВР-микроконтроллеров разбил код на несколько файлов. Только я создавал обычные заголовочные *.h файлы. Потом их включал в основной файл с помощью #include. Если в заголовочных файлах использовались переменные или функции, объявленные в других файлах, делал их объявление во всех файлах (кроме того файла, где я эту переменную/функцию впервые инициализировал) с помощью [inline]extern void func_name(void);[/inline]
Думаю, для esp код будет аналогичным. Правда, у меня среда версии 1.8.1.
 

Slacky

Member
@Сергей_Ф спасибо, ссылка помогла, в общем-то про это и спрашивал. А ошибка крылась в банальном. Я все файлы создал сам в текстовом редакторе, положил в одну директорию. Arduino их видит, даже список всех файлов в шапке присутсвтует. Но не компилит. Создал все файлы с помощью самого Arduino, скопировал содержимое и все пошло.
 

krepton85

Member
Создал все файлы с помощью самого Arduino, скопировал содержимое и все пошло.
Да, такое бывает, это значет кадировка текста не соответствует для ардуино иде. Обычно какую то ошибку 320 (точно не помню) что ли выдает компилятор.
 
Сверху Снизу