ESP-OPEN-SDK: работа с WiFi соединением в режиме клиента (station mode)

разделы: Интернет вещей, дата: 19 мая 2019г.

В данной статье я хочу рассмотреть наиболее простые примеры для работы с сетью средствами SDK. При работе с сетью, SDK использует неблокирующее программирование. В связи с этим, программирование сводиться к написанию коллбек-функций, которые будут вызываться из SDK при наступлении того или иного события. Это затрудняет чтение и разбор алгоритма программы, поэтому в статье я всега стараюсь говорить, что за чем следует.

Статья по структуре будет напоминать предыдущую: "ESP8266: подключение, прошивка и работа с AT-командами", за тем исключением, что в этот раз все будет делаться с помощью программирования через ESP8266-NONOS-SDK.

Конфигурация WiFi сети будет, опять же, состоять из двух компонентов: а) точки доступа на роутере с прошивкой OpenWRT; б) и собственно ESP8266 выступающего в роли клиента. На стороне роутера запущен web-сервер для обслуживания ESP8266. Для передачи и получения данных от роутера, ESP8266 будет использовать GET - запросы.

В качестве "транспорта" для работы с TCP/IP я буду использовать штатный интерфейс espconn, который описан в ESP8266 Non-OS SDK API Reference.

Для захвата и анализа трафика между ESP8266 и точкой доступа на OpenWRT, я буду использовать программы tcpdump и Wireshark. Все примеры статьи используют SDK версии 2.1.0.

    Список используемой документации:
  1. ESP8266EX Resources | Espressif Systems Страница с доступными ресурсами по ESP8266 на сайте производителя.
  2. ESP8266 Non-OS SDK API Reference ESP8266 Non-OS SDK API Reference версия 2.2
  3. ESP8266 Low Power Solutions
  4. Статья Михаила Григорьева на хабре: Работа с ESP8266: Собираем компилятор и пишем первую прошивку
  5. Книга Kolban's Book on ESP8266
  6. Если вы как и я НЕ учились по специальности "компьютерные сети", то вам скорее всего понадобиться какой-нибудь мануал с описанием разных сетевых протоколов. Я лично использую "В. Олифер, Н. Олифер «Компьютерные сети. Принципы, технологии, протоколы.", часть IV: Сети TCP/IP. Это недорогой понятный учебник без лишней воды.

Содержание:

  1. Создание базового проекта
  2. Установка WiFi соединения в режиме клиента
  3. Работа с TCP соединением используя espconn
  4. Использование режима энергосбережения "deep sleep"
  5. Реализация команды ping
  6. Получение даты и времени из сети по протоколу SNTP

Посмотреть исходники, сборочные файлы, скачать скомпилированные прошивки, можно с портала GITLAB https://gitlab.com/flank1er/esp8266_sdk_examples

Читать дальше