esp8266 - Сообщество разработчиков. Драйвер esp8266


ESPlorer – esp8266

ESPlorer-panels

Package Description

The essential multiplatforms tools for any ESP8266 developer from luatool author’s, including a LUA for NodeMCU and MicroPython. Also, AT commands are supported.Required JAVA (SE version 7 and above) installed.

Supported platforms

Windows(x86, x86-64)Linux(x86, x86-64, ARM soft & hard float)Solaris(x86, x86-64)Mac OS X(x86, x86-64, PPC, PPC64)

Detailed features list

  • Syntax highlighting LUA and Python code
  • Code editor color themes: default, dark, Eclipse, IDEA, Visual Studio
  • Undo/Redo editors features
  • Code Autocomplete (Ctrl+Space)
  • Smart send data to ESP8266 (without dumb send with fixed line delay), check correct answer from ESP8266 after every lines.
  • Code snippets
  • Detailed logging
  • and more, more more…

Tutorials for NodeMCU firmware

Tutorials for MicroPython firmware

Recomended hardware for advanced users by ESPlorer developer

Recomended hardware for starting fastest by ESPlorer developer

  • NodeMCU v3 — LoLin brand, MicroPython compatible (Aliexpress, sorted order: by price)
  • NodeMCU shields, MicroPython compatible — LoLin brand (Aliexpress, sorted order: by price)
  • Witty board, MicroPython compatible, RGB LED, Light sensor, 3 buttons (Aliexpress, sorted order: by price)
  • WeMos mini boards and shields, Micropython compatible, (Aliexpress, sorted order: by price)
  • WeMos mini board and shields, MicroPython compatible, from official WeMos Electronic Aliexpress store
  • Most popular DIY parts (Aliexpres, sort by orders)

ESPlorer Downloads

Donation

For donations by credit/debit card, eWallet, or internet banking (selected countries), please click on PayPal Donation Button.

Donate via PayPal

 

Bug reports and discuss

ChangeLog

At now, in progress — MicroPython supporting.

0.2.0-rc5

  • rsyntaxtextarea updated from 2.5.6 to 2.5.8

0.2.0-rc4

  • Microchip RN2483 (low-power long-range LoRa tehnology transceiver module) supporting

0.2.0-rc3

  • MicroPython firmware autodetection
  • MicroPython syntax highlighting
  • MicroPython files extensions *.py and *.pyc added
  • MicroPython SendToESP command (send current file from editor window to ESP8266, ALT+E)
  • MicroPython SendLine command (send one line from editor window to ESP8266, ALT+L)
  • MicroPython SendBlock command (send selected block from editor window to ESP8266, ALT+B)
  • MicroPython Coomands Tab: GPIO reading and writing, WiFi and TCP connetions)
  • MicroPython Snippets (user editable code blocks, buttons for fast executing)
  • MicroPython manual entered commands history
  • MicroPython code autocomplete CTRL+SPACE
  • Show/Hide editor window for using as simple colored terminal
  • Show/Hide terminal window for full-screen code editing
  • Bugs fix

0.2.0-rc2

  • add skin selector (standart java LookAndFeel, platform depended)
  • firmware autodetection can be disabled (new option on «Settings» tab)
  • decreased minimum window size for low-res screens

