4 posts tagged

ESP8266

WiFi NAT Router на esp8266

Трансляция сетевых адресов (NAT) является способом переназначения одного адресного пространства в другое путем изменения информации сетевых адресов в IP (Internet Protocol). То есть заголовки пакетов изменяются в то время, когда они находятся в пути через устройство маршрутизации трафика.

Тестировал на ARMBIAN 5.40 user-built Debian GNU/Linux 9 (stretch) 4.14.17-sunxi

Компиляция и прошивка A full functional WiFi Repeater (correctly: a WiFi NAT Router) на OrangePi :

Как собирать компилятор и установить esp-open-sdk в этом посте – Сборка компилятора на основе Crosstool-NG и esp-open-sdk
качаем с гита исходники wifi repeater:

cd /opt/Espressif/esp-open-sdk
git clone https://github.com/martin-ger/esp_wifi_repeater.git
cd esp_wifi_repeater

меняем в файле Makefile окружение в двух строках 15 и 30:

BUILD_AREA = /opt/Espressif
ESPPORT		?= /dev/ttyS3

если надо, копаемся в коде и компилируем:

export PATH=/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin:$PATH
make

Прошивка чипа ESP8266
схема подключения модуля ESP8266 к OrangePi  – пост Прошивка ESP8266 модулей на Orange Pi
перед прошивкой кратковременно нажать кнопку сброс (подключена к RST модуля)
не забывайте включить uart3. В терминале OrangePi:

armbian-config --> System --> Hardware

включаем uart3 — это 8,10 (PA13,PA14) пины на гребёнке OrangePi
команда прошивки:

make flash

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.
Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.
0xfc000 для 1 MB.
0x3fc000 для 4 MB.
0xffc000 для 16 MB.

wget http://demo.homes-smart.ru/foto/esp_init_data_default.bin

esptool.py --port /dev/ttyS3  write_flash -fs 4m -ff 40m \
    0x7c000 esp_init_data_default.bin

Подключаемся к появившейся точке доступа MyAP. Адрес интерфейса настройки сети http://192.168.4.1/
скорость не мерял, “Чудес не бывает”. но вполне достаточно, чтобы смотреть ютюб и прочие видео.

Feb 18   armbian   ESP8266   NAT Router   OrangePI PC

Сборка прошивки DeviceHive для чипа ESP8266 на OrangePi

Платформа DeviceHive содержит множество различных компонентов, включая плагин Grafana. Он может собирать данные с сервера DeviceHive и отображать их с помощью различных информационных панелей, используя популярный инструмент Grafana.

Сборка компилятора на основе Crosstool-NG и esp-open-sdk
Тестировал на ARMBIAN 5.40 user-built Debian GNU/Linux 9 (stretch) 4.14.17-sunxi
Для сборки нужна флешка не менее 8Gb.
Установку кросс-компилятора и сборку производим из под обычного пользователя

sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf \
    flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial \
    sed git unzip bash help2man wget bzip2 libtool-bin
sudo mkdir /opt/Espressif

username меняем на логин текущего пользователя.

sudo chown username:root /opt/Espressif/
cd /opt/Espressif/ 
git clone --recursive https://github.com/pfalcon/esp-open-sdk
cd esp-open-sdk

в файл /opt/Espressif/esp-open-sdk/crosstool-config-overrides добавляем строки:

# CT_GMP_V_6_0_0 is not set
CT_GMP_V_5_1_3=y
CT_GMP_VERSION="5.1.3"

компилируем:

make STANDALONE=y
export PATH=/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Пару часов ожидания...
И можно собрать WiFi NAT Router или продолжим собирать DeviceHive esp8266-firmware :

cd /opt/Espressif/esp-open-sdk
git clone https://github.com/devicehive/esp8266-firmware.git
cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src

Меняем строки в файлах,
в директории /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src
сохраняя табуляцию в начале строк:

6 строка Makefile

CROSS_COMPILE	?= /opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-

54 строка Makefile

@(cd $(dir $(FIRMWARE)) && ./../../esp-utils/build/esp-flasher   /dev/ttyS3 --developer)

62 строка Makefile

@./../esp-utils/build/esp-terminal /dev/ttyS3

25 строка genbin.sh

CROSS_COMPILE="/opt/Espressif/esp-open-sdk/xtensa-lx106-elf/bin/xtensa-lx106-elf-"

Компилируем утилиты:

cd /opt/Espressif/esp-open-sdk/esp8266-firmware/esp-utils
make

Компилируем прошивку DeviceHive для чипа ESP8266:

cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src
make


text data bss dec hex filename
394491 2352 38728 435571 6a573 build/devicehive.elf
Extract sections...
Writing header...
Writing .text section...
Writing .data section...
Writing .rodata section...
Writing checksum...
Writing irom0 section...
Done
Firmware file is firmware/devicehive.bin, size is 413323 bytes

файл прошивки в папке
/opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src/firmware devicehive.bin

Прошивка чипа ESP8266
не забывайте включить uart3. В терминале OrangePi:

armbian-config --> System --> Hardware

включаем uart3 — это 8,10 (PA13,PA14) пины на гребёнке OrangePi

reboot
cd /opt/Espressif/esp-open-sdk/esp8266-firmware/firmware-src

схема подключения модуля ESP8266 к OrangePi – пост Прошивка ESP8266 модулей на Orange Pi
перед прошивкой кратковременно нажать кнопку сброс (подключена к RST модуля)

make flash

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.
Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.
0xfc000 для 1 MB.
0x3fc000 для 4 MB.
0xffc000 для 16 MB.

wget http://demo.homes-smart.ru/foto/esp_init_data_default.bin

