pcus.ru
2015-05-19 11:51

ESP8266 быстрый старт

ESP8266. Начало

 Новый модуль wifi-uart, маленький + дешевый = всё как мы любим.
И так вот как он выглядит

ESP8266. Начало

Вот его пины:

 

ESP8266. Начало

 

 

 

 

 
Подключение

 
Питание подать на vcc и ch_pd, 

подключить RX от вашего устройства к TXD 

подключить TX от вашего устройства к RXD 

и конечно землю к GND

 
Включение у меня было на скорости 115200, 8 бит, 1 стоповый

 
Обязательно после каждой команды использовать перевод каретки (CR) иначе не будет отвечать правильно.
Я использую программу "Termite" (под винду) самая вменяемая из "Com-test" подобных, там есть прям выбор этой опции, чтобы забыть о ней хотя бы во время тестов.

Пробуем для теста команду "AT" в ответ мы увидим эту команду и "ОК"
 

ESP8266. Начало
 

 
Почти на все команды в конце отвечает ОК
Если задать модулю ssid и пароль для подключения, после перезапуска он будет автоматически подключаться.
             
Команда Зачем? Тип Что в ответ? Как проверить? Что в ответ? Комментарий
AT тест Основная ОК  -   -   
AT+RST Рестарт модуля Основная время, лог загрузки и вконце ready  -   - 
Бывало когда AT команды переставали работать после этой команды (ready не было)
AT+CWMODE=<mode> Выбор режима WiFi WiFi ОК AT+CWMODE?  +CWMODE:<mode> Есть 3 режима <mode>: 1 - клиент, 2 - точка доступа, 3 - и то и то. Изменения вступят только после перезагрузки.
 
AT+CWLAP Поиск доступных сетей WiFi-клиент Несколько секунд и модуль выдаст список доступных сетей   -  -   +CWLAP:(4,"s735",-50)  Какая-то цифра (скорее всего канал), ssid, уровень сигнала (при -50 роутер рядом с приемником, при -93 далеко и мой телефон например показывает 1 палку). Важно!!! Если подключиться к точке доступа (CWJAP), а потом сделать поиск по вайфаю (CWLAP) то он зависнет и будет писать только "busy now..." приходится передергивать питание, этого можно избежать если вовремя применять команду CWQAP
 
AT+CWJAP ="<ssid>","<pwd>" Подключение к точке доступа WiFi-клиент ОК AT+CWJAP?  +CWJAP:"ssid" Причем если подключен и если отключен AT+CWJAP? возвращает ssid сети. Нашел имя клиента в роутере "Unknown"
 
AT+CWQAP Отключение от точки доступа WiFi-клиент ОК  -   -   
AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn> Настройки точки доступа WiFi-AP ?     У меня не получилось применить эту команду пишет "pwd ERROR" (я правда не долго искал решение проблемы, так как в режиме AP он интересен меньше) 
 
AT+CWLIF Получить ip подключенных 
к нему устройств
WiFi-AP <ip> в столбик  -   -   
AT+CIPSTATUS Узнать статус модуля TCP/IP STATUS:<id>     Чуть ли не самая важная команда, и на неё никакого описания нет… Методом тыка: 5 - отключен от точки доступа, 4 - статус после рестарта, 3 - ?, 2 - ?, 1 - после команды подключения к точке доступа (причем пароль может быть не верный всё равно будет 1)
Нифига не понятно, если кто в курсе просветите плз...

 
AT+CIPCLOSE Закрыть tcp соединение 
(и клиент и сервер)
TCP/IP ОК  -   -  В режиме сервера происходит отключение но мы остаемся в режиме и клиент может просто ещё раз подключиться
 
AT+CIPMUX=1 Включить несколько 
соединений сразу.
TCP/IP ОК AT+CIPMUX?   Всегда включаем, полезная штука. (если не включить то чуть по другому будут писаться дальнейшие команды)
 
AT+CIPSTART=4,"TCP","<ip>",<port>
Подключиться по 
TCP к ip и порту

 
TCP/IP-клиент ?     Первая цифра это id подключения от 0 до 4, дальше подключение "TCP" или "UDP" ну и дальше понятно. У меня не получилось сделать подключение словил ошибку "DNS Fail/r/n" дальше не разбирался.
 
AT+CIPMODE=1
Переход в режим 
передачи данных

 
TCP/IP-клиент ?      
AT+CIPSERVER=1,<port> Включить TCP сервер на
определенный порт
TCP/IP-сервер ОК  -   -  Когда мы в режиме сервера и к нам подключаются по tcp, нам приходит команда "Link", при отключении "Unlink". Помните про таймаут, через некоторое время связь разрывается автоматически.
AT+CIFSR Узнать свой ip адресс TCP/IP-сервер <ip>  -   -   
AT+CIPSTO=<timeout> Задать таймаут серверу TCP/IP-сервер ОК AT+CIPSTO?   Задается только при запущеном сервере
 
AT+CIPSEND=<id>,<length> Отправить данные прием/передача    -   -  Если задан CIPMUX=1 то отправляем id подключения и колличество предаваемых байт, если не задан то просто колличетво передаваемых байт. Далее в ответ получаем приглашение к отправке в виде знака больше и передаем сами данные.
 
 +IPD,<id>,<length>:<data> Прием данных прием/передача Данные и ОК  -   -   

 

 Все замечания-предложения-исправления пишите на admin@pcus.ru
Спасибо