v0.2.0-rc1

  • add new cool ESP FileManager. Commands in popup menu: Run, Compile(New!), View(old Cat), Edit(New!), Download(New!), Rename(New!), Remove (available commands depended file extension)
  • add «Upload file to ESP from disk» function (include binaries files) in left bottom panel
  • add «Download file from ESP to disk» function (include binaries files) in file manager
  • ESP files list ABC-autosorted
  • add new button FileSystemInfo (new command file.fsinfo() since firmware 20150311 and later)
  • add firmware autodetection after serial port open
  • add check communication with MCU after serial port open or «change speed on the fly»
  • change default window size to 1024×768 and new UI conception
  • change: in all buttons/command «Run» against «Do», «View» against «Cat»
  • expanded field for serial port name
  • add «CustomSerialPort» on «Settings» tab (if enable this, PortScan never execute)
  • add DTR and RTS buttons with LED
  • add CTS LED
  • add new «Links» menu
  • add NodeMCU specific right panel (Heap button, Chip Info button, Chip ID button, Flash ID button)
  • add toolbar Show/Hide command in «View» menu
  • inc size of toolbar buttons
  • add Snippets panel Show/Hide command in «View» menu
  • add FileManager panel Show/Hide command in «View» menu
  • add Right extra buttons panel Show/Hide command in «View» menu
  • add «Use external editor» option on «Settings» tab. All files ReadOnly
  • add «EOL» option — EOL visible in terminal window
  • add new mode for snippets: Condensed executing (please, do not use this mode if you use commands without left operand: «=node.heap()», but «x=node.heap» work ok)
  • fix AutoComplete (Ctrl+Space) bug for commands contains «.»
  • fix «AutoSave/AutoRestore setting enable/disable log window» bug
  • fix bug: exit app without save files
  • disable setting «AutoRun file after Save to ESP» (for do this — you can use new button «Save & Run» in 2.0.0-final version)
  • all settings autosave when changed and autorestored after app launch
  • window size autosave on close and autorestored after app launch
  • editor: tab size changed from 5 to 4
  • library rsyntaxtextarea updated to version 2.5.6
  • some code refactoring
  • improve stability
  • now semver.org versioning conception (MAJOR.MINOR.PATCH)

v0.1 build 206

  • add file.format from NodeMCU 20150107
  • AutoMagic cleaning of CMD-History from Mike (DL2ZAP)
  • add several commands to Command combo-box

v0.1 build 205

  • ESPlorer — open source now!
  • add «TurboMode» feature. My tests: File size: 3300 byte, 100 lines, baud rate: 115200, Download time: 1.8 sec
  • Terminal window have syntaxhilighter too (as editor)
  • Java 7 & 8 compatible now

v0.1 build 204

  • add «AutoReConnect» feature: after port open on 9600, you can easy change port speed to other baud rate without running snippet
  • add new settings: max size for log and max size for terminal history for fixing «everything gets terrible slow» bug
  • rearrange snippets buttons, add «Snippet Cancel Edit» button
  • add snippets hotkey: for snippet0 — Alt+BackQuote, snippet1 — Alt+1, snippet9 — Alt+9, snippet10 — Alt+0, snippet11 — Alt+Minus, snippet12 — Alt+Equals, snippet13 — Alt+BackSlash, snippet14 — Alt+BackSpace, snippet15 — no hotkey.

v0.1 build 203

  • add AutoScroll Enable/Disable
  • add new serial port baud rates: 230400, 460800, 921600

v0.1 build 202

  • add «Inc/Dec font size» commands for editor, terminal and log windows
  • remove all terminal autoclear actions
  • bug fix (save settings)

v0.1 build 201

  • add «Dumb Mode» for old-style sending data with line delay (see Settings tab)
  • add code snippets feature
  • add «Send current Line to ESP» command
  • settings, last used serial port & baud, last script folder autosave/autoload now
  • hotkeys revised

v0.1 build 200

  • bugs fix
  • add commands history

v0.1 initial public version

esp8266.ru

Arduino IDE для ESP8266 – esp8266

Arduino IDE для ESP8266 позволяет писать скетчи и загружать их одним кликом в ESP8266 в знакомой среде (я бы даже сказал «до боли знакомой») Arduino IDE. Для тех кому интерфейс Arduino IDE не очень по душе, есть поддержка плагина для Eclipse. Итак, обо всем по порядку. Самые нетерпеливые могут сразу перейти к Arduino IDE для ESP8266: быстрый старт

Arduino IDE для ESP8266 позволяет создавать прошивки и прошивать их в ESP8266 точно так же, как вы это делаете с Arduino. При этом никаких плат Arduino не требуется, это не тот случай, когда ESP8266 используется в качестве WiFi шилда для Arduino. Кроме того, вы можете использовать практически все Arduino библиотеки с ESP8266 после небольшой доработки. В настоящее время уже достаточно много библиотек адаптировано для использования с ESP8266, но о них чуть ниже.

