ESP-12E (аналог ESP-12) ESP8266: беспроводной модуль Wi-Fi для Arduino

ESP-12E ( заменить ESP-12 ) ESP8266. wi-fi беспроводной модуль для arduino.

ESP-12E ( заменить ESP-12 ) ESP8266. wi-fi беспроводной модуль для arduino.

Безимени-1

Технические характеристики:

 

  • WI-FI: 802.11 b/g/n с WEP, WPA, WPA2.
  • Режимы работы: Клиент (STA), Точка доступа (AP), Клиент+Точка доступа (STA+AP).
  • Напряжение питания 1.7..3.6 В.
  • Потребляемый ток: до 215мА в зависимости от режима работы.
  • Количество GPIO: 16.
  • Flash память размером 512кб.
  • RAM данных 80 кб
  • RAM инструкций — 32 кб.

Оживление модуля заняло довольно много времени
Для этого нужно подать на него 3.3В. Причем стабилизаторы у преобразователей USB/UART не тянут данный модуль по току, поэтому питание нужно внешнее.

Далее нужно посадить GPIO15 на землю, а CH_PD и GPIO0 подтянуть к VCC через резистор. В некоторых источниках еще указывается, что нужно подтянуть к VCC и GPIO2, но у меня все заработало и без этого.

RXD, TXD и GND подсоединяются через переходник USB/UART к компьютеру.

В результате собрал на макетке такую схему

Здесь сразу столкнулся со следующей сложностью — шаг дырочек у ESP07 — 2мм, а не 2.5 как у штырьковых разъемов, применяемых в Ардуино и прочих местах.
Пришлось к макетке паять на проволочках


Сразу вывел кнопку RESET и перемычку GPIO0 на землю, переводящую модуль в режим загрузки прошивки. А питание на модуль завел через линейный стабилизатор LM1117-N-3.3

После этого запустил программу CollTerm и на скорости 9600 получил приглашение модуля.
Команда AT+GMR выдала 0020000904 (Версия SDK — 0020, в версия AT — 0904)

Далее побаловавшись с AT командами запустил модуль как точку доступа и подключился к своей.


Для тех, кому лень, как мне, разбираться с АТ командами, есть программа ESP8266_config, позволяющая все это настроить.

Далее интересно было попробовать модуль в режиме самостоятельного контроля. Для этого решил прошить его NodeMCU со встроенным интерпретатором LUA.
Я загрузил ModeMCU сGITHUB вместе с примерами и модулями на LUA

Прошивку делал утилитой XTCOM_UTIL. Так как данная программа работает только с COM1-COM6, пришлось в диспетчере устройств изменить свой COM33 от USB/UART конвертера на COM6.

Далее прошивка не представляет труда: открываем порт и коннектимся. Скорость выбирается автоматически. Главное, не забыть посадить GPIO0 на землю (у меня для этого есть специальная перемычка). Скорость выбирается автоматически. Иногда коннект не устанавливался. Помогало нажатие кнопки RESET во время коннекта.

Далее выбираем файл с прошивкой
nodemcu-firmware-master\pre_build\latest\nodemcu_latest.bin


Теперь можно подключиться к модулю при помощи ESPlorer
В данной программе можно загружать в ESP файлы для интерпретатора LUA, выполнять как одиночные команды так и скрипты этого интерпретатора.


У меня получилось запустить модуль давления/температуры BMP180, подключенный к GPIO2 и GPIO0

Для этого я загрузил файл bmp180.lua из готовых модулей, идущих вместе с прошивкой с GITHUB
И затем файл init.lau, выполняемый при загрузке ESP8266


tmr.alarm(1, 5000, 1, function()
    print('ip: ',wifi.sta.getip())
    bmp180 = require("bmp180")
    bmp180.init(4, 3)
    tmr.stop(1) -- alarm stop
end)

Запуск программы без задержки таймера приводил к неизменной ошибке.
После рестарата, код


bmp180.read(OSS)
t = bmp180.getTemperature()
p = bmp180.getPressure()

-- temperature in degrees Celsius  and Farenheit
print("Temperature: "..(t/10).."  C")
-- pressure in differents units
print("Pressure: "..(p * 75 / 10000).." mmHg")

Выдавал в консоль текущее давление и температуру.

А вот запустить выдачу данных параметров в режиме веб-сервера мне не удалось. Все дело в нехватки памяти. Отдельно веб сервер и BMP180 работали, а вместе вываливались в


PANIC: unprotected error in call to Lua API (error loading module 'bmp180' from file 'bmp180.lua': not enough memory)

Или просто на консоль валились обрывки кода LUA.

Модернизировать свою домашнюю метеостанцию с ходу не получилось.

Дальнейший мой путь был, собирать свою прошивку на фирменном SDK. Но это уже другая история. Скажу только, что прошивки собираются без проблем, а вот запустить злополучный BMP180 так и не удалось.

