Внимание! Статья была отредактированна в сентябре 2023 года. Были исправлены битые ссылки, логи и опции утилиты esptool.py были приведены к современному виду. Было сделано множество уточнений и дополнений, добавлена информация про прошивку модулей ESP8266/ESP32 Микропитоном(MicroPython), а также по установке прошивки "умной розетки" Sonoff Tasmota. Старую версию статьи можно найти по следующему адресу: "перейти по ссылке".
Появившись в далеком 2014 году, модули на базе чипа ESP8266 наделали много шума, подняв настоящее цунами, которое переросло в IoT революцию в электронике. Производителем чипов была на тот момент никому неизвестная китайская фирма "Espressif Systems", зарегистрированная в Шанхае. Спустя некоторое время, многие фирмы представили на рынок аналогичные модули собственного изготовления, но по цене они были в два - пять раз дороже модулей на ESP8266, и с такими характеристиками "убийцы" ESP8266 сами быстро и без лишнего шума покидали рынок.
В 2016-ом году, фирма "Espressif Systems" представила на рынок ESP32, который существенно превосходил по своим возможностям ESP8266, и интерес к ESP8266 начал сходить на нет. В то время интернет быстро переходил на безопасный протокол HTTPS, который для слабого ESP8266 был не простой задачей.
ESP32 это двухядерный микроконтроллер или SoC, если угодно, работающий на частоте 240MHz и снабженный радио-интерфейсами: WIFI стандарта 802.11 bgn (2.4 GHz), с пропускной способностью до 150 Mbps, и BLE (Bluetooth Low Energy) стандарта 4.2, который был принят в 2014 году, спустя всего год после принятия спецификации 4.1. ЦПУ имеет архитектуру Xtensa, есть аппаратная поддержка чисел с плавающей запятой, 7-уровневый конвейер, 520 кБ ОЗУ, и многое другое (см. документацию: ESP32 Datasheet).
В 2020 году фирма "Espressif Systems" анонсировала чипы "ESP32-S2" - одноядерную версию ESP32, но с большим количеством GPIO, а также чип "ESP32-C3" на новой архитектуре RISC-V. В 2021 был представлен двухядерный чип ESP32-S3 с BLE 5 и векторными инструкциями для ускорения AI-функций. И не так давно, "Espressif Systems" презентовала чипы ESP32-C6 на RISC-V архитектуре с радиомодулями WiFi 6.0, BLE 5.0 и 802.15.4 субгигагерцевого (sub-1GHz) диапазона - ZigBee и Thread и ESP32-C2 с поддержкой нового протокола Matter.
Возвращаясь к ESP8266, он популярен в первую очередь за счет свое цены - около одного доллара. В этой ценовой категории он не имеет аналогов. В свое время модули на ESP8266 послужили основой для огромного количества "умных розеток" и им подобных устройств. Если говорить о ESP12 модулях производства "Ai-Thinker", то здесь имеется около 50 Кбайт ОЗУ, 4 Мбайт флеш-памяти, частота ЦПУ 80МГц, встроенный WiFi контроллер. Модули поставляются как готовые устройства с AT-интерфейсом и с возможностью программирования через Arduino IDE, используя для этого официальный SDK.
В статье разбирается подключение, прошивка, и работа с AT командами ESP8266. Изначально статья была целиком посвящена только ESP8266, но впоследствии я решил добавить главу о перепрошивке модуля с ESP32. AT команды в ESP32 практически все те же, что и в ESP8266, так что, все сказанное относительно работы с AT-командам ESP8266 можно отнести и к ESP32.
Большая часть материала статьи посвящена режиму работы ESP8266, когда он работает в режиме WIFI модема с AT-интерфейсом. Разбираются типовые вопросы: как настроить, что-то скачать, переслать свои данные на сервер, и т.д. Предполагается, что уровень знаний читателя о сетях нулевой. Поэтому я постарался расписать всё максимально доходчиво. Для наглядности, показана работа с программами tcpdump и Wireshark для анализа трафика ESP8266. В качестве вспомогательного оборудования используется WiFi роутер с прошивкой OpenWRT, но вместо него можно использовать любой компьютер с Linux.
Содержание: