Программное обеспечение
Для работы с модулем ESP01 с помощью ПК потребуется 2 программы:
- Любой терминал для работы с COM-портом. Очень желательна, хотя и не обязательна, возможность программой отправлять данные в символьном виде. Отлично подходит CoolTerm.
- Любой TCP-клиент. В статье я использую Tcp Client Sever.
Настройка ESP8266 в режиме TCP/IP сервера
Подаем питание на модуль ESP01 и с помощью терминала COM-порта и USB-преобразователя подключаемся к модулю, предварительно настроив параметры порта. Мой случай показан на рисунке. Номер COM-порта может отличаться, поэтому смотрите его в Диспетчере устройств.
Настройки CoolTerm для ESP8266
На сайте esp8266.ru есть перевод на русский язык АТ команд контроллера. Воспользуемся ими для запуска TCP сервера.
Шаг 1. Проверка модуля ESP8266. Через терминал отправить команду
AT
Если модуль успешно стартовал, то он ответит «OK».
Шаг 2. Включить режим «Точка доступа (АР)». Через терминал отправить команду
AT+CWMODE=2
В случае успеха модуль ответит «OK».
Шаг 3. Настроить параметры точки доступа. Через терминал отправить команду
AT+CWSAP="ASHT","pass",1,0
В случае успеха модуль ответит «OK». В данной команде «ASHT» – название точки доступа (SSID); «pass» – пароль ( «» если точка доступа без пароля); 1 – канал; 0 – тип шифрования, в данном случае открытая сеть. SSID и пароль пишутся в двойных кавычках.
Шаг 4. Выбрать режим множественных подключений. Через терминал отправить команду
AT+CIPMUX=1
В случае успеха модуль ответит «OK». Для режима сервера устанавливаются только множественные подключения, иначе модуль выдаст «ERROR».
Шаг 5. Запуск TCP сервера. Через терминал отправить команду
AT+CIPSERVER=1,585
В случае успеха модуль ответит «OK». В данной команде 1 – запуск/перезапуск сервера (отправляйте 0 для остановки); 585 – порт сервера (используйте любой из доступных в системе).
Готово! TCP/IP сервер запущен и готов к подключению клиента.
Клиентское подключение к TCP/IP серверу на ESP01 (ESP8266)
После успешного запуска TCP сервера необходимо подключиться к точке доступа. В доступных WI-FI сетях выбираем нашу (ASHT в данном случае) и подключаемся к ней. Естественно, сеть будет без доступа в интернет.
Запускаем TCP клиент, который скачали и установили ранее. В комбобоксе клиента interface выбираем адрес, соответствующий адресу wi-fi. Его можно посмотреть в свойствах подключения. По умолчанию модуль ESP8266 стартует с IP адресом 192.168.4.1 и при подключении выдает клиенту адрес 192.168.4.2. В текстовом поле IP меняем адрес на 192.168.4.1. В окне клиента выбираем радиобаттон Client, прописываем порт 585 и жмем кнопку Connect.
При успешном подключении ESP8266 вернет в терминал строку
0,CONNECT
Здесь 0 – id клиента. А терминал напишет
Time:12:32:34 - New Connection Established: 192.168.4.1-585
Внимание! Если между клиентом и сервером не происходит обмена данными, то сервер автоматически отключит клиента по таймауту. При этом в терминале появится сообщение
0,CLOSED
А клиент выдаст
Time:12:36:21 - Connection Closed: 192.168.4.1-585
Время таймаута также можно настраивать АТ командами. После отключения необходимо заново нажать Connect в клиенте.
Передача данных от TCP/IP сервера ESP8266 к клиенту
Длина данных в пакете не должна превышать 2048 байтов. Между пакетами выдерживается интервал 20 мс. Для отправки текста «Hello / Привет» в терминале вводим команду
AT+CIPSEND=0,14
Где 0 – это id клиента (мы его знаем из ответа «0,CONNECT» и в случае отличия вставляем вместо 0); 14 – длинна посылки в байтах (в данном случае символах).
ESP8266 вернет в терминал строки
OK
>
Пишем в терминале нашу фразу «Hello / Привет» и отправляем, нажав Enter. ESP8266 вернет в терминал
вет busy s...
Recv 14 bytes
SEND OK
А в журнале клиента появятся строки
Time:12:43:36 - Received Data From Connection: 192.168.4.1-585
0000: 48 65 6C 6C 6F 20 2F 20 D0 9F D1 80 D0 B8 Hello / ......
Передача данных от клиента к TCP/IP серверу ESP8266
В окне клиента в поле Send пишем строку
Hello / Привет в ответ
и жмем кнопку Send. В терминале порта появится строка
+IPD,0,22:Hello / Привет в ответ
В ней +IPD означает прием данных по wi-fi; 0 – id клиента; 22 – количество принятых байт (символов); : – все, что справа от двоеточия – принятые данные.
Вот и все. Настройки проведены, двусторонний обмен данными выполнен.
#esp01 #esp8266