• Система автоматизации с открытым исходным кодом на базе 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 (точно не помню) что ли выдает компилятор.
 
Сверху Снизу