Arduino IDE для ESP8266 поддерживает все существующие на сегодняшний день модули ESP8266 (потому что они особо и не отличаются), включая модули с флеш бОльшего, чем 512k объема. Поддерживаются модули NodeMCU (всех версий), Olimex-MOD-WiFi-ESP8266.

Поддерживается режим авторестарта и прошивки по RTS+DTR, как у обычной Arduino, для этого потребуется USB-TTL адаптер с разведенными пинами DTR и RTS. Если у вас только RX, TX и GND на USB-TTL, то придется по-старинке вручную притягивать к земле GPIO0 и передергивать питание модуля для прошивки.

Arduino IDE для ESP8266: краткий обзор реализованных в настоящее время функций

Базовые функции языка Wiring

Управление GPIO осуществляется точно также, как и управление pin для arduino: pinMode, digitalRead, digitalWrite,   analogWrite функционируют как обычно. GPIO нумеруются так, как мы уже привыкли: для чтения состояния GPIO2 нужно использовать команду digitalRead(2)

GPIO0-GPIO15 могут быть INPUT, OUTPUT, INPUT_PULLUP, и INPUT_PULLDOWN. GPIO16 может быть только INPUT, OUTPUT или INPUT_PULLDOWN. Команда analogRead(A0) считывает значение ADC (АЦП) с TOUT.

Команда analogWrite(pin, value) включает программный PWM (ШИМ) на указанном GPIO. Команда analogWrite(pin, 0) отключает PWM. value может быть в диапазоне от 0 до PWMRANGE. Константа PWMRANGE в настоящее время равна 1023.

Поддержка прерываний обеспечивается функциями attachInterrupt, detachInterrupt. Прерывания могут быть назначены на любой GPIO, кроме GPIO16. Стандартные прерывания Arduino CHANGE, RISING, FALLING тоже поддерживаются.

ESP8266 - функции пинов

ESP8266 — функции пинов

Тайминг и delay

Функции millis и micros возвращают миллисекунды и микросекунды соответственно, прошедшие с момента старта модуля. Любимая многими функция delay также присутствует и приостанавливает выполнение скетча на указанное время в миллисекундах и позволяет отработать операциям WiFi и TCP/IP. Функция delayMicroseconds используется аналогично, только время задается в микросекундах.

Помните о том, что когда модуль поддерживает WiFi соединение, ему приходится выполнять множество фоновых задач, кроме вашего скетча. WiFi и TCP/IP функции библиотек SDK имеют возможность обработать все события в очереди после завершения каждого цикла вашей функции loop() или во время выполнения delay(...). Если в вашем коде есть фрагменты, которые выполняются более 50 миллисекунд, то необходимо использовать  delay(...) для сохранения нормальной работоспособности стека WiFi.

Также вы можете использовать функцию yield(), которая эквивалентна delay(0). С другой стороны, функция delayMicroseconds блокирует выполнение других задач, поэтому ее использование для временных задержек свыше 20 миллисекунд не рекомендуется.

Последовательные порты Serial и Serial1 (UART0 и UART1)

Объект Serial работает точно также, как и с Arduino. Помимо аппаратного FIFO (по 128 байт для приема и передачи) определен и программный буфер размером по 256 байт для приема и передачи данных. Прием и передача данных происходит по прерываниям, прозрачно для вашего скетча. Функции записи и чтения блокируют выполнение скетча только когда аппаратный FIFO и программный буфер переполняются.

Serial использует аппаратный UART0, работающий на GPIO1(TX) и GPIO3(RX). Эти пины могут быть переназначены на GPIO15 (TX) и GPIO13 (RX) вызовом функции Serial.swap(); после Serial.begin();. Повторный вызов Serial.swap(); вернет все на свои места.

Serial1 использует аппаратный UART1, работающий только на передачу. UART1 TX это GPIO2. Для включения Serial1 используйте Serial1.begin();

