ESP8266 Урок 2. AT команды

 

 

 

Продолжаем знакомство с микроконтроллером ESP8266.

На данном занятии мы попробуем посредством AT-команд управлять данной микросхемой, а вернее модулем ESP-01, на которой она установлена.

Вот так вот выглядит модуль ESP-01

 

 

А это его вид снизу (со стороны контактов)

 

 

Управлять нашим модулем мы будем посредством интерфейса UART.

Прежде чем управлять данным модулем, или его прошивать, мы должны знать назначение его 8 контактов, или, другими словами, знать его распиновку.

Не смотря на то, что у микроконтроллера ESP8266 контактов очень много, наружу в модуле ESP-01 выведены только самые необходимые.

Вот их назначение

 

 

Соответсвенно, чтобы управлять модулем по UART, мы наш переходник USB-TTL должны подключить к модулю Rx к Tx и, наоборот, Tx к Rx. Также мы соединяем с общим проводом переходника общий провод модуля. Питать мы наш модуль будем от отдельного источника.

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

Вот такая вот получится нехитрая схема

 

 

Резисторы в разрыве передачи данных по UART служат для ограничения тока, чтобы немного скомпенсировать разницу напряжений на модуле и на переходнике. Пробовал и без них, также всё работает, но глюков при прошивке с ними стало гораздо меньше.

Кроме всего присутствующего в схеме советуют поставить между питанием модуля и общим проводом сглаживающий электролитический конденсатор где-то на 220 микрофарад, а также обычный биполярный конденсатор на 1 мкФ для сглаживания помех высокой частоты. Так как у меня неплохой регулируемый DC-DC преобразователь, которым я буду питать схему, в котором всё это уже есть, то данные конденсаторы я исключил.

Подключим нашу схему, подключим источник питания, а также подключим переходник USB-TTL к PC

 

 

Теперь запустим терминальную программу (сегодня воспользуемся CoolTerm), настроим параметры порта

 

 

В моём случае скорость 115200 kbps, в каждом конкретном случае может быть и другая в зависимости от версии прошитого ПО, так что скорость, возможно придётся подобрать. Раньше была меньше в более ранних версиях прошивок. Какая прошивка у меня, мы ещё увидим.

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

 

 

Соединимся с модулем по UART с помощью кнопки Connect в терминальной программе и попробуем ввести самую первую (проверочную) AT-команду

 

 

Нажмем кнопку Enter на клавиатуре и, если всё правильно, то модуль откликнется вот таким образом

 

 

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

Команд AT, поддерживаемых встроенным программным обеспечением контроллера ESP8266, огромное количество, все мы их не будем использовать, но с некоторыми познакомимся. Если есть желание познакомиться с другими командами, то на официальном сайте копмании Espressif есть соответствующая документация.

Отправим в модуль следующую команду AT+GMR , с помощью которой мы и узнаем версию встроенного программного обеспечения контроллера

 

 

Также испытаем команду для перезагрузки модуля

 

 

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

Также, если вдруг мы хотим, чтобы наш модуль забыл все настройки и вернулся в первоначальное состояние, существует команда возврата к заводским настройкам

 

 

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

С помощью следующей программы мы узнаем текущий режим работы контроллера в плане электропитания и пониженного энергопотребления

 

 

Посмотрим в документации по AT-командам, что это за режим

 

 

Получается, что модуль по умолчанию находится в одном из спящих режимов.

 

 

Для работы модуля в режиме передачи данных на максимальной скорости нам такой режим не подойдёт, нужно включить активный режим. Пошлём соответствующую команду модулю

 

 

Теперь модуль находится в активном режиме.

На всякий случай мы можем это проверить

 

 

Теперь проверим состояние устройства в плане типа, то есть, станция у нас или точка доступа

 

 

Посмотрим в документации, что это за режим

 

 

Получается, что у нас модуль работает в режиме точки доступа. Сегодня мы попробуем другой, более простой режим — в режиме станции, то есть использовать мы будем другую точку доступа. Я буду использовать свой домашний роутер, который управляет домашней сетью.

