esp8266 inside

Установка ESP8266 SDK

Всё дело в том, что фирменный компилятор Espressif просто так не раздает. Для начала проведем установку ESP8266 SDK под Linux Fedora.

Установим необходимые пакеты

yum update

yum install autoconf gcc gcc-c++ gperf bison flex texinfo patch libtool ncurses-devel expat-devel pyserial

Большинство разработчиков перешло на esp-open-sdk. Поэтому соберем именно его.

Esp-open-sdk состоит из:

  1. Xtensa lx106 architecture toolchain (100% OpenSource)
  2. ESP8266 IoT SDK от Espressif Systems. Этот компонент частично open source, некоторые библиотеки поставляются в бинарном виде.

Esp-open-sdk имеет собственную документацию, так что просмотрите её прежде чем начать, возможно что-то уже изменилось.

mkdir esp-dev
cd esp-dev

git clone —recursive https://github.com/pfalcon/esp-open-sdk.git

Crosstools-ng и xtensa compilers чувствительны к путям и переменным окружения, поэтому выполним

unset LD_LIBRARY_PATH

Сборка:
$ cd esp-open-sdk/
$ make STANDALONE=y
….
Xtensa toolchain is built, to use it:
export PATH=$HOME/esp-dev/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
Espressif ESP8266 SDK is installed, its libraries and headers are merged with the toolchain

В процессе сборки будут также скачаны недостающие компоненты.

После того как всё закончится мы будем иметь crosstool-ng, xtensa-lx106. toolchain (с Xtensa HAL library) будет доступен в каталоге xtensa-lx106-elf/. В каталоге bin/ находятся xtensa-lx106-elf-gcc и другие инструменты. ESP8266 SDK будет установлен в каталог sdk/.

Обновление ESP8266 SDK

Проект Esp-open-sdk обновляется время от времени. Процесс получения обновлений выглядит так:

  1. получить обновления
  2. скомпилировать SDK.

make clean (обязательно!!!)
git pull
git submodule sync
git submodule update
make STANDALONE=y

Подключение ESP-8266

Все основные способы электрических подключений я уже описывал здесь «Arduino. Не простой старт с ESP8266».

Hello World!

Некоторые примеры программирования ESP можно найти здесь «Непосредственное программирование ESP8266 WiFi».

Читать ещё :   Анонс. Взрывающие телефон

Есть несколько способов использования модуля ESP в режиме модема :

  • с помощью АТ команд,
  • прошивки на основе NodeMCU
  • на основе Arduino
  • и на основе родного SDK кода.

Сейчас будем использовать родной режим на языке С и скомпилируем пример приложения, предоставленный Espressif. Код является частью доступной документации в каталоге documents/sdk/code для использования разработчиками.

Прежде чем начать, убедитесь, что пути установлены как необходимо.

unset LD_LIBRARY_PATH
export PATH=$HOME/esp-dev/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
export ESP=$HOME/esp-dev/

Получаем исходники примеров

cd $ESP
git clone https://github.com/esp8266/source-code-examples.git

cd source-code-examples/blinky/

Изменяем в файле Makefile следующие строки:

XTENSA_TOOLS_ROOT ?= /opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/bin
на
XTENSA_TOOLS_ROOT ?= $(ESP)/esp-open-sdk/xtensa-lx106-elf/bin

SDK_BASE ?= /opt/Espressif/ESP8266_SDK
на
SDK_BASE ?= $(ESP)/esp-open-sdk/sdk

ESPTOOL ?= esptool.py
на
ESPTOOL ?= $(ESP)/esp-open-sdk/esptool/esptool.py

Если нужно, то изменяем TTY порт. Правильное значение можно получить командой lsusb

ESPPORT ?= /dev/ttyUSB0

Далее компиляция:

make

Вывод должен быть таким:

CC user/user_main.c
AR build/app_app.a
LD build/app.out
FW firmware/

Новая прошивка (firmware) только что создана!

Теперь зальем её в ESP модуль.

Организуйте подключение по схеме приведенной в «Непосредственное программирование ESP8266 WiFi»:

  1. Кнопка GPIO0 на землю, и с pull-up резистором к VCC
  2. GPIO2 и CH_PD соединены с VCC
  3. GPIO15 соединен с GND
  4. Преобразователь напряжения 5В USB-TTL UART 3.3В

ESP8266 setup

Не забудьте подключить к выводу GPIO-1 светодиод через резистор 220 Ом.

Запускаем процесс прошивания:

sudo make flash

Примерный вывод на экран

esp-open-sdk/esptool/esptool.py —port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin 0x40000 firmware/0x40000.bin
Connecting…
Erasing flash…
Writing at 0x00006c00… (100 %)
Erasing flash…
Writing at 0x00069400… (100 %)
Leaving…

Выключите и включите питание модуля. Светодиод, подключенный к GPIO-1, начнет моргать.

 

Читать еще

Читать ещё :   Анонс. Взрывающие телефон