Wi-Fi модуль на базе ESP8266

Заказал 2 немного отличающихся модуля для общения ардуинки через wi-fi: ESP-01 и ESP-12E. Пока ждал посылку выяснил, что есть библиотеки для того, чтобы при помощи ArduinoIDE работать непосредственно с ESP8266. То есть эту схему можно использовать как контроллер, считывая входы и управляя выходами на этой плате.

Благодаря значительно большей частоте чипа ESP8266 скорость работы скетчей на этой плате значительно больше. Пока эту возможность я не опробовал, так как все же цель — это научить ардуинку общаться через wi-fi.

Основной проблемой стала первоначальная настройка модуля. Он управляется посредством TTL интерфейса. Использование ардуинки как USB — TTL переходник у меня не увенчалось успехом. Думаю это из-за того, что модуль по умолчанию работает на скорости 115200, чего не может позволить ардуинка. Пришлось заказывать переходник YP-02 из Китая на базе CH340G. С его помощью получилось установить связь с модулем и подключить его к моей wi-fi сети. Хотя позже прочитал, что можно в скетче поставить скорость esp как 115200, а обычного сериала 9600 и вроде как заработает. Этот вариант я не проверял. Так же можно попробовать напрямую соединить с TX и RX пинами на ардуинки и использовать USB to TTL конвертер самой ардуинки. Для этого нужно выключить схему, замкнув RESET ардуинки на GND и залив на всякий случай скетч, который позволяет игнорить сигналы на первых двух пинах. Этот вариант я пробовал, но что-то пошло не так и у меня сломался бутлодер ардуинки, при этом связь с ESP8266 так и не была установлена. Пришлось перезаливать бутлодер. Кстати тут я описал, как перезаливаю бутлодер при помощи другой ардуинки. Хотя все это можно без труда нагуглить.

Схему и описание подключения ESP-12E к YP-02 USB to TTL конвертеру можно найти в схемах или перейти по ссылке.

Настройка ESP8266 через USB-TTL

Подключитесь с помощью Serial Monitor или screen. Со скоростью придется поэкспериментировать. У меня заработало на 115200. Символы окончания строки:«Both NL and CR».

Ссылка на полный список AT команд ниже. Но для быстрого старта можно попробовать самую простую:

AT

ответ должен быть

OK

Далее можно перезагрузить модуль:

AT+RST

ответ что-то типа:

OK

и много служебной информации. По идее она должна заканчиваться словом ready, но у меня в конце было написано invalid.

Посмотреть версию прошивки можно командой:

AT+GMR

ответ типа:

AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK

Так же есть возможность сменить скорость UART для текущего сеанса:

AT+UART_CUR=9600,8,1,0,0

или с сохранением во flash:

AT+UART_DEF=9600,8,1,0,0

ответ:

OK

После чего нужно переподключить терминал на новой скорости.

Переключаем на работу в режимах Soft AP Mode (точка доступа) и Station Mode (клиент):

AT+CWMODE=3

ответ:

OK

Чтобы увидеть список доступных точек доступа:

AT+CWLAP

ответ будет типа

+CWLAP:(3,"DIRECT-AP[TV][LG]47LA790V-ZA",-94,"12:08:c1:0d:af:09",1,11)
+CWLAP:(3,"margo1",-92,"10:fe:ed:e8:67:2e",5,30)
+CWLAP:(3,"dmd-rab12",-83,"68:72:51:34:18:d6",9,21)
+CWLAP:(3,"ASUS",-79,"74:d0:2b:69:1a:74",11,0)
+CWLAP:(3,"ASUS_Wiad",-62,"74:d0:2b:2d:59:54",12,-22)
+CWLAP:(0,"DIR-300NRU",-66,"1c:7e:e5:d0:ee:d0",13,1)

OK

где в скобках указывается: <ecn>, <ssid>, <rssi — сила сигнала>, <mac>, <mode>.

<ecn> может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA_PSK, 3 — WPA2_PSK, 4 —WPA_WPA2_PSK

<mode> может принимать значения: 0, 1

Пример команды для подключения к точке доступа (имя сети и пароль обязательно в двойных кавычках):

AT+CWJAP="SSID","password"

ответ

WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP

OK

Посмотреть статус подключения можно командой:

AT+CIPSTATUS

ответ

STATUS:2

OK

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

ESP8266 и Arduino

Попытался подключить к ардуинке как Wi-Fi модуль. Получилось, но работает на софтверном Serial как-то нестабильно. Далее напишу отчет.

Что делать не надо

Экспериментально попытался поиграться с настройками Serial. Она сказала «Ой, все!». Теперь вообще к ней не могу подключиться.

Ссылки

Статьи по работе с ESP8266 (целое сообщество).

Описание подключения ардуинки как USB — TTL (у меня не заработало).

AT команды модуля.