ESP8266 Налагодження та передача даних
Ось команди які нам понадабятся:
AT
Базова команда для перевірки зв'язку та роботи модуля.
Відповідь: OK
ATE0 - включити відлуння
ATE1 - вимкнути відлуння
AT + CWAUTOCONN =
Автоматичне підключення до точки доступу при старті
0 - викл
1 - вкл
AT + CWMODE =
Вибір режиму роботи модуля:
1 - режим станції (STA)
2 - режим точки доступу (SAP)
3 - суміщений режим (STA + SAP)
AT + CWDHCP_DEF =,
mode:
0 - для режиму точки доступу (SAP)
1 - для режиму станції (STA)
2 - для режиму точки і станції (SAP + STA)
enable:
1 - enable
0 - disable
AT + CIPMUX =
Режим одиночних або множинних підключень
0 - поодинокі
1 - множинні
AT + CWSAP_DEF =.
Налаштування програмної точки доступу
ssid - ім'я точки
pwd - пароль максимум 64 символу
ch - канал на якому буде працювати точка
enc - тип захисту з'єднання:
0 - відкрите
1 - WPA_PSK
2 - WPA2_PSK
3 - WPA_WPA2_PSK
Підключимося до існуючої точки доступу:
AT + CWJAP_DEF =,
Приклад: AT + CWJAP_DEF = "TP-LINK", "12345678"
----------------------------------------------------
Передати дані на сокет:
AT + CIPSEND =,
socket - номер відкритого сокета
length - кількість байт для передачі
Приклад: AT_CIPSEND = 1,5
Чекаємо готовності до передачі даних ">"
Потім посилаємо потрібну кількість байт
----------------------------------------------------
Вхідні дані в форматі:
+IPD = ,:
socket - номер відкритого сокета
length - кількість байт даних
data - вхідні дані
Приклад: + IPD = 0,5, Hello
Налаштуємо термінал для роботи
Тепер налаштуємо з'єднання по UART. Відкриємо термінал HTerm, про який я говорив в попередній статті і налаштуємо з'єднання. У мене перехідник USB - UART підключився як COM16. Швидкість передачі даних 115200. Дані 8 біт, стоп біт 1, перевірка парності відключена.
Тепер налаштуємо відправку спец символів CR LF в кінці кожної команди.
У терміналі HTerm є для цього спеціальна функція. У вікні програми Input control встановимо параметр Send on enter CR-LF.
Тепер, можна просто писати в терміналі команду а він сам додасть спец символи.
Пишемо «AT» і у вікні Transmitted бачимо «AT \ r \ n» Відмінно.
Налаштуємо модуль як точку доступу.
Для перевірки з'єднання напишемо наступні команди:
З цього видно, що у нас AT команди версії 0.22 Все правильно, продовжимо. Як ви помітили, у відповіді приходить відлуння введеної нами команди, відключимо відлуння, на мою так зручніше.
ATE1
відповідь:
OK
Налаштуємо ім'я, пароль, точку доступу:
Ім'я - ESP8266, Пароль - 12345678, Канал - 4, Тип захисту 3 - WPA2-PSK
AT + CWSAP_DEF = "ESP8266", "12345678", 4,3
Щоб приймати або отримувати дані, потрібно або бути клієнтом (підключатися до сервера), або запустити свій сервер, і чекати запиту. Запустити сервер на ESP буде простіше, тому підемо цим шляхом.
Щоб запустити сервер, необхідно вирішити декілька підключень:
AT + CIPMUX = 1
Запускаємо сервер і відкриваємо порт 8080
AT + CIPSERVER = 1,8080
З налаштуванням модуля закінчено, TCP сервер запущений, все готово для передачі даних. Для цього можна використовувати будь-який TCP термінал. Для Android є "TCP UDP Client" а для Windows я використовую "Hercules 3.2.8"
Підключаємося до нашої точки доступу ESP8266, вводимо пароль 12345678, чекаємо підключення.
У терміналі TCP вводимо параметри підключення ip-192.168.0.1 port-8080. Має відкритися сокет «0» і в UART терміналі отримаємо повідомлення від ESP про те що встановлено з'єднання: 0, CONNECT
Тепер напишемо в TCP терміналі щось на зразок "Hello"
У відповідь по UART від ESP отримаємо наступне: + IPD, 0,5: Hello Призначення аргументів після IPD наступне:
+IPD,<номер сокета>,<количество байт данных>:<данные>
Тепер передамо дані від ESP до клієнта (в нашому випадку клієнт це TCP термінал) Дані відправляються в два етапи: перший - повідомляємо кількість байт даних, потім відправляємо це кількість байт без будь-яких додаткових символів. Максимальна кількість байт, які можна відправити за один раз - 2048.
Відправимо дані:
AT + CIPSEND = 0,8
Чекаємо запрошення ">"
Надсилаємо дані:
HelloESP
відповідь:
busy s ...
SEND OK
У терміналі TCP ми побачимо наше повідомлення "HelloESP". Можна вважати що наші старання пройшли не дарма і дані успішно передані. Наступним етапом ми будемо виступати в ролі станції і підключимося до Wi-Fi роутера.
Налаштуємо модуль в режимі станції.
Переведемо ESP в режим станції:
AT + CWMODE = 1
Включимо DHCP для режиму станції (STA): (включений за замовчуванням)
AT + CWDHCP_DEF = 1,1
Відключимо автоматичне підключення до точки доступу:
AT + CWAUTOCONN = 0
Для передачі і прийому даних команди точно такі ж.
На сьогодні це все. Успіхів Вам у підкоренні Wi-Fi модуля esp8266!
З повагою Валерій Єгоров.