Выводы

  • Модули ESP8266 — это очень дешевое решения для построение сети умного дома и прочей домашней автоматизации с использованием WiFi
  • Данные модули вполне годятся для замены NRF24L01+ в связке с Arduino и прочими «народными» контроллерами.
  • Для работы в качестве самостоятельного контроллера ESP8266 имеет маловато ресурсов и довольно сырые прошивки
  • Программирование ESP-модулей довольно трудоемкий процесс, который может отпугнуть новичков
  • В целом ESP8266 имеют большие перспективы. Буду ждать развитие прошивок и средств разработки, а пока, буду применять их в связке с другими контроллерами (кроме проектов с WiFi розетками и выключателями )))

Модули ESP8266

ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10, ESP-11, ESP-12, ESD-12, ESP-13, WROOM, WROOM-02

ФОТО МОДУЛЯ РАСПИНОВКА (PINOUTS) МОДУЛЯ ОПИСАНИЕ МОДУЛЯ

ESP8266 ESP-01

ESP8266 ESP-01

ESP8266 ESP-01 V090 pinouts

ESP8266 ESP-01 V090 pinouts

ESP8266 ESP-01 V080 pinouts

ESP8266 ESP-01 V080 pinouts

ESP8266 ESP-01 V090 (он же Wi07c) самый популярный модуль. PCB антенна обеспечивает дальность — до 400м на открытом пространстве. Следует знать, что существует старая версия V080, в которой разведены только 4 контакта

ESP8266 ESP-02

ESP8266 ESP-02

ESP8266 ESP-02 pinouts

ESP8266 ESP-02 pinouts

ESP8266 ESP-02 SMD, разъем IPX для внешней антенны

ESP8266 ESP-03

ESP8266 ESP-03

ESP8266 ESP-03 pinouts

ESP8266 ESP-03 pinouts

ESP8266 ESP-03 SMD, керамическая антенна, разведены все доступные GPIO

ESP8266 ESP-04

ESP8266 ESP-04

ESP8266 ESP-04 pinouts

ESP8266 ESP-04 pinouts

ESP-04 SMD, без антенны, разведены все доступные GPIO

ESP8266 ESP-05

ESP8266 ESP-05

ESP8266 ESP-05 pinouts

ESP8266 ESP-05 pinouts

ESP-05, разведены только VCC33, GND, TX, RX, RST, миниатюрная антенна

ESP8266 ESP-06

ESP8266 ESP-06

ESP8266 ESP-06 pinouts

ESP8266 ESP-06 pinouts

ESP-06 контактные площадки расположены снизу, сверху металлический экран

ESP8266 ESP-07

ESP8266 ESP-07

ESP8266 ESP-07 pinouts

ESP8266 ESP-07 pinouts

ESP-07 керамическая антенна и разъем для внешней антенны, металлический экран

ESP8266 ESP-08

ESP8266 ESP-08

ESP8266 ESP-08 pinouts

ESP8266 ESP-08 pinouts

ESP-08 как ESP-07, только без антенны

ESP8266 ESP-09

ESP8266 ESP-09

ESP8266 ESP-09 pinouts

ESP8266 ESP-09 pinouts

ESP-09 самый маленький модуль — 10х10мм, контактные площадки расположены снизу

ESP8266 ESP-10

ESP8266 ESP-10

ESP8266 ESP-10 pinouts

ESP8266 ESP-10 pinouts

ESP-10 patch interface, ширина модуля 10мм

ESP8266 ESP-11

ESP8266 ESP-11

ESP8266 ESP-11 pinouts

ESP8266 ESP-11 pinouts

ESP-11 patch interface, керамическая антенна

ESP8266 ESP-12

ESP8266 ESP-12

ESP8266 ESP-12 pinouts

ESP8266 ESP-12 pinouts

ESP-12 PCB антенна, flash память 512 кбайт
ESD-12 (ESPD-12) Внешний вид и распиновка в точности как у ESP-12. Отличается только размером flash памяти — 4Мбайт

esp-12-e

esp-12-e

esp12-e pinouts

esp12-e pinouts

ESP-12-E как ESP-12 только выведено дополнительно с торца 6 пинов.
Существуют еще модификации ESP-12-D и ESP-12-Q отличающиеся размером flash памяти

esp-13

esp-13

esp-13 pinouts

esp-13 pinouts

ESP-13 — аналог WROOM-02 от Espressif, только производства AI-THINKER

wroom

wroom

wroom pinouts

wroom pinouts

WROOM модуль примечателен тем, что выпущен производителем SoC ESP8266EX Espressif

wroom-02

wroom-02

wroom-02 pinouts

wroom-02 pinouts

WROOM-02 модуль примечателен тем, что выпущен производителем SoC ESP8266EX Espressif. Имеет клон — это ESP-13 от AI-THINKER