/opt/Espressif/esp-open-sdk/esp8266-firmware/esp-utils/build/esp-flasher /dev/ttyS3 0x7c000 esp_init_data_default.bin

Теперь настроить все предельно просто:
• устройство трижды перезагружается (с интервалом не более 3-х секунд), после чего превращается в точку доступа Wi-Fi;
• вы подключаетесь к этой точке и через браузер вводите все необходимые настройки;
• после применения настроек устройство автоматически перезагружается уже с новыми настройками.
запуск терминала:

make terminal

команда help выведет описание команд терминала

После успешного коннекта заходим вручную по адресу http://192.168.2.1 используя веб браузер.

Подробнее про DeviceHive
Feb 14   armbian   DeviceHive   ESP8266   Grafana   OrangePI PC

Прошивка ESP8266 модулей с помощью Platformio на Orange Pi

PlatformIO — это проект, созданный разработчиками из Украины. Он включает в себя утилиту коммандной строки, через которую можно запускать компиляцию и загрузку программ на несколько семейств микроконтроллеров (Atmel AVR, Atmel SAM, ST STM32, TI MSP430 и другие). При этом поддерживаются разные наборы библиотек(на сайте PlatformIO называются фреймворками): Arduino, Energia, mbed, а также нативный код для Atmel AVR, espressif, MSP430.

схема подключения модуля ESP8266 к OrangePi из предыдущего поста Прошивка ESP8266 модулей на Orange Pi
Устанавливаем PlatformIO

apt upgrade && apt install python-pip -y
pip install --upgrade pip
pip install setuptools
pip install -U platformio

Для начала посмотрим, какие платы поддерживаются. Для этого есть команда:

platformio boards

Создадие каталога и шаблона проекта с помощью PlatformIO
у моего модуля esp07 flash всего 512Kbyte, поэтому выбрал модуль esp01:

mkdir esp-simple
cd esp-simple
platformio init -d ./ -b esp01 --ide sublimetext

добавим в файл platformio.ini строки:

upload_port = /dev/ttyS3
upload_speed = 115200

Создадим в каталоге src/ файл Main.cpp со следующим содержимым:

#include <Esp.h>

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, LOW);
    delay(100);
    digitalWrite(LED_BUILTIN, HIGH);
    delay(900);
}

Скомпилируем его:

pio run

Процесс прошивки не сложнее процесса сборки, перед командой кратковременно нажать кнопку сброс (подключена к RST модуля)
uart3 на OrangePi должен быть включен (armbian-config > System > Hardware)

pio run -t upload
Feb 7   armbian   ESP8266   Platformio

Прошивка ESP8266 модулей с помощью esptool на Orange Pi

Wi-Fi модуль ESP8266 на сегодняшний день является, пожалуй, самым популярным устройством среди радиолюбителей и энтузиастов, позволяющим подключать свои проекты к сети Wi-Fi и организовывать “Интернет вещей”.
SoC ESP8266 построен на базе процессора Xtensa LX106 фирмы Tensilica
У меня оказался модуль ESP-07,схема подключения для прошивки :

тестировал на ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.15-sunxi
В терминале OrangePi:

armbian-config --> System --> Hardware

включаем uart3 – это 8,10 (PA13,PA14) пины на гребёнке OrangePi
подключаем к OrangePi данный модуль

Утилита для загрузки прошивки

В данном случае мы используем esptool – это утилита на базе Python, разработанная Фредриком Албергом (Fredrik Ahlberg).

apt upgrade && apt install python-pip -y
pip install --upgrade pip
pip install setuptools
pip install esptool

команда flash_id
перед командой кратковременно нажать кнопку сброс (подключена к RST модуля)

esptool.py --chip esp8266 --port /dev/ttyS3    flash_id

вывод команды:

esptool.py v2.2.1
Connecting...
Chip is ESP8266EX
Uploading stub...
Running stub...
Stub running...
Manufacturer: c8
Device: 4013
Detected flash size: 512KB
Hard resetting...

видим, что модуль содержит 512Kbyte флеш памяти.

Прошьём ESP-link

Возможности проекта ESP-link ESP-LINK: Wifi-Serial Bridge
•Прозрачный шлюз между Wi-Fi и последовательным портом для отладки и обмена данными
•Программирование микроконтроллеров AVR/Arduino модулей ESP8266, LPC800 и других с последовательным интерфейсом по «воздуху» через WiFi.
•Встроенные протокол STK500V1 для загрузки файла с прошивкой AVR через встроенный WEB-сервер.
•Отправка HTTP REST запросов через интернет
•MQTT клиент для связи микроконтроллера с сервисами

Загрузка прошивки для ESP8266:

curl -L http://s3.voneicken.com/esp-link/esp-link-v3.0.14-g963ffbb.tgz | \
    tar xzf -
cd esp-link-v3.0.14-g963ffbb

очистка флеш ESP8266: перед командой кратковременно нажать кнопку сброс (подключена к RST модуля)

esptool.py --chip esp8266 --port /dev/ttyS3   erase_flash

прошивка для модуля 4Mbit / 512Kbyte
перед командой кратковременно нажать кнопку сброс (подключена к RST модуля)

esptool.py --port /dev/ttyS3  write_flash -fs 4m -ff 40m \
    0x00000 boot_v1.6.bin 0x1000 user1.bin \
    0x7C000 esp_init_data_default.bin 0x7E000 blank.bin

отсоединяем GPIO0 модуля от земли, перезагружаем модуль и подсоединяемся к появившейся точке доступа, IP вебинтерфейса http://192.168.4.1/

Feb 5   armbian   ESP8266   OrangePI PC