По умолчанию, отладочная информация библиотек WiFi выключается, когда вы вызываете функцию Serial.begin();. Для включения отладочной информации на UART0 используйте Serial.setDebugOutput(true); Для перенаправления вывода отладочной информации на UART1 используйте команду Serial1.setDebugOutput(true);

И Serial и Serial1 поддерживают 5, 6, 7, 8 бит данных, odd (O), even (E), и no (N) режимы четности, и 1 или 2 стоп бита. Для выбора нужного режима вызывайте Serial.begin(baudrate, SERIAL_8N1); или Serial.begin(baudrate, SERIAL_6E2); и т.д.

PROGMEM

Макрос PROGMEM работает точно также, как в Arduino, помещая read only данные и строковые константы (литералы) во флеш память, высвобождая HEAP. Важное отличие состоит в том, что в ESP8266 одинаковые литералы не хранятся в одном месте, поэтому использование строковых констант внутри конструкций F("") и/или PSTR("") приводит к расходованию флеш памяти при каждом вызове этих функций. Вы должны самостоятельно управлять одинаковыми строками для экономичного расходования места во флеш памяти.

Библиотека WiFi ESP8266 (ESP8266WiFi)

Функции библиотеки WiFi ESP8266 очень схожи с функциями библиотеки для обычного WiFi шилда.

Список отличий:

  • WiFi.mode(m): выбрать режим WIFI_AP (точка доступа), WIFI_STA (клиент), или WIFI_AP_STA (оба режима одновременно).
  • WiFi.softAP(ssid) создает открытую точку доступа
  • WiFi.softAP(ssid, password) создает точку доступа с WPA2-PSK шифрованием, пароль должен быть не менее 8 символов
  • WiFi.macAddress(mac) позволяет получить MAC адрес в режиме клиента
  • WiFi.softAPmacAddress(mac) позволяет получить MAC адрес в режиме точки доступа
  • WiFi.localIP() позволяет получить IP адрес в режиме клиента
  • WiFi.softAPIP() позволяет получить IP адрес в режиме точки доступа
  • WiFi.RSSI() пока не реализована
  • WiFi.printDiag(Serial); выводит диагностическую информацию
  • Класс WiFiUDP поддерживает прием и передачу multicast пакетов в режиме клиента. Для передачи multicast пакета используйте вместо udp.beginPacket(addr, port) функцию udp.beginPacketMulticast(addr, port, WiFi.localIP()). Когда вы ожидаете multicast пакеты, используйте вместо udp.begin(port) функцию udp.beginMulticast(WiFi.localIP(), multicast_ip_addr, port). Вы можете использовать udp.destinationIP() для определения того, был ли пакет отправлен на multicast адрес или предназначался именно вам. Multicast функции не поддерживаются в режиме точки доступа.

WiFiServer, WiFiClient, и WiFiUDP работаю точно так же, как и с библиотекой обычного WiFi шилда. Четыре примера идет в комплекте с этой библиотекой.

Тикер

Библиотека Ticker может быть использована для выполнения периодически повторяющихся событий через определенное время. Два примера включено в поставку.

В настоящее время не рекомендуется блокировать операции ввода-вывода (сеть, последовательный порт, файловые операции) в callback функциях тикера. Вместо блокирования устанавливайте флаг в callback функциях и проверяйте этот флаг в основном цикле.

EEPROM

Эта библиотека немного отличается от стандартной Arduino EEPROM. Необходимо вызвать функцию EEPROM.begin(size) каждый раз перед началом чтения или записи, размер (указывается в байтах) соответствует размеру данных, которые вы намереваетесь использовать в EEPROM. Размер данных должен быть в диапазоне от 4 до 4096 байт.

Функция EEPROM.write не производит запись данных во флеш память немедленно, вы должны использовать функцию EEPROM.commit() каждый раз, когда вы хотите сохранить данные в память. Функция EEPROM.end() тоже производит запись данных, а также освобождает оперативную память от данных, запись которых произведена. Библиотека EEPROM использует один сектор во флеш памяти, начиная с адреса 0x7b000 для хранения данных. В поставку включено три примера работы с EEPROM.