Поэтому пошлём команду на переключение модуля в другой режим передачи данных, а затем проверим переключение

 

 

Теперь попробуем подключиться к роутеру с помощью команды AT+CWJAP=»SSID»,»password». Соотвественно, имя точки доступа и пароль у всех будут разные

 

 

Если имя и пароль правильные, то через некоторое время модуль соединится с точкой доступа и получит адрес IP.

Посмотрим данный адрес, а также MAC-адрес нашего устройство с помощью следующей команды

 

 

Далее включим поддержку нескольких соединений

 

 

Попробуем сначала проверить доступность в сети нашего модуля с помощью посылки на него пингов

 

 

Модуль прекрасно откликается.

Сегодня мы попробуем передать данные с PC на модуль и обратно по протоколу UDP, для этого пошлём соответствующую команду модулю

 

 

Тем самым мы создали соединение с PC с его портом 1556, модулю назначили порт 1555, также в третьем параметре мы указали сетевой адрес компьютреа, далее после портов идёт параметр режима UDP, нам он не так важен, оставляем его 0 по умолчанию. Не важно, что мы ещё не создавали порт на компьютере, это всё-таки UDP и это не проверяется.

Создадим порт на PC с помощью утилиты netcat, с которой мы дружим уже очень давно

 

 

Мы видим, что команда nc очень похожа на AT команду модуля, только немного всё переставлено местами и IP-адрес мы уже здесь вводим модуля.

Теперь мы можем начать обмен между нашими узлами. Но, прежде чем мы его начнём, запустим утилиту анализа сетевого трафика WireShark, чтобы убедиться с помощью неё что пакеты у нас доходят полностью без сбоев. Отфильтруем поток по IP-адресу модуля

 

 

Попробуем сначала передать строку с PC на модуль

 

 

Посмотрим в Wireshark, что пакет от нас благополучно ушел на модуль

 

 

 

В терминальной программе мы также видим, что пакет в модуль пришел

 

 

Кроме строки мы здесь видим отчёт, по какому номеру соединения к нам пришло сколько байтов информации

Теперь, наоборот, попробуем передать строку с модуля на компьютер.

Для это сначала мы дадим команду, в которой заранее определим, сколько байтов мы планируем передать

 

 

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

Введём эту строку

 

 

В нашей строке, если посчитать вместе с пробелами, содержится 18 символов. К ним мы прибавляем символы возврата строки и перевода каретки, получается 20.

Нажмём Enter и увидим, что строка наша ушла из модуля

 

 

В WireShark мы видим также, что строка пришла полностью

 

 

В утилите netcat мы также видим, что строка полностью пришла, так как после отображения строки произошел переход на новую

 

 

Мы видим, что всё у нас прекрасно передаётся и принимается нашими узлами.

После этого мы можем закрыть соединение с помощью соответствующей AT-команды

 

 

Итак, в данном занятии нам удалось подключить модуль ESP-01 к компьютеру посредством шины UART и немного поупражняться в работе команд AT, с помощью которых мы можем управлять нашим модулям. Также нам удалось создать соединение с роутером, при помощи которого мы смогли передать и принять данные с использованием протокола UDP.

Несомненно, на этом арсенал команд AT не исчерпывается, у контроллера ESP8266 их очень много, в том числе мы можем изменить скорость передачи данных по UART и многое другое, но, думаю, в рамках нашего занятия достаточно и тех, которые мы изучили и испытали на практике.

Всем спасибо за внимание!

 

Предыдущий урок Программирование МК ESP8266 Следующий урок

 

 

Различные модули ЕSP8266 можно приобрести здесь Модули ЕSP8266

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

ESP8266 AT команды

Один комментарий на “ESP8266 Урок 2. AT команды
  1. Максим:

    «существует команда возврата к заводским настройкам»

    Зачем команду обрезал и не написал.
    Теперь придется доки качать. 😉

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*