I2C (Библиотека Wire)

Реализован только режим ведущего, частота ориентировочно до 450 кГц. Перед использованием шины I2C, нужно выбрать пины SDA и SCL путем вызова функции Wire.pins(int sda, int scl), например Wire.pins(0, 2) для модуля ESP-01. Для других модулей пины по умолчанию 4(SDA) и 5(SCL).

SPI

Библиотека SPI поддерживает весь Arduino SPI API, включая транзакции, в том числе фазу синхронизации (CPHA). Clock polarity (CPOL) пока не поддерживается (SPI_MODE2 и SPI_MODE3 не работают).

ESP8266 API

Поддержка функций, специфичных для ESP8266 (режим глубокого сна и сторожевой таймер), реализована в объекте ESP. Функция ESP.deepSleep(microseconds, mode) переводит модуль в режим глубокого сна. Параметр mode может принимать значения: WAKE_DEFAULT, WAKE_RFCAL, WAKE_NO_RFCAL, WAKE_RF_DISABLED. GPIO16 должен быть соединен с RESET для выхода из режима глубокого сна.

Функции ESP.wdtEnable(), ESP.wdtDisable(), и ESP.wdtFeed() управляют сторожевым таймером.

ESP.reset() перезагружает модульESP.getFreeHeap() возвращает размер свободной памятиESP.getFreeHeap() возвращает размер свободной памятиESP.getChipId() возвращает ESP8266 chip IDE, int 32bitESP.getFlashChipId() возвращает flash chip ID, int 32bitESP.getFlashChipSize() возвращает размер флеш памяти в байтах, так, как его определяет SDK (может быть меньше реального размера).ESP.getFlashChipSpeed(void) возвращает частоту флеш памяти, в Гц.ESP.getCycleCount() возвращает количество циклов CPU с момента старта, unsigned 32-bit. Может быть полезна для точного тайминга очень коротких операций

Библиотека OneWire

Библиотека OneWire была адаптирована для ESP8266 (внесены изменения в OneWire.h) Если у вас установлена библиотека OneWire в папку Arduino/libraries, то будет использоваться именно она, а не из комплекта поставки.

mDNS библиотека ESP8266mDNS

Библиотека позволяет реализовать в вашей программе ответ на мультикастовые DNS запросы для локальной зоны, например «esp8266.local». В настоящее время поддерживается только одна зона. Позволяет обращаться к WEB серверу ESP8266 по имени, а не только по IP адресу. Дополнительную информацию вы можете найти в прилагаемом примере и в файле readme данной библиотеки.

Библиотека Servo

Библиотека позволяет управлять сервомоторами. Поддерживает до 24 сервоприводов на любых доступных GPIO. По умолчанию первые 12 сервоприводов будут использовать Timer0 и будут независимы от любых других процессов. Следующие 12 сервоприводов будут использовать Timer1 и будут разделять ресурсы с другими функциями, использующими Timer1. Большинство сервоприводов будут работать с управляющим сигналом ESP8266 3,3в, но не смогут работать на напряжении 3,3в и потребуют отдельный источник питания. Не забудьте соединить общий провод GND этого источника с GND ESP8266

Другие библиотеки, не включенные в поставку Arduino IDE

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

  • arduinoWebSockets — WebSocket сервер и клиент для esp8266 (RFC6455)
  • aREST REST API handler библиотека, позволяет управлять GPIO через http запросы вида http://192.168.1.101/digital/6/1
  • Blynk — легкий в освоении IoT фреймворк (страница на Kickstarter). Статья на нашем сайте об этой библиотеке и мобильном приложении ESP8266 – Управляем со смартфона через Blynk
  • DallasTemperature DS18B20, DS1820, DS18S20, DS1822
  • DHT11 — используйте для инициализации следующие параметры DHT dht(DHTPIN, DHTTYPE, 15)
  • NeoPixelBus — Arduino NeoPixel библиотека для esp8266
  • PubSubClient Библиотека MQTT by @Imroy. Статья на нашем сайте об этой библиотеке ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn и передаем данные на ThingSpeak, EMAIL, Android, iOS, Twitter, CloudMQTT в 100 строчек кода в Arduino IDE
  • RTC — библиотека for Ds1307 & Ds3231 для esp8266
  • Souliss, Smart Home — фреймворк для Умного Дома, построенный на Arduino, Android и OpenHAB

Установка Arduino IDE через Boards Manager

  1. Установите Arduino IDE с официального сайта Arduino.cc
  2. Запустить Arduino IDE, далее Файл — Настройки — в поле Additional Boards Manager URLs вставить ссылку на стабильную версию http://arduino.esp8266.com/package_esp8266com_index.jsonили для nightly build http://arduino.esp8266.com/staging/package_esp8266com_index.json, нажать OK (В это поле вы можете вводить несколько ссылок, разделенных запятой)
  3. Инструменты — Плата — Boards Manager
  4. В Boards Manager в поле фильтра введите esp8266 или вручную пролистайте список и кликните на ESP8266 by ESP8266 Community Forum
  5. Кликните Install и дождитесь окончания загрузки (около 130 Мегабайт). Если загрузка произошла слишком быстро, возможно, что вы уже устанавливали Arduino IDE для ESP8266 и потребуется почистить кэш Boards Manager, иначе у вас останется установленной старая версия. Нужно сначала деинсталлировать старую версию, а потом необходимо удалить файлы кэша. Для Win7 x64 удалите файлы из папки C:\Users\Пользователь\AppData\Roaming\Arduino15 и повторите все, начиная с п.2
  6. Закройте Boards Manager и в меню Инструменты выберите Плата — Generic ESP8266
  7. Установите частоту вашего модуля 80 или 160Mhz, размер флеш памяти и выберите последовательный порт, к которому подключен ваш USB-TTL адаптер

Схема подключения ESP8266

Оптимальное подключение ESP8266 для Arduino IDE

Оптимальное подключение ESP8266 для Arduino IDE

Оптимальное подключение ESP8266

Подключение ESP8266ПримечаниеUSB-TTL
VCCESP8266 подключайте к внешнему источнику питания >300мА, 3,3V
GNDвсе контакты GND должны быть соединены вместе: ESP8266, USB-TTL и источника питанияGND
TX (UTXD)RX
RX (URXD)TX
GPIO0подтягивающий к питанию резистор 10kDTR (если на вашем USB-TTL не разведен пин DTR, то вам придется вручную переключать GPIO0 на землю для перевода ESP8266 в режим прошивки)
RESET (RSBT, REST)подтягивающий к питанию резистор 10k, также можете добавить кнопку, соединяющую RESET и GND для ручного сброса модуляRTS (если на вашем USB-TTL не разведен пин RTS, то вам придется вручную перезагружать модуль )
CH_PD (CH_EN)подтягивающий к питанию резистор 10k
GPIO15 (MTDO)подтягивающий к земле резистор 10k(для тех модулей, где выведен пин GPIO15)
GPIO2подтягивающий к питанию резистор 10k(на схеме не показан, но рекомендуется для увеличения стабильности)
GPIO16для успешного выхода из режима Deep Sleep необходимо соединить пины ESP8266 GPIO16 и RESET через резистор 470 Ом (на схеме не показан)

Примечания.

1. Не на всех модулях выведены все пины. Перед приобретением модуля ознакомьтесь с видами модулей и их распиновкой.

2. Если на вашем USB-TTL конвертере выведены пины CTS и DSR — для автозагрузки прошивки они вам не помогут, т.к. работают только на вход.

3. Для стабильной работы ESP8266 требуется источник стабилизированного питания 3,3 вольт, ток более 250 миллиампер. Использование питания от USB-TTL конвертера может привести к нестабильности в работе.

Минимальное подключение ESP8266

Минимальное подключение ESP8266

Минимальное подключение ESP8266 (повышенная стабильность)

Минимальное подключение ESP8266 (повышенная стабильность)

Более подробно, со всеми деталями, о подключении ESP8266 вы можете прочитать в нашей статье ESP8266 – подключение и обновление прошивки

Arduino IDE для ESP8266: быстрый старт

1. Подключить USB-TTL к USB

2. Подключить ESP8266 к USB-TTL как обычно. Если вы подключили ESP8266 по схеме без поддержки автозагрузки прошивки (не подключены DTR и RTS), то вручную соедините GPIO0 с землей, передерните питание модуля — все готово для  прошивки

3. Запускаем Arduino IDE

4. В меню Инструменты — Плата — Generic ESP8266 board (в самом низу)

5. В меню Инструменты выбираем порт, к которому подключен наш USB-TTL

6. В меню Инструменты — выбираете частоту, размер флеш памяти вашего модуля

7. В меню Файл — Примеры (Образцы) — ESP8266WiFi — WiFiWebServer

8. В скетче заполняете SSID и пароль вашей WiFi сети

9. Жмем кнопку компиляции и загрузки скетча

10. Ждем окончании процесса прошивки. После прошивки, если модуль подключен по схеме без поддержки автопрошивки, отсоедините GPIO0 от земли и передерните питание модуля без отключения USB-TTL от питания

11. В меню Инструменты — Монитор последовательного порта

12. Выбираем скорость 115200

13. Смотрим что происходит в терминале

14. Когда модуль подключится к сети, то появятся надписи в мониторе «WiFi connected» и «Server started»

15. Ниже будет IP адрес вашего модуля ESP8266, например 192.168.1.248

16. Открываете любой браузер, в строке адреса вбиваете «http://192.168.1.248/gpio/1»

17. Смотрите монитор последовательно порта и если к ESP8266 к GPIO2 у вас подключен светодиод (через резистор, разумеется), то он включится.

18. Profit!

Автором этого проекта адаптации Arduino IDE для ESP8266 является наш соотечественник из Санкт-Петербурга Иван Грохотков.

Скачать Arduino IDE для ESP8266 с github

Скачать Arduino IDE для ESP8266 с build сервера

Скачать исходный код Arduino IDE для ESP8266

Задать вопросы автору проекта Ивану Грохоткову aka igrr или сообщить об ошибке в Arduino IDE для ESP8266 можно в специальном разделе на нашем форуме.

esp8266.ru

ARDUINO

Arduino - освоение WiFi модуля.

Снова удивление

Совсем немного времени прошло с освоения новых микроконтроллеров Ардуино, как мне на глаза попадется информация о модуле ESP8266, и я решаюсь окунуться в новый для себя мир: новый микроконтроллер и беспроводная сеть Wifi. Радовало то, что программировать такие модули можно через уже освоенную программу Arduino IDE. Но каждый шаг надо проверять.

С сайта https://www.arduino.cc/en/Main/Software я загрузил Aduino IDE последнюю версию/

Подготовка

ESP8266 EX-12E:

esp12e_pin

 имеет 11 входов ввода-вывода (GPIO), что расширяет его возможности  только в этой версии есть вход АЦП  возможность SMD монтажа Подготовка к эксплуатации

Для работы модуля требуется:

 подать логическую единицу на вход EN (CH_PD)  для входа в режим прошивки перед включением модуля надо замкнуть на землю GPIO0  подать 3,3 v на VCCdevkit8266

Для первых шагов мне показалось несколько рискованным начинать работу с этим модулем, и я заказал комплект NodeMCU DevKit ESP8266 E-12 и макетную плату Motor shield ESP 8266 E-12 Я не собирался управлять двигателями, но меня привлекла возможность непосредственного подключения модуля к USB и согласование по питанию всех цепей.

Установил ARDUINO 1,6,6. Затем вписал в настройках программы http://arduino.esp8266.com/stable/package_esp8266com_index.json и в Инструментах отобразились платы, в том числе NodeMCU 1.0(ESP-12E Module) Загрузил пример WiFiClient и при компиляции получаю кучу сообщениий об ошибках. Обратился на форум ESP8266.ru, где мне посоветовали пользоваться предыдущей версией программы Arduino - 1.6.5. Для надежности я переустановил систему (восстановил с бэкапа) и установил Arduino 1.6.5. Проделал те же процедуры, чтобы подключить необходимые библиотеки. Делаю проверку, все отлично - ошибок нет!

Хватит лирики, теперь конкретно и с картинками, что я сделал.

Подключение библиотек ESP8266

1. Вписать путь к библиотекам (можно через запятую. На картинке один путь)

2. Выбрать в меню Boards Manadger

3. В самом низу открывшегося списка появится поле с новой библиотекой ESP8266. (Открыть пришлось два раза, так как менеджер еще не подхватил библиотеки). Необходимо выбрать мышкой это поле, чтобы появилась кнопка Install

4. Снова заходим в меню Интсрументы и выбираем плату NodeMCU 1.0(ESP-12E module)

Как правило, лучше программу перезапускать после нововведений.

Подключение модуля

Если плата подключена к компьютеру, то сразу стоит установить порт. Если компьютер не распознает новое устройсто, что можно увидеть в диспетчере устройств компьютера, то следует установить необходимый драйвер. Для моего модуля потребовался драйвер CP2102 USB.

Выводы ESP-12E

Пришло время сообщить, что я задумал сделать. Дома на стене висит большая карта мира, на которой подсвечены светодиодами разных цветов места, где я побывал. Так, синие светодиоды подсвечивают порты и точки в океане - работа в институте Океанологии; желтые - армия, и так далее. Светодиоды меняют свою яркость и иногда перемигиваются. Всем этим управляет Arduino Nano. Теперь же я хочу, чтобы всем управлял модуль ESP8266 и можно было менять режимы со смартфона через wifi. Задача не сложная, когда знаешь, как делать, а когда в первый раз?!

Первое, что потребовалось проверить - какие выводы у ESP8266 я смогу использовать для вывода ШИМ сигналов, чтобы управлять яркостью цветных светодиодных каналов. Всего на карте мира четыре цветовых канала. В каждом канале около 20 светодиодов. Тщетно проведя поиски в Интернете, я стал методом перебора, изменяя в программе активность выводов GPIO, определил 4 вывода. Позже я нашел таблицу, карту ножек, модуля ESP8266, которая подходила под мой вариант.

IO index ESP8266 pin IO index ESP8266 pin
0 GPIO16 7 GPIO13
1 GPIO5 8 GPIO15
2 GPIO4 9 GPIO3
3 GPIO0 10 GPIO1
4 GPIO2 11 GPIO9
5 GPIO14 12 GPIO10
6 GPIO12    

Итак, первая часть программы работает. Я выбрал первые четыре вывода 0-3, то есть в программе это соответственно GPIO16, GPIO5, GPIO4, GPIO0, а на модуле DevKit ESP8266 E-12, это выводы D0-D3 соответсвенно.

BLYNK - облачный сервис

Как задействовать wifi?

В поисках решения я вышел на сайт blynk.cc, с которого скачал и установил программу для смартфона (BLYNK FOR ANDROID) и библиотеку для Android IDE. Программа для смартфона устанавливается автоматом непосредственно с сайта blynk.cc без проблем. Также без проблем я скачал библиотеку Blynk_v0.3.1.zip (275 Кб) и установил. Для этого следует запустить программу Arduino, выбрать в меню ADD .ZIP Library...

add library

Библиотеки установились прямо из архива, это удобно.

Как правило, лучше программу перезапускать после нововведений.

Выбрал образец Blynk>BoardsAndShields>ESP8266_Standalone и на его базе написал свой скетч: скачать

Загрузка программы прошла успешно и подключенные светодиоды заморгали.

В смартфоне я подключил 4 больших слайдера, установив диапазон 0-1023 и одну кнопку переключающий режимы подсветки карты мира.

В правом нижнем углу карты размещен модуль DevKit ESP8266.

 

Общая схема

Схема достаточно простая. Единственно, что мне необходимо было сделать, это организовать питание и уровни управляющих сигналов. Основной блок питания на 12 вольт запитывает свтодиоды. На DevKit я подал 5 вольт через преобразователь

map

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

 

ruben1.narod.ru


